Мастерская

Raspberry Pi — как много в этом слове для уха гикова слилось

⇣ Содержание

#Базовая настройка

Так как Raspberry Pi умеет загружаться только с SD-карты, то основная ОС будет находиться именно на ней. Нам нужны устройство для чтения карт памяти и собственно карточка объёмом от 4 Гбайт, желательно быстрая. Также нам понадобится внешний жёсткий диск с USB-интерфейсом, где будут храниться ваши файлы. В качестве примера мы рассмотрим подключение HDD с одним разделом NTFS. А для удобства подключения к Сети мы воспользуемся адаптером Wi-Fi. Список совместимых модулей находится здесь, а полный список периферийного оборудования, которое можно подключить к Raspberry Pi, имеется тут. Крайне рекомендуется прикупить USB-хаб с отдельным питанием, так как с двумя собственными портами на плате особо не разгуляешься. От него можно запитать и саму плату, и внешний накопитель, и с портами проблем не будет. Про необходимость USB-клавиатуры и подходящего дисплея вы и сами догадались. Для сетевой деятельности понадобится внешний IP-адрес от провайдера (пусть даже динамический) и роутер, который поддерживает привязку IP-адреса к MAC, переадресацию портов для локальных клиентов, UPnP и работу с DDNS. В общем, подойдёт чуть ли не любой домашний маршрутизатор.

Образ системы можно скачать на официальном сайте. На выбор даются сразу несколько дистрибутивов. Для самостоятельного знакомства с Raspberry Pi проще всего воспользоваться набором New Out of Box Software (NOOBS), в который входит медиацентр XBMC. Не менее прекрасен дистрибутив с удивительным для русского уха названием Pidora. Нам же для минимальной конфигурации достаточно образа Raspbian Wheezy. Запись образа на карточку рекомендуется делать в программе Win32 Disk Imager. Разобраться с ней нетрудно — главное, не перепутать букву диска и выбрать именно SD-карту, а не какой-нибудь другой накопитель. На запись образа уйдёт минут пять-десять. Вставляем готовую карточку в Raspberry Pi, подключаем клавиатуру и монитор, подцепляем питание к порту micro-USB. Мини-ПК не имеет отдельной кнопки включения, поэтому при наличии питания сразу же пытается загрузиться с SD-карты. На загрузку уходит менее минуты. По умолчанию логин pi, а пароль raspberrypi.

     
     

При первом включении сразу же запускается небольшая утилита, которая поможет настроить базовые параметры ОС. Вот в ней прямо по пунктам и пойдём. Во-первых, надо «развернуть» корневую ФС на всю SD-карту — Expand Filesystem. Во-вторых, поменять пароль на вход в ОС (Change User Password) — тут надо будет дважды ввести новый пароль. В третьем пункте нам предлагают включить загрузку рабочего стола, но для нас эта опция не обязательна. Четвёртый пункт по большому счёту тоже опционален — здесь настраивается локализация системы. Здесь надо обновить имеющиеся локали (Change Locale), добавив к английской русскую ru_RU.UTF8 и выбрав её же в качестве основной. Со сменой часового пояса (Change Timezone) вы и сами справитесь. В третьем подпункте меняются раскладки клавиатуры и способ переключения между ними. Тут надо выбрать вашу модель клавиатуры, а если в списке её нет, то указать Generic 105-key. Далее придётся выбрать русскую раскладку (Other → Russian → Russian) и указать сочетание клавиш для переключения языков ввода (мы выбрали Alt+Shift).

     
     

От настройки дополнительных клавиш лучше отказаться, выбрав везде первый пункт в списках (см. скриншоты). В самом конце мастер настройки предложит задействовать сочетания Ctrl+Alt+Backspace для быстрого завершения работы графического сервера. Если вы решили включить русскую локализацию, то ниже будут даны дополнительные инструкции. А пока возвращаемся к базовым настройкам и переходим к пункту Overclock, где можно разогнать процессор Raspberry Pi. Этот этап совсем необязателен, однако поднятие частоты до 800 МГц должно быть безболезненным для системы, хотя нас и предупреждают о возможных поломках. Дальнейший разгон не очень рекомендуется, да и заставляет задуматься о дополнительном охлаждении процессора.

     
     

Видеопамять выделяется из основной памяти, поэтому, если вы не используете графическую оболочку, в разделе Advanced Options → Memory Split можно уменьшить объём выделяемой видеопамяти. В том же разделе обязательно надо включить SSH-сервер, к которому мы будем в дальнейшем подключаться, — Advanced Options → SSH → Enable. Всё, теперь можно выходить из утилиты, выбрав кнопку Finish. От перезагрузки следует отказаться, так как нам надо настроить кое-что ещё. Если вы используете проводное подключение к Сети, то этот абзац можно пропустить — Raspberry Pi уже должен был получить настройки по DHCP от роутера и иметь доступ в Интернет. Теперь к нашему мини-компьютеру пора подключить внешний жёсткий диск и адаптер Wi-Fi. Первым делом проверяем наличие обоих в системе, а потом прописываем настройки Wi-Fi.

lsusb
sudo nano /etc/network/interfaces

В файле /etc/network/interfaces надо внести следующие изменения для интерфейса wlan0:

allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "имя_сети"
wpa-psk "пароль_сети"

Предполагается, что подключаться вы будете только к одной домашней беспроводной сети. По-хорошему, прописывать параметры SSID надо не здесь, но для нашего случая это излишне. В конце файла добавьте пустую строку. После внесения изменений и сохранения файла (Ctrl+X, Y, Enter) надо перезапустить сетевые службы и проверить подключение к Сети, например пропинговав любой сайт или выполнив команду ifconfig. Теперь можно обновить список ПО, установить свежие апдейты и инсталлировать необходимые пакеты. Fuse с ntfs-3g нужны для работы с NTFS, а console-cyrillic — для русификации консоли. При установке последнего пакета в мастере настройки достаточно выбрать сочетание клавиш для переключения раскладки (Alt+Shift, см. выше), а остальные параметры оставить по умолчанию.

sudo service networking restart
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fuse ntfs-3g console-cyrillic

Теперь займёмся подключением жёсткого диска. Для начала в каталоге /media создадим папку data, куда будет монтироваться раздел с вашими файлами. Потом меняем владельца этой папки и ищем уникальный идентификатор UUID нужного нам раздела.

sudo mkdir /media/data
sudo chown pi /media/data
sudo blkid
sudo nano /etc/fstab

В /etc/fstab необходимо добавить вот такую строчку, подставив UUID вашего раздела и не забыв про пустую строку в конце файла:

UUID=XXXXXXXXXXXXXXXX /media/data ntfs-3g users,defaults 0 0

Сохраняем файлик (Ctrl+X, Y, Enter), монтируем раздел и на всякий случай просматриваем список каталогов в корневой папке. Если вы хотите подключить сразу несколько разделов на внешнем накопителе, то для каждого из них придётся повторить всю процедуру от создания папки в /media до прописывания параметров в /etc/fstab. Ну вроде бы ничего не забыли. Пора перезагрузить Raspberry Pi и отключить клавиатуру с монитором, которые нам больше не понадобятся, так как к устройству мы будем подключаться по SSH.

sudo mount /media/data
ls /media/data
sudo shutdown -r now

В настройках роутера надо присвоить нашему Raspberry Pi статический IP-адрес и прописать параметры какого-нибудь провайдера DDNS. Подробнее процесс регистрации на примере DynDNS рассматривался в этой статье. В качестве SSH-клиента мы будем использовать старый добрый PuTTY. В строке адреса указываем pi@IP_адрес_Raspberry_Pi, а на вкладке Windows → Translation выбираем кодировку UTF-8. Профиль подключения в разделе Session сохраняем для удобства под любым именем и нажимаем Open. При первом подключении на запрос о добавлении ключей отвечаем положительно. Всё, на этом базовая настройка завершена, и на Raspberry Pi можно устанавливать любой подходящий софт.

   
 

А что именно? В «Мастерской» мы уже рассматривали создание собственного VPN-сервера для защиты трафика и обхода ограничений провайдеров, установку личного «облака»  OwnCloud, развёртывание реаниматора с загрузкой по сети, использование одного из аналогов Dropbox и даже поднятие сервера для безопасного обмена файлами. Всё это и многое другое не так уж сложно сделать с помощью Raspberry Pi, а ведь мы сейчас рассматриваем его только в качестве экономичного микрокомпьютера с Linux на борту. Что уж говорить про множество других, более «железных» проектов, которые используют все аппаратные возможности этой замечательной платформы. Впрочем, не будем отвлекаться от поставленной задачи.

#Настройка BitTorrent Sync

Про BitTorrent Sync мы уже подробно рассказывали нашим читателям. Напомним вкратце, что это система для удобной синхронизации файлов и папок между несколькими удалёнными компьютерами посредством протокола BitTorrent. Синхронизация происходит в режиме P2P (peer-to-peer), весь трафик надёжно шифруется, а для работы не требуется наличие выделенного сервера. В общем, обмениваться данными с помощью BitTorrent Sync просто, быстро и безопасно. К тому же разработчики активно создают клиенты под самые различные платформы. Кроме вездесущих Windows, Mac OS X и настольных вариантов Linux, имеются клиенты для Android, FreeBSD и различные сборки Linux под архитектуры, отличные от x86/x64, в том числе и для процессоров ARM, использующихся в Raspberry Pi. Они обещают в скором времени выпустить программу под iOS, а вот про Windows Phone пока ничего не слышно.

Заметьте, BitTorrent Sync — это именно сервис синхронизации файлов без промежуточного закачивания данных на удалённый сервер, как это происходит в Dropbox и его аналогах. Поэтому если никого из клиентов, обладающих нужными вам файлами, нет в Сети, то получить их вы никак не сможете. Так что Raspberry Pi вполне может использоваться в качестве такого клиента, постоянно находящегося онлайн. Да, BitTorrent Sync нельзя назвать полноценной заменой Dropbox и у него до сих пор имеются некоторые проблемы в работе. Тем не менее даже бета-версией вполне можно пользоваться. Ссылку на ARM-сборку можно найти на сайте программы. Мы создадим для неё отдельную папку в домашней директории, скачаем архив с клиентом, распакуем его, удалим архив, получим конфигурационный файл и отредактируем его.

mkdir /home/pi/btsync
cd /home/pi/btsync
wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_arm.tar.gz
tar -xvf btsync_arm.tar.gz 
rm ./btsync_arm.tar.gz
./btsync --dump-sample-config > btsync.conf
nano ./btsync.conf

В этом файле надо отредактировать несколько строк. Во-первых, поменять путь до папки .sync (в ней хранится информация о синхронизируемых файлах) в storage_path на тот, где находится клиент BitTorrent Sync. Во-вторых, поменять логин и пароль по умолчанию с admin и password на что-нибудь более серьёзное. В-третьих, можно поменять порт, на котором будет доступен веб-интерфейс с 8888 на любой другой, но делать это совсем необязательно.

"storage_path" : "/home/pi/btsync/.sync",
"listen" : "0.0.0.0:8888",
"login" : "username",
"password" : "password"

После внесения изменений сохраняем файл (Ctrl+X, Y, Enter) и запускаем клиент.

/home/pi/btsync/btsync --config /home/pi/btsync/btsync.conf

Веб-интерфейс доступен по адресу http://ip_адрес_raspberry_pi:8888/. Дальше всё просто — кликаем по Add Folder, выбираем папку на внешнем жёстком диске (/media/data/имя_папки), которую будем синхронизировать. Указываем секретный ключ или генерируем новый. Тут же можно сгенерировать QR-код для быстрого добавления папки в мобильном клиенте BitTorrent Sync. Остальные настройки совпадают с теми, что есть в настольных клиентах. Более подробную информацию о работе и настройках BitTorrent Sync ищите в официальном руководстве.

 
 

Что осталось? Как минимум не помешает пробросить порт веб-сервера на роутере, чтобы всегда иметь доступ к клиенту BitTorrent Sync, и добавить запуск клиента в автозагрузку. О пробросе должно быть сказано в инструкции роутера, а автозапуск мы сделаем самым простым способом — через планировщик заданий. Выполняем следующую команду:

crontab -e

И добавляем в конец файла команду для запуска клиента, предварив её директивой @reboot, которая указывает, что данную команду надо исполнять при перезагрузке. Не забудьте сохранить файл (Ctrl+X, Y, Enter).

@reboot /home/pi/btsync/btsync --config /home/pi/btsync/btsync.conf

Для проверки можно сразу же перезапустить Raspberry Pi и попробовать зайти в веб-интерфейс BitTorrent Sync как локально, так и удалённо, через http://ddns_имя_роутера:8888/. Вот и всё! Не забывайте периодически обновлять клиент.

#Заключение

Выше мы рассмотрели довольно простой пример использования Raspberry Pi в качестве энергоэкономичного сервера с Linux. Любителям самостоятельно повозиться с электроникой лучше воспользоваться специализированным дистрибутивом Adafruit Raspberry Pi Educational Linux Distro. Впрочем, почти каждый найдёт для себя что-нибудь интересное в работе с Raspberry Pi. В целом стоит признать, что проект по созданию дешёвого мини-компьютера для обучения удался на славу. Или вы искренне верите, что все 1,5 миллиона устройств раскупили школьники и студенты? Нет, конечно, нет. Raspberry Pi — это довольно удобная платформа для домашних экспериментов: простая, недорогая и лёгкая в освоении. Есть даже «теория заговора», что за всем этим на самом деле стоит ARM Ltd., которой хочется переманить тех, кто увлекается электроникой, на свою сторону. Вряд ли это так, но мы всё-таки рекомендуем тем, кто хочет хотя бы просто попробовать свои силы в это новой для себя и очень интересной области, начать знакомство с ней именно с Raspberry Pi. Удачных вам экспериментов!

 
← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Материалы по теме
⇣ Комментарии
window-new
Soft
Hard
Тренды 🔥