vmlemon / Orion

Next-generation, L4Ka::Pistachio-based operating system
7 stars 0 forks source link

Reusing a VGA monitor, with the PS3? #4

Closed vmlemon closed 5 years ago

vmlemon commented 5 years ago

[Not really a "bug, but it's something that consumers ask for, and I wanted for myself]

In order to make it easier to develop Orion, for, and on the PS3, I need an affordable way of being able to connect my existing VGA monitor to the PS3, without adding too much clutter, or having to buy yet another LCD.

The monitor itself is pretty old, seemingly only supports 576p@4:3, and is a generic product, produced by "Neijiang Direction Liquid Crystal Display Co. Ltd.", as the L-151/L5AK5 model, and defaults to an automatically-set colour temperature, which lends an orange hue, to graphics. (We can change this to 6500K, for nicer results).

vmlemon commented 5 years ago

Initially, I picked up a Belkin VGA/HDMI converter, but if I connected it to the PS3, HDCP handshaking would presumably fail, and the monitor would only display a generic "No Signal" error, even if I powered it by USB (which turns out to be unnecessary), which was frustrating...

After doing some searching, I came across a recommendation for the "iSolem 1X2 HDMI Splitter", on Amazon, which I ordered (arrived today), along with an analogue Wii/PS3 multi-head cable, which didn't seem massively useful, from initial testing (with both cables, I received an "Out of Range" error, from the display), even after doing a redetection reboot, a few times.

Eventually, after connecting the PS3 to a Toshiba TV, via HDMI, and disabling all resolutions, except for 576p@4:3, disconnecting the TV, connecting the monitor, and changing its colour temperature, I got the HDMI/VGA adapter, and HDMI splitter combination working.

As for the analogue option, I may save it, for when I start looking into a Wii/Linux-based build environment...

vmlemon commented 5 years ago

EDID information (with the monitor connected to just the VGA/HDMI convertor):

get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
2 potential busses found: 3 6
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
    Identifier "L5AK5"
    ModelName "L5AK5"
    VendorName "@@@"
    # Monitor Manufactured week 46 of 2003
    # EDID version 1.2
    # Digital Display
    DisplaySize 300 230
    Gamma 2.82
    Option "DPMS" "true"
    Horizsync 30-60
    VertRefresh 55-75
    # Maximum pixel clock is 80MHz
    Horizsync 30-60
    VertRefresh 55-75
    # Maximum pixel clock is 80MHz

    #Extension block found. Parsing...
    Modeline    "Mode 11" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
    Modeline    "Mode 0" 
    Modeline    "Mode 1" 
    Modeline    "Mode 2" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
    Modeline    "Mode 3" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
    Modeline    "Mode 4" 
    Modeline    "Mode 5" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
    Modeline    "Mode 6" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 7" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 8" 
    Modeline    "Mode 9" 
    Modeline    "Mode 10" 
    Option "PreferredMode" "Mode 11"
EndSection
root@tyson-Lenovo-ideapad-120S-14IAP:~# 
vmlemon commented 5 years ago

EDID information, for the Belkin adaptor, with no display connected:

root@tyson-Lenovo-ideapad-120S-14IAP:~# get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
2 potential busses found: 3 6
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
Bus 3 doesn't really have an EDID...
128-byte EDID successfully retrieved from i2c bus 6
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
    Identifier "z�"
    ModelName "z�"
    VendorName "BOE"
    # Monitor Manufactured week 1 of 2016
    # EDID version 1.4
    # Digital Display
    DisplaySize 310 170
    Gamma 2.20
    Option "DPMS" "false"
    Modeline    "Mode 0" 72.30 1366 1414 1446 1526 768 771 777 790 +hsync -vsync 
EndSection
vmlemon commented 5 years ago

EDID information, with nothing plugged into the splitter, after resetting it:

root@tyson-Lenovo-ideapad-120S-14IAP:~# get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 3
No EDID on bus 4
No EDID on bus 5
1 potential busses found: 6
128-byte EDID successfully retrieved from i2c bus 6
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
    Identifier "P�"
    ModelName "P�"
    VendorName "BOE"
    # Monitor Manufactured week 1 of 2016
    # EDID version 1.4
    # Digital Display
    DisplaySize 310 170
    Gamma 2.20
    Option "DPMS" "false"
    Modeline    "Mode 0" 72.30 1366 1414 1446 1526 768 771 777 790 +hsync -vsync 
EndSection

If the monitor is connected, and disconnected, it seems to cache/spoof the EDID information, of the monitor, even if it's gone.

vmlemon commented 5 years ago

EDID, with the HDMI splitter feeding the Belkin, with no monitor attached:

root@tyson-Lenovo-ideapad-120S-14IAP:~# get-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 3
No EDID on bus 4
No EDID on bus 5
1 potential busses found: 6
128-byte EDID successfully retrieved from i2c bus 6
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
    Identifier "h�"
    ModelName "h�"
    VendorName "BOE"
    # Monitor Manufactured week 1 of 2016
    # EDID version 1.4
    # Digital Display
    DisplaySize 310 170
    Gamma 2.20
    Option "DPMS" "false"
    Modeline    "Mode 0" 72.30 1366 1414 1446 1526 768 771 777 790 +hsync -vsync 
EndSection
vmlemon commented 5 years ago

If we connect the monitor to the Belkin, and the Belkin to the splitter, we get:

et-edid | parse-edid
This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 1
No EDID on bus 2
No EDID on bus 4
No EDID on bus 5
2 potential busses found: 3 6
Will scan through until the first EDID is found.
Pass a bus number as an option to this program to go only for that one.
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
    Identifier "L5AK5"
    ModelName "L5AK5"
    VendorName "@@@"
    # Monitor Manufactured week 46 of 2003
    # EDID version 1.2
    # Digital Display
    DisplaySize 300 230
    Gamma 2.82
    Option "DPMS" "true"
    Horizsync 30-60
    VertRefresh 55-75
    # Maximum pixel clock is 80MHz
    Horizsync 30-60
    VertRefresh 55-75
    # Maximum pixel clock is 80MHz

    #Extension block found. Parsing...
    Modeline    "Mode 11" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
    Modeline    "Mode 0" 
    Modeline    "Mode 1" 
    Modeline    "Mode 2" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
    Modeline    "Mode 3" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
    Modeline    "Mode 4" 
    Modeline    "Mode 5" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
    Modeline    "Mode 6" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 7" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 8" 
    Modeline    "Mode 9" 
    Modeline    "Mode 10" 
    Option "PreferredMode" "Mode 11"
EndSection

Seems to preserve the I2C EDID information, all the way, despite several conversions. :)

vmlemon commented 5 years ago

For the PS3 (but not my Lenovo laptop), the HDMI splitter can't be powered via USB (but the splitter can power the Belkin), so it's necessary to have a spare USB port, somewhere.

vmlemon commented 5 years ago

For CellOS, and the XMB menu, we can display graphics on the monitor, but PetitBoot still drives the display at an unsupported resolution, which is annoying. Ideally, we'd get another monitor, or fix PetitBoot, somehow...

vmlemon commented 5 years ago

Closing this, since the core problem is solved - PetitBoot has enough problems, to warrant its own atomic issue.