Raspberry PI - это устройство имеющее достаточную производительность для того чтобы на его основе могли быть построены роботы способные распознавать образы, выполнять работу людей и прочие подобные устройства для автоматизации и выполнения сложных вычислительных действий. Т.к. тактовая частота процессора Raspberry PI 3 м.б. 1.2 ГГц а его разрядность 32 бита то Raspberry PI 3 значительно превосходит обычное Arduino у которого тактовая частота как правило 16 МГц а разрядность микроконтроллера 8 бит, Arduino безусловно занимает своё место в выполнении операций не требующих большой производительности но когда её уже не хватает Raspberry PI "приходит на помощь" и перекрывает такой большой диапазон возможных применений что можно быть абсолютно уверенным в целесообразности приобретения данного одноплатного компьютера Raspberry PI 3 (можно заказать по ссылке) . Т.к. Raspberry PI - это компьютер то для того чтобы его использовать нужно на него установить операционную систему (хотя существуют обходные пути но всё же лучше и проще установить операционную систему (ос далее)). Существует много ос которые можно установить на Raspberry Pi но одной из самых популярных (для использования с Raspberry Pi), наиболее подходящих для начинающих является ос Raspbian. Для того чтобы установить ос на Raspberry Pi понадобиться micro sd карта с расширителем для того чтобы её можно было вставить в обычный компьютер и записать на неё ос. Sd карта должна иметь не менее 4Гб памяти при установке полной версии Raspbian и не менее 8Гб для установки минимальных версий Raspbian. Минимальные версии могут не иметь (и скорее всего не имеют) графического интерфейса и много всего остального что может считаться лишним и занимает место. Для избежания проблем с отсутствием необходимых файлов, можно поставить полную версию. Можно использовать SD карту 10го класса и с 32Гб памяти (проверено работает (как см. видео ниже)). После приобретения карты памяти её надо вставить в компьютер в соответствующий разъём, после этого посмотреть с какой буквой появился диск в разделе "мой компьютер" и запомнить, потом надо скачать ос с официального сайта https://www.raspberrypi.org/downloads/raspbian/ нажав кнопку "Download ZIP" под "RASPBIAN JESSIE" для скачивания полной версии или под "RASPBIAN JESSIE LITE" для скачивания облегчённой но, для начинающих, лучше выбрать "RASPBIAN JESSIE" т.е. полную версию. После скачивания архива "RASPBIAN JESSIE" его нужно разархивировать, потом скачать программу (или от сюда https://yadi.sk/d/SGGe1lMNs69YQ), установить её, открыть, далее нужно в правом верхнем углу указать букву диска (запомненную ранее), найти разархивированный образ ос
И нажать кнопку "write".
После чего выведется окно с предупреждением и в этом окне надо нажать кнопку "Yes",
После того как запись закончиться и появится окно сообщающее об успешной записи (Write Successful) нужно нажать кнопку "Ok" в этом окне.
Потом закрыть программу, вытащить SD карту безопасным способом и вставить в Raspberry Pi.
Далее можно подключить к Raspberry Pi usb клавиатуру (или ps2 через переходник), usb мышь и монитор или телевизор через hdmi кабель или можно подключить ethernet кабель (но это для опытных пользователей поэтому далее рассмотрим первый вариант). После этого надо подключить питание через micro usb например от зарядного устройства от смартфона. После подключения питания начнётся установка операционной системы. Как правило в новых (на момент написания данной статьи) версиях ос уже настроена возможность связи с Raspberry Pi по SSH и поэтому для того чтобы настроить связь с Raspberry Pi 3 по wifi достаточно настроить только wifi, Для этого в правом верхнем углу экрана есть значёк на который нужно нажать и выбрать wifi,
После чего вписать пароль от данного wifi в появившееся текстовое поле,
После этих действий wifi на Raspberry Pi 3 будет настроен и дальше можно будет не используя провода программировать Raspberry Pi 3 удалённо по wifi. После настройки Raspberry Pi 3 можно выключить вписав в командной строке (в программе LXTerminal которую можно открыть двойным кликом по иконке программы) команду sudo halt или нажав соответствующие кнопки выключения в графическом режиме, после окончательного выключения можно отключить питание и при следующей подаче питания Raspberry Pi 3 включиться с wifi. Теперь чтобы программировать Raspberry Pi 3 по wifi нужно выяснить какой у него ip адрес. Для того чтобы это сделать надо подать питание на Raspberry Pi 3, дождаться окончания загрузки ос, зайти в веб интерфейс маршрутизатора (вписав в строке браузера 192.168.1.1 или то что надо для входа в веб интерфейс, ввести логин и пароль), найти вкладку DHCP Leases или что то подобное, найти там строку с raspberry и ip адрес Raspberry Pi 3.
Далее нужно открыть программу PuTTY (если её нет то перед этим скачать (или ) и установить) поставить порт 22, соединение по SSH, вписать в поле "Host Name (or IP Adress)" ip адрес Raspberry Pi 3,
После чего нажать кнопку "Open" внизу окна, далее появиться чёрное окно с предложением ввести логин. По умолчанию логин "pi" - его надо ввести и нажать enter. Далее надо ввести пароль, по умолчанию "raspberry". При вводе пароля он не отображается - это нормально. После того как пароль введён невидимыми буквами нужно нажать enter и если всё было сделано правильно то мы получим доступ к Raspberry Pi 3 если нет то нужно повторить действия. После того как получен доступ к Raspberry Pi 3 можно его программировать, для начала нужно войти в папку "pi" для этого надо вписать команду
И нажать enter (после cd обязательно пробел).
Теперь можно открыть текстовый редактор nano. Nano - это специальный текстовый редактор который есть на большинстве ос на подобии Linux и в котором можно написать программу для Raspberry Pi. Для открытия этого редактора и одновременно с этим создания файла с названием "first" и расширением "py" нужно вписать команду
И нажать enter. Откроется редактор nano и можно заметь что его интерфейс немного отличается но в основном - это то же чёрное поле в которое надо вписывать команды. Т.к. мы хотим управлять портами ввода вывода общего (GPIO) то прежде чем запустить программу по управлению этими портами, нужно подключить к ним какое нибудь устройство чтобы можно было видеть что управление получилось. Надо также отметить что пины настроенные как выходы у Raspberry Pi могут выдавать очень небольшой ток (предполагаю что до 25мА) и учитывая что Raspberry Pi это всё таки не самое дешёвое устройство то настоятельно рекомендуется позаботиться от том чтобы нагрузка на выводы не была слишком большой. Маломощные индикаторные светодиоды, как правило, могут использоваться с Raspberry Pi т.к. им для того чтобы светиться достаточно небольшого тока. Для первого раза можно сделать приспособление с разъёмом, двумя встречно параллельно включёнными светодиодами и резистором с сопротивлением 220Ом включённым последовательно со светодиодами. Т.к. сопротивление резистора 220Ом, ток обязательно проходит через этот резистор и нет параллельных путей его прохода, напряжение на выводах 3.3В то ток не будет больше чем 3.3/220=0.015А=15мА. Подключить это можно к свободным GPIO например к 5 и 13 как на схеме
(распиновка взята с https://en.wikipedia.org/wiki/Raspberry_Pi), выглядеть это может примерно так:
После того как всё аккуратно и правильно подключено и есть уверенность в том что ничего не сгорит можно скопировать в редактор NANO первую простенькую программу на языке Python
Import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)
GPIO.output(13, True)
GPIO.output(5, False)
time.sleep(1)
GPIO.output(13, False)
GPIO.output(5, True)
time.sleep(1)
GPIO.output(13, True)
GPIO.output(5, False)
time.sleep(1)
GPIO.output(13, False)
GPIO.output(5, True)
time.sleep(1)
GPIO.output(13, True)
GPIO.output(5, False)
time.sleep(1)
GPIO.output(13, False)
GPIO.output(5, True)
time.sleep(1)
GPIO.cleanup()
Потом нажать
После выхода из редактора NANO можно ввести команду
Sudo python first.py
После чего светодиоды помигают некоторое количество раз. Т.е. получилось управлять портами ввода вывода общего назначения по wifi! Теперь давайте рассмотрим программу и выясним как это получилось.
Строка:
Import RPi.GPIO as GPIO
Это подключение библиотеки "GPIO" для управления выводами.
Строка:
Это подключение библиотеки "time" для задержек.
Далее идёт установка режима GPIO:
GPIO.setmode(GPIO.BCM)
Конфигурация выводов 5 и 13 как выходы:
GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)
Установка логической единицы на выводе 13, установка логического нуля на выводе 5:
GPIO.output(13, True)
GPIO.output(5, False)
Задержка
Установка логического нуля на выводе 13, установка логической единицы на выводе 5:
GPIO.output(13, False)
GPIO.output(5, True)
Переводит все выводы в исходное состояние и программа завершается. Т.о. можно управлять любыми свободными пинами по wifi и если сделать питание 5В от аккумулятора то уже можно сделать какого нибудь автономного робота или устройство не привязанное проводами к чему либо стационарному. Язык программирования Python (питон) отличается от си подобных языков, например вместо точки с запятой, для завершения команды, в питоне используется перевод строки, вместо фигурных скобок используется отступ от левого края который делается клавишей Tab. В общем Python это очень интересный язык на котором получается легко читаемый простой код. После того как работа (или игра) с Raspberry PI 3 закончена можно его выключить командой
И после полного выключения убрать питание. При подаче питания Raspberry PI 3 включается и с ним снова можно работать (или играть). Заказать Raspberry pi 3 можно по ссылке http://ali.pub/91xb2 . О том как делается настройка Raspberry PI 3 и управление его пинами можно посмотреть на видео:
После успешного мигания светодиодами можно приступить к полномасштабному изучению данного компьютера и созданию проектов используя возможностями Raspberry PI 3 которые ограничены лишь вашим воображением!
Компьютеры на одноплатной аппаратной платформе Raspberry Pi становятся всё популярнее и популярнее. Если раньше их покупали в основном инженеры и компьютерные специалисты, то сейчас их преобретают многие любители для домашних экспериментов и электронных поделок. Управляет таким компьютером операционная система на базе Linux (обычно это Ubuntu или её производные). По умолчанию сеть в этой операционной системе настроена так, что при включении Распберри Пи в локальную сеть (которой обычно управляет роутер), каждый раз ему динамически присваивается новый IP-адрес благодаря настроенному протоколу DHCP. Это не всегда удобно. Поэтому оптимальнее всего настроить статический IP на Raspberry Pi.
Делается это просто. Если вы знаете адрес своего роутера через которые организавана локалка — отлично, елси нет, то в терминале набераем команду:
Netstat -r –n
Этим мы выводим на экран таблицу маршрутизации. Смотим на стобец Gateway (Шлюз), в ней должен отображаться текущий IP-адрес вашего маршрутизатора. Как правило, в домашних сетях это или или . Пусть в моём примере это будет первый адрес. Запоминаем или записываем его.
Для того, чтобы через консоль настроить сеть вручную на Распберри Пи и сделать статический IP — введите команду:
Sudo nano /etc/network/interfaces
В открывшемся конфиге ищем строку «iface eth0 inet dhcp» и стираем её. Вместо этого надо вписать следующее:
Iface eth0 inet static address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1
Думаю, что смысл строк ясен, но немного всё же поясню. В строке «Аddress (Адрес)» надо вписать Ай-Пи из подсети роутера, главное чтобы он не был уже занять каким-нибудь другим устройством. Маска в 99% домашних сетей — 255.255.255.0, в в строчку «Gateway (Шлюз)» указывается адрес самого роутера чтобы показать системе, что весь трафик надо как бы «прогонять» через этот хост.
Дальше нажимаем комбинацию клавиш «Ctrl+X» чтобы выйти из редактора. На запрос о сохранении файла надо будет нажать сначала кнопку «Y», а затем — «Enter». Для применения изменений надо перезапустить сетевую службу. Делается это вот такой командой:
Sudo/etc/init.d/networking restart
Если вдруг система выдаст ошибку, то снова откройте файл и проверьте правильность ввода адресов.
Настройка сети на Raspberry Pi завершена.
Примечание:
На последних релизах операционной системы Raspbian JESSIE, конфиг сетевой карты из /etc/network/interfaces не читается
и получение IP-адреса идёт только в автоматическом режиме. Чем руководствовались разработчики — не ясно, но теперь прописать статику стало в разы сложнее. Один из вариантов решения — прибить демона клиента DHCP. Конечно, можно, но есть и ещё вариант, который подсказал автор блога homeless.su — подправить его конфигурацию в файле /etc/dhcpcd.conf.
Открываем его через редактор nano:
Sudo nano /etc/dhcpcd.conf
Прокручиваем его в самый низ и дописываем вот это:
Nodhcp interface eth0 static ip_address=192.168.1.10/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.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 должно быть прописано следующее:
Камера
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-монитор может поддерживать лишь ограниченное число форматов. Чтобы узнать, какие именно форматы поддерживаются, воспользуйтесь следующим методом:
- Установите выходной формат как 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=
(Если вы хотите использовать дефолтные значения, нижними полями можно пренебречь.)
Обратите внимание, что эта команда просто создает режим (группа 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, разберемся, как установить операционную систему Raspbian, подключить, включить и выключить Raspberry Pi.
Видео первого урока:
Для начала рекомендуем ознакомится со статьей , в которой описано, что такое Raspberry Pi и одноплатные компьютеры вообще, зачем они нужны, в чем их преимущества по сравнению с традиционными компьютерами, что нужно, чтобы начать работать с Raspberry Pi, где его купить и почему Raspberry Pi используется для создания роботов и изучается в кружках робототехники.
Плата Raspberry Pi
Для первого урока нам понадобится:
- плата Raspberry Pi;
- кабель питания с выходом micro USB и напряжением 5V, минимальный ток 700 мА (такой кабель можно купить специально или использовать зарядное устройство с выходом micro USB от телефона, планшета и других гаджетов);
- USB-клавиатура;
- USB-мышь;
- монитор или телевизор с HDMI/RCA/DVI интерфейсом;
- кабель, один конец которого RCA или HDMI, а другой соответствует вашему монитору;
- SD-карта от 4 Гб и классом скорости от 4;
- любой «обычный» компьютер с подключенным интернетом и ридером SD-карт.
Итак, если вы имеете это все, начнем действовать.
Операционные системы для Raspberry Pi и программа NOOBS
Плата не имеет предустановленной операционной системы, поэтому первое, что придется сделать — установить ее.
- Pidora , основанная на Fedora Remix ;
- ARM-версия OpenELEC , XMBC медиа-центра;
- RaspBMC , XMBC медиа-центр.
Из перечисленных ОС производителем рекомендуется использовать Raspbian , в наших уроках мы будем придерживаться этой рекомендации. По специфике других ОС еще поговорим в дальнейших уроках. Raspbian и остальные перечисленные операционные системы включены в NOOBS . Самый простой способ установить ОС на Raspberry Pi — использовать NOOBS.
NOOBS — это программа, включающая дистрибутивы перечисленных выше операционных систем и позволяющая установить простым и понятным новичку способом. NOOBS разрабатывается Raspberry Pi Foundation и скачать ее можно бесплатно с официального сайта по ссылке .
Как уже было сказано, в качестве постоянной памяти для Raspberry Pi используется SD-карта. На SD-карте будет храниться в том числе и операционная система.
Установка операционной системы Raspbian на Raspberry Pi
Есть три способа установить ОС на Raspberry Pi:
- Покупка SD-карты с уже установленной Raspbian или NOOBS. Особого смысла в этом нет. Хотя по цене такая карта выйдет не намного дороже обычной SD-карты того же размера, но ее придется ждать (если заказываете по почте).
- Скачивание NOOBS на SD-карту и установка ОС Raspbian с нее.
- Монтирование изображения ОС Raspbian прямо на SD-карту, в этом случае можно будет приступать к использованию сразу после включения
Установка ОС Raspbian
Рассмотрим по шагам второй вариант (он же реализован в видео).
- Вставляем SD-карту в компьютер (не в Raspberry Pi, в «обычный») и форматируем ее (производитель рекомендует SDFormatter , но можно использовать любые другие средства, в т.ч. входящую в Windows программу); при форматировании указываем файловую систему FAT32.
- Скачиваем с сайта zip-архив с NOOBS .
- Распаковываем скачанный архив на SD-карту так, чтобы файлы находились прямо в корневой директории.
- Вставляем в плату USB-мышь, USB-клавиатуру, подготовленную в предыдущих пунктах SD-карту, монитор.
- Подключаем питание по microUSB.
- Если телевизор подключен через RCA (“тюльпан”), нажимаем “3” на клавиатуре.
- В отображаемом окне выбираем ОС Raspbian и русскую раскладку клавиатуры, также можно выбрать язык (русской нет).
- Нажимаем “Install” и подтверждаем.
- Ждем, пока пройдет процесс установки и пройдет включение в консоли
- В открывшемся Configuration Tool (его настройки можно менять позже) в третьем пункте выбираем второй вариант, тогда интерфейсом по умолчанию будет графический (LXDE).
- Нажимаем “Done”, соглашаемся на перезагрузку и ждем, пока она пройдет
- Если потребуется ввод логина и пароля, вводим логин pi и пароль raspberry , после чего откроется рабочий стол.
В процессе установки будут появляться разные приветственные сообщения и подсказки, например, такие
Не беспокойтесь, скоро можно будет программировать!
Теперь рассмотрим по шагам альтернативный третий способ.
- Скачиваем архив с изображением с сайта.
- Распаковываем его, должен получиться файл.img.
- Вставляем SD-карту в компьютер (не в Raspberry Pi, в «обычный»)
- Монтируем установленный файл (производитель рекомендует ).
- Выполняем пункты 4-6 предыдущей инструкции.
- Выполняем пункты 10-12 предыдущей инструкции
Операционная система Raspbian установлена! Можно работать дальше.
Raspberry Pi и «рабочий стол» Raspbian
Программы для Raspberry Pi
В ОС Raspbian имеются различные предустановленные программы, которые можно открыть из меню “Пуск”. Многое предустановленное ПО предназначено для программирования: Scratch, Python, Wolfram и другие. Также представлено около 10 игр, которые можно открыть из программы Python Games. Ну и конечно есть такие стандартные программы, такие как калькулятор, текстовый редактор, браузер и другие.
Другие программы для Raspberry Pi можно скачать из Pi Store (аналог Google Play для Android или App Store для Apple) – часть программ платна, часть бесплатна.
В Pi Store вы можете скачать дополнительные программы
Включение и выключение Raspberry Pi
Установленная операционная система хранится на SD-карте, поэтому для работы Raspberry Pi всегда будем использовать эту карту.
Как включить Raspberry Pi: подсоединяем, включаем питание — сразу начинается включение, при необходимости вводим логин pi и пароль raspberry .
В данной статье будет рассмотрен вопрос установки и настройки системы MajorDomo (далее MD) на одноплатный компьютер Raspberry PI3 (далее RPI3). Всё изложенное ниже является аккумулированием трудов пользователей и разработчиков MD. Практически весь материал основан на сообщениях из форума MD, за что особая благодарность всем участникам форума, а товарищу nick7zmail в особенности)). О всех неточностях и ошибках в изложенном материале прошу писать в комментариях.
Пару слов про возможности и особенности системы:
- Файловая система F2FS (оптимизирована для карт памяти);
- Оптимизация циклов записи базы данных на карту памяти;
- Голосовой движок RHVoice;
- Звук через сервис MPD;
- MQTT-брокер Mosquitto;
- Apple HomeKit-совместимость (через HomeBridge);
- Установленные средства разработки: PHP, Python, NodeJS, Perl;
- Последние обновления MajorDoMo и Raspbian Jessie (на момент релиза текущей версии);
- Работает установка дополнений из Маркета, а так же обновления ядра системы.
Особенность конфигурации — всё настроено так, чтобы минимизировать количество циклов записи на SD-карту. База данных использует tmpfs с периодической «фиксацией» (раз в 15 минут). Т.е. возможен вариант, что при аварийном выключении питания система будет восстановлена c потерей данных за последних несколько минут.
После установки работает звук, радио (используется mpd и модуль 101.ru из маркета), обновления, установка модулей из маркета дополнений.
Для начала работы по установке системы MD желательно обзавестись следующим:
- RPI3. Экземпляр, рассматриваемый в данной статье, был приобретён . Понравилась комплектация заказа – всё включено (сам RPI3, красивый корпус, набор радиаторов, блок питания, карта памяти на 16ГБ) и скорость доставки (менее 2 недель);
- microSD карта памяти . Объём не менее 16ГБ, класс 10 (настоятельно рекомендую не выбирать SD карту из разряда дешёвых, так как это может отобразиться на дальнейшей стабильности системы);
- Картридер ;
- Аудиоколонки (необязательно );
- Программа Win32 Disk Imager. Скачать можно ;
- SSH клиент . Как вариант Putty.Скачать можно ;
- Установочный образ . Скачать можно .
Теперь обо всём по порядку:
Подготовка карты памяти . На данном этапе нам необходимо перенести образа MD на SD карту. Значит, берем карту, вставляем ей в картридер и запускаем программу Win32DiskImager. В появившемся окне, в поле «Device», выбираем нашу флешку, а в поле «Image file» указываем распакованный из архива образ MD и нажимаем кнопку «Write».
Необходимо дождаться завершения записи, которая должна пройти без всяких ошибок. В противном случае необходимо заменить SD карту на новую и попробовать заново.
Первый запуск RPI3 . Вставляем карточку в RPI3, подключаем сетевой кабель, колонки и подаём питание. Обратите внимание на выбор БП, нагрузочная способностью которого должна быть не мене 2.5А (лучше 3А), иначе могут наблюдаться сбои при работе системы. Вообще, для долговременной и стабильно работы системы желательно подключить питание от ИБП.
После загрузки система должна получить IP-адрес по DHCP и быть доступна по веб-интерфейсу. В моем случае, после подачи питания, через какое-то время я услышал из колонок следующие фразы «Система загружена» и «ай пи адрес 192.168.0.33». Ниже привожу скрин «чистого» экрана системы (главного):
Теперь можно зайти на RPI3 через SSH/FTP, данные для входа:
Менеджер базы данных(phpMyAdmin):
Имя пользователя: root
Пароль: rootpsw
Сервис MajorDoMo стартует автоматически, но можно управлять им через консоль: sudo /etc/init.d/majordomo stop sudo /etc/init.d/majordomo start
Настройка MD
Подготовка. В данной статье будет рассмотрена возможность настройки системы через SSH доступ . В принципе, тоже самое можно сделать подключив к RPI3 монитор, клавиатуру и сетевой кабель (без использования Putty).
Запускаем программу Putty. В появившемся окне вводим полученный от системы IP адрес и нажимаем кнопку “Open” .
Теперь вводим стандартные имя пользователя и пароль. Если всё сделано правильно – появится готовая к работе консоль.
Подготовка к настройке системы сделана, теперь сама настройка.
Настройка статического IP адреса . Для пользователей, которые понимают что это такое, и которым это не требуется, могут пропустить данный пункт. Вводим в консоли:
sudo nano /etc/dhcpcd.conf
Добавляем следующие строчки (вводим адреса вашего оборудования):
Shell
nodhcp interface eth0 static ip_address=192.168.0.33 static domain_name_servers=192.168.0.1
nodhcp interface eth0 static ip_address = 192.168.0.33 static domain_name_servers = 192.168.0.1 |
нажимаем комбинации клавиш
Перезапускаем сетевой интерфейс:
sudo ifconfig eth0 down sudo ifconfig eth0 up
ждём 5 секунд и проверяем правильность выполненной работы командой:
ifconfig
Для проверки доступа к интернету можно также «пингонуть» google:
sudo ping 8.8.8.8
Первичная настройка при помощи утилиты «Raspi-config» (чем-то напоминает BIOS компьютера). Вводим в консоли:
sudo raspi-config
В появившемся окне выполняем следующие действия:
- в поле “Change User Password” меняем стандартный пароль (не забываем его записать);
- в поле “Boot Options”, в подменю “B1 Desktop CLI”, выбираем “B1 Console”;
- в поле “Advanced Options” выполняем “A1 Expand Filesystem”, а в поле “Audio” выбираем “Force 3.5 jack”.
Устанавливаем пароли для phpMyAdmin . Заходим через в web интерфейс phpMyAdmin и там меняем пароль (не забываем записывать), для этого вводим следующую строку в браузере:
http://_Ваш_IP/phpmyadmin/
Теперь сообщаем MD под каким паролем заходить, для этого вводим в консоли:
В появившемся окне меняем стандартный пароль на свой:
Define(‘DB_PASSWORD’, ‘ свой_пароль ‘);
Останавливаем MySQL строчкой
sudo service mysql stop
копируем текущую базу данных из диска в памяти на SD карту
sudo cp -R /tmp/mysql/* /var/lib/mysql/
и перезагружаем систему
sudo reboot.
Устанавливаем пароль на вход в систему с внешней сети. Для этого вводим в консоли:
sudo nano /var/www/config.php
Находим и раскомментируем следующие строчки:
Define(‘HOME_NETWORK’, ‘192.168.0.*’); Define(‘EXT_ACCESS_USERNAME’, ‘user’); Define(‘EXT_ACCESS_PASSWORD’, ‘password’);
Обратите внимание на маску IP адреса в первой строке!!! Далее вводим свой логин и пароль (также не забываем их записывать), нажимаем комбинации клавиш
Меняем пароль брокера MQTT Mosquitto . Для этого в консоли набираем:
sudo nano /etc/mosquitto/mosquitto.conf
в появившемся окне добавляем следующие строчки
#путь к файлу паролей password_file /etc/mosquitto/passwd
#запретить подключения без логина allow_anonymous false
Создаём/добавляем пользователя и пароль утилитой mosquitto_passwd:
sudo mosquitto_passwd -c /etc/mosquitto/passwd username
Сообщаем об этом homebridge
sudo nano /home/pi/.homebridge/config.json
Также сообщаем модулю MQTT в web интерфейсе MD, для этого в браузере вводим полученный IP адрес, заходим в «Панель управления»
в левом боковом меню выбираем «Устройства»->»MQTT»->»Настроить». Ставим галочку «authorization required», вводим имя пользователя и пароль, после чего нажимаем кнопку «Обновить».
Перезапускаем mosquitto
sudo service mosquitto stop sudo service mosquitto start
Увеличиваем размер временного файлового хранилища. Для этого в консоли набираем:
sudo nano /etc/fstab
В строке «tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0» меняем size=100m на size=500m, нажимаем комбинации клавиш
Установка модуля MySensors . Заходим в систему через web интерфейс и нажимаем на кнопку «Панель управления».
В левом боковом меню выбираем — «Система» -> «Маркет дополнений» -> «Оборудование», ищем в списке “MySensors” и нажимаем на кнопку добавить.