Изменение разрешения видеовыхода HDMI в OrangePi

Настройка видеовыхода в orangepiEnv.txt

Используйте кабель Micro HDMI-HDMI для подключения платы разработки Orange Pi и дисплея HDMI.

Изменение разрешения видеовыхода HDMI в OrangePi
Micro HDMI-HDMI кабель

Если на дисплее HDMI отображается изображение после запуска ОС Linux, это означает, что интерфейс HDMI работает нормально.

Настройка разрешения HDMI (HDMI resolution setting)

1) В файле /boot/orangepiEnv.txt ОС Linux есть переменная disp_mode, которую можно использовать для установки разрешения HDMI.

Разрешение ОС Linux по умолчанию — 1080p60.

root@orangepi:/boot# cat orangepiEnv.txt
verbosity=1
console=both
disp_mode=1080p60

2) Переменная disp_mode поддерживает значения настройки, как показано в следующей таблице.

disp_mode supported value | HDMI Resolution | HDMI refresh rate

Поддерживаемое значение | Разрешение HDMI | Частота обновления HDMI

 480i 720x480 60
 576i 720x480 50
 480p 720x480 60
 576p 720x576 60
 720p50 1280x720 50
 720p60 1280x720 60
 1080i50 1920x1080 50
 1080i60 1920x1080 60
 1080p24 1920x1080 24
 1080p50 1920x1080 50
 1080p60 1920x1080 60

3) Измените значение переменной disp_mode на разрешение, которое вы хотите вывести, а затем перезапустите ОС. HDMI отобразит установленное разрешение.

Ширина и высота Framebuffer (How to modify the width and height of Framebuffer)

1) В файле /boot/orangepiEnv.txt ОС Linux есть две переменные fb0_width и fb0_height, которые можно использовать для установки ширины и высоты фреймбуфера.

В ОС Linux по умолчанию используется fb0_width = 1280, fb0_height = 720.

root@orangepi:~# cat /boot/orangepiEnv.txt
 verbosity=1
 console=both
 disp_mode=720p60
 fb0_width=1280
 fb0_height=720

2) Рекомендуемые значения fb0_width и fb0_height, соответствующие разным разрешениям :


 HDMI resolution fb0_width fb0_height
 480p 720 480
 576p 720 576
 720p 1280 720
 1080p 1920 1080

3) При одинаковом разрешении HDMI отображение разных fb0_width и fb0_height выглядит следующим образом:

Разрешение HDMI — 1080p60, fb0_width и fb0_height — 1920×1080

Разрешение HDMI — 1080p60, fb0_width и fb0_height — 1280×720

Настройки видеовыхода в SCRIPT.BIN

  • Для установки аппаратных настроек Orange Pi используется файл Script.bin. Дополнительные сведения об этом файле.
  • Поэтому для изменения разрешения видеовыхода необходимо изменить Script.bin.
  • Для некоторых дистрибутивов, таких как Armbian, были реализованы и представлены инструменты, связанные с внесением изменений в конфигурацию оборудования простым и автоматическим способом, таким как скрипт h3disp (который позволяет изменять разрешение видеовыхода) этот инструмент автоматически обновляет файл script.bin, поэтомуо пользователь может не знать параметры .fex. Однако это очень полезно, если мы ставим Armbian, а если устанавливаем другой дистрибутив, то скрипта такого нет, и поэтому нам придется прибегнуть к модификации script.bin вручную.

Часть интересующего нас файла script.bin, соответствующая конфигурации экрана, находится в разделе [disp_init] , сначала мы рассмотрим каждый из его параметров:

[Disp_init]
disp_init_enable = 1; Выход видео на экран включен
disp_mode = 0; Использовать только конфигурацию для экрана "screen0"
screen0_output_type = 3; Выход Screen 0: HDMI
screen0_output_mode = 5; Разрешение и частота Screen 0: 720p60
screen1_output_type = 3; Выход Screen 1: HDMI (не используется)
screen1_output_mode = 10; Разрешение и частота Screen 1: 1080p60 (не используется)
fb0_format = 0; Формат видеоэкрана Screen 0
fb0_width = 0; Ширина видеоэкрана Screen 0
fb0_height = 0; Высота видеоэкрана Screen 0
fb1_format = 0; Формат видеоэкрана Screen 1
fb1_width = 0; Ширина видеоэкрана Screen1
fb1_height = 0; Высота видеоэкрана Screen1

Вся необходимая информация о значениях файла FEX находится на этом сайте . Я объясню вам это ниже:

  • disp_init_enable: Включить / отключить использование экрана (видеовыход). Как вы можете видеть в предыдущей конфигурации, она включена. 0 для отключения; 1 для включения
  • disp_mode: Устанавливает используемые параметры отображения. Может принимать следующие значения от 0 до 4.
    0 — соответствует конфигурации экрана screen0
    1 — соответствует конфигурации экрана screen1
    2 — dualhead (screen0, screen1, fb0, fb1) (2 экрана, 2 видео-буфера)
    3 — xinerama (screen0, screen1, fb0) (2 экрана, один большой видео-буфер)
    4 — clone (screen0, screen1, fb0) (2 экрана, один стандартный видео-буфер)(он показывает то же самое на обоих экранах)
    В предыдущей конфигурации включен режим экрана 0, который использует настройки screen0 и поэтому учитывает только значения следующих строк screen0_output_ и fb0_.
  • screenN_output_type: Устанавливает тип устройства вывода видео (тип отображения). Он может принимать значения от 0 до 4: любой дисплей, ЖК-дисплея, телевизора, HDMI или VGA , соответственно.
  • screenN_output_mode: устанавливает режим вывода видео . Для типа дисплея HDMI / VGA это значение устанавливает разрешение выходного видеосигнала со значениями от 0 до 10 , в то время как для типа телевизионного экрана устанавливает видеосигнал в PAL или NTCS со значениями 11 или 14 соответственно.
    Изменение разрешения видеовыхода HDMI в OrangePi
  • fbN_format / ширина / высота: Устанавливает формат пикселей, на ширину и высоту видео буфера (буфер кадра), соответствующий экрану screenN. Значение 0 означает, что эти значения соответствуют выбранному разрешению экрана.
    Изменение разрешения видеовыхода HDMI в OrangePi

Пример: Установить разрешение 1080P60

Если мы используем дистрибутив Armbian, который настроен по умолчанию с разрешением экрана 720p60, и мы хотим настроить его на максимальное разрешение, поддерживаемое нашим экраном 1080p60, то легко с помощью скрипта h3disp и командой:

sudo h3disp -m 1080p60

А если скрипта h3disp нет то необходимо делать всё вручную:

1 — Создаем резервный файл в случае возникновения ошибки:

sudo cp /boot/script.bin /boot/script.bak

2 — Делаем преобразование двоичного файла bin в формат fex редактируемого текста:

sudo bin2fex /boot/script.bin /boot/script.fex

3 — Редактируем файл fex:

sudo nano /boot/script.fex

Анализируя установленные значения по умолчанию, имеем конфигурацию экрана screen0 ( disp_mode = 0 ), и она настроена как HDMI 720p ( screen0_output_type = 3 и screen0_output_mode = 5 ), экран screen1 не используется, но его значения такие же, как на экране screen0:

[disp_init]
disp_init_enable = 1; Выход видео на экран разрешен
disp_mode = 0; Использовать только конфигурацию для экрана "screen0"
screen0_output_type = 3; Выход Screen 0: HDMI
screen0_output_mode = 5; Разрешение и частота Screen 0: 720p60
screen1_output_type = 3; Выход Screen1: HDMI (не используется)
screen1_output_mode = 5; Разрешение и частота Screen1: 720p60 (не используется)

Единственная модификация, которую нужно внести в файл, — это изменить строку «screen0_output_mode = 5» и установить значение режима 10 (разрешение 1080p60):

screen0_output_mode = 10; Разрешение и частота Screen 0: 1080p60

Раздел disp_init файла должен выглядеть так:

[disp_init]
disp_init_enable = 1; Выход видео на экран разрешен
disp_mode = 0; Использовать только конфигурацию для экрана "screen0"
screen0_output_type = 3; Выход Screen 0: HDMI
screen0_output_mode = 10; Разрешение и частота Screen 0: 1080p60
screen1_output_type = 3; Выход Screen 1: HDMI (не используется)
screen1_output_mode = 5; Разрешение и частота Screen 1: 720p60 (не используется)

4 — Закройте файл, сохранив его с таким же именем:

Ctrl X, Y (Yes), Enter

5 — Преобразовать отредактированный файл fex в двоичный формат:

sudo fex2bin /boot/script.fex /boot/script.bin

6 — Перезапускаем систему, чтобы изменения вступили в силу:

sudo reboot

Оцените статью
( 1 оценка, среднее 4 из 5 )
PcMiniPro
Добавить комментарий

  1. Сергей

    Друзья,есть апельсинкп plus 2e,armbian,подключил к монитору с dvi входом,все отлично.но иногда смотрю фильмы на тв с hdmi ,соответственно приходиться постоянно менять script.bin и перезагружаться. Можно ли как то переключаться между dvi hdmi без лишник насилий над железкой? Спасибо

    Ответить
    1. Sniffy автор

      Может попробовать такие штуки как делитель и конвертер в vga. Тогда отпадет сразу две вещи: менять файл script и не надо перетыкать кабель.

      Ответить
      1. Сергей

        Спасибо,разветвитель конечно нужен. Но конвертер,ищу более интеллигентное решение) для чего эта опция-dualhead? Для двух мониторов с разными режимами…

        Ответить
        1. Sniffy автор

          Через dualhead можно попытаться, вот нашел как люди делали Если получиться повторить то непременно сообщите, очень интересен такой способ подключения =)

          Ответить
          1. Сергей

            В итоге заказал такой свитч
            http://ali.pub/2d6rbc ,не знаю что он делает с сигналом,но и на ТВ с hdmi и на мониторе с dvi работает отлично,без применения h3disp. Без свитча нужно было постоянно утилитой менять режимы,иначе на тв шла зелень.

  2. VasyOK

    А можно ли таким образом задавать разрешения отличные от 16:9 или 4:3 ?
    OrangePi+2E — многие говорят, что нельзя.

    Ответить
    1. Sniffy автор

      Какие разрешения нам предлагают, то только те и можно установить, в Armbian их достаточно много, у меня монитор 16:10 и я разрешение подобрал из имеющихся. А если есть умение ковырятся в исходниках, то я думаю там можно любое разрешение поставить и пересобрать систему, но это я так думаю, читал где-то давно как разрешение меняют на нестандартное. Очень тяжко.

      Ответить
  3. Юрий

    Возможно ли, подобным способом установить разрешение 480i по HDMI на orange PI Prime с ОС Android?
    И если возможно, то каким образом добраться на android до файла script.bin?
    Спасибо.

    Ответить
    1. Sniffy автор

      В Android с изменением разрешения всё сложно, script.bin там меняется в исходниках как я понимаю, вот статью на форуме нашел, там меняют script.bin, можно попробовать. Я со своей апельсинкой такое не пробовал. Данный способ можно использовать частично в частности как отредактировать script.bin.

      Ответить
274 / 0,321 / 16.93mb