Прелюдия
Я давно следил на ХабраХабр за проектом Raspberry Pi и твердо решил заполучить свой мини-компьютер. Когда начался предзаказ, я воспользовался им практически сразу, однако только 17 июня 2012 года мне на Email пришло сообщение от RSComponents.Com о возможности заказа моего экземпляра Raspberry Pi. Итого прошло около месяца с момента предзаказа.
В этот же день я создал заказ (кстати, в то время уже можно было заказать «официально» в Российскую Федерацию) и стал ждать свою «малину». Информационное письмо обещало отгрузку в течение максимум 6 недель, но в этот срок я так и не получил свою плату. Во время звонка в московское представительство RS, менеджер фирма дал понять, что поставки скоро будут, но когда — неизвестно.
17 августа мне на email пришло сообщение от сотрудницы Московского RS, что моя плата доставлена в офис и ее можно забирать (т.к. заказать из RS с доставкой на дом нельзя, потому что DHL не доставляет посылки частным лицам). Собственно говоря, в этот же день я и получил свой компьютер Raspberry Pi!
Весь необходимый набор комплектующих был куплен мною заранее. Я использовал:
- 4Gb Class6 SD-карту от Transcend
- NoName usb-зарядник на 1А с MicroUSB кабелем
- HDMI кабель Hama
- Ethernet-кабель
В качестве клавиатуры и мыши я использовал свой рабочий USB-Reciever Unifying от Logitech. Подключил Raspberry к монитору с помощью HDMI-DVI кабеля.
Действо первое. Установка ОС.
В качестве ОС для Raspberry была выбрана Raspbian (как я понял из форумов, практически все сборки сделаны на основе Debian, поэтому выбор, на мой неискушенный взгляд, не особо богат). Данная ОС широко описана в интернете, а также оптимизирована специально для RPi.
Образ ОС можно скачать с официального сайта: 2012-07-15-wheezy-raspbian.zip. Образ заархивирован в ZIP, сам имеет расширение IMG. Его необходимо разархивировать.
Также, потребуется утилита Win32DiskImager, запустить которую необходимо с правами администратора.
Устанавливаем вашу SD карту в кард-ридер, смотрим в Проводнике, какую букву она получила в системе (чтобы ненароком не затереть данные на другом носителе).
В программе Win32DiskImager выбираем скачанный ранее образ Raspbian, выбираем нужную букву носителя и жмем Write. На предложенное предостережение отвечаем “Yes”.
Пойдет процесс заливки ОС на карту и разбиения ее на разделы:
Процесс закончится сообщением об успехе:
Теперь необходимо немного подредактировать файл config.txt в корне карты памяти – это конфигурационный файл системы для Raspberry Pi. Обратите внимание, что приведенные мною настройки актуальны для ЖК мониторов с расширением 1920*1080.
Следует раскомментировать параметр disable_overscan=1 (если Вы не планируете использовать RCA выход).
Советую также установить фиксированное расширение, для этого раскомметруйте строки hdmi_group и hdmi_mode. Значение параметра hdmi_mode следует изменить в соответствии с таблицей, которая приведена тут (также, по этой ссылке приведены другие параметры, которые, возможно, будут Вам полезны). Например, для монитора с расширением 1920*1080 следует написать hdmi_mode=16.
Не забываем сохранить изменения, отсоединяем SD-карту и вставляем ее в Raspberry Pi.
Подключаем к плате питание и видим на мониторе процесс загрузки, который нас (во всяком случае — пока) мало интересует. Наблюдаем радостное мигание лампочек Raspberry Pi:
При первой загрузке автоматически будет запущена программа настройки системы raspi_config:
- Выполняем команду expand_rootfs, которая расширит root раздел на всю SD-карту.
- Входим в раздел configure_keyboard и устанавливаем наиболее подходящий тип клавиатуры. Я выбрал Logitech Cordless Desktop
- Затем, входим в раздел change_pass устанавливаем новый пароль для пользователя pi (обратите внимание, что вводимые символы не отображаются вообще, даже в виде звездочек!).
- Устанавливаем дополнительные локали с помощью пункта change_locale (я не стал этого делать и оставил единственную локаль по умолчанию — en_GB UTF8).
- Устанавливаем часовой пояс (set_timezone). Например, если Вы живете в Москве, необходимо найти пункт Europe, а в нем — Moscow
- Memory_split устанавливаем в соотвествии с собственным желанием, рекомендую отвести под video – 32Mb, если планируете пользоваться графическим интерфейсом.
- Обязательно активируем ssh!
- Если хотим, чтобы при загрузке Raspbian автоматически запускалась графическая среда – активируем опцию boot_behaviour.
В конце нажимаем [CTRL]+[F] и выбираем пункт Finish, соглашаясь на перезагрузку устройства.
Когда перезагрузка будет завершена, Вы увидите приглашение на ввод имени пользователя и пароля. Имя пользователя — pi, пароль Вы установили во время настройки системы Raspbian.
На этом установка и первичная настройка системы завершена!
Данная часть будет интересна тем, кто особо не знаком с Linux (как был и я).
Действо второе. Установка вебсервера и настройка Samba.
Не забывайте, что если Ваш Raspberry подключен в сеть, то можно использовать SSH доступ, что во много раз удобнее.
Установка Web-сервера:
Устанавливаем MySQL:
sudo apt-get install mysql-server mysql-client
Когда запросит установить пароль для root – укажите любой пароль, который Вы запомните.
Устанавливаем Lighttpd:
sudo apt-get install lighttpd
С этого момента Rpi будет откликаться тестовой страницей, если набрать ее IP адрес в браузере любого компьютера в сети!
Устанавливаем PHP5:
sudo apt-get install php5-cgi
Теперь необходимо активировать PHP в настройках сервера. Открываем файл в редакторе nano:
sudo nano /etc/lighttpd/lighttpd.conf
Пункт server_modules должен выглядеть вот так:
server.modules = (
"mod_access",
"mod_fastcgi",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
)
А в самый конец файла добавьте вот это:
fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket"
)))
Сохраняем, нажав [CTRL]+[X], [Y] и [Enter].
Осталось отредактировать файл конфигурации PHP5:
sudo nano /etc/php5/cgi/php.ini
Находим и раскоментируем (удаляем символ ";") строку cgi.fix_pathinfo = 1. Сохраняем файл.
После всего проделанного, можно перезагрузить Raspberry, выполнив команду:
sudo reboot
Установка и настройка Samba
Установим Samba:
sudo apt-get install samba samba-common-bin
Так как моя Rpi находится в домашней сети, я решил не устанавливать пароль на доступ к папкам, а просто настроил публичный шаринг для всей сети.
Для этого открываем файл smb.conf:
sudo nano /etc/samba/smb.conf
Вместо всего имеющегося содержимого пишем:
[global]
workgroup = WORKGROUP
guest ok = yes
netbios name = Raspberry
security = share
browseable = yes
[www]
path = /var/www
writeable = yes
browseable = yes
Сохраняем. Перезапускаем Samba:
sudo /etc/init.d/samba restart
С этого момента в вашей сети появилось новое устройство RASPBERRY, которое имеет папку www.
В ней Вы можете создать любые файлы, которые будут доступны при доступе к Raspberry через браузер по ее IP адресу.
Кстати! Гораздо удобнее управлять шарингом файлов и папок с помощь программы SWAT, которая предоставляет веб-интерфейс.
Установить ее очень просто:
sudo apt-get install swat
Панель управления SWAT будет расположена по адресу: http://[IP-устройства]:901
Действо третье. Монтирование носителя файлов.
В качестве носителя я решил использовать обычную флэшку, которую подключил в один из USB портов Raspberry Pi. При желании можно подключить к Rpi и внешний жесткий диск, однако надо будет организовать для него отдельное питание, так как USB порты платы на такие нагрузки не рассчитаны и, в лучшем случае, жесткий диск просто не «заведется». Мне же объема флэшки (16Гб) должно вполне хватить.
Подключаем носитель и выполняем команду:
sudo fdisk -l
Команда покажет все устройства, которые подключены к нашему устройству. Ищем в списке нужное устройство по его объему. Например, у меня нужная строка выглядит вот так:
Disk /dev/sda: 16.0 GB, 16013852672 bytes
Искомый путь к устройству — /dev/sda, запомните его!
Запускаем fdisk для форматирования носителя:
sudo fdisk /dev/sda
Вначале удаляем существующие разделы командой d (выбираем нужные разделы цифрами), затем создаем новый с помощью команды n (все значения принимаем по умолчанию), сохраняем проделанную работу с помощью команды w.
Создаем файловую систему ext2 на носителе:
sudo mkfs -t ext2 /dev/sda1
Монтируем:
sudo mount -t ext2 /dev/sda1
Теперь необходимо обеспечить автоматическое монтирование носителя при каждой загрузке Raspbian. Для этого создаем папку:
sudo mkdir /mnt/flash
Отрываем файл настроек:
sudo nano /etc/fstab
и добавляем в него строку:
/dev/sda1 /mnt/flash ext2 defaults 0 0
Сохраняем и перезагружаем устройство. При загрузке носитель должен автоматически примонтироваться, что можно проверить командой:
df
Она выведет список примонтированных устройств с указанием точек их монтирования.
Кстати! Рекомендую установить также файловый менеджер Midnight Commander для работы с файлами через консоль:
sudo apt-get install mc
Если Вы пользуетесь Putty для работы с SSH, то для корректной работы MC Вам необходимо сделать настройку. В настройках Putty установите значение Remote character set в разделе Translation на «UTF-8»:
Действо четвертое. Установка Transmission и настройка закачек
Мы подобрались к цели данного топика — установке и настройке Torrent-клиента на нашем устройстве. Я остановил свой выбор на Transmission.
Устанавливаем Transmission:
sudo apt-get install transmission-daemon
Создаем директорию для закачек, для неоконченных закачек и для торрентов на подключенном носителе и даем права на запись:
sudo mkdir /mnt/flash/torrent
sudo mkdir /mnt/flash/torrentfiles
sudo mkdir /mnt/flash/incomplete
sudo chmod 777 /mnt/flash/torrent
sudo chmod 777 /mnt/flash/torrentfiles
sudo chmod 777 /mnt/flash/incomplete
Редактируем настройки:
sudo nano /etc/transmission-daemon/settings.json
Здесь необходимо поменять на указанные значения следующие параметры:
"cache-size-mb": 2;
"download-dir": "/mnt/flash/torrent",
"incomplete-dir": "/mnt/flash/incomplete",
"preallocation": 2,
"rpc-password": "любой удобный вам пароль (при перезапуске демона будет зашифрован)",
"rpc-username": "pi",
"rpc-whitelist-enabled": false,
"speed-limit-down": 3000,
"speed-limit-up": 1000,
К сожалению на высоких скоростях скачивания и отдачи Raspberry начинает очень сильно тормозить, поэтому экспериментальным путем были выявлены те ограничения, которые Вы видите в настройках выше.
Перезапускаем Transmission командой:
sudo /etc/ini.d/transmission-daemon restart
С этого момента у Вас установлен рабочий Torrent-клиент, веб-панель управления которым доступна по адресу: http://[ip-устройства]:9091, логин pi, пароль Вы установили в конфигурационном файле.
Не забудьте также добавить папку /mnt/flast/torrent в сетевую шару через Samba, чтобы скачанные файлы можно было смотреть на других устройствах, например, на Вашем медиаплеере:
Стоит отметить, что с отдачей файлов по сети Raspberry Pi, на мой взгляд, справляется отлично — при копировании файла с Raspberry Pi на компьютер, максимальная скорость достигла 7Мб/сек, что практически соответствует максимальной скорости чтения для использованной флэшки.
Эпилог
На этом моя статья заканчивается. Raspberry Pi обеспечила огромный толчок в моем изучении многих аспектов работы с OC Linux. В планах есть еще много задумок, касающихся Raspberry Pi, которые я постараюсь реализовать и описать в моих дальнейших статьях.
Буду рад замечаниям об ошибках от более опытных пользователей!
Автор: artyums