Raspberry pi 2 установка и настройка. Raspberry Pi — подключение (установка ОС, настройка). Включения шины SPI0

Raspberry pi 2 установка и настройка. Raspberry Pi — подключение (установка ОС, настройка). Включения шины SPI0

27.04.2022

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

  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, разберемся, как установить операционную систему 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:

  1. Покупка SD-карты с уже установленной Raspbian или NOOBS. Особого смысла в этом нет. Хотя по цене такая карта выйдет не намного дороже обычной SD-карты того же размера, но ее придется ждать (если заказываете по почте).
  2. Скачивание NOOBS на SD-карту и установка ОС Raspbian с нее.
  3. Монтирование изображения ОС Raspbian прямо на SD-карту, в этом случае можно будет приступать к использованию сразу после включения

Установка ОС Raspbian

Рассмотрим по шагам второй вариант (он же реализован в видео).

  1. Вставляем SD-карту в компьютер (не в Raspberry Pi, в «обычный») и форматируем ее (производитель рекомендует SDFormatter , но можно использовать любые другие средства, в т.ч. входящую в Windows программу); при форматировании указываем файловую систему FAT32.
  2. Скачиваем с сайта zip-архив с NOOBS .
  3. Распаковываем скачанный архив на SD-карту так, чтобы файлы находились прямо в корневой директории.
  4. Вставляем в плату USB-мышь, USB-клавиатуру, подготовленную в предыдущих пунктах SD-карту, монитор.
  5. Подключаем питание по microUSB.
  6. Если телевизор подключен через RCA (“тюльпан”), нажимаем “3” на клавиатуре.
  7. В отображаемом окне выбираем ОС Raspbian и русскую раскладку клавиатуры, также можно выбрать язык (русской нет).
  8. Нажимаем “Install” и подтверждаем.
  9. Ждем, пока пройдет процесс установки и пройдет включение в консоли
  10. В открывшемся Configuration Tool (его настройки можно менять позже) в третьем пункте выбираем второй вариант, тогда интерфейсом по умолчанию будет графический (LXDE).
  11. Нажимаем “Done”, соглашаемся на перезагрузку и ждем, пока она пройдет
  12. Если потребуется ввод логина и пароля, вводим логин pi и пароль raspberry , после чего откроется рабочий стол.

В процессе установки будут появляться разные приветственные сообщения и подсказки, например, такие

Не беспокойтесь, скоро можно будет программировать!

Теперь рассмотрим по шагам альтернативный третий способ.

  1. Скачиваем архив с изображением с сайта.
  2. Распаковываем его, должен получиться файл.img.
  3. Вставляем SD-карту в компьютер (не в Raspberry Pi, в «обычный»)
  4. Монтируем установленный файл (производитель рекомендует ).
  5. Выполняем пункты 4-6 предыдущей инструкции.
  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” и нажимаем на кнопку добавить.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows