2016-12-15, 08:35
(2015-11-01, 18:35)fritsch Wrote: Kernel 4.4+ is required or audio EDID information won't be copied
As I needed edid overwriting myself today here is a short howto on how to boot completely without TV / AVR but having correct EDID information. This will work for intel and radeon:
# Find out the connected port
Could be HDMI-A-2 on your setup and so on. On my system it is HDMI-A-1 - you need to remove the card0- when working with this strange later on. If yours differs you need to alter all HDMI-A-1 in the following steps to your matching ones.Code:fritsch@bsw:~$ cat /sys/class/drm/card0-HDMI-A-1/status
connected
In my case it's HDMI-A-1 continue to change /etc/default/grub to look like:
Code:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=HDMI-A-1:1920x1080@50D drm_kms_helper.edid_firmware=HDMI-A-1:edid/edid.bin"
This will do two things a) it sets my default resolution to 1920x1080@50 and activate the digital output with D - which is not a typo, but written correctly directly behind the @50 which is my target refreshrate as I use LiveTV most of the time. Second is for loading a firmware to overwrite the edid that we will capture now
Before doing this make sure that you booted the whole system with AVR / TV on correctly and everything is working as you want it as we need to copy the edid in a working environment
Code:sudo mkdir -p /lib/firmware/edid
sudo cp /sys/class/drm/card0-HDMI-A-1/edid /lib/firmware/edid/edid.bin
Now we need to make a little hack and also convince ubuntu to load this edid.bin in initramfs. Create /etc/initramfs-tools/hooks/include-edid-data file and write into it:
Code:#!/bin/sh
PREREQ="udev"
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
# Begin real processing below this line
if [ ! -e "${DESTDIR}/lib/firmware/edid" ]; then
mkdir -p "${DESTDIR}/lib/firmware/edid"
fi
if [ -r "/lib/firmware/edid/edid.bin" ]; then
cp "/lib/firmware/edid/edid.bin" "${DESTDIR}/lib/firmware/edid/"
fi
manual_add_modules i915 radeon
exit 0
Now make it executable:
Code:sudo chmod +x /etc/initramfs-tools/hooks/include-edid-data
We are nearly done, finish with
Code:sudo update-initramfs -u
sudo update-grub
sudo reboot
Now enjoy.
For OpenELEC you need to follow: http://wiki.openelec.tv/index.php/Config...#tab=Intel instead
hmm upgraded to 16.04.1 from 14.04 and my kern.log is reporting the EDID helper firmware fails to load, other logs look ok, is this a red herring?
Code:
[drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Requesting EDID firmware "edid/edid.bin" failed (err=-2)
kern.log
dmesg
Xorg.0.log
kodi.log
After another reboot the error is gone. disregard.