Покупка компьютера Raspberry Pi всегда обусловлена разными причинами. Кто-то приобретает это одноплатное устройство для расширения функционала своего жилища, кто-то для создания серьезной мультимедийной системы, а кто-то хочет осуществлять удаленный доступ к разным периферийным устройствам. В любом случае, благодаря Raspberry Pi все это возможно реализовать без проблем. Ограничением является только фантазия и отсутствие навыков при подключении и настройке девайса.

Особенности Raspberry Pi и его интерфейсы

Новенький Raspberry Pi представляют собой «голую» плату с распаянными на ней интерфейсами подключения, процессором и оперативной памятью. В зависимости от модели устройства, на нее устанавливаются разные процессоры, видеосистема и разный объем оперативной памяти. Кроме того, на плате может быть два или более USB-разъемов. Есть в линейке «малиновых» компьютеров и очень маленькие варианты, они рассчитаны на специфическое использование и отличаются чуть более слабыми характеристиками и не распаянными интерфейсами. Есть и более мощные модификации с 64-х битным четырёхядерным ARM-процессором.

Для связи с окружающим миром у Raspberry Pi имеется большая база, помимо USB в одноплатном мини-ПК есть композитный выход и HDMI. Видеосистема устройства дает возможность подключать широкоформатные мониторы с высоким разрешением. Кстати, видеочип может декодировать и выводить на экран видео в 1080р с 30 FPS, что для ARM-уровня весьма неплохо. Благодаря Ethernet, Raspberry Pi можно подключить напрямую к всемирной сети, а современные стандарты Wi-Fi и Bluetooth версии 4.1 помогают серьезно расширить функционал устройства. С их помощью можно создавать любые схемы подключения с настольным компьютером, аудиосистемой, смартфоном и другими устройствами, которые поддерживают подобные стандарты. Но главной особенностью ARM-компьютера Raspberry Pi является поддержка низкоуровневого интерфейса для подключения аналогичных устройств с помощью портов для ввода и вывода общего назначения GPIO.

Вместо обычного жесткого диска в устройстве применяется microSD флеш-карта. Учитывая то, что Raspberry Pi может работать на разных операционных системах, пользователь может использовать сразу несколько карт памяти с разными ОС, которые заточены под определенные нужды. Рекомендуемый объем флеш-карт не менее 8 ГБ.

Raspberry Pi настройка

Чтобы мини-ПК Raspberry Pi корректно работал, его необходимо правильно настроить. На новое устройство необходимо установить сначала операционную систему . В базовом варианте устройство работает на Linux, но для новичков и тех, кто планирует в дальнейшем подстроить Raspberry Pi под свои нужды рекомендуется устанавливать Raspbian (все ее сборки сделаны на основе Debian). Информации об этой ОС на просторах интернета большое множество, так что даже начинающий пользователь ARM-компьютера сможет разобраться. Кроме того, сам образ «операционки» можно скачать с официального сайта. После установки системы на карту памяти (она должна быть вставлена в настольный ПК), необходимо будет вставить ее в устройство и немного подкорректировать файл config.txt в корне «флешки».

Настройка config txt Raspberry Pi имеет большое значение, ведь это основной конфигурационный файл, в котором лучше всего установить фиксированное разрешение экрана (строки hdmi_group и hdmi_mode). Подробную информацию о параметрах файла можно найти на любом форуме, посвященном Raspberry Pi.

Первая загрузка мини-ПК автоматически запускает настройки raspi_config. Мы не будем описывать каждый из параметров, т. к. информацию о них можно легко найти в интернете. Все эти параметры отвечают за разные настройки. К примеру:

  • включенная команда expand_rootfs расширяет root-раздел карты памяти;
  • set_timezone позволит настроить часовой пояс;
  • boot_behaviour запускет графический интерфейс.

После настройки, необходимо перезагрузить устройство. На этом и заканчивается первичная настройка. В дальнейшем необходимо будет поменять язык, т. к. в стандартном варианте будет установлен английский. После того как пользователь увидит родной язык, он может смело настраивать операционную систему на Raspberry Pi. В прошлом «Линуксоподобные» системы отличались исключительным неудобством. Управлять ими приходилось исключительно через командную строку. Сегодня ситуация изменилась: операционные системы, рассчитанные для использования на Raspberry Pi имеют приятную графическую оболочку, которая поможет без проблем настроить нужный параметр.

Интернет на Raspberry Pi

  1. Зайти в параметры адаптера в Центр управления сетями и общим доступом;
  2. Выделить подключение по локальной сети и беспроводное;
  3. Нажать на правую кнопку мыши, а далее на «настройка моста».

Данные манипуляции создадут мост между ПК и Raspberry Pi, что позволит последнему подключаться к интернету.

Будучи встраиваемой системой, 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 должно быть прописано следующее:

Камера

DISABLE_CAMERA_LED

Если задать в этом свойстве «1» , то красный светодиод камеры при записи видео и фотографировании включаться не будет. Полезно, например, если вы снимаете через стекло и хотите избежать на итоговом изображении нежелательных отражений.

Встроенное аналоговое аудио (3,5-миллиметровый разъем)

Встроенный аудиовыход имеет несколько конфигурационных настроек, влияющих на то, как будет работать аналоговое аудио, а также включающих/выключающих некоторые функции прошивки.

DISABLE_AUDIO_DITHER

По умолчанию к аудиопотоку, который направляется к аналоговому аудиовыходу, применяется дитеринг с амплитудой 1.0 LSB . В ряде случаев из-за этого к звуку примешиваются фоновые шипения - как если бы вы громкость звука в ALSA была выкручена на низкий уровень. Чтобы отключить дитеринг, задайте в этом свойстве значение «1» .

PWM_SAMPLE_BITS

Настраивает битовую глубину аналогового аудиовыхода. По умолчанию тут стоит значение «11» . Если задать в этом параметре меньше «8», то звук получится искаженным. Как правило, эта настройка может пригодиться лишь в целях демонстрации того, как битовая глубина влияет на шум квантования.

Видео

Опции для режима композитного видео

SDTV_MODE

Определяет ТВ -стандарт, используемый для композитного видеовыхода через желтый RCA -разъем. Значение по умолчанию - «0» .

SDTV_ASPECT

Определяет соотношение сторон для композитного видеовыхода. Значение по умолчанию - «1» .

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_DRIVE

Позволяет вам выбирать между режимами вывода - HDMI или DVI .

CONFIG_HDMI_BOOST

Конфигурирует мощность сигнала HDMI -интерфейса. Дефолтное значение - «0» , а максимум - «7» . Если возникли какие-то помехи, попробуйте «4» .

HDMI_GROUP

Определяет группу для вывода HDMI -сигнала – либо CEA (означает Consumer Electronics Association , т.е. «Ассоциация Бытовой Электроники» - это стандарт, обычно используемый для телевизоров), либо DMT (означает Display Monitor Timings , т.е. «Тайминги для дисплеев мониторов» - стандарт, обычно используемый для мониторов). Эту настройку необходимо использовать в сочетании с hdmi_mode .

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 Гц
12 240p 60 Гц Учетверение пикселей
13 240p 60 Гц Учетверение пикселей, соотношение сторон 16:9
14 480p 60 Гц Удвоение пикселей
15 480p 60 Гц
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-монитор может поддерживать лишь ограниченное число форматов. Чтобы узнать, какие именно форматы поддерживаются, воспользуйтесь следующим методом:

  1. Установите выходной формат как VGA 60 Гц (

hdmi_group =1

hdmi_mode =1

) и загрузите Raspberry Pi .

  1. CEA -режимов:

/ opt/ vc/ bin/ tvservice -m CEA

  1. Введите следующую команду, которая выведет список поддерживаемых DMT -режимов:

/ opt/ vc/ bin/ tvservice -m DMT

  1. Введите следующую команду, чтобы показать ваше текущее состояние:

/ opt/ vc/ bin/ tvservice -s

  1. Введите следующие команды, чтобы показать более подробную информацию о вашем мониторе:

/ opt/ vc/ bin/ tvservice -d edid.dat; / opt/ vc/ bin/ edidparser edid.dat

Файл edid.dat также используется при решении проблем с дефолтным HDMI -режимом.

Пользовательский режим

Если ваш монитор требует режима, которого в вышеуказанных таблицах нет, то вы можете задать собственный CVT -режим:

hdmi_cvt=

(Если вы хотите использовать дефолтные значения, нижними полями можно пренебречь.)

Обратите внимание, что эта команда просто создает режим (группа 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_IGNORE_ALPHA

Если установить тут «1» , это отключит альфа-канал. Может пригодиться при использовании дисплея с 32-битной битовой глубиной.

TEST_MODE

Во время загрузки демонстрирует тестовые изображение и звук (но только через выводы для композитного видео и аналогового аудио) на протяжении указанного количества секунд, а затем запускает ОС в обычном режиме. Эта опция использовалась в качестве фабричного теста. Значение по умолчанию - «0» .

DISPLAY_ROTATE

Используется для того, чтобы повернуть экран на бок или сделать его зеркальное отражение. Значение по умолчанию - «0» .

Имейте в виду, что поворот на 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 есть несколько параметров для настройки дерева устройств. Они описаны отдельно - .

Разгон

В последней версии ядра имеется драйвер 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.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.025V .

Значение по умолчанию - «0» (1.2V) .

over_voltage_sdram_i Настройка напряжения для питания устройства ввода/вывода SDRAM . Значение [-16,8] соответствует с шагом в 0.025V .

Значение по умолчанию - «0» (1.2V) .

over_voltage_sdram_p Настройка напряжения для питания интерфейса PHY SDRAM . Значение [-16,8] соответствует с шагом в 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) 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 .

Как правило, имеет смысл держать температуру ядра ниже 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]

Как правило, имеет смысл добавить в самом конце, после всех остальных фильтров, чтобы избежать непреднамеренного объединения фильтров (см. ниже).

ФИЛЬТРЫ И

Все настройки, указанные ниже , применяются только к Pi1 (A, A+, B, B+) . Все настройки ниже применяются только к 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]

И не забудьте в самом конце поставить фильтр - чтобы все последующие настройки не ограничивались только Pi2 .

ФИЛЬТР

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

Тут-то и пригодится фильтр , который позволяет выбирать разные настройки в зависимости от 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 , т.к. в один и тот же момент времени оба фильтра использовать нельзя).

Фильтры разных типов можно объединить - просто перечислив их друг за другом. Например:

[ EDID =VSC-TD2220] # настройки только если подключен монитор VSC-TD2220 [ pi2] # настройки только если подключен монитор VSC-TD2220, и если он подключен к Pi2 [ all] # настройки для всех устройств

Обязательно пользуйтесь фильтром - это сбросит все предыдущие фильтры и позволит избежать случайного объединения фильтров разных типов.

Микрокомпьютер Raspberry Pi работает под управлением операционной системы. Так же, как и в обычных компьютерах, операционная система управляет всеми ресурсами компьютера и предоставляет пользователю определенный интерфейс для работы с программами. От того, какая выбрана система, зависит удобство использования устройства. Под Raspberry Pi написано множество разных операционок, в этой статье мы проведем краткий анализ их.

Практически все операционные системы для платы Raspberry Pi используют Linux в качестве базовой. Существует несколько официально поддерживаемых операционных систем:

  • Raspbian – официальная ОС, которая обладает всем необходимым программным обеспечением. Рекомендуется использовать именно эту операционную систему для знакомства с Raspberry Pi.
  • OpenELEC – медиапроигрыватель на основе Linux с открытым исходным кодом.
  • OSMC (Raspbmc) – медиапроигрыватель с открытым исходным кодом на базе Kodi Media Center и Debian GNU/Linux.
  • Поддержка Windows 10 в устройствах Raspberry Pi 2B.

Все ОС включены в NOOBS – это программа, в которой содержатся все перечисленные выше операционные системы и упрощающая их установку на Raspberry Pi. С помощью NOOBS возможна установка как одной ОС, так и нескольких, причем выбрать нужную систему можно при загрузке компьютера. Во время установки ОС создается специальный раздел RECOVERY, который позволяет вернуть систему к начальным настройкам.

Установка операционной системы на Raspberry Pi

Варианты установки

Существует 3 способа установки ОС на :

  • покупка SD-карты с заранее установленной Raspbian или NOOBS;
  • загрузка NOOBS на карту памяти и установка ОС Raspbian с нее;
  • монтирование изображение Raspbian прямо на SD-карту.

Первый способ является наиболее простым – тут не требуется никаких дополнительных действий.

Во втором случае процедура установки выглядит следующим образом:

  1. В первую очередь карту памяти нужно отформатировать, указывая файловую систему FAT32.
  2. Скачивание архива с NOOBS, его распаковка на карту памяти так, чтобы файлы были в корневой директории.
  3. Вставка в Raspberry Pi необходимой периферии: клавиатуры, мыши и монитора через USB, подключение питания. В качестве монитора можно использовать телевизор, подключенный через RCA.
  4. Если экран подключен через RCA, нажать «3» на клавиатуре.
  5. В окне выбрать операционную систему Raspbian, русскую раскладку клавиатуры и язык. Русский язык нельзя установить. Нажать «Install», дождаться окончания процесса установки и включения.
  6. В появившемся меню «Configuration Tool» в третьем пункте выбрать второй вариант для установки графического интерфейса LXDE.
  7. Нажать «Done», дождаться перезагрузки.
  8. Если нужен вход с помощью логина и пароля, в графе логин ввести pi, пароль raspberry, после этого откроется рабочий стол.

Монтирование образа Raspbian на SD-карту.

  1. Скачивание архива с изображением с сайта https://www.raspberrypi.org/downloads/
  2. Распаковка, после чего получится файл.img.
  3. Вставка карты памяти в ПК.
  4. Монтирование установленного файла.
  5. Повтор 3 и 4 пунктов предыдущей инструкции.
  6. Повтор пунктов 6-8 предыдущей инструкции.

Сравнение операционных систем для Raspberry Pi


ОС Последняя версия Отличительные свойства
Raspbian Для установки последней версии нужно перезагрузить ОС и ввести код

sudo apt-get update

sudo apt-get upgrade

Произойдет обновление, затем нужно перезагрузить Raspberry Pi.

Стандартная операционная система на базе Debian, которая специально создана под обеспечение этого миникомпьютера. Поставляется с набором стандартных программ и утилитами. В разделе «программирование» имеется более десятка различных приложений для программирования. В системе установлен браузер Chromium, пакет LibreOffice для работы с документами.
OSMC OSMC Kodi 16 Медиацентр на базе Kodi. Является наиболее функциональным программным обеспечением для мультимедиа. ОС имеет чистый интерфейс, меню появляется в левой части экрана, в нем можно выбрать носители (аудио, видео, картинки), устанавливать настройки и проверять программы.
8.0.4 Операционная система, предназначенная для проигрывания медиафайлов. Интерфейс как у Kodi. Обладает высокой скоростью работы. По сравнению с OSMC более закрытая ОС, в ней нельзя изменять системный уровень, имеются ограничения на доступ к отдаленным сервисам.
Kano OS Kano OS 3.13 Операционная система, идеально подходящая для обучения. Яркий дружественный и удобный интерфейс, ничего лишнего. На сайте разработчика можно купить множество дополнительных комплектующих для RaspberryPi и собрать своими руками полноценный конструктор.
DietPi Diet Pi Основанная на Debian операционная система, занимающая всего 400 Мб на карте памяти! Не требовательна к ресурсам, поддерживается быстрая установка всех популярных программ
Windows 10 IoT Core Windows 10 IoT Специальная версия Windows для разработчиков, созданная для компьютера Raspberry Pi. Совместима только с ПК с установленной Windows 10. Для работы требуется установка на ПК Visual Studio, так как Windows 10 IoT Core не работает в одиночку. С помощью этой ОС можно создавать множество различных проектов.
ОС RISC 2009.06, последняя тестовая версия 2010.03 Отдельная операционная система, которая не построена на Linux, не имеет ничего схожего с другими ОС. Работает как однопользовательская система. Все приложения являются каталогами с восклицательным знаком перед названием, система хорошо работает с перетаскиванием файлов в папки. Система не используется как основная ОС, работает совершенно по-другому.
RetroPie RetroPie 4.3.7 Эмулятор, который позволяет играть на разнообразных консолях. Операционная система основана на Raspbian, но также имеется отдельно собранный образ RetroPie.
Pidora Pidora 18 Операционная система, основанная на проекте Fedora. По сравнению с Debian формат пакетов имеет расширение RPM. ОС содержит несколько различных сред для разработки программного обеспечения.

Давным давно, в далёкой... кажется это из другой оперы. Так вот, прислал мне как-то друг железку, под названием Raspberry PI 3 B , не знал я как к ней подступить, и вот возникла задача настроить Jenkins , на продакшен вебхостинге этого делать не хотелось, а медиацентр я обычно отключаю на ночь (ибо жужжит громко), вот тут-то разберюшка и пригодилась. Но прежде чем она станет сервером автоматизации её надо сконфигурировать, чем мы сегодня и займёмся.

Подготовка

Теперь распакуем скачанный архивчик:

# скорее всего название файла, скачанного Вами, будет отличаться
unzip 2017-07-05-raspbian-jessie .zip

После выполнения этой команды должен появиться ещё один файл, размером примерно 4Гб:

# ls | grep img
2017-07-05-raspbian-jessie .img

Проверим какой из дисков является нашей флешкой:

Я использую флешку на 8Гб (на самом деле должно быть 8 000 000 000 байт , но в логах почему-то 7 948 206 080 байт , поэтому fdisk пишет что она 7.4Гб ), ядро операционной системы выдало флешке имя /dev/sdd :

Disk /dev/sdd : 7,4 GiB , 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7418cc78

Установка

Данный процесс производится всего одной командой (из под root или через sudo , это важно):

# dd if=2017-07-05-raspbian-jessie.img of=/dev/sdd

if (input file) - это образ прошивки
of (output file) - это есть наша флешка

Процесс мягко говоря не быстрый, займёт примерно 30-40 минут, так что можете смело переключиться на какую-нибудь другую задачу, пока dd выполняет свою работу. Кстати, dd по умолчанию не показывает прогресс, поэтому советую открыть ещё один терминал, в котором нужно написать следующую команду (после нажатия на Enter данную консоль не закрывайте):

# while killall -USR1 dd; do sleep 5; done

Данная команда каждые 5 секунд будет посылать специальный сигнал утилите dd, заставляющий её (dd) отображать текущий статус.

Настройка сети

И так, операционка записалась на флешку, но вот незадача, если на данном этапе воткнуть её в разберюху, то DHCP клиент не будет работать, поэтому советую не торопиться, а для начала настроить сеть.

Подмонтируем флешку, и перейдём в директорию, в которой находится сетевая конфигурация:

# mkdir -p /media/pi
# mount /dev/sdd2 /media/pi
# cd /media/pi /etc/network

Тут мы видим несколько файлов:

# ls | sort
if-down.d
if-post-down.d
if-pre-up.d
if-up.d
interfaces
interfaces.d
interfaces.dpkg-old
run

Нужно отредактировать только interfaces, поэтому откроем его через текстовый редактор, мне больше нравится mcedit. Тут нам нужно заменить iface eth0 inet static на что-то вроде этого (Ваши параметры IP скорее всего будут отличаться):

allow-hotplug eth0
iface eth0 inet static
address 192.168.200.20
netmask 255.255.255.0
gateway 192.168.200.1
dns-nameservers 192.168.200.1

В дальнейшем наша разберюшка будет доступна по адресу 192.168.200.20. Однако, если Вам не хочется чтобы девайс имел статический IP Вы можете переключить интерфейс в режим DHCP клиента:

allow-hotplug eth0
iface eth0 inet dhcp

Включаем сервер SSH

Решение, которое я предлагаю не совсем изящное, но если у Вас нет желания или возможности подключать железку и через GUI/консоль включать SSH сервер, то Вы можете сделать это одним очень простым способом. Откроем в любом текстовом редакторе файл rc.local:

# mcedit /media/pi /etc/rc.local

И перед exit 0 добавим следующую строку:

/etc/init.d/ssh restart

Теперь SSH сервер будет включаться автоматически во время инициализации системы. На данном этапе можно идти подключать флешку в устройство и логиниться через SSH. В дальнейшем можно настроить всё по уму, как это предлагается в официальной документации .

Авторизация

Первое, что Вы должны знать, логин и пароль по умолчанию:

Логин: pi
Пароль: raspberry

Чтобы подключиться к разберюшке через SSH достаточно ввести следующую команду (root не нужен):

$ ssh [email protected]

Консоль запросит пароль, пишем raspberry, жмём Enter и вуаля, мы в системе!

Заключение

Это простая заметка не претендует на звание супер полного мануала, просто записал действия, которые я с железкой выполнял, чтобы заставить её работать так как мне надо. Так изгаляться мне пришлось, потому что единственный живой HDMI кабель был занят, а настраивать HDMI-to-RCA конвертер мне было очень лень.

Если возникли вопросы, смело пишите их в комментариях или вступайте в Discord группу . Благодарю за прочтение!

Я не особо большой знаток Linux (почти новичок), поэтому буду очень рад конструктивной критике в комментариях.

Все, кто хотел, давно купили себе Raspberry Pi 3, а я ждал непонятно чего 🙂 Однако недавно этот компьютер попал ко мне в руки, поэтому хочу поделится впечатлениями и полезными (для кого-то) советами по его настройке.

Аппаратная часть

Компьютер заказывался на AliExpress сразу с корпусом и блоком питания (Model B, 1 ГБ ОЗУ). Карта памяти, microSD SanDisk 16 GB class 10, уже валялась дома. С учётом её цены весь «системный блок» стоил примерно 3000 р.

В качестве экрана был подключён обычный телевизор Full HD (кабель HDMI в кладовке случайно завалялся). Из периферии изначально подключил только клавиатуру и мышь, подсоединив их к USB-портам.

Raspberry в определённых случаях ощутимо греется (показывая при этом иконку-градусник в правом верхнем углу экрана), поэтому в корпусе почти сразу были просверлены дополнительные вентиляционные отверстия. Эффективность комплектных радиаторов так себе, нужно искать что-то посерьёзнее, если собираетесь нагружать компьютер на 100%.

Операционная система

Выбор ОС для Raspberry Pi 3 - вопрос деликатный. Если кто-то не в курсе, то здесь ARM-процессор. Т. е. обычный дистрибутив Linux на устройство не встанет, нужна специально подготовленная сборка.

Собственно, из-за относительно специфичного железа в дальнейшем будет много других сложностей с программами и т. п.

Существует несколько официальных и неофициальных сборок Linux для этого мини-компьютера. Какую из них использовать - зависит от поставленной задачи. В моём случае Raspberry Pi 3 будет использоваться, как обычный домашний компьютер для работы и развлечений (звучит несколько амбициозно). Попробовав несколько ОС, я остановился на основном официальном дистрибутиве, Raspbian Stretch 9.1 (новейшем на тот момент). На мой взгляд, он быстрее, стабильнее и универсальнее остальных.

Установка ОС на «Малину» очень проста. Скачиваем образ, распаковываем файл.img и записываем его на карту памяти с помощью специальной программы (для Windows это, например, Win32 Disk Imager).

Более подробное описание процесса записи ОС легко найти в Интернете.

После окончания записи карту памяти нужно вставить в соответствующий слот Raspberry Pi. Затем включаем устройство в электрическую сеть и начинаем первоначальную настройку (вставка блока питания в розетку - штатный способ включения этого компьютера).

Если вы подумали, что Raspberry Pi 3 сможет на равных конкурировать с обычным домашним компьютером за 20 000 р., то это совсем не так. Работать Raspberry будет гораздо медленнее, а ряд задач для него вообще недоступен. Однако с определёнными функциями мини-компьютер справляется неплохо. Например, с ролью терминала для не слишком «тяжёлых» веб-приложений он справится отлично.

Настройка Raspberry Pi 3 (ОС Raspbian)

При первом запуске даже ничего не нужно выбирать и нажимать. Система уже практически готова к работе. После перезагрузки появляется рабочий стол.

Хотя радоваться здесь особо нечему - просто придётся больше вещей настраивать уже в установленной системе 😉

Сначала подключаемся к Интернету. При проводном соединении Интернет уже должен работать сам. В моём случае используется Wi-Fi, поэтому нужно нажать на красные кресты на панели задач (иконка сетевых подключений), выбрать беспроводную сеть и ввести пароль. Всё почти так же, как в других операционных системах.

Она позволит выполнять все дальнейшие действия в терминале с правами суперпользователя. В противном случае придётся добавлять sudo в начале каждой второй строки (а то и чаще).

Все остальные команды приведены в статье без sudo. Т. е. предполагается, что вышеописанная рекомендация была выполнена.

Сразу обновляем пакетную базу и прошивку устройства:

Apt update apt upgrade rpi-update

Затем заходим в настройки Raspberry Pi: «Пуск» (значок малины) > Preferences > Raspberry Pi Configuration. Нажимаем «Change Password…» и задаём новый пароль (одновременно для пользователя и суперпользователя). Это позволит избежать некоторых проблем в будущем.

По умолчанию в Raspbian создан пользователь pi с паролем raspberry.

Настраиваем дальше. Hostname (имя компьютера в сети) можно не менять. У меня изображение выводится не на весь экран (толстая чёрная рамка по периметру), поэтому параметр Underscan переключаю в положение «Disabled». На вкладке «Performance» изменяем значение GPU Memory на 128 (можно и 64 оставить, но некоторым приложениям может не хватить).

Переходим во вкладку «Localization». Нажимаем «Set Locale…». Выбираем Language: ru (это даст хоть какой-то перевод ОС на русский). Настраиваем время через «Set Timezone…». В моём случае Europe/Moscow. Выбираем основную раскладку клавиатуры через «Set Keyboard…». Советую United States/English (US), т. к. к ней все уже привыкли. На всяких случай заходим в «Set Wi-Fi Country…» и тоже выбираем RU.

После всего этого нажимаем «OK» внизу окна и соглашаемся на перезагрузку.

Для интереса посмотрим сколько ОЗУ занимает операционная система в новом состоянии (диспетчер задач вызывается через Ctrl + Alt + Del или из меню приложений). 92 МБ! Вот бы Windows столько занимала 🙂

Настройка внешнего вида

Для удобства приводим рабочий стол к более привычному виду (в данном случае к виду подобному Windows). Правый клик по панели, «Panel Settings». Edge переключаем в положение «Botton» - панель перемещается вниз. Переходим во вкладку «Panel Applets», удаляем лишнее, добавляем нужное. Удалил Ejecter и CPU Usage Monitor. Добавил Minimize All Windows и Keyboard Layout Handler (переключатель раскладки клавиатуры).

Через последний добавляем русскую раскладку. Правый клик по флагу, «Keyboard Layout Handler Setting». Снимаем флажок «Keep system layouts», нажимаем «Добавить», выбираем ru. Меняем сочетание клавиш для переключения раскладок кнопкой под надписью Change Layout Options.

Кнопка «Закрыть» в этом окне не работает, но работает крестик в углу. Это старый баг многих сборок Linux (странно, что его не убрали до сих пор).

На панели есть значок Bluetooth. Отключаем через него модуль Bluetooth, если не собираемся подключать какие-либо беспроводные устройства.

Меняем набор значков слева. Правый клик на одном из значков, «Application Launch Bar Settings». Вытаскиваем пару ярлыков из меню на рабочий стол. Меняем обои (предпочитаю что-то более однотонное):

Numlock

К этому времени не работающая цифровая клавиатура уже начала раздражать. При загрузке системы Numlock выключен (в других версиях Linux такое тоже бывает). Каждый раз включать его не хочется. Пора исправить ситуацию. Устанавливаем программу numlockx:

Apt install numlockx

Добавляем её в автозагрузку. Например, открываем файловый менеджер, переходим в папку /home/pi/.config , создаём там файл autostart (без расширения) с единственной строкой: @numlockx -on .

Можете использовать любой другой способ добавления в автозагрузку.

Проблема с USB-флешками и жёсткими дисками

На первый взгляд, со съёмными носителями всё в порядке. Они корректно определяются при подключении, все файлы отображаются и нормально открываются. Только вот записывать на флешки ничего нельзя, т. к. подключаются они в режиме «readonly» (за редким исключением).

Решается проблема просто, установкой дополнительного драйвера:

Apt install ntfs-3g

После установки требуется перезагрузить систему.

Проверялись все накопители, имеющиеся в распоряжении - запись, изменение и удаление стали работать (не только в NTFS, но и в FAT32).

На одном USB-накопителе небольшого объёма только что отформатированном в Windows проблемы почему-то не было изначально.

Программы в комплекте

Настало время посмотреть, что уже установлено в системе. Просто пробежимся по меню приложений (консольные утилиты в расчёт не берём).

В разделе «Программирование» находится больше десятка приложений собственно для программирования (оставим их без внимания).

Категория «Офис» содержит исключительно программы из пакета LibreOffice (знаменитого бесплатного аналога Microsoft Office). Полезные приложения для работы с документами. Создание и правка не очень сложных файлов в них на Raspberry Pi 3 происходит с минимальными притормаживаниями.

Раздел «Интернет» содержит, на мой взгляд, два полезных приложения. Первое - VNC Viewer. Неплохой вариант управления удалёнными устройствами. Скорость работы приемлемая. Второе - браузер Chromium. Практически тот же Chrome, только без излишеств. Сайты работают с разной скоростью. Некоторые прямо быстро, некоторые очень туго (зависит от типа сайта и его оптимизации). Например, ВКонтакте листается с небольшими рывками, а Одноклассники уже идут со скрипом (хотя в целом пользоваться можно и тем и другим). Даже YouTube в нём сносно работает (установлено специальное расширение). В полноэкранном режиме видео, конечно, дёргается, а вот в широкоэкранном смотрится нормально. Т. е. на этом компьютере более или менее доступна работа в Интернете (по крайней мере, она комфортнее, чем на среднем смартфоне).

При работе на Raspberry Pi 3 в большинстве приложений заметен небольшой разрыв кадра (нижняя часть изображения обновляется чуть позже верхней). Эта неприятность связана с отсутствием вертикальной синхронизации (tearing). На обычных компьютерах проблема легко решается, но для Raspbian решения я не нашёл. Опять же многое упирается в специфическое железо.

В «Стандартных» минимальный набор полезных приложений: калькулятор, терминал, просмотрщик файлов PDF, блокнот, архиватор (который почти ничего не умеет), диспетчер задач, программа для просмотра изображений, файловый менеджер и утилита для создания копии системы - SD Card Copier.

Всё необходимое есть, лишнего немного, остальное ставим по потребностям.

Skype

Со Skype в Linux почти всегда были какие-то заморочки. Нынешняя версия является просто оболочкой для веб-интерфейса. Вместо того, чтобы пытаться запустить её под Raspbian, просто воспользуемся веб-версией напрямую.

В Raspberry Pi 3 отсутствует разъём mini-jack для микрофона. Вариант 1 - найти микрофон с разъёмом USB. Вариант 2 - подключить дешёвую внешнюю USB-звуковую карту с привычными разъёмами. В моём случае всё было ещё проще (хотя не совсем) - веб-камера оказалась со встроенным микрофоном, т. е. два устройства заняли только одно гнездо.

Откроем Skype. Через Chromium заходим по адресу web.skype.com/ru и выполняем вход в свой аккаунт. Затем нажимаем на зелёный замок в адресной строке: разрешаем камеру, микрофон и Flash. Микрофон работать всё равно не хотел. Оказалось, что нужно было кликнуть по значку видеокамеры (в адресной строке справа), затем вместо по «По умолчанию» выбрать правильное аудиоустройство.

Сделал тестовый видеозвонок знакомым. Звук в обе стороны проходит нормально, видео тоже передаётся (немного притормаживает).

Расширение офисных приложений

Пакет LibreOffice, конечно, неплох, но сейчас он на английском, не проверяет правописание и не очень правильно отображает документы MS Office, т. к. в системе нет ни одного шрифта из Windows. Открываем терминал, устанавливаем русскую локализацию, орфографический словарь и шрифты:

Apt install libreoffice-l10n-ru hunspell hunspell-ru ttf-mscorefonts-installer

Вот так гораздо привычнее:

Наш штатный архиватор умеет работать только с типичными для Linux форматами, поэтому нужно помочь ему, добавив поддержку более ходовых типов архивов (7z, RAR и ещё парочки):

Apt install p7zip-full unrar-free

Установим более продвинутые программы для чтения электронных книг Evince и FBReader, чтобы открывать разные типы электронных книг:

Apt install evince fbreader

Evince у меня не появился в меню самостоятельно, поэтому пришлось зайти в «Параметры» > «Main Menu Editor» и отметить его флажком.

Настройка локальной сети

Если у вас есть локальная сеть, то Raspberry Pi 3 уже подключен к ней (в случае открытой и корректно настроенной сети). Чтобы иметь к ней удобный доступ, в стандартном файловом менеджере нужно открыть меню «Перейти», выбрать «Сеть», открыть меню «Закладки», нажать «Добавить в закладки», переключить вид «Дерево директорий» на «Точки входа». Теперь ссылка на сеть будет под рукой при каждом открытии файлового менеджера.

Также можно установить другой файловый менеджер, например, Thunar.

Вроде, всё неплохо: сетевые ресурсы доступны, файлы открываются, копируются и даже удаляются. Только при входе чуть ли не в каждую сетевую папку система запрашивает пароль (который мы меняли в самом начале работы с ОС). Другие компьютеры в моей сети (и на Windows, и на Linux) заходят на те же ресурсы без паролей. Убрать ввод этого пароля пока не удалось (ввожу каждый раз).

Для того, чтобы компьютеры, входящие в ЛВС, отображались на верхнем уровне, правим настройки Samba /etc/samba/smb.conf . Только файл нужно открыть с правами суперпользователя. Например, вводим в терминале следующую команду (предварительно выполнив sudo -i ):

Leafpad /etc/samba/smb.conf

Меняем значение параметра workgroup на название нашей рабочей группы, сохраняем изменения, делаем перезагрузку. Теперь при заходе в «Сеть» можно сразу переходить к нужному компьютеру (не открывая ещё две папки).

Настройки сети приведены для примера. В других случаях данный подход к работе с ЛВС может просто не сработать.

Подключение к сетевому принтеру

Раз уж у нас есть офисные программы, то и печать документов, скорее всего, потребуется. В рассмотренной выше сети установлен единственный принтер, подключённый к ПК на Windows 10. Принтер уже сетевой, но нужно как-то добавить его в Raspbian. Для этого установим программы CUPS и samba-client:

Apt install samba-client cups

CUPS не пустит нас в настройки просто так. Поэтому нужно добавить нашего текущего пользователя в группу lpadmin:

Usermod -aG lpadmin pi

Управление в CUPS происходит через веб-интерфейс. Вводим в браузер адрес 127.0.0.1:631 , затем переходим в раздел «Администрирование», нажимаем «Добавить принтер». Вводим имя пользователя pi и пароль, который задали при настройке системы (в начале статьи). Отмечаем «Windows Printer via SAMBA» и нажимаем «Продолжить».

Дальше важный момент. В поле «Подключение» нужно ввести адрес принтера в сети. В данном случае smb://192.168.1.6/hp1010 . Из чего он состоит: smb:// - протокол SAMBA, 192.168.1.6 - локальный адрес компьютера, к которому подключён принтер, hp1010 - сетевое имя принтера.

Адрес компьютера в ЛВС должен быть статическим, а имя принтера желательно задавать только латиницей (без пробелов).

Нажимаем «Продолжить». Вводим название принтера для нашей системы и на всякий случай ставим флажок «Разрешить совместный доступ к этому принтеру», нажимаем «Продолжить». Выбираем драйвер для принтера (список впечатляет), нажимаем «Добавить принтер». Сохраняем параметры. Печатаем для теста какой-нибудь документ и радуемся жизни.

Работа с графикой

На Raspberry Pi 3 можно установить классические графические редакторы GIMP и Inkscape:

Apt install gimp inkscape

Работают они в целом корректно, но медленно. Несложные манипуляции с не очень большими картинками мини-компьютер потянет (обрезать фотографию, цвета поправить, надпись добавить, логотип нарисовать). Серьёзные графические задачи, естественно, требуют серьёзной мощности.

Просмотр видео

Вот здесь всё опять упирается в нестандартное железо. Привычные плееры просто на нём не работают (либо работают с большими проблемами). Получилось найти только две программы, которые справляются с проигрыванием видео: OMXPlayer и Kodi. Использовать будем обе.

OMXPlayer уже установлен в системе, но он консольный, поэтому пользоваться им не слишком удобно. Чтобы видеофайлы открывались двойным кликом делаем следующее. Кликаем по файлу правой кнопкой, выбираем «Открыть с помощью…». Переходим на вкладку «Пользовательская команда». В верхней строке вводим omxplayer -b . Отмечаем флажками «Выполнить в эмуляторе терминала» и «Установить выбранное приложение по умолчанию для данного типа файла». В имени приложения пишем, например, omxplayer . Нажимаем «OK».

Эти действия нужно проделать для каждого расширения видеофайлов.

Переключатся между окнами OMXPlayer не даёт. Клавиши управления: «q» - выход, «-» и «+» - регулировка громкости, «←» и «→» - перемотка.

Kodi - это довольно серьёзный медиацентр. Понимает значительно больше кодеков, чем OMXPlayer, имеет встроенный DLNA-клиент и другие плюшки. Для начала его нужно установить:

Wi-Fi у Raspberry слабоват, поэтому видео приличного размера по сети смотреть через него не получится. Позаботьтесь о проводном подключении.

С Kodi на Raspberry Pi 3 можно смотреть весьма увесистые фильмы. Проверял на файле Full HD размером 40 ГБ с битрейтом 40 Мб/с (по DLNA). За 2 с лишним часа ни одного подтормаживания или других проблем. Некоторые Smart-телевизоры при проигрывании этого же файла с того же DLNA-сервера зависали на середине видео (приходилось выключать/включать).

Прослушивание музыки

С воспроизведением звука всё гораздо проще. Поддерживаются многие проигрыватели. Штатный OMXPlayer тоже умеет играть музыку, но в этом нет необходимости. Был установлен Audacious, который ничем особо не перегружен, но имеет привычный вид и нормальный функционал:

Apt install audacious

Торрент-клиент

Здесь тоже всё нормально. Установил Deluge:

Apt install deluge

Почему именно его? Потому что привык к нему. Deluge не лучше и не хуже других. Просто выполняет свою работу как полагается. Для теста скачал через него Raspbian Stretch Lite. Никаких проблем не заметил.

Игры

Конечно, сложно назвать Raspberry Pi игровой платформой, однако поиграть на нём вполне возможно. Речь по большей части идёт о запуске игр, выходивших на старых приставках. Долгие попытки собрать что-то вроде RetroPie в виде отдельного приложения (а не целой ОС) не увенчались успехом. Поиск отдельных приложений для каждой приставки тоже довольно нудное дело, поэтом остановился на Mednafen:

Apt install mednafen

Первым делом переходим в «Global Settings» и выбираем Video Driver sdl вместо opengl (ну нет у «Малины» нормальной поддержки OpenGL). После этого образы игр (ROMs) начнут нормально работать (не все, конечно).

С нормальной скоростью заработали только NES и Sega Mega Drive (хотя большинство платформ не проверялось, т. к. нет к ним интереса).

Можно добавлять игры в интерфейс Mednaffe и запускать их оттуда, а можно даже не запускать Mednaffe - просто открывать файл с образом игры, как любой другой, двойным кликом (не для всех платформ сработает).

Играть в приставочные игры на клавиатуре неудобно, а под рукой как раз есть геймпад от Xbox 360. Контроллер работает без дополнительных драйверов, остаётся только настроить кнопки. Для этого в Mednaffe открываем раздел «Systems», переходим к нужной приставке, открываем подраздел «Input», нажимаем «Controller Setup». Выбираем «Port 1» (первый контроллер), делаем двойной клик в столбце Key и нажимаем на геймпаде кнопку, соответствующую надписи в столбце Action/Button (для каждой строки).

Если настройки не применились, запускаем игру нужного формата из интерфейса (новые параметры должны вступить в силу), после чего настройки уже будут действовать и при запуске двойным кликом.

Несколько «родных» игр, заслуживающих внимания, тоже можно установить. Например, Битва за Веснот (напоминает HOMM III) и OpenTTD (напоминает SimCity 2000). Обе игры переведены на русский язык.

Apt install wesnoth openttd

Последний штрих

После установки многих программ остаётся всякий «мусор». Хорошо бы его удалить следующей командой (ещё и немного места освободится):

Apt autoremove

Дополнительные сведения

  • Снимок экрана делается клавишей Print Screen и автоматически сохраняется в домашнюю папку (/home/pi).
  • Если хотите немного повысить скорость работы Raspberry Pi 3, подключите его к экрану с низким разрешением (например, 1366×768).
  • Приложения можно поискать в штатной утилите «Add / Remove Software», которая чем-то похожа на Synaptic.
  • Для подключения к монитору без разъёма HDMI может использоваться дешёвый переходник с HDMI на DVI-D или такой же кабель.
  • Raspberry может показывать на экране три специальных значка-индикатора (независимо от установленной ОС и среды рабочего стола): молния - низкое напряжение, наполовину красный термометр - высокая температура чипа (80–85 градусов), полностью красный термометр - критическая температура (выше 85 градусов).

Заключение

В целом мини-компьютером я остался доволен. За свою стоимость он предоставляет очень даже широкий функционал (в статье рассмотрены только некоторые варианты его использования). Для опытных пользователей Linux настройка Raspberry Pi 3 покажется несложной. Остальные без проблем смогут использовать уже настроенную систему.

Кликать мышью по окнам можно хоть кота научить.

Помимо энтузиастов Raspberry может быть интересен и компаниям с большим парком машин. Например, покупка 20 классических системных блоков для колл-центра по 12 000 р. и покупка 20 «малиновых» компьютеров по 3000 р. - это совсем разные вещи (180 000 р. экономии).

Только мониторы нужно брать хотя бы с DVI-D - ещё 15 000 вычитаем.

При домашнем использовании Raspberry Pi 3 хорошо справится с ролью бесшумного медиасервера, ретро-приставки, вспомогательного компьютера для другой комнаты и т. д и т. п…