Я использую Mythbuntu 12.04 с ТВ, которое только предоставляет информацию EDID, когда это включено. Так как компьютер будет использоваться для записи видео через MythTV, я не хочу всегда иметь ТВ на том, в то время как компьютер работает.
Я сохранил EDID в файл, поместил его в/lib/firmware и добавил drm_kms_helper.edid_firmware=DVI-I-1:LT26-A.VGA.EDID.bin
к командной строке ядра. Ядро загружает EDID из этого файла, и X запускается с надлежащего разрешения. Однако ядро все еще пытается считать EDID из устройства и массово рассылает мои журналы с сообщениями как это:
[ 31.926373] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 128
[ 31.927144] Raw EDID:
[ 31.927352] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.927882] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928454] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928984] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.929513] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930042] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930569] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931097] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931630] radeon 0000:01:00.0: DVI-I-1: Ignoring invalid EDID block 1.
[ 31.990143] i2c i2c-3: sendbytes: NAK bailout.
[ 31.993215] [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
[ 32.023802] [drm] Got external EDID base block and 0 extensions from "LT26-A.VGA.EDID.bin" for connector "DVI-I-1"
[ 32.774355] i2c i2c-3: sendbytes: NAK bailout.
Добавление drm_kms_helper.edid_firmware опции также вызывает длительную задержку при закрытии или перезагрузке. Это происходит, даже когда монитор работает. Часть его происходит из-за всех вызовов plymouth
зависание некоторое время, вероятно, из-за plymouthd
зависание. Это делает сценарии выполняемыми на завершении работы, зависают некоторое время. Не выполнение plymouthd
на завершении работы помогает, но существует все еще задержка.
После задержки я вижу:
[drm:edid_load] *ERROR* Requesting EDID firmware "LT26-A.VGA.EDID.bin" failed (err=-2)
Это высвечивается очень быстро и сопровождается экраном-заставкой или перезагрузкой. Я мог только записать его с помощью камеры. Это не имеет никакого смысла мне, потому что во время задержки компьютер был полностью применим через SSH. Ядро должно было смочь считать файл.
Я не думаю, что это - Плимутская проблема. Это, вероятно, зависает, потому что некоторое изменение режима видео, которое это запрашивает, зависает. Однако я хотел бы смочь сказать Плимуту всегда оставаться в обычном текстовом режиме VGA.
Я также попробовал drm_kms_helper.poll=0
и drm_kms_helper.poll=N
опции ядра. Они могут установить опцию согласно/sys, но я не вижу изменения от этого.
Добавление nomodeset
параметр ядра избавляется от этих проблем. Однако затем текущая версия драйвера Radeon в X-сервере не работает правильно, и более новые версии отказываются работать.
Обновление: добавление --tty=/dev/console
к вызову plymouthd на завершении работы в /etc/init/plymouth.conf
зафиксировал завершение работы, зависают, даже когда ТВ выключено.
Эдид должен начинаться с
00 FF FF FF FF FF FF 00
, но не в 128 раз FF.
У вас нет EDID, возможно, из-за того, что он поврежден, это не чип с EDID или, что очень вероятно, он поврежден физическим контактом на интерфейсе EDID между монитором или видеокартой. Или даже внутри вашего монитора.
У меня нет точно такой же проблемы, но я обнаружил некоторые проблемы с xorg, когда я переключаю пользователя между открытыми сессиями:
ПРОБЛЕМА: У меня есть сеанс с 1600x1050 и я переключаюсь на другой сеанс пользователя, который был ранее установлен с тем же разрешением 1600x1050. Но когда я переключаюсь на эту сессию, экран становится 1280x1024, и по какой-то причине размер сессии очень и очень неправильный (он больше, чем разрешение экрана, и я не могу переместиться или щелкнуть большинство элементов, поэтому мне приходится перезапускать все Xorg).
ВОЗМОЖНОЕ РЕШЕНИЕ: К счастью, я нашел способ решить проблему хитрым способом: измените имя файла разрешения с помощью файла разрешения.
Установить команду get-edid:
sudo apt-get install read-edid
Создать файл bin с информацией edid:
sudo get-edid > 1600x1050.bin
Создать папку для хранения этого файла:
sudo mkdir /lib/firmware/edid
Скопировать файл:
sudo cp 1600x1050.bin /lib/firmware/edid
Редактировать Grub Чтобы отредактировать команду linux для загрузки этого файла в кмс:
sudoedit /etc/default/grub
Редактировать строку:
GRUB_CMDLINE_LINUX_DEFAULT="drm_kms_helper.edid_firmware=edid/1600x1050.bin quiet"
Изменить файл name.bin и запустить
sudo update-grub
По некоторым причинам это сработало для меня очень хорошо. У меня есть эта карта и драйвер:
fglrxinfo
дисплей:: 0 экран: 0
Строка поставщика OpenGL: Advanced Micro Devices, Inc.
Строка рендерера OpenGL: AMD Radeon HD 6450
Строка версии OpenGL: 4.2.12002 Контекст профиля совместимости 9.012
Ниже приведена информация о моем edid, показанная после выполнения команды
# parse-edid < 1600x1050.bin
:
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.
# EDID version 1 revision 3
Section "Monitor"
# Block type: 2:0 3:fc
Identifier "22T41-H-AN"
VendorName "KTC"
ModelName "22T41-H-AN"
# Block type: 2:0 3:fc
# Block type: 2:0 3:fd
HorizSync 15-68
VertRefresh 49-61
# Max dot clock (video bandwidth) 150 MHz
# DPMS capabilities: Active off:no Suspend:no Standby:no
Mode "1280x720" # vfreq 60.000Hz, hfreq 45.000kHz
DotClock 74.250000
HTimings 1280 1390 1430 1650
VTimings 720 725 730 750
Flags "+HSync" "+VSync"
EndMode
Mode "1680x1050" # vfreq 59.883Hz, hfreq 64.674kHz
DotClock 119.000000
HTimings 1680 1728 1760 1840
VTimings 1050 1053 1059 1080
Flags "-HSync" "+VSync"
EndMode
# Block type: 2:0 3:fc
# Block type: 2:0 3:fd
EndSection
kernel.log:
2139 Oct 2 21:45:06 dans679-computer kernel: [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-30-generic root=UUID=939b3111-4906-46ae-9ad7-7faa783d490d ro drm_kms_helper.edid_firmware=edid/1600x1050.bin quiet
Я искал другие сообщения об ошибках, похожие на панели запуска, но все еще искал правильный. Я думаю, что эта проблема влияет на многие вещи в KMS (переключение режима ядра), не только на переключение между пользовательскими сессиями, но и на игры в полноэкранном режиме с другим разрешением и другие вещи.
Очень трудно найти правильный способ сообщить об этой проблеме, я хотел бы получить некоторую помощь с какой-нибудь командой Xorg / Kernel.
Я думаю, что это может быть исправлено на некотором низком уровне, но также может быть исправлено с помощью такого рода обходного пути некоторым более простым способом для пользователей: например, добавление некоторого сценария для проверки того, обнаружен ли edid или нет, и запрос пользователь, если он хочет, чтобы скрипт получил информацию о edid и передал ее команде ядра, затем спросит, работает ли он нормально и хочет ли пользователь сохранить эти настройки.
Большую часть этой информации я нашел на Странице настройки режима ядра Arch wiki
Я публикую ее на:
https : //askubuntu.com/posts/352978
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/579292 [ 1112] [+1145]