On dual-head xinerama setup (single X screen, two monitors): # get-edid get-edid: get-edid version 2.0.0 Performing real mode VBE call Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0 Function supported Call successful VBE version 0 VBE string at 0x0 "Segmentation fault $ xrandr Screen 0: minimum 320 x 200, current 3900 x 1080, maximum 8192 x 8192 DP-1 connected primary 1920x1080+1980+0 (normal left inverted right x axis y axis) 477mm x 268mm 1920x1080 60.00*+ 1680x1050 59.95 1280x1024 75.02 60.02 1440x900 74.98 59.89 1280x720 60.00 1024x768 75.03 60.00 800x600 75.00 60.32 640x480 75.00 72.81 66.67 59.94 720x400 70.08 HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm 1920x1080 60.00*+ 50.00 59.94 1680x1050 59.88 1600x900 60.00 1280x1024 75.02 60.02 1440x900 59.90 1280x800 59.91 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x480 60.00 59.94 640x480 75.00 72.81 66.67 60.00 59.94 720x400 70.08
Я тоже напоролся на эту ошибку. Продвижения нет?
я уже забыл совсем про этот пакет. Есть новая версия, 3.0.2, попробую обновить.
У меня ошибка воспроизводится, причем и в 2.0.0 и в новом 3.0.2 буду разбираться.
соотвествующий bug в ubuntu: https://bugs.launchpad.net/ubuntu/+source/read-edid/+bug/460471
Позанимался этим вопросом еще. Сейчас выпущена версия read-edid 3.0.2. В ней дописан get-edid, добавлена возможность получать данные из монитора при помощи протокола i2c, нужно только установить модуль ядра. По i2c она теперь работает по умолчанию и отрабатывает без ошибок. Старая возможность получения данных сохранилась (с опцией -с) и там также происходит sigfault, но поддержка i2c решает проблему. Минус новой версии (на мой взгляд) только в том, что она собирается при помощи cmake. В зависимостях только библиотека libx86. Может соберете новую версию? Сильно хочется мониторить подключенные к компьютерам устройства с их серийными номерами. Правда parse-edid, входящая в состав read-edid игнорирует вывод серийных номеров (я написал патч для нее, чтобы выводила), но ее успешно заменяет утилита decode-edid, входящая в репозиторий. Новая версия read-edid: http://www.polypux.org/projects/read-edid/
Created attachment 7805 [details] Это мой патч к parse-edid пакета read-edid Может сразу запихнете?
Собрал 3.0.2 с патчем от fisk. Segfault никуда не делся: # get-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 No EDID on bus 6 No byte reading on this bus... Problem requesting slave address: Bad file descriptor No byte reading on this bus... Problem requesting slave address: Bad file descriptor Looks like no busses have an EDID. Sorry! Attempting to use the classical VBE interface Performing real mode VBE call Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0 Function supported Call successful VBE version 0 VBE string at 0x0 "Segmentation fault
Завтра, видимо, должен в Сизифе появиться...
Спасибо!
Чтобы версия 3.0.2 не выпадала по sihfault нужно выполнить: # modprobe i2c-dev
i2c у меня есть, get-edid туда идет (в том выводе, который я привел, это есть), но почему-то ничего не находит. Монитор, видимо, странный.
(In reply to comment #10) > Чтобы версия 3.0.2 не выпадала по sihfault нужно выполнить: > > # modprobe i2c-dev Спасибо. Подтверждаю, что с загруженным i2c-dev get-edid работает корректно для обоих мониторов. (In reply to comment #11) > i2c у меня есть, get-edid туда идет (в том выводе, который я привел, это есть), > но почему-то ничего не находит. Монитор, видимо, странный. У меня в системе три i2c шины, мониторы оказались подключены к двум последним. Попробуйте попробовать каждую шину (-b N), список доступных шин есть в выводе get-edid.