Raspberry Pi:Типовые проблемы/Настройка вывода видео через HDMI

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Настройка вывода видео через HDMI[1]

Это важный пост от rpi_newbie (нашего эксперта по Broadcom HDMI) о том, как настроить на RAspberru Pi вывод HDMI. Дублирую его здесь. Возможно, этот пост стоит выложить куда-то еще, но пока оставлю в этом разделе в прикрепленных постах.

Внимание!

Этот пост необходимо читать лишь в том случае, если картинка у вас есть, но не в том формате/разрешении!

Если экран остается черным независимо от того, какие изменения вы вносите в config.txt, то, возможно, дело в том, что Pi просто не загружается. Если сомневаетесь, почитайте статью о проблемах с загрузкой.

Обычно опциональные настройки видео хранятся в самом мониторе, в виде EDID-данных. При запуске Raspberry Pi запрашивает у монитора информацию о нем самом. Эта информация возвращается от монитора в виде структуры данных, именуемой «блок EDID» (имейте в виду, что в данном случае перед загрузкой Pi телевизор/монитор, как правило, нужно включить) и используемой для того, чтобы Pi выбрала оптимальные настройки для подключенного к ней монитора.

Иногда, впрочем, этот процесс не работает либо вам требуются какие-то другие настройки. Вот тут-то нам и пригодится config.txt. Он выполняет примерно ту же функцию, что и BIOS на обычном ПК – содержит в себе кучу самых разнообразных настроек. Но мы сосредоточимся только на тех, что относятся к видео.

Обратите внимание, что config.txt используется только в операционных системах на базе Linux (вроде Raspbian). Впрочем, в установщике NOOBS он не используется, т.к. в NOOBS для настройки видео имеется другой механизм (хотя NOOBS может создать config.txt для устанавливаемой ОС и, более того, может делать это автоматически, если его попросят сделать определенную настройку постоянной). Более подробно о config.txt можно прочесть на сайте компании-производителя.

Есть две логические группы конфигурационных настроек – CEA (Consumer Electronics Association) и DMT (Display Monitor Timings), и ниже как раз перечислен список форматов для двух этих групп (точнее, для версий CEA-861 E и DMT V1 r12, соответственно). То есть, config.txt позволяет использовать эти режимы напрямую – просто откройте файл и присвойте параметрам «hdmi_group» и «hdmi_mode» необходимые значения из числа тех, что перечислены ниже. Имейте в виду, что Raspberry Pi поддерживает не все из этих режимов (это особенно касается режимов с высокими разрешением и частотой кадров), а все доступные режимы находятся под «опекой» EDID-механизма, которым оснащен ваш телевизор/монитор.

CEA (hdmi_group = 1)
HDMI_CEA_VGA = 1
HDMI_CEA_480p60 = 2
HDMI_CEA_480p60H = 3
HDMI_CEA_720p60 = 4
HDMI_CEA_1080i60 = 5
HDMI_CEA_480i60 = 6
HDMI_CEA_480i60H = 7
HDMI_CEA_240p60 = 8
HDMI_CEA_240p60H = 9
HDMI_CEA_480i60_4x = 10
HDMI_CEA_480i60_4xH = 11
HDMI_CEA_240p60_4x = 12
HDMI_CEA_240p60_4xH = 13
HDMI_CEA_480p60_2x = 14
HDMI_CEA_480p60_2xH = 15
HDMI_CEA_1080p60 = 16
HDMI_CEA_576p50 = 17
HDMI_CEA_576p50H = 18
HDMI_CEA_720p50 = 19
HDMI_CEA_1080i50 = 20
HDMI_CEA_576i50 = 21
HDMI_CEA_576i50H = 22
HDMI_CEA_288p50 = 23
HDMI_CEA_288p50H = 24
HDMI_CEA_576i50_4x = 25
HDMI_CEA_576i50_4xH = 26
HDMI_CEA_288p50_4x = 27
HDMI_CEA_288p50_4xH = 28
HDMI_CEA_576p50_2x = 29
HDMI_CEA_576p50_2xH = 30
HDMI_CEA_1080p50 = 31
HDMI_CEA_1080p24 = 32
HDMI_CEA_1080p25 = 33
HDMI_CEA_1080p30 = 34
HDMI_CEA_480p60_4x = 35
HDMI_CEA_480p60_4xH = 36
HDMI_CEA_576p50_4x = 37
HDMI_CEA_576p50_4xH = 38
HDMI_CEA_1080i50_rb = 39
HDMI_CEA_1080i100 = 40
HDMI_CEA_720p100 = 41
HDMI_CEA_576p100 = 42
HDMI_CEA_576p100H = 43
HDMI_CEA_576i100 = 44
HDMI_CEA_576i100H = 45
HDMI_CEA_1080i120 = 46
HDMI_CEA_720p120 = 47
HDMI_CEA_480p120 = 48
HDMI_CEA_480p120H = 49
HDMI_CEA_480i120 = 50
HDMI_CEA_480i120H = 51
HDMI_CEA_576p200 = 52
HDMI_CEA_576p200H = 53
HDMI_CEA_576i200 = 54
HDMI_CEA_576i200H = 55
HDMI_CEA_480p240 = 56
HDMI_CEA_480p240H = 57
HDMI_CEA_480i240 = 58
HDMI_CEA_480i240H = 59
HDMI_CEA_720p24 = 60
HDMI_CEA_720p25 = 61
HDMI_CEA_720p30 = 62
HDMI_CEA_1080p120 = 63
HDMI_CEA_1080p100 = 64
DMT (hdmi_group = 2)
HDMI_DMT_640x350_85 = 0x1, /**<640x350 */
HDMI_DMT_640x400_85 = 0x2, /**<640x400 */
HDMI_DMT_IBM_VGA_85 = 0x3, /**<720x400 */
HDMI_DMT_VGA_60 = 0x4, /**<640x480 (60 Гц – то же самое, что и VGA в списке CEA выше) */
HDMI_DMT_VGA_72 = 0x5
HDMI_DMT_VGA_75 = 0x6
HDMI_DMT_VGA_85 = 0x7
HDMI_DMT_SVGA_56 = 0x8, /**<800x600 */
HDMI_DMT_SVGA_60 = 0x9
HDMI_DMT_SVGA_72 = 0xA
HDMI_DMT_SVGA_75 = 0xB
HDMI_DMT_SVGA_85 = 0xC
HDMI_DMT_SVGA_120 = 0xD
HDMI_DMT_848x480_60 = 0xE, /**<848x480 */
HDMI_DMT_XGA_43 = 0xF, /**<1024x768 – чересстрочный режим, НЕ ИСПОЛЬЗУЕТСЯ */
HDMI_DMT_XGA_60 = 0x10, /**<1024x768 */
HDMI_DMT_XGA_70 = 0x11
HDMI_DMT_XGA_75 = 0x12
HDMI_DMT_XGA_85 = 0x13
HDMI_DMT_XGA_120 = 0x14
HDMI_DMT_XGAP_75 = 0x15, /**<1152x864 */
HDMI_DMT_WXGA_RB = 0x16, /**<1280x768 уменьшенное гашение */
HDMI_DMT_WXGA_60 = 0x17
HDMI_DMT_WXGA_75 = 0x18
HDMI_DMT_WXGA_85 = 0x19
HDMI_DMT_WXGA_120 = 0x1A, /**<120Hz без уменьшенного гашения */
HDMI_DMT_1280x800_RB = 0x1B, /**<1280x800 уменьшенное гашение */
HDMI_DMT_1280x800_60 = 0x1C
HDMI_DMT_1280x800_75 = 0x1D
HDMI_DMT_1280x800_85 = 0x1E
HDMI_DMT_1280x800_120 = 0x1F, /** уменьшенное гашение */
HDMI_DMT_1280x960_60 = 0x20, /**<1280x960 */
HDMI_DMT_1280x960_85 = 0x21
HDMI_DMT_1280x960_120 = 0x22, /** уменьшенное гашение */
HDMI_DMT_SXGA_60 = 0x23, /**<1280x1024 */
HDMI_DMT_SXGA_75 = 0x24
HDMI_DMT_SXGA_85 = 0x25
HDMI_DMT_SXGA_120 = 0x26, /** уменьшенное гашение */
HDMI_DMT_1360x768_60 = 0x27, /**<1360x768 */
HDMI_DMT_1360x768_120 = 0x28, /**<120 Hz с уменьшенным гашением */
HDMI_DMT_SXGAP_RB = 0x29, /**<1400x1050 уменьшенное гашение */
HDMI_DMT_SXGAP_60 = 0x2A
HDMI_DMT_SXGAP_75 = 0x2B
HDMI_DMT_SXGAP_85 = 0x2C
HDMI_DMT_SXGAP_120 = 0x2D, /** уменьшенное гашение */
HDMI_DMT_1440x900_RB = 0x2E, /**<1440x900 уменьшенное гашение */
HDMI_DMT_1440x900_60 = 0x2F
HDMI_DMT_1440x900_75 = 0x30
HDMI_DMT_1440x900_85 = 0x31
HDMI_DMT_1440x900_120 = 0x32, /** уменьшенное гашение */
HDMI_DMT_UXGA_60 = 0x33, /**<1600x1200 60Hz */
HDMI_DMT_UXGA_65 = 0x34
HDMI_DMT_UXGA_70 = 0x35
HDMI_DMT_UXGA_75 = 0x36
HDMI_DMT_UXGA_85 = 0x37
HDMI_DMT_UXGA_120 = 0x38, /** уменьшенное гашение */
HDMI_DMT_SWXGAP_RB = 0x39, /**<1680x1050 уменьшенное гашение */
HDMI_DMT_SWXGAP_60 = 0x3A, /**<1680x1050 60Hz */
HDMI_DMT_SWXGAP_75 = 0x3B
HDMI_DMT_SWXGAP_85 = 0x3C
HDMI_DMT_SWXGAP_120 = 0x3D, /** уменьшенное гашение */
HDMI_DMT_1792x1344_60 = 0x3E, /**<1792x1344 60Hz */
HDMI_DMT_1792x1344_75 = 0x3F, /**<1792x1344 75Hz */
HDMI_DMT_1792x1344_120 = 0x40, /** уменьшенное гашение */
HDMI_DMT_1856x1392_60 = 0x41, /**<1856x1392 60Hz */
HDMI_DMT_1856x1392_75 = 0x42, /**<1856x1392 75Hz */
HDMI_DMT_1856x1392_120 = 0x43, /** уменьшенное гашение */
HDMI_DMT_WUXGA_RB = 0x44, /**<1920x1200 уменьшенное гашение */
HDMI_DMT_WUXGA_60 = 0x45, /**<1920x1200 60Hz */
HDMI_DMT_WUXGA_75 = 0x46, /**<1920x1200 75Hz */
HDMI_DMT_WUXGA_85 = 0x47, /**<1920x1200 85Hz */
HDMI_DMT_WUXGA_120 = 0x48, /** уменьшенное гашение */
HDMI_DMT_1920x1440_60 = 0x49, /**<1920x1440 60Hz */
HDMI_DMT_1920x1440_75 = 0x4A, /**<1920x1440 75Hz */
HDMI_DMT_1920x1440_120 = 0x4B, /** уменьшенное гашение */
HDMI_DMT_2560x1600_RB = 0x4C, /**<2560x1600 уменьшенное гашение */
HDMI_DMT_2560x1600_60 = 0x4D, /**<2560x1600 60 Hz */
HDMI_DMT_2560x1600_75 = 0x4E, /**<2560x1600 75 Hz */
HDMI_DMT_2560x1600_85 = 0x4E, /**<2560x1600 85 Hz */
HDMI_DMT_2560x1600_120 = 0x50, /** уменьшенное гашение */
HDMI_DMT_1366x768_60 = 0x51, /**<1366x768 60Hz */
HDMI_DMT_1080p_60 = 0x52, /**< То же, что и 1080p60 в CEA выше */
HDMI_DMT_1600x900_RB = 0x53, /**<1600x900 уменьшенное гашение */
HDMI_DMT_2048x1152_RB = 0x54, /**<2048x1152 уменьшенное гашение */
HDMI_DMT_720p_60 = 0x55, /**< То же, что и 720p60 в списке CEA выше */
HDMI_DMT_1366x768_RB = 0x56, /**<1366x768 уменьшенное гашение */

Если файла config.txt нет или если выходной формат не установлен, то система выберет выходной формат самостоятельно, следуя указанному ниже алгоритму:

  1. Формат будет выбран, если поддерживается EDID.
  2. Если формат не поддерживается EDID, система сформирует определенную иерархию поддерживаемых форматов, а затем выберет формат, обладающий в этой иерархии наибольшим количеством баллов.

Если выбранный формат является DMT-форматом, режимом по умолчанию будет DVI. То есть, если вам нужен HDMI, то в «hdmi_drive» надо указать «2». И внимание – в режиме DVI нет звука!

Если вы при помощи config.txt хотите выбрать другой формат по умолчанию, надо проделать следующее:

  1. В «hdmi_group» указать значение «1» (для CEA-форматов) или «2» (для DMT-форматов)
  2. В «hdmi_mode» указать код, соответствующий тому или иному формату из списков для CEA и DMT (см. выше)
  3. Если вы выбрали DMT-формат, то для переключения на HDMI в параметре «hdmi_drive» нужно указать «2» (при выборе CEA-формата переключение на HDMI осуществится автоматически)

Чтобы получить список поддерживаемых форматов, сделайте выходным форматом VGA 60 Гц, а затем следуйте нижеприведенным инструкциям – с их помощью будет проведен анализ EDID, в результате которого по пути /opt/vc/bin появится итоговый файл со списком поддерживаемых форматов.

  1. Для списка поддерживаемых CEA-форматов запускаем «tvservice –m CEA»
  2. Для списка поддерживаемых DMT-форматов запускаем «tvservice –m DMT»
  3. Для определения текущего формата запускаем «tvservice –s»

Или можно проделать следующее:

  1. Чтобы получить EDID монитора, запускаем «tvservice –d <file>»
  2. «Скармливаем» этот файл EDID-анализатору. Запускаем «edidparser <file>»

После этого EDID-анализатор (или «EDID-парсер») выдаст список EDID-поддерживаемых форматов (включая те, что не поддерживаются Raspberry Pi) плюс те форматы, которые он отфильтровал. В конце списка будет показан формат, выбираемый по умолчанию. Имейте в виду, что EDID-анализатор – это внутренний код Raspberry Pi, работающий через командную строку.

Если Pi сделала дефолтным какой-то странный формат, в комментариях можете смело показывать EDID своих мониторов (и результат, который выдал EDID-анализатор). Только, пожалуйста, укажите также производителя и номер модели телевизора/монитора.

См.также

Внешние ссылки