I’ve recently bought a quite cheap LCD-TV from Philips. It’s an 42pfl5603d. The TV has FullHD (1920×1080) resolution and is 42″ in size. These are actually the only features I’ve been keen on.
The first one I sent back, because the TV set didn’t react either on remote or local (side panel) key presses. Amazon sent a new one after one week and I’ve started again to build my new HTPC. This time I was almost finished, MMS (My Media System) was already running, and sound was the only big thing I’ve been missing.
What I needed were two stereo (phone) jacks, one side should go into the PC, the other one into the backpanel of the TV-set. The video signal should be transfered via a DVI-HDMI adapter cable.
I’ve connected all, had video but no sound at all. After made almost all different kind of tests, I was pretty sure my PC provided sound via the stereo jacks. I’ve also assign the AUDIO IN (L/R) to the “HDMI 1” in TV-set menu, like it was told in the manual. But still no dice. Then – already desperate, I’ve started to ask Google, if it had a solution for me. And Google told me a very freaky thing to do.
I should get the EDID dump form my new LCD-TV and modify it. This workaround should solve this problem with NVIDIA cards, don’t know it other manufacturers are affected also. I didn’t believe that this should fix my problem, but – it did. It turned out, NVIDIA doesn’t handle some (all?) extended EDID informations correctly. So the communication between the DFP (digital flat panel) and my PC went wrong.
Here’s a description about how I did it:
- start nvidia-settings, go to your monitor (DFP-0) and hit the “Aquire EDID…” button, and save this file. Call it
EDID.bin.long, if you rely on the description below
- now you need to cut off all bytes after position 128.
sudo dd if=./EDID.bin.long of=/etc/X11/EDID.bin bs=1 count=128
- now install hexedit
sudo aptitude install hexedit
- now edit your
/etc/X11/xorg.conf. Add the colored line to the
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "GeForce 8400 GS" Option "CustomEDID" "DFP-0:/etc/X11/EDID.bin" EndSection
- Restart X:
- Now sound should be available.
sudo hexedit /etc/X11/EDID.bin
and set the penultimate byte (hex: 7E) from
"00", and then increase the last byte (position hex: 7F) by one (it’s hexadecimal! A get B, B get C and so on. F gets 0) . If your last checksum value is
FF then try
Ctrl+X to save and exit hexedit.
Would be cool to know if this solution works for other manufacturers (e.g. Sony, Sharp, Samsung ), too. Feedback welcome. :-)”
PS: All was done an Ubuntu 8.10 (Intrepid Ibex), x86.