Orange Pi Win Plus - HDMI работает, а DVI нет!


  • 0

    Платка - Orange Pi Win Plus (проц. А64)
    Подключаю к телевизору (кабель HDMI - HDMI), картинка есть.
    Подключаю к монитору (кабель HDMI - DVI), картинки нет :(

    Читал. Знаю, что нужно положить правильный script.bin в boot
    Но вот где его взять именно для моей модели я не знаю.
    FEX файл для моей модели на сайте разработчика не качается - ссылка битая.
    Пробовал скрипты от Loborisa (хоть там и другие модели OrangePI) - не грузится.

    Помогите советом?



  • 1

    @Jeka-tech Привет. FEX для своей платы можешь взять прямо со своей же флешки, находится он в boot разделе в виде файла script.bin, его нужно декомпилировать в fex, внести правки и обратно компилировать в bin :)
    Инструкция здесь: http://piboard.io/topic/5/редактирование-script-bin-файла



  • 2

    @piman Спасибо, что откликнулись. По этой инструкции уже пытался делать. Проблема в том, что у меня в папке boot есть:

    1. файлы initrd.img, uEnv.txt
    2. папка orangepi в ней:
      2.1 файл Image
      2.2 файл OrangePi-A64.dtb
    3. есть еще папка backup и в ней все перечисленные выше файлы.

    Файла script там нет((

    Пробую сделать [email protected]:~/sunxi-tools$ make

    Получается вот такой лог:

    cc -std=c99 -Wall -Wextra -Wno-unused-result -D_POSIX_C_SOURCE=200112L -D_BSD_SOURCE -D_DEFAULT_SOURCE -Iinclude/  `pkg-config --cflags libusb-1.0`  -o sunxi-fel fel.c progress.c soc_info.c fel_lib.c  `pkg-config --libs libusb-1.0`
    /bin/sh: 1: pkg-config: not found
    /bin/sh: 1: pkg-config: not found
    fel_lib.c:26:20: fatal error: libusb.h: No such file or directory
     #include <libusb.h>
                        ^
    compilation terminated.
    Makefile:135: recipe for target 'sunxi-fel' failed
    make: *** [sunxi-fel] Error 1
    

    Продолжаю разбираться.



  • 3

    Разобрался.
    sunxi-tools теперь не ругается.
    Но вопрос не решен - где найти fex для A64 Quad-core Cortex-A53 64bit я не знаю.
    В инструкции написано взять его из sunxi-boards, но там fex только для a10, a10s, a13, a20, a23, a31, a31s, a33, a80, h3



  • 4

    @Jeka-tech Сам обыскался, дошло до сборки своей системы из исходников :) Пока безрезультатно. Раньше был официальный репозиторий со всеми script.bin, о чем даже упомянуто на sunxi-wiki, сейчас того репозитория уже не существует.
    Вот аккаунт на github: https://github.com/orangepi-xunlong/
    На сколько я понял (из скриптов сборки, в том числе) те файлы, которые отвечают за конфигурацию системы находятся здесь: https://github.com/orangepi-xunlong/OrangePiA64_external
    предположительно scp.bin, это единственный файл, который успешно декомпилируется при помощи bin2fex, но fex на выходе - пустой.

    Как вариант, попробуй взять любой fex от любой платы и

    1. Просто попробуй использовать его
    2. Если первый вариант вызовет проблемы - при редактировании оставь только ту секцию, которая отвечает за настройки графики.

    Вот примерный конфиг для DVI

    [disp_init]
    disp_init_enable         = 1
    disp_mode                = 0
    
    screen0_output_type      = 3
    screen0_output_mode      = 5
    
    screen1_output_type      = 3
    screen1_output_mode      = 5
    
    fb0_format               = 0
    fb0_width                = 1280
    fb0_height               = 1024
    
    ...
    
    [hdmi_para]
    hdmi_used           = 1
    hdmi_power          = "vcc-hdmi-18"
    hdcp_enable = 0
    hdmi_cts_compatibility = 1
    

    PS. Проверь еще наличие script.bin в /media/boot/



  • 5

    @piman

    1. Пробовал создать script.bin из sys_config.fex c добавлением нужных параметров - без изменений
    2. Подкладывал готовые script.bin от Loboris - без изменений
      При загрузке этот файл игнорируется. Нужен другой способ.

    Сейчас борюсь со сборкой из исходников, дело встало на
    "Unable to locate package lib32z1"
    “Unable to locate package lib32z1-dev”

    Все пляски из гугла уже попробовал (и добавить архитектуру :386, и правил файл источников для скачивания пакетов, apt-get update разумеется делал)), короче сборка встала.

    Вот что по теме еще заметил:
    в каталоге boot/orangepi есть файл аппаратного описания OrangePi-A64.dtb,
    а в нем, среди сваленных в кучу слов и символов (т.к. открыл простым блокнотом), есть кусок
    "… hdmi_power hdmi_hdcp_enable hdmi_cts_compatibility … "

    Может сюда копать надо?
    Надо думать как перекомпилить файл *.dtb



  • 6

    Установил такую штуку (из названия видно):
    sudo apt-get install device-tree-compiler

    Прочитал файл OrangePi-A64.dtb

    Нашел в нем интересующие строки:

    [email protected] {
    compatible = “allwinner,sunxi-hdmi”;
    reg = <0x0 0x1ee0000 0x0 0x20000>;
    clocks = <0x6f 0x70>;
    device_type = “hdmi”;
    status = “okay”;
    hdmi_power = “vcc-hdmi-33”;
    hdmi_hdcp_enable = <0x0>;
    hdmi_cts_compatibility = <0x0>;
    };

    Да вот отредактировать пока не знаю как!



  • 7

    Внес правки в OrangePi-A64.dtb. Теперь там написано вот так:
    [email protected] {
    compatible = “allwinner,sunxi-hdmi”;
    reg = <0x0 0x1ee0000 0x0 0x20000>;
    clocks = <0x6f 0x70>;
    device_type = “hdmi”;
    status = “okay”;
    hdmi_used = <0x1>;
    hdmi_power = “vcc-hdmi-18”;
    hdmi_hdcp_enable = <0x0>;
    hdmi_cts_compatibility = <0x1>;
    };

    Подменил в папке boot/orangepi
    Результат - нифига.
    Нужно копать дальше.



  • 8

    Победа!
    Как заставить работать DVI на Orange PI Win - [Решено]

    1. Устанавливаем редактор apt-get install device-tree-compiler
    2. Открываем конвертируем файл OrangePi-A64.dtb, который лежит в /boot/Orangepi, в файл с расширением dts. Для этого вводим команду sudo dtc -I dtb -O dts -o OrangePi-A64.dts OrangePi-A64.dtb
    3. Теперь редактируем получившийся dts файл. Находим там поддержку DVI hdmi_cts_compatibility и меняем значение на = <0x1> (hdmi_power не надо менять на 18, как написано на сайте разработчика! В этом и была проблема, о чем я узнал только тыкнув тестером в ножки 14 и 15 разъема DVI, и обнаружив там уже нужные +5V без всяких изменений файла конфигурации).
    4. Теперь обратная конвертация sudo dtc -I dts -O dtb -o OrangePi-A64.dtb OrangePi-A64.dts
    5. reboot
    6. Ура!




Похоже, подключение к PiBoard было разорвано, подождите, пока мы пытаемся восстановить соединение.