Orange Pi

Устройства - Devices => Orange Pi PC => Тема начата: v2 от Февраль 21, 2016, 10:29:50 pm

Название: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 21, 2016, 10:29:50 pm
Как задать разрешение 1440х900 (родное) для монитора через самопальный HDMI-DVI ?

* script.bin - fex(1440x900) - bin меняет картинку, но монитор все равно получает 1920х1080
** самопальный HDMI-DVI с малинкой работает нормально

Спасибо за советы.


Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 21, 2016, 10:32:59 pm
Переписать драйвер. Скриптом не выставишь того, чего нет в драйвере.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 21, 2016, 11:18:04 pm
А это реально -  ну там исходники, и доп инфа?
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 21, 2016, 11:36:36 pm
Думаю что реально, вот только похоже что тот кто в этом разбирается не горит желанием делать,
а кому это нужно не может разобраться в коде драйвера.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 21, 2016, 11:47:39 pm
Хорошо, вот я хочу разобраться - сделать, куда копать-то?
Или это только производитель девайса сможет?
Название: Re: 1440х900 через HDMI-DVI
Отправлено: UB3GAD от Февраль 22, 2016, 10:58:51 am
Тут (http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=444&extra=&page=1) образец по добавлению разрешения, удачи
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 22, 2016, 11:23:24 am
UB3GAD опередил.
Начать копать можно прям с этого форума, тут поднимались эти вопросы, и есть ссылка на прецедент:
http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=444
Человек сделал на hdmi 800х480, и мало того, Loboris (Boris Lovosevic) включил этот мод в дерево своего ядра, так что это разрешение доступно на любом дистрибе с его ядром, включается по параметру в fex:

screen0_output_type = 3
screen0_output_mode = 31

В принципе, как добавить предельно ясно расписано, с одной ошибочкой, которую Борис поправил у себя в исходниках.
Но я пока не разобрался где автор топика взял две "волшебные" строки для таблиц (еще бы понять полную структуру этих таблиц):
{{HDMI800_480P , 11 , 0,  0,  3,  6,  1,  0,  9,  0, 0,  32, 120, 40, 40,  224, 45,   0,  0 }},
{HDMI800_480P,  0,27000000,  0,  800,   480,   920,  40,   40,   40,  525,   30,  9,  6,  0,   0,   0,   0,   0},

у Бориса они выглядят немного иначе:
{{35, 11,  0,  0,  1,  3,  3,  0, 13,  0,  0,  208,  228,  80,  60, 208, 45,  0,  0 }},
{HDMI800_480P,  0,27000000,  0,   800,   480,  1028,   88,   80,   60,   525,   29, 13,   3,    0,   0,   0,    0,   0},

И плюс он использует параметр в fex для hdmi-dvi переходников
hdmi_cts_compatibility = 1

Там же в исходниках можно увидеть "перебор" этих параметров.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: sergspio от Февраль 24, 2016, 05:37:06 pm
Попробую разъяснить эти "волшебные" строки:
по linux-3.4/drivers/video/sunxi/disp2/hdmi/aw/hdmi_core.c
disp_video_timings video_timing[]
это наследие CRT (кинескопных) мониторов
(http://we.easyelectronics.ru/uploads/images/00/40/91/2012/12/05/419bc4.gif)
Отрисовка строки начинается с импульса горизонтальной синхронизации (hsync) с длительностью 1.25 мкс, далее следует промежуток в 1.96 мкс в течении которого выходы RGB заперты, после него передается цветовая информация — каждый пиксель за один тик и, наконец, пауза длительностью 0.71 мкс в течении которой происходит обратных ход луча на ЭЛТ мониторах.
Импульсы отрисовки кадра генерируются по такому же принципу. Тайминги для разных разрешений экрана вы можете подсмотреть, например http://tinyvga.com/vga-timing (http://tinyvga.com/vga-timing)
Взято с темы на easyelectronics.ru http://we.easyelectronics.ru/plis/generator-cvetnyh-polos-na-fpga.html (http://we.easyelectronics.ru/plis/generator-cvetnyh-polos-na-fpga.html)
находим тайминги на необходимое разрешение и вставляем в виде PCLK,   AVI_PR, INPUTX, INPUTY, HT,   HBP,  HFP, HPSW, VT,  VBP, VFP, VPSW, I, HSYNC, VSYNC
где:
PCLK = Pixel freq
INPUTX = Horizontal timing (line)-> Visible area
HT = HBP+HFP+HPSW+INPUTX
HBP = Horizontal Back porch
HFP = Horizontal Front porch
HPSW = Horizontal Sync pulse
INPUTY = Vertical timing (frame)-> Visible area
VBP = Vertical Back porch
VFP = Vertical Front porch
VPSW = Vertical Sync pulse
VT = VBP+VFP+VPSW+INPUTY
I  = тип развертки ( 1 - интерлейсинг, 0 - прогрессив)
HSYNC = 0 (Polarity of horizontal sync pulse is negative).
VSYNC = 1 (Polarity of vertical sync pulse is positive).
что такое AVI_PR - не знаю, это, как и порядок следования данных зависит от исходников ядра
теперь по:

linux-3.4/drivers/video/sunxi/disp2/hdmi/aw/hdmi_bsp_sun8iw7.c:
static struct para_tab ptbl[] =
{
// mx = x>>8
// my = y>>8
// mhbw = horisontal blanking width >> 8
// mhfp = horisontal front porch >> 8
      // vic                             dclk  int                  mx       vst       my               mhbw   vfp             mhfp                 +x      +hbw                  +hfp         hst           +y      vbw          h polarity          v polarity
+{{HDMI800_480P        , 11 , 0,  0,                1,         3,         3,                0,         13,                0,                0,  208,   36,                    40,         40,         208,     16,                0,                0        }},

здесь не все понятно, но x>>8 равносильно X/256 и оставить только целую часть, +x тогда по логике должно быть x-(mx*256), но в данном случае совпадет с HT-(mx*256)
аналогично должно быть с y и горизонтальными porch
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 24, 2016, 08:00:46 pm
Спасибо, я это подозревал, когда то в 90-х когда Xorg-а еще не было, и был в "моде" дистриб "Mandrake" для настройки ЭЛТ монитора была графическая утилита, выбирался режим монитора и кнопочками размера и смещения изображение подгонялось под экран монитора, а утилитка генерировала стоку Modline для /etc/X11/XF86Config
Там тоже высчитывались исходя из разрешения и итоговой частоты пиксельная частота и количество пикселей и строк на гасяшие и синхроимпульсы.
и если строка в hdmi_core.c еще как то похожа на Modline, то вот что к чему в aw/hdmi_bsp_sun8iw7.c несовсем понятно, точнее совсем непонятно.

To: v2
Я так понял у вас монитор 1440х900 с dvi ?
Можно вас попросить слить у него с DVI входа EDID ?
Кстати там будет нужная Modline.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 27, 2016, 12:55:42 am
Прошу прощения,
утонул в линуксах  :o (ставлю Arch на виртуалку, ну и тд)
---
подскажите как это сделать, - постараюсь.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 27, 2016, 09:13:45 am
Нужен Линукс на компе, на убубнту это в пакете read-edid
читается командой:
sudo get-edid > edid.bin
файлик edid.bin хотелось бы получить.
Посмотреть что читается с монитора в удобоваримом виде:
sudo get-edid | parse-edid
Апельсинка почему то не читает EDID, или i2c на hdmi не задействован или get-edid его не видит.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 27, 2016, 01:40:49 pm
Сделал на RPi:

tvservice -d edid.dat
edidparser edid.dat > edid.txt


ЗЫ.
наткнулся на
https://outurnate.com/bsc2
то есть  у малинки тоже были проблемы с этим делом.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 27, 2016, 03:07:24 pm
Ага, parse-edid из твоего файла показал такую картинку:

Извините, вам запрещён просмотр содержимого спойлеров.

Интересует Modeline    "Mode 0" 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync
из этого получается, что строка для hdmi-core.c должна выглядеть как то так:
{HDMI900P_60,      0,106500000, 0,  1440,   900,  1904,  232,  152,   80,   934,   25,  6,   3,    0,   1,   0,    0,   0},
Со строкой лля hdmi_bsp_sun8iw7.c пока не знаю что делать, тем более экспериментировать пока не на чем.
Монитора с DVI нет, есть подопытный Acer x191w без DVI, но на плате есть место под него, распаял разъем, детали недостающие, ищу данные для EDID и настройки прошивки, чтоб DVI включить.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Февраль 27, 2016, 03:58:17 pm
Цитировать
тем более экспериментировать пока не на чем
ну, могу поработать тестером, под чутким руководством старших сотоварищей.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Февраль 27, 2016, 06:21:54 pm
Слишком длинная обратная связь получается.
Это изменить один параметр - перекомпилить ядро - выложить. узнать что не работает и что то менять, а что неизвестно.
Даже у себя экспериментировать - каждый раз ядро компилить не самый быстрый процесс.
Вот залью твой edid а свой Acer пусть Nec-ом представляется...
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Март 05, 2016, 09:01:03 pm
Фигня какая то получается.
Вроде разобрался что к чему, остаются 3 относительно непонятных параметра, но не выходит нужного разрешения.
Пробую получить 1360x768 - у меня его телек точно понимает, перебираю "неизвестные параметры" получается то 24x768 то 2160x768 то 1080х768 с разной "кадровой" частотой, и при этом изображение выводиться во фреймбуфер размером 800х480 в левом верхнем углу.
Усугубляется все еще тем, что разобравшись в исходниках, знаю куда пишутся все эти переменные, но в документации об этом участке памяти 0x01EE0000 - 0x01EFFFFF пробел и у H3  и у А83 ( у него похоже такая же конфигурация hdmi - адреса совпадают ).
Название: Re: 1440х900 через HDMI-DVI
Отправлено: sergspio от Март 06, 2016, 11:17:54 am
похоже эти "неизвестные" напрямую влияют на горизонтальную развертку )
мб поможет
http://linux-sunxi.org/DWC_HDMI_Controller (http://linux-sunxi.org/DWC_HDMI_Controller)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/bridge/dw-hdmi.h (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/bridge/dw-hdmi.h)
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/bridge/dw-hdmi.c (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/bridge/dw-hdmi.c)
здесь вроде как раз offsets для данной области памяти
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Март 06, 2016, 04:58:13 pm
Ёлки-палки... Они адресную шину перемешали...
То то я смотрю байты, которые по смыслу должны быть в соседних ячейках разбросаны немыслимым образом.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: gmonorok от Март 09, 2016, 10:33:52 am
Не решили ещо проблемму?
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Март 09, 2016, 11:35:59 am
К сожалению пока нет.
Нет возможности уделять этому много времени.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: gmonorok от Март 09, 2016, 06:12:49 pm
Мне очень хотелось бы получить 1024*768.
Если найдешь ненароком способ в ходе поисков буду признателен если поделишься.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Март 10, 2016, 10:13:52 am
похоже эти "неизвестные" напрямую влияют на горизонтальную развертку )
мб поможет
здесь вроде как раз offsets для данной области памяти
Почитал доку на  i.MX6, адреса регистров HDMI после перевода совпадают, но у i.MX6 под них выделены 36кБ, а у Н3 128кБ, перепутаны похоже только первые 64кБ т.к. туда запись идет побайтно, а в сташие 64кБ 32-х битными словами и тут первая плохая новость: описания этих регистров нет.
Но все равно дока помогла разобраться с "неизвестными" параметрами в таблице.
И вторая плохая новость: Видеорежимы жестко зашиты в контроллер, в частности пиксельная частота, так что режимы можно попытаться только "подтянуть за уши" к желаемому взяв за основу ближайший по параметрам.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: suprimex от Март 14, 2016, 08:51:43 pm
Bсем доброго дня/утра/вечера,
та же проблема, смотрю на мониторе 1400х900 в 720р с ужасными искажениями :(

Tак есть ли решение?
Название: Re: 1440х900 через HDMI-DVI
Отправлено: UB3GAD от Март 14, 2016, 11:21:34 pm
Bсем доброго дня/утра/вечера,
та же проблема, смотрю на мониторе 1400х900 в 720р с ужасными искажениями :(

Tак есть ли решение?
Нет, а вообще если бы ты эту тему прочитал то думаю такого вопроса и не возникло бы.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: AlDemin от Март 16, 2016, 04:56:44 pm
Сделал себе монитор 1440х900 с DVI-ем, теперь могу экспериментировать на натуре.
Название: Re: 1440х900 через HDMI-DVI
Отправлено: v2 от Март 25, 2016, 11:59:14 pm
Мдя, а я купил 1920x1080 ...

Собирал - компилиил - пока отставил

А позавчера наткнулся на http://www.armbian.com/orange-pi-pc/ сижу радуюсь  :D