Raspberry Pi:Настройка/config.txt: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «{{Перевод от Сubewriter}}» на «{{Перевод от Сubewriter}} {{Myagkij-редактор}}») |
(нет различий)
|
Версия от 00:38, 29 декабря 2015
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Файл CONFIG.TXT[1]
Будучи встраиваемой системой, Raspberry Pi не имеет BIOS, который есть у обычного ПК. Следовательно, различные параметры для настройки системы, которые обычно хранятся и редактируются именно в BIOS, в случае Raspberry Pi хранятся в опциональном текстовом файле под названием config.txt. При загрузке этот файл сначала считывает графический процессор, а уже потом происходит инициализация процессора ARM (и Linux), поэтому config.txt должен быть расположен в первом (загрузочном) разделе вашей SD-карты, рядом с файлами bootcode.bin и start.elf. Как правило, в Linux этот файл доступен по маршруту /boot/config.txt и редактировать его нужно только через пользователя root.
В операционных системах Windows и OS X он будет доступен по тому же маршруту, но, по сути, раздел /boot будет единственным разделом SD-карты, доступным для этих ОС. В случае, если файла config.txt в разделе /boot не окажется, просто создайте новый текстовый файл.
Внесенные изменения вступают в силу лишь после перезагрузки Raspberry Pi. После загрузки Linux информацию о текущих настройках можно получить при помощи следующих команд:
vcgencmd get_config <config> — показывает отдельно взятое конфигурационное значение; например, vcgencmd get_config arm_freq.
vcgencmd get_config int — показывает список всех конфигурационных значений, которые представляют собой целые числа (отличные от нуля).
vcgencmd get_config str — показывает список всех конфигурационных значений, которые представляют собой строки (отличные от нуля).
Обратите внимание, что есть ряд настроек, информацию о которых с помощью команды vcgencmd получить нельзя.
Что представляет собой CONFIG.TXT
Поскольку config.txt считывается прошивкой на самом раннем этапе загрузки, он устроен очень просто. Он состоит из строк, каждая из которых содержит в себе информацию, сформированную по принципу «свойство=значение», где в качестве значения может быть либо целое число, либо строка. При помощи символа «#» те или иные свойства можно отключить (если поставить этот символ перед строкой, в котором содержится информация о свойстве) или добавить к ним комментарии (если поставить этот символ в начале вновь созданной строки, которая, собственно, и будет содержать ваш комментарий).
Например...
# Включаем у монитора HDMI-режим — чтобы звук отправлялся по HDMI-кабелю
hdmi_drive=2
# Задаем режим работы монитора как DMT
hdmi_group=2
# Задаем разрешение монитора как 1024х768 XGA 60Гц (HDMI_DMT_XGA_60)
hdmi_mode=16
# Делаем дисплей меньше, чтобы текст не убегал за пределы экрана
overscan_left=20
overscan_right=12
overscan_top=10
overscan_bottom=10
Память
GPU_MEM
Задает память графического процессора (в мегабайтах) и, по сути, разбивает память между CPU и GPU. Оставшаяся память отходит CPU. Минимальное значение — «16», максимальное — «192», «448» или «944» (в зависимости от того, какую Pi вы используете — на 256, 512 или 1024 мегабайт). Значение по умолчанию — «64».
Если выставить gpu_mem на низкое значение, это может автоматически отключить определенные функции прошивки (поскольку, если памяти будет мало, GPU будет просто не способен делать определенные вещи). Поэтому если какая-нибудь функция не будет работать, просто попробуйте увеличить память для GPU.
Если применить gpu_mem_256, gpu_mem_512 и gpu_mem_1024, это позволит использовать одну и ту же SD-карту между Raspberry Pi, соответственно, на 256 Мб, 512 Мб и 1024 Мб без необходимости каждый раз редактировать config.txt.
GPU_MEM_256
Задает GPU-память в мегабайтах для 256-мегабайтной Raspberry Pi (но если память не составляет 256 Мб, команда игнорируется). Перезаписывает значение в свойстве gpu_mem. Максимальное значение — «192».
Значение по умолчанию не задано.
GPU_MEM_512
Задает GPU-память в мегабайтах для 512-мегабайтной Raspberry Pi (но если память не составляет 512 Мб, команда игнорируется). Перезаписывает значение в свойстве gpu_mem. Максимальное значение — «448».
Значение по умолчанию не задано.
GPU_MEM_1024
Задает GPU-память в мегабайтах для 1024-мегабайтной Raspberry Pi (но если память не составляет 1024 Мб, команда игнорируется). Перезаписывает значение в свойстве gpu_mem. Максимальное значение — «944».
Значение по умолчанию не задано.
DISABLE_L2CACHE
Если выставить это свойство на «1», это отключит доступ CPU к L2-кэшу GPU. Требуется, чтобы ядро, соответствующее L2-кэшу, было отключено.
Значение по умолчанию — «0».
DISABLE_PVT
Если выставить это свойство на «1», это отключит периодический (дважды в секунду) замер температуры RAM, а вместе с ним и калибровку скорости обновления RAM.
Значение по умолчанию — «0».
CMA – Динамическое разбиение памяти
Начиная с 19 ноября 2012 прошивка и ядро поддерживают систему распределения памяти CMA (Contiguous Memory Allocator), с помощью которой разбиение памяти между CPU и GPU можно осуществлять динамически и прямо во время работы.
Впрочем, официально эта система не поддерживается.
Пример config.txt с применением этой системы можно найти, например, тут.
CMA_LWM
Если GPU-память имеет меньше, чем задано в cma_lwm (LWM означает «low-water mark», что можно перевести как «наименьший предел»), то начинает запрашивать памяти у CPU.
CMA_HWM
Если GPU-память имеет больше, чем задано в cma_hwm (HWM означает «high-water mark», что можно перевести как «наивысший предел»), то начинает делиться памятью с CPU.
Чтобы CMA заработала, в cmdline.txt должно быть прописано следующее:
coherent_pool=6M smsc95xx.turbo_mode=N
Камера
DISABLE_CAMERA_LED
Если задать в этом свойстве «1», то красный светодиод камеры при записи видео и фотографировании включаться не будет. Полезно, например, если вы снимаете через стекло и хотите избежать на итоговом изображении нежелательных отражений.
Встроенное аналоговое аудио (3,5-миллиметровый разъем)
Встроенный аудиовыход имеет несколько конфигурационных настроек, влияющих на то, как будет работать аналоговое аудио, а также включающих/выключающих некоторые функции прошивки.
DISABLE_AUDIO_DITHER
По умолчанию к аудиопотоку, который направляется к аналоговому аудиовыходу, применяется дитеринг с амплитудой 1.0 LSB. В ряде случаев из-за этого к звуку примешиваются фоновые шипения — как если бы вы громкость звука в ALSA была выкручена на низкий уровень. Чтобы отключить дитеринг, задайте в этом свойстве значение «1».
PWM_SAMPLE_BITS
Настраивает битовую глубину аналогового аудиовыхода. По умолчанию тут стоит значение «11». Если задать в этом параметре меньше «8», то звук получится искаженным. Как правило, эта настройка может пригодиться лишь в целях демонстрации того, как битовая глубина влияет на шум квантования.
Видео
Опции для режима композитного видео
SDTV_MODE
Определяет ТВ-стандарт, используемый для композитного видеовыхода через желтый RCA-разъем. Значение по умолчанию — «0».
sdtv_mode | Результат |
---|---|
0 | Обычный NTSC |
1 | Японская версия NTSC — отсутствует высокий уровень черного |
2 | Обычный PAL |
3 | Бразильская версия PAL — 525/60 вместо 625/50, другая поднесущая цвета |
SDTV_ASPECT
Определяет соотношение сторон для композитного видеовыхода. Значение по умолчанию — «1».
sdtv_aspect | Результат |
---|---|
1 | 4:3 |
2 | 14:9 |
3 | 16:9 |
SDTV_DISABLE_COLOURBURST
Если задать в этом параметре «1», это отключит на композитном видеовыходе сигнал цветовой синхронизации. Изображение станет монохромным, но и, возможно, более четким.
Опции для режима HDMI
HDMI_SAFE
Если задать в этом свойстве «1», система запустит «безопасный режим» и попытается загрузиться с максимальной HDMI-совместимостью. Это как если бы в настройках было указано следующее:
hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overscan=0
overscan_left=24
overscan_right=24
overscan_top=24
overscan_bottom=24
HDMI_IGNORE_EDID
Если установить в этом параметре «0xa5000080», система будет игнорировать EDID (данные от дисплея). Эта опция используется, например, если ваш дисплей имеет некорректные EDID. Такое необычно громоздкое значение нужно, чтобы не включить эту опцию случайно.
HDMI_EDID_FILE
Если задать тут «1», GPU будет запрашивать EDID не у дисплея, а обратится за ними к файлу edid.dat, расположенному в загрузочном разделе на SD-карте. Более подробно — тут.
HDMI_FORCE_EDID_AUDIO
Если задать в этом параметре «1», система сделает вид, что дисплей поддерживает абсолютно все форматы аудио — это позволяет использовать DTS/AC3, даже если его нет в числе поддерживаемых форматов.
HDMI_IGNORE_EDID_AUDIO
Если задать в этом параметре «1», система сделает вид, что дисплей не поддерживает ни одного формата аудио. Это значит, что по умолчанию для аналогового (3,5-миллиметрового) аудиовыхода будет использоваться ALSA.
HDMI_FORCE_EDID_3D
Если задать тут «1», то система сделает вид, что 3D поддерживается всеми CEA-режимами, даже если в EDID об этой поддержке ничего не сказано.
AVOID_EDID_FUZZY_MATCH
Если установить тут «1», это позволит избежать «нечеткого соответствия» режимов, описанных в EDID. Вместо этого система будет выбирать стандартный режим с соответствующим разрешением и наиболее близкой частотой кадров (даже если в результате гашение будет неправильным).
HDMI_IGNORE_CEC_INIT
Если задать в этом параметре «1», то при загрузке система не будет отсылать телевизору «будящего» сообщения об активации HDMI. Это предотвратит автоматическое переключение каналов и автоматическое включение телевизора при перезагрузке Raspberry Pi. Требуется, если вы используете телевизор, поддерживающий функцию CEC.
HDMI_IGNORE_CEC
Если задать тут «1», система притворится, что телевизор не поддерживает CEC вовсе. В результате ни одна из CEC-функций поддерживаться не будет.
HDMI_PIXEL_ENCODING
Задает режим кодирования пикселей. По умолчанию тут будет использоваться режим, запрошенный у EDID, поэтому менять его не следует.
hdmi_pixel_encoding | Результат |
---|---|
0 | По умолчанию (ограниченный RGB для CEA, полный RGB для DMT) |
1 | Ограниченный RGB (16-235) |
2 | Полный RGB (0-255) |
3 | Ограниченный YCbCr (16-235) |
4 | Полный YCbCr (0-255) |
HDMI_DRIVE
Позволяет вам выбирать между режимами вывода — HDMI или DVI.
hdmi_drive | Результат |
---|---|
1 | Обычный DVI (без звука) |
2 | Обычный HDMI (со звуком, но если он включен и поддерживается) |
CONFIG_HDMI_BOOST
Конфигурирует мощность сигнала HDMI-интерфейса. Дефолтное значение — «0», а максимум — «7». Если возникли какие-то помехи, попробуйте «4».
HDMI_GROUP
Определяет группу для вывода HDMI-сигнала – либо CEA (означает Consumer Electronics Association, т.е. «Ассоциация Бытовой Электроники» — это стандарт, обычно используемый для телевизоров), либо DMT (означает Display Monitor Timings, т.е. «Тайминги для дисплеев мониторов» — стандарт, обычно используемый для мониторов). Эту настройку необходимо использовать в сочетании с hdmi_mode.
hdmi_group | Результат |
---|---|
0 | Автоопределение на основе данных от EDID |
1 | CEA |
2 | DMT |
HDMI_MODE
Эта настройка вместе с hdmi_group определяет формат для вывода HDMI-сигнала.
Если вы хотите задать собственный режим, которого нет среди перечисленных ниже, смотрите этот тред.
Данные значения следует использовать, если вы задали
hdmi_group=1 (CEA)
hdmi_mode | Разрешение | Частота | Примечания |
---|---|---|---|
1 | VGA | (640х480) | |
2 | 480p | 60 Гц | |
3 | 480p | 60 Гц | Соотношение сторон 16:9 |
4 | 720p | 60 Гц | |
5 | 1080i | 60 Гц | |
6 | 480i | 60 Гц | |
7 | 480i | 60 Гц | Соотношение сторон 16:9 |
8 | 240p | 60 Гц | |
9 | 240p | 60 Гц | Соотношение сторон 16:9 |
10 | 480i | 60 Гц | Учетверение пикселей |
11 | 480i | 60 Гц | Учетверение пикселей, соотношение сторон 16:9 |
12 | 240p | 60 Гц | Учетверение пикселей |
13 | 240p | 60 Гц | Учетверение пикселей, соотношение сторон 16:9 |
14 | 480p | 60 Гц | Удвоение пикселей |
15 | 480p | 60 Гц | Удвоение пикселей, соотношение сторон 16:9 |
16 | 1080p | 60 Гц | |
17 | 576p | 50 Гц | |
18 | 576p | 50 Гц | Соотношение сторон 16:9 |
19 | 720p | 50 Гц | |
20 | 1080i | 50 Гц | |
21 | 576i | 50 Гц | |
22 | 576i | 50 Гц | Соотношение сторон 16:9 |
23 | 288p | 50 Гц | |
24 | 288p | 50 Гц | Соотношение сторон 16:9 |
25 | 576i | 50 Гц | Учетверение пикселей |
26 | 576i | 50 Гц | Учетверение пикселей, соотношение сторон 16:9 |
27 | 288p | 50 Гц | Учетверение пикселей |
28 | 288p | 50 Гц | Учетверение пикселей, соотношение сторон 16:9 |
29 | 576p | 50 Гц | Удвоение пикселей |
30 | 576p | 50 Гц | Удвоение пикселей, соотношение сторон 16:9 |
31 | 1080p | 50 Гц | |
32 | 1080p | 24 Гц | |
33 | 1080p | 25 Гц | |
34 | 1080p | 30 Гц | |
35 | 480p | 60 Гц | Учетверение пикселей |
36 | 480p | 60 Гц | Учетверение пикселей, соотношение сторон 16:9 |
37 | 576p | 50 Гц | Учетверение пикселей |
38 | 576p | 50 Гц | Учетверение пикселей, соотношение сторон 16:9 |
39 | 1080i | 50 Гц | Сниженный бланкинг |
40 | 1080i | 100 Гц | |
41 | 720p | 100 Гц | |
42 | 576p | 100 Гц | |
43 | 576p | 100 Гц | Соотношение сторон 16:9 |
44 | 576i | 100 Гц | |
45 | 576i | 100 Гц | Соотношение сторон 16:9 |
46 | 1080i | 120 Гц | |
47 | 720p | 120 Гц | |
48 | 480p | 120 Гц | |
49 | 480p | 120 Гц | Соотношение сторон 16:9 |
50 | 480i | 120 Гц | |
51 | 480i | 120 Гц | Соотношение сторон 16:9 |
52 | 576p | 200 Гц | |
53 | 576p | 200 Гц | Соотношение сторон 16:9 |
54 | 576i | 200 Гц | |
55 | 576i | 200 Гц | Соотношение сторон 16:9 |
56 | 480p | 240 Гц | |
57 | 480p | 240 Гц | Соотношение сторон 16:9 |
58 | 480i | 240 Гц | |
59 | 480i | 240 Гц | Соотношение сторон 16:9 |
В таблице выше режимы с соотношением сторон 16:9 — это широкоэкранные варианты режима, в котором обычно используется соотношение 4:3. Удвоение и учетверение пикселей говорят о более высокой тактовой частоте — каждый пиксель повторяется два или четыре раза соответственно.
Данные значения следует использовать, если вы задали
hdmi_group=2 (DMT)
hdmi_mode | Разрешение | Частота | Примечания |
---|---|---|---|
1 | 640 x 350 | 85 Гц | |
2 | 640 x 400 | 85 Гц | |
3 | 720 x 400 | 85 Гц | |
4 | 640 x 480 | 60 Гц | |
5 | 640 x 480 | 72 Гц | |
6 | 640 x 480 | 75 Гц | |
7 | 640 x 480 | 85 Гц | |
8 | 800 x 600 | 56 Гц | |
9 | 800 x 600 | 60 Гц | |
10 | 800 x 600 | 72 Гц | |
11 | 800 x 600 | 75 Гц | |
12 | 800 x 600 | 85 Гц | |
13 | 800 x 600 | 120 Гц | |
14 | 848 x 480 | 60 Гц | |
15 | 1024 x 768 | 43 Гц | Несовместим с Raspberry Pi |
16 | 1024 x 768 | 60 Гц | |
17 | 1024 x 768 | 70 Гц | |
18 | 1024 x 768 | 75 Гц | |
19 | 1024 x 768 | 85 Гц | |
20 | 1024 x 768 | 120 Гц | |
21 | 1152 x 864 | 75 Гц | |
22 | 1280 x 768 | Сниженный бланкинг | |
23 | 1280 x 768 | 60 Гц | |
24 | 1280 x 768 | 75 Гц | |
25 | 1280 x 768 | 85 Гц | |
26 | 1280 x 768 | 120 Гц | Сниженный бланкинг |
27 | 1280 x 800 | Сниженный бланкинг | |
28 | 1280 x 800 | 60 Гц | |
29 | 1280 x 800 | 75 Гц | |
30 | 1280 x 800 | 85 Гц | |
31 | 1280 x 800 | 120 Гц | Сниженный бланкинг |
32 | 1280 x 960 | 60 Гц | |
33 | 1280 x 960 | 85 Гц | |
34 | 1280 x 960 | 120 Гц | Сниженный бланкинг |
35 | 1280 x 1024 | 60 Гц | |
36 | 1280 x 1024 | 75 Гц | |
37 | 1280 x 1024 | 85 Гц | |
38 | 1280 x 1024 | 120 Гц | Сниженный бланкинг |
39 | 1360 x 768 | 60 Гц | |
40 | 1360 x 768 | 120 Гц | Сниженный бланкинг |
41 | 1400 x 1050 | Сниженный бланкинг | |
42 | 1400 x 1050 | 60 Гц | |
43 | 1400 x 1050 | 75 Гц | |
44 | 1400 x 1050 | 85 Гц | |
45 | 1400 x 1050 | 120 Гц | Сниженный бланкинг |
46 | 1440 x 900 | Сниженный бланкинг | |
47 | 1440 x 900 | 60 Гц | |
48 | 1440 x 900 | 75 Гц | |
49 | 1440 x 900 | 85 Гц | |
50 | 1440 x 900 | 120 Гц | Сниженный бланкинг |
51 | 1600 x 1200 | 60 Гц | |
52 | 1600 x 1200 | 65 Гц | |
53 | 1600 x 1200 | 70 Гц | |
54 | 1600 x 1200 | 75 Гц | |
55 | 1600 x 1200 | 85 Гц | |
56 | 1600 x 1200 | 120 Гц | Сниженный бланкинг |
57 | 1680 x 1050 | Сниженный бланкинг | |
58 | 1680 x 1050 | 60 Гц | |
59 | 1680 x 1050 | 75 Гц | |
60 | 1680 x 1050 | 85 Гц | |
61 | 1680 x 1050 | 120 Гц | Сниженный бланкинг |
62 | 1792 x 1344 | 60 Гц | |
63 | 1792 x 1344 | 75 Гц | |
64 | 1792 x 1344 | 120 Гц | Сниженный бланкинг |
65 | 1856 x 1392 | 60 Гц | |
66 | 1856 x 1392 | 75 Гц | |
67 | 1856 x 1392 | 120 Гц | Сниженный бланкинг |
68 | 1920 x 1200 | Сниженный бланкинг | |
69 | 1920 x 1200 | 60 Гц | |
70 | 1920 x 1200 | 75 Гц | |
71 | 1920 x 1200 | 85 Гц | |
72 | 1920 x 1200 | 120 Гц | Сниженный бланкинг |
73 | 1920 x 1440 | 60 Гц | |
74 | 1920 x 1440 | 75 Гц | |
75 | 1920 x 1440 | 120 Гц | |
76 | 2560 x 1600 | ||
77 | 2560 x 1600 | 60 Гц | |
78 | 2560 x 1600 | 75 Гц | |
79 | 2560 x 1600 | 85 Гц | |
80 | 2560 x 1600 | 120 Гц | Сниженный бланкинг |
81 | 1366 x 768 | 60 Гц | |
82 | 1920 x 1080 | 60 Гц | 1080p |
83 | 1600 x 900 | Сниженный бланкинг | |
84 | 2048 x 1152 | Сниженный бланкинг | |
85 | 1280 x 720 | 60 Гц | 720p |
86 | 1366 x 768 | Сниженный бланкинг |
Имейте в виду, что в Raspberry Pi имеется ограничение на частоту пикселизации, а это значит, что форматы выше 1920х1200 (с 60 Гц и сниженным бланкингом) не поддерживаются.
Какие значения корректны для моего монитора?
Ваш HDMI-монитор может поддерживать лишь ограниченное число форматов. Чтобы узнать, какие именно форматы поддерживаются, воспользуйтесь следующим методом:
- Установите выходной формат как VGA 60 Гц (
hdmi_group=1
и
hdmi_mode=1
) и загрузите Raspberry Pi.
- Введите следующую команду, которая выведет список поддерживаемых CEA-режимов:
/opt/vc/bin/tvservice -m CEA
- Введите следующую команду, которая выведет список поддерживаемых DMT-режимов:
/opt/vc/bin/tvservice -m DMT
- Введите следующую команду, чтобы показать ваше текущее состояние:
/opt/vc/bin/tvservice -s
- Введите следующие команды, чтобы показать более подробную информацию о вашем мониторе:
/opt/vc/bin/tvservice -d edid.dat; /opt/vc/bin/edidparser edid.dat
Файл edid.dat также используется при решении проблем с дефолтным HDMI-режимом.
Пользовательский режим
Если ваш монитор требует режима, которого в вышеуказанных таблицах нет, то вы можете задать собственный CVT-режим:
hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace>
Значение | По умолчанию | Описание |
---|---|---|
width | (требуется) | Ширина в пикселях |
height | (требуется) | Высота в пикселях |
framerate | (требуется) | Частота обновления в Гц |
aspect | 3 | Соотношение сторон: 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9 |
margins | 0 | 0 = поля отключены, 1 = поля включены |
interlace | 0 | 0 = прогрессивная развертка, 1 = чересстрочная развертка |
rb | 0 | 0 = обычный режим, 1 = сниженный бланкинг |
(Если вы хотите использовать дефолтные значения, нижними полями можно пренебречь.)
Обратите внимание, что эта команда просто создает режим (группа 2, режим 87), а для того, чтобы Raspberry Pi использовала его по умолчанию, вам нужно добавить еще несколько настроек. Например, нижеследующие строчки выберут разрешение 800х480 и установят HDMI-аудиовывод:
hdmi_cvt=800 480 60 6
hdmi_group=2
hdmi_mode=87
hdmi_drive=2
Впрочем, если ваш монитор не поддерживает стандартные CVT-тайминги, это может не сработать.
Общие настойки дисплея
HDMI_FORCE_HOTPLUG
Если выставить тут «1», Raspberry Pi притворится, что получила сигнал о подключении HDMI-разъема, и получится так, будто бы к Pi подключен HDMI-монитор. Другими словами, режим вывода HDMI будет использоваться, даже если HDMI-монитор не определен.
HDMI_IGNORE_HOTPLUG
Если задать в этой настройке «1», Raspberry Pi притворится, что не получила сигнал о подключении HDMI-разъема, и получится так, будто HDMI-дисплей к Pi не подключен. Другими словами, система будет использовать композитный режим, даже если к ней подключен HDMI-монитор.
DISABLE_OVERSCAN
Если задать тут «1», это отключит растянутую развертку.
OVERSCAN_LEFT
Тут указывается количество пикселей, которые нужно пропустить на левом краю экрана. Это значение следует увеличить, если текст убегает за левую часть экрана, и уменьшить, если между левым краем экрана и текстом есть черный промежуток.
OVERSCAN_RIGHT
Тут указывается количество пикселей, которые нужно пропустить на правом краю экрана.
OVERSCAN_TOP
Тут указывается количество пикселей, которые нужно пропустить на верхнем краю экрана.
OVERSCAN_BOTTOM
Тут указывается количество пикселей, которые нужно пропустить на нижнем краю экрана.
FRAMEBUFFER_WIDTH
Тут указывается ширина в пикселях для хранения в кадровом буфере консоли. Значение по умолчанию — ширина дисплея минус общая горизонтальная развертка.
FRAMEBUFFER_HEIGHT
Тут указывается высота в пикселях для хранения в кадровом буфере консоли. Значение по умолчанию — высота дисплея минус общая вертикальная развертка.
FRAMEBUFFER_DEPTH
Тут указывается битовая глубина (в битах на пиксель) для хранения в кадровом буфере консоли. Значение по умолчанию — «16».
framebuffer_depth | Результат | Примечания |
---|---|---|
8 | 8 бит | Дефолтная RGB-палитра делает экран нечитаемым |
16 | 16 бит | |
24 | 24 бита | Изображение может получиться искаженным |
32 | 32 бита | Возможно, нужно будет использовать вместе с командой framebuffer_ignore_alpha=1
|
FRAMEBUFFER_IGNORE_ALPHA
Если установить тут «1», это отключит альфа-канал. Может пригодиться при использовании дисплея с 32-битной битовой глубиной.
TEST_MODE
Во время загрузки демонстрирует тестовые изображение и звук (но только через выводы для композитного видео и аналогового аудио) на протяжении указанного количества секунд, а затем запускает ОС в обычном режиме. Эта опция использовалась в качестве фабричного теста. Значение по умолчанию — «0».
DISPLAY_ROTATE
Используется для того, чтобы повернуть экран на бок или сделать его зеркальное отражение. Значение по умолчанию — «0».
display_rotate | Результат |
---|---|
0 | Поворота нет |
1 | Поворот на 90 градусов по часовой стрелке |
2 | Поворот на 180 градусов по часовой стрелке |
3 | Поворот на 270 градусов по часовой стрелке |
0х10000 | Отразить по горизонтали |
0х20000 | Отразить по вертикали |
Имейте в виду, что поворот на 90 и 270 градусов требует дополнительный GPU-памяти, поэтому если GPU_MEM выставить на «16», эти опции работать не будут.
Лицензионные ключи / Кодеки
У вас есть возможность аппаратного декодирования двух кодеков, и активировать ее можно через покупку лицензии, которая встроена в серийный номер CPU на Raspberry Pi.
DECODE_MPG2
Ключ, открывающий аппаратное декодирование MPEG-2, например,
decode_MPG2=0x12345678
.
DECODE_WVC1
Ключ, открывающий аппаратное декодирование VC-1, например,
decode_WVC1=0x12345678
.
Если у вас есть несколько Raspberry Pi, и вы купили лицензию для каждой из них, то все эти ключи необязательно рассовывать по разным config.txt — достаточно будет всего одного.
Например, это может выглядеть примерно следующим образом:
decode_MPG2=0x12345678, 0xabcdabcd, 0x87654321
.
Это позволит вам использовать одну и ту же SD-карту на разных Pi без необходимости каждый раз редактировать config.txt.
Загрузка
DISABLE_COMMANDLINE_TAGS
Если установить эту настройку на «1», start.elf не будет заполнять ATAGS (память начиная от 0x100), пока не запустится ядро.
CMDLINE
С помощью этой настройки можно задавать параметры командной строки в файле config.txt вместо cmdline.txt. Значение по умолчанию — cmdline.txt.
KERNEL
По умолчанию start.elf загружает ядро из файла kernel.img, находящегося в загрузочном разделе SD-карты (/boot). Однако благодаря этой настройке пользователь может поменять имя этого файла.
KERNEL_ADDRESS
Адрес блока памяти, в который нужно загрузить образ ядра.
KERNEL_OLD
Если поставить в этой настройке «1», это загрузит ядро по адресу 0x0.
RAMFSFILE
Дает другое название файлу для RAM FS, находящемуся в загрузочном разделе (/boot). Более подробно можно почитать тут.
RAMFSADDR
Адрес блока памяти, в который нужно загрузить ramfsfile.
INITRAMFS
Здесь указывается и имя файла для RAM FS, и адрес блока памяти, куда его нужно загрузить. Таким образом, эта настройка выполняет сразу две роли, вмещая в себя функционал параметров ramfsfile и ramfsaddr. Например, так:
initramfs iniramfs.gz 0x00800000
. Примечание: У этой опции не такой синтаксис, как у других — здесь не нужно использовать символ «=».
INIT_UART_BAUD
Начальная скорость передачи данных через UART (в бодах). Значение по умолчанию — «115200».
INIT_UART_CLOCK
Начальная тактовая частота при передаче данных через UART. Значение по умолчанию — «3000000» (3 МГц).
INIT_EMMC_CLOCK
Начальная тактовая частота при коммуникации с EMMC. Значение по умолчанию — «100000000» (100 МГц).
BOOTCODE_DELAY
Тут устанавливается количество секунд, которые bootcode.bin будет ждать перед загрузкой start.elf. Значение по умолчанию — «0».
Эта настройка может в особенности пригодиться, если Pi и монитор питаются от одного и того же источника, но монитор запускается дольше, чем Pi. В результате Pi при начальной загрузке не может определить монитор, но если Pi перезагрузить (и при этом не отключать от питания монитор), то монитор определяется нормально. Тут-то и пригодится параметр bootcode_delay, с помощью которого выставляется задержка перед считыванием EDID монитора и тем самым откладывается его запуск.
BOOT_DELAY
Тут указывается количество секунд, которые start.elf будет ждать перед загрузкой ядра. Значение по умолчанию — «1». Общая задержка в миллисекундах рассчитывается по формуле (1000 х boot_delay) + boot_delay_ms. Может пригодиться, к примеру, если вашей SD-карте нужно какое-то время на подготовку прежде чем Linux сможет с нее загрузиться.
BOOT_DELAY_MS
Тут указывается количество миллисекунд, которые start.elf вместе с boot_delay будут ждать перед загрузкой ядра. Значение по умолчанию — «0».
AVOID_SAFE_MODE
Если задать тут «1», не будет включен безопасный режим загрузки Raspberry Pi. Значение по умолчанию — «0».
DISABLE_SPLASH
Если установить тут «1», при загрузке не будет показан радужный экран. Значение по умолчанию — «0».
Дерево устройств
В config.txt есть несколько параметров для настройки дерева устройств. Они описаны отдельно — здесь.
Разгон
Примечание: Если выставить в разгонные параметры значения, отличные от тех, что используются в raspi-config, это запишет в SoC специальный бит, благодаря которому можно будет понять, разгонялась ли Raspberry Pi или нет. Поначалу эта функция использовалась, чтобы определить, лишать ли это устройство гарантии, поскольку разгон Raspberry Pi влияет на срок жизни ее кристалла. Впрочем, с 19 сентября 2012 вы можете разгонять Raspberry Pi, не опасаясь за гарантию. Более подробно — здесь, на странице о «Турбо-режиме».
В последней версии ядра имеется драйвер cpufreq, у которого по умолчанию включен регулятор, работающий «до востребования», то есть в зависимости от того, активированы ли у Raspberry Pi разгонные настройки или нет. Если не активированы, он никак не влияет на ситуацию, а если активированы, частота CPU будет меняться вместе с загрузкой процессора. То есть смысл этого регулятора в том, что значения, отличные от заданных по умолчанию, нужно использовать лишь при необходимости. Минимальные значения устанавливаются в параметрах, заканчивающихся на *min. Отключить разгон можно при помощи force_turbo=1.
Более подробно читайте тут.
Если SoC достигнет температуры в 85°C разгонные настройки (включая повышенное напряжение) будут автоматически отключены — чтобы охладить кристалл. В некоторых случаях у людей не получалось «догнать» температуру SoC и до 77°C даже при комнатной температуре в 25°C. Более подробно — тут.
Настройки для разгона
Опция | Описание |
---|---|
arm_freq | Частота ARM CPU в мегагерцах.
Значение по умолчанию — «700». |
gpu_freq | Разом задает значения для core_freq, h264_freq, isp_freq и v3d_freq.
Значение по умолчанию — «250». |
core_freq | Частота GPU в мегагерцах. Отражается на производительности CPU, поскольку влияет на кэш L2.
Значение по умолчанию — «250». |
h264_freq | Частота аппаратного видеоблока в мегагерцах.
Значение по умолчанию — «250». |
isp_freq | Частота системы обработки данных с датчика изображения (Image Sensor Processing или ISP) в мегагерцах.
Значение по умолчанию — «250». |
v3d_freq | Частота 3D-блока в мегагерцах.
Значение по умолчанию — «250». |
avoid_pwm_pll | PLL-генератор теперь не работает исключительно для ШИМ-аудио, что позволяет использовать core_freq независимо от других настроек GPU и, соответственно, дает больше контроля при разгоне. Если включить, слегка ухудшает качество аналогового аудио.
Значение по умолчанию — «0». |
sdram_freq | Частота SDRAM в мегагерцах. Значение по умолчанию — «400». |
over_voltage | Настройка напряжения для CPU и GPU. К примеру, значение [-16,8] соответствует [0.8V,1.4V] с шагом в 0.025V. Другими словами, значение «-16» даст вам напряжение в 0.8V, а «8» — напряжение в 1.4V. Значение по умолчанию — «0» (1.2V). Значения выше «6» разрешается устанавливать лишь при указании параметров force_turbo и current_limit_override. Коме того, эта настройка записывает гарантийный бит. |
over_voltage_sdram | Задает разом параметры over_voltage_sdram_c, over_voltage_sdram_i и over_voltage_sdram_p. |
over_voltage_sdram_c | Настройка напряжения для питания контроллера SDRAM. Значение [-16,8] соответствует [0.8V,1.4V] с шагом в 0.025V.
Значение по умолчанию — «0» (1.2V). |
over_voltage_sdram_i | Настройка напряжения для питания устройства ввода/вывода SDRAM. Значение [-16,8] соответствует [0.8V,1.4V] с шагом в 0.025V.
Значение по умолчанию — «0» (1.2V). |
over_voltage_sdram_p | Настройка напряжения для питания интерфейса PHY SDRAM. Значение [-16,8] соответствует [0.8V,1.4V] с шагом в 0.025V.
Значение по умолчанию — «0» (1.2V). |
force_turbo | Отключает динамический драйвер cpufreq и минимальные опции, указанные ниже. Включает разгонные опции для h264/v3d/isp.
Значение по умолчанию — «0». Коме того, эта настройка может записать гарантийный бит. |
initial_turbo | Включает «Турбо-режим» на указанное количество секунд (начиная с загрузки, но до 60 секунд) или пока cpufreq не установит частоту. Более подробно читайте тут. Эта настройка может пригодиться при повреждении SD-карты (если Pi находится в разогнанном состоянии).
Значение по умолчанию — «0». |
arm_freq_min | Минимальное значение для arm_freq, используемое для разгона.
Значение по умолчанию — «700». |
core_freq_min | Минимальное значение для core_freq, используемое для разгона.
Значение по умолчанию — «250». |
sdram_freq_min | Минимальное значение для sdram_freq, используемое для разгона.
Значение по умолчанию — «400». |
over_voltage_min | Минимальное значение для over_voltage, используемое для разгона.
Значение по умолчанию — «0». |
temp_limit | Защита от перегрева. Когда SoC достигает значения, указанного в этом параметре, автоматически включаются дефолтные настройки для разгона и напряжения. Если установить тут выше значения по умолчанию («85»), это аннулирует вашу гарантию. |
current_limit_override | Если установить тут значение «x5A000020», это отключит у источника питания защиту на предельный ток. Такое необычно громоздкое значение необходимо, чтобы не включить эту настройку по случайности. current_limit_override может пригодиться, к примеру, если вы установили для разгона слишком высокое значение, и загрузка Pi не удалась. Более подробно читайте тут. Изменение этого параметра может записать гарантийный бит. |
FORCE_TURBO
force_turbo=0
Если выставить в этом параметре «0», это включит динамический разгон для CPU, ядра GPU и SDRAM. Суть динамического разгона в следующем: к примеру, если система будет в загруженном состоянии, частота CPU поднимется до значения, указанного в arm_freq, а при простое — снизится до значения, указанного в arm_freq_min.
Параметры core_freq, core_freq_min, sdram_freq, sdram_freq_min, over_voltage и over_voltage_min функционируют таким же образом. Значение для over_voltage ограничено «6» (1.35V). Недефолтные значения для h264, v3d и ISP игнорируются.
force_turbo=1
Если выставить в этом параметре «1», это отключит динамический разгон, вследствие чего все частоты и напряжение останутся на высоком уровне. Кроме того, это разрешит разгон для GPU-элементов h264, v3d и ISP, а в over_voltage теперь можно будет задать до «8» (1.4V). Более подробно — тут.
Соотношение частот
Ядро GPU, h264, v3d и ISP делят один и тот же PLL-блок, в связи с чем их частоты должны быть соотнесены друг с другом. Поскольку CPU, SDRAM и GPU имеют собственные PLL-блоки, их частотам это соотношение не требуется. Более подробно читайте тут.
Частоты высчитываются следующим образом:
pll_freq = floor(2400 / (2 x core_freq)) x (2 x core_freq)
gpu_freq = pll_freq / [четное число]
Значение для gpu_freq автоматически округляется до ближайшего четного целого числа. К примеру, если задать значения core_freq=500 и gpu_freq=300, в результате получится 2000/300 = 6,666 => 6. Следовательно, gpu_freq получит значение 333,33 МГц.
AVOID_PWM_PLL
Если установить тут «1», это «отвяжет» PLL-блок от ШИМ-устройства. В результате чуть ухудшится качество аналогового аудио, но зато gpu_freq можно будет устанавливать независимо от core_freq.
Наблюдение за температурой и напряжением
Чтобы посмотреть текущую температуру Pi, впишите следующее:
cat /sys/class/thermal/thermal_zone0/temp
Теперь, чтобы превратить это число в градусы Цельсия, поделите его на 1000.
Чтобы просмотреть текущую частоту Pi, впишите следующее:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
Теперь, чтобы превратить это число в мегагерцы, поделите его на 1000.
Чтобы узнать напряжение на блоке питания Pi, вам понадобится мультиметр. С его помощью измерьте питание между тестовыми точками TP1 и TP2. Более подробно читайте на странице о питании.
Как правило, имеет смысл держать температуру ядра ниже 70°C, а напряжение — выше 4.8V. Также имейте в виду, что у некоторых USB-адаптеров напряжение может падать до 4.2V. Это происходит из-за того, что они, как правило, разрабатываются для питания 3,7-вольтовых литий-полимерных батарей, а не 5-вольтовых компьютеров. Кроме того, при разгоне Raspberry Pi может здорово пригодиться теплоотвод, особенно если Pi заключена в корпус. Для этой работы подойдет, например, самоприлипающий BGA-радиатор размерами 14 x 14 x 10 мм, купить который можно, например, тут.
Проблемы с разгоном
Большинство проблем с разгоном проявляются сию же секунду — у Pi просто не получается загрузиться. Если это случилось, во время следующей загрузки зажмите клавишу ⇧ Shift , благодаря чему все разгонные настройки на время отключатся, а вы получите возможность успешно загрузиться и все поправить.
Условные фильтры
Когда SD-карта (или образ карты) используется с одними и теми же Pi и монитором, то можно просто указать в config.txt нужную комбинацию и спокойно работать, внося правки лишь в том случае, если что-то поменялось.
Однако если вы используете Pi с разными мониторами или если ваша SD-карта (или образ карты) используется на разных Pi, одного набора настроек может оказаться недостаточно. Тут-то и могут пригодиться условные фильтры — с их помощью в config.txt можно создать специальные секции, которые будут использоваться в строго определенных случаях. То есть благодаря этому вы сможете использовать один и тот же config.txt, чтобы задать в нем разные конфигурации, которые можно будет использовать для разного оборудования.
ФИЛЬТР [ALL]
Это самый базовый фильтр. Он сбрасывает все прежние фильтры, благодаря чему все настройки, указанные ниже этого фильтра, будут применяться ко всем используемым устройствам.
[all]
Как правило, имеет смысл добавить [all] в самом конце, после всех остальных фильтров, чтобы избежать непреднамеренного объединения фильтров (см. ниже).
ФИЛЬТРЫ [P1] И [PI2]
Все настройки, указанные ниже [pi1], применяются только к Pi1 (A, A+, B, B+). Все настройки ниже [pi2] применяются только к Pi2.
[pi1]
[pi2]
Это особенно полезно, если вам нужно задать разные значения в параметрах kernel, initramfs и cmdline, т.к. Pi1 и Pi2 требуются разные ядра. Кроме того, эти фильтры могут пригодиться при установке разных разгонных настроек для каждой платы, поскольку дефолтные частоты у них разные. Ниже — пример того, как задать разные initramfs:
[pi1]
initramfs initrd.img-3.18.7+ followkernel
[pi2]
initramfs initrd.img-3.18.7-v7+ followkernel
[all]
И не забудьте в самом конце поставить фильтр [all] — чтобы все последующие настройки не ограничивались только Pi2.
ФИЛЬТР [EDID=*]
В ситуации, когда вы пользуетесь одной SD-картой и вам нужно переключаться между разными мониторами, обычного config.txt может быть недостаточно, чтобы Pi автоматически выбирала необходимое разрешение для каждого монитора.
Тут-то и пригодится фильтр [EDID=*], который позволяет выбирать разные настройки в зависимости от EDID-имен разных мониторов.
Чтобы просмотреть EDID-имя монитора, запустите следующую команду:
tvservice -n
В ответ система покажет что-то вроде этого:
device_name=VSC-TD2220
Имея на руках эту информацию, вы можете указать настройки, которые будут применяться только для этого монитора. Как-то так:
[EDID=VSC-TD2220]
hdmi_group=2
hdmi_mode=82
[all]
Эти строчки включат на этом мониторе режим 1920 х 1080 DMT, но другие мониторы эти настройки затрагивать не будут.
Имейте в виду, что настройки, указанные таким образом, применяются только при загрузке. Следовательно, при загрузке монитор должен быть уже подключен к Pi, а Pi, в свою очередь, должна иметь возможность считать EDID этого монитора, чтобы выяснить, правильное ли у него имя. Другими словами, если после загрузки просто подключить к Pi другой монитор, то другие настройки выбраны не будут.
ФИЛЬТР ДЛЯ СЕРИЙНОГО НОМЕРА
Иногда требуется, чтобы настройки применялись к конкретной Pi — даже если вы вставили SD-карту в какую-то другую Pi. Например, в случаях с разными лицензионными ключами и разгонными настройками (впрочем, для лицензионных ключей «кочующие» SD-карты — уже не помеха, но там используются не фильтры, а другой метод). Кроме того, этот фильтр можно использовать для выбора разных дисплейных настроек, даже если EDID-идентификация по какой-то причине невозможна (при условии, что вы используете лишь один монитор) – к примеру, если монитор не может дать корректное EDID-имя или если вы используете композитный выход (через который EDID прочесть нельзя).
Чтобы посмотреть серийный номер вашей Pi, запустите следующую команду:
cat /proc/cpuinfo
Серийный номер будет показан ниже — в виде шестнадцатеричного значения. К примеру, вы можете увидеть следующее:
Serial : 0000000012345678
Используя эту информацию, вы можете задать настройки только для какой-то одной Pi. Примерно так:
[0x12345678]
# настройки только для Pi с этим серийным номером
[all]
# настройки для всех устройств
ОБЪЕДИНЕНИЕ УСЛОВНЫХ ФИЛЬТРОВ
Фильтры одного и того же типа друг друга заменяют (к примеру, [pi2] заменяет [pi1], т.к. в один и тот же момент времени оба фильтра использовать нельзя).
Фильтры разных типов можно объединить — просто перечислив их друг за другом. Например:
# настройки для всех устройств
[EDID=VSC-TD2220]
# настройки только если подключен монитор VSC-TD2220
[pi2]
# настройки только если подключен монитор VSC-TD2220, и если он подключен к Pi2
[all]
# настройки для всех устройств
Обязательно пользуйтесь фильтром [all] — это сбросит все предыдущие фильтры и позволит избежать случайного объединения фильтров разных типов.