Шпаргалка по Raspberry Pi
Так получилось, что нежданно-негаданно я стал обладателем Raspberry Pi Model B+. Отличный повод познакомиться. Правда, если учесть, что опыт общения с Debian или даже Linux у меня нулевой, знакомство это обещало быть неспешным и тернистым. Необходимые мне вещи я искал по мере надобности, так и появился этот материал. Сразу поясню, что, в первую очередь, это шпаргалка для самого себя и уже во вторую - некий "малиновый дневник".
Не буду останавливаться на установке ОС и первичной настройке, мануалов на эту тему уйма. Скажу лишь, что сам я "устанавливался" с NOOBS - необыкновенные простота и удобство. Лучше сразу перейду к самым используемым командам.
Наиболее используемые команды
#Обновление ОС (по окончании обязательно перезагрузиться)
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
#Перезагрузка устройства
sudo reboot
#Выключение устройства
sudo shutdown -h now
#Узнать IP-адрес
hostname -I
#Вызвать меню настроек
sudo raspi-config
#Запустить графическую оболочку LXDE
startx
Установка и удаление программ
Наиболее простой способ установки - APT (Advanced Packaging Tool). Для установки какой-либо программы надо набрать следующую команду:
sudo apt-get install имя_программы
ОС получит данные о программе, выведет сообщение о том, сколько места та займёт на карте памяти и попросит подтверждения перед установкой. Если после имени программы добавить ключ -y, то установка пройдёт в "тихом" режиме, не ожидая подтверждения от пользователя.
Удаление программ аналогично установке:
sudo apt-get remove имя_программы
В этом случае тоже можно использовать ключ -y. Кроме того, ОС может выполнять автоматическое удаление "хвостов" в виде неиспользуемых пакетов и их зависимостей. Выполнять эти команды рекомендуется регулярно.
sudo apt-get autoclean
sudo apt-get autoremove
Питание
Питание Raspberry Pi Model B+ осуществляется через разъём micro-USB. Нюанс в том, что рекомендуемая сила - не менее 1,2А. В теории хватает и 0,5А, но без USB-устройств. То есть даже WiFi-адаптер не подключить. Следовательно, если использовать адаптер или powerbank, надо смотреть на выдаваемую ими силу тока. Но запитать от компьютера кабелем "USB to Micro-USB" не получится. Выход есть в виде такого кабеля:
Надо подключить его к GIPO: красный провод на 2-й контакт и чёрный - на 6-й (фото ниже).
Настройка WiFi
Для работы с WiFi я использую приложение wicd. Устанавливаем (нужен "кабельный" интернет)
sudo apt-get install -y wicd-curses
затем запускаем
sudo wicd-curses
Выбираем нужную сеть и настраиваем подключение (стрелка вправо). Важно не забыть поставить галочки на пунктах Use static IPs и Automatically connect to this network.
Поддержка кириллицы
Перво-наперво надо в настройках Raspberry Pi (пункт меню Internationalisation Options -> Change locale) выставить поддержку кодировок en_GD.UTF-8 и ru_RU.UTF-8. Далее вводим в терминале:
sudo apt-get install console-cyrillic
sudo dpkg-reconfigure -plow console-cyrillic
Откроется диалог настройки. В первом окне ничего не меняйте, дальше - по своему вкусу: клавиши переключения языков, кодировку (выбирайте UNICODE), шрифт и его размер.
Настройка звука
Перед тем, как что-то мудрить со звуком, убедитесь что у вас всё правильно подключено и громкость на телевизоре или колонках не на минимуме. Дело в том, что в новых версиях Raspbian звуковые драйвера уже включены и возможно у вас просто не на тот разъём поступает сигнал. Сделайте тест, как описано во третьем пункте. Если звука нет - настройте аудиовыход и повторите тест. Если же звука по-прежнему нет, установите драйвер.
-
Установка
Устанавливаем драйвер:
sudo apt-get install alsa-utils -y
sudo modprobe snd-bcm2835Теперь надо добавить драйвер в автозагрузку. Для этого открываем файл автозагрузки:
sudo nano /etc/modules
Добавляем в конец файла следующую строку:
snd-bcm2835
-
Выбор аудиовыхода
Дальше надо сказать системе на какой из разъёмов подавать звук. Для этого необходимо ввести следующую команду, где n номер разъёма: n=0 — автоматический режим, n=1 — наушники, n=2 — hdmi.
sudo amixer cset numid=3 n
-
Проверка звука
Перезагружаемся и проверяем звук:
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
Если вы используете hdmi, возможно, что звука нет. В таком случае открываем конфигурационный файл
sudo nano /boot/config.txt
И добавляем туда следующую строку:
hdmi_drive=2
Автологин
Можно сделать так, чтобы ОС загружалась без запроса логина и пароля, что иногда надоедает. Открываем в редакторе файл загрузки:
sudo nano /etc/inittab
Ищем там следующую строку, начинающуюся с 1:2345:respawn:/sbin/getty... и комментируем (ставим символ # в начале). Сразу под ней вставляем следующую строку:
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
Сохраняем, выходим.
Добавление программ в автозагрузку
Всё предельно просто: открываем для редактирования файл автозагрузки и добавляем в конце нужную команду. Если необходимо чтобы программа работала в фоновом режиме, добавляем в конце строки символ & (через пробел).
sudo nano /etc/profile
Добавление программ в автозагрузку LXDE
Все программы, запускаемые вместе с LXDE прописаны в двух файлах:
~/.config/lxsession/LXDE/autostart
/etc/xdg/lxsession/LXDE/autostart
Второй файл содержит список программ или команд, которые будут запущены в любом случае, независимо от того, какой пользователь зашёл в систему. Сам я работал только с ним, так как первого файла у меня не было. Для начала открываем файл в редакторе (можно и из LXDE):
sudo nano /etc/xdg/lxsession/LXDE/autostart
Каждую новую программу нужно добавлять с новой строки, с символом @ перед названием.
Пара полезных ссылок:
Подключение внешнего диска или флэшки
К Raspberry Pi можно без проблем подключить как внешний жесткий диск, так и флэшку. Правда, в случае с внешним диском надо понимать, что питания от Raspberry Pi ему не хватит и надо либо подключать через USB hub с отдельным питанием, либо использовать диск с дополнительным питанием. Что ещё приятнее, подключаемый диск может использовать любую из наиболее популярных файловых систем. Я, например, использую FAT32, так как мой настольный компьютер под Windows и мне так удобнее. Подключение происходит утилитой mount, но перед тем, как приступать к монтированию, создадим папку, куда именно будет монтироваться наш диск и зададим ей права на чтение и запись:
sudo mkdir /media/usb
sudo chown -R pi:pi /media/usb
Ручное подключение/отключение
Теперь, собственно, подключение (диск уже должен быть подключен к USB) в режиме чтения и записи:
sudo mount /dev/sda1 /media/usb -o uid=pi,gid=pi -t vfat
Последний ключ -t vfat указывает, что файловая система - FAT32. Для других файловых систем есть следующие варианты: EXT3 - ext3, EXT4 - ext4 и для NTFS - ntfs-3g. Правда, с NTFS есть такой нюанс, что стандартно эта файловая система не распознаётся и для работы с ней надо заранее установить специальное приложение:
sudo apt-get install ntfs-3g
Отключение устройства происходит следующей командой:
sudo umount /media/usb
Автоматическое подключение/отключение
Чтобы не заморачиваться подключением вручную каждый раз, можно сделать это автоматически при загрузке устройства. Прежде всего надо узнать UUID вашего диска. Для этого при подключенном диске набираем команду:
ls -l /dev/disk/by-uuid/
Появится список всех устройств вывода.
Нас интересует строка, заканчивающаяся на /sda. На примере выше UUID - 18A9-9943. Теперь открываем для редактирования файл:
sudo nano /etc/fstab
И добавляем там следующую строку, но со своим UUID и файловой системой (если она не FAT32):
UUID=18A9-9943 /media/usb vfat auto,users,rw,uid=pi,gid=pi 0 0
После перезагрузки диск подключится автоматически. Отключение делается, как и при ручном подключении.
Если что-то не получается или просто лень, можно установить специальное приложение:
sudo apt-get install usbmount
Приложение будет само автоматически подключать/отключать диски, но только в режиме чтения. Чтобы ещё и записывать на них, надо открыть файл настроек:
sudo nano /etc/usbmount/usbmount.conf
и заменить там строку
MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
на строку
MOUNTOPTIONS="rw,sync,noexec,nodev,noatime,nodiratime"
Автозагрузка веб-сайта на полный экран в LXDE
Очень полезная возможность, которую можно использовать в различных заведениях для отображения всевозможных расписаний, меню или рекламной информации. Суть в том, что у браузера Chromium есть специальный режим kiosk, в котором сайт отображается во весь экран и безо всяких панелей и баров.
Для начала устанавливаем браузер:
sudo apt-get install chromium-browser -y
Также рекомендуется установить пакет шрифтов:
sudo apt-get install ttf-mscorefonts-installer -y
Далее открываем файл автозагрузки (подробнее это было описано выше) и делаем там следующие изменения:
- отключаем скринсейвер, для этого надо закомментировать (поставить символ # в начале строки) следующую строку:
@xscreensaver -no-splash
- отключаем выключение экрана при бездействии:
@xset s off
@xset -dpms
@xset s noblank - отключаем сообщение об ошибке при неправильном выключении устройства:
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
- собственно, запускаем браузер в режиме kiosk с отключением сообщений об ошибках и с нужной нам страницей:
@chromium --noerrdialogs --kiosk http://newkamikaze.com
Если нужно открыть сайт в режиме инкогнито, то после адреса сайта через пробел надо добавить --incognito
Системные мониторы
Conky
Есть весьма интересная программа, которая может отображать такую системную информацию, как загруженность процессора, использование памяти, температуру устройства, параметры WiFi-подключения и т.д. Называется программа Conky и работает только под LXDE. Устанавливается программа так:
sudo apt-get install conky-std
Дальше можно настроить внешний вид и содержание окна программы. Для этого надо открыть файл~/.conkyrc (через Leafpad или с терминала) и изменить настройки под себя.
Можно так же прописать программу в автозагрузку. Для этого надо добавить следующую строку в файл автозагрузки (подробнее это было описано выше):
@conky
htop
Программой несколько иного рода является htop. Это в первую очередь менеджер процессов, хотя и некоторую системную информацию он тоже показывает. Работает он с терминала. Для установки htop надо набрать:
sudo apt-get install htop -y
Ну а запуск осуществляется следующей командой:
htop
Работа с Dropbox
Облачные хранилища данных - вещь весьма удобная. Вдвойне удобно было бы "подружить" с ними Raspberry Pi. В данном случае "дружить" будем с Dropbox`ом. Для этого есть два приложения: Dropbox-Uploader и Drop2PI. Я остановил свой выбор на первом из них. В любом случае, независимо от вашего выбора, перед началом установки необходимо создать приложение на странице разработчиков. Там вы укажете какие права получит приложение и получите уникальный и секретный ключи (App key и App secret). Теперь установим Dropbox-Uploader и сразу же запустим его для первоначальной настройки:
git clone https://github.com/andreafabrizi/Dropbox-Uploader/
cd Dropbox-Uploader
chmod +x dropbox_uploader.sh
./dropbox_uploader.sh
Приложение спросит ключи приложения, права, а так же выдаст ссылку, по которой надо будет зайти в браузере и подтвердить права. После этого приложение готово к использованию. Обязательно ознакомьтесь со списком команд и ключей. Для удобства также можно создать короткую ссылку на приложение:
sudo ln -s ~/Dropbox-Uploader/dropbox_uploader.sh /usr/local/bin/dropbox
Теперь приложение вызывается командой dropbox. Ниже пара примеров команд для скачивания файла и папки в текущую директорию:
dropbox download python.pdf
dropbox download "/Favorite music/Justin Bieber/" "god/"
Знатно накомментили:
Звуковой драйвер не устанавливается, пишет, что уже есть.
После выполнения команды: -"sudo amixer cset numid=3 1" получаю ответ: "amixer: Control default open error: No such file or directory"
Звука так и нет... (т.е. он раньше был, но без видимых причин исчез)
Как быть?
А насколько это актуально для Рапсберри Pi 3?
Там же уже вай-фай модуль стоит.
sudo nano /etc/ustmount/usbmount.conf
поправь путь на /etc/usbmount/usbmount.conf
Если надо сделать автозапускать без необходимости логиниться, то надо редактировать файл /etc/rc.local
sudo nano /etc/rc.local
Когда что требуется - находишь, используешь, забываешь. Потом часто повторно приходится копать в И-нете. Я Вас запомню. :))