Долой унылые речи о том, что это мой первый пост и все такое. Пожалуй лучше я расскажу о том, как выжать все соки из маленькой малютки под названием Raspberry PI (далее RPI), ценой $ 35. Я уверен на 146,6% что здесь уже были посты подобного рода, и этот пост не претендует на твердую пять. Скорее это просто вступительное слово о том: «Как я занял себя делом на пару унылых вечеров». Собственно мы получим в итоге Raspberry PI который можно использовать:
- как домашний web-сервер (если ты какой-нибудь PHP-разработчик, и тебе не чуждо веселье);
- как мультимедийную приставку с популярным XBMC Media Center (или супер-пупер-крутую-шняжку к телевизору за скромные 1800$);
- и как ночную торрент качалку, с web-интерфейсом (для ленивых);
Для тех кому стало интересно прошу под кат (Внимание! Трафик).
Подготовка
Итак, что для всего этого понадобится:
- Raspberry PI model B
- SD карта на 8GB, скорость должна быть высокой. (Подойдут 6 и 10 класс)
- USB Flash карта, для того, что бы не забивать и без того малую память SD карты фильмами которые ты захочешь посмотреть
- HDMI или SCART-RCA кабель
- Блок питания, подойдет любой мини-USB зарядник с выходом 5 В и током до 2А, с MicroUSB выходом или MicroUSB переходник для подключения к компьютеру
- Немного свободного времени
- Прямые руки (во всяком случае мне они точно понадобились)
Так же нам понадобятся некоторые программы, PUTTY, WinSCP, XMing. Итак, нам необходимо что бы все что мы задумали работало без выключения/перезагрузки RPI, следовательно сборки типа OpenELEC, RaspBMC, XBian можно исключить. Нам нужно что бы XBMC был «внутри» нашей ОС, как плеер, так что мы сделаем что-то подобное. Мы будем использовать Raspbian. Скачать можно с оф. сайта
Дальше все просто. Разархивируем скачанное, подключаем SD карту к компьютеру, далее нам понадобится программа Win32DiskImager. Устанавливаем, запускаем. Указываем путь к .img файлу с ОС на борту, далее в поле «Device» выбираем из списка носителей нашу SD карту и нажимаем «Write». После в появившемся диалоговом окне выбираем «Yes» и готовимся к первому запуску RPI.
Для работы RPI нам нужен телевизор с HDMI выходом, но на крайний случай можно обойтись и обычным. Для этого нам понадобится вместо HDMI кабеля SCART-RCA кабель и обычные USB колонки со своим питанием! Думаю понятно что и куда нужно втыкать. Если все прошло как-по-маслу, мы увидим окно с настройками нашей ОС.
— Expand filesystem — Расширить основной раздел на всю SD карту.
— Change User Password — Установка пароля для пользователя «pi» (по умолчанию пароль «raspberry»). Пароль нужно ввести два раза!
— Enable Boot to Desktop — Загружать/не загружать графический интерфейс при запуске. Отключаем, т.к. нам он не нужен, а включить можно командой startx. После выбора есть еще 2 пункта: первая строка — загружать, вторая строка — не загружать (есть ещё третья строка, но в данной статье она нам не интересна).
— Internationalisation Options — Выбор месторасположения и языка, есть 3 пункта:
- Change Locale — Выбор языка, выбираем «ru_RU.UTF-8 UTF-8».
- Change Timezone — Выбор часового пояса, выбираем свой.
- Change Keyboard Layout — Настройки клавиатуры. Оставляем все как есть.
— Enable Camera — Включить поддержку камеры. Нам это не нужно, не сегодня точно.
— Add to Rastrack — Регистрация устройства в общей базе. Пропускаем.
— Overclock — Разгон процессора. По умолчанию установлена частота 700МГц, можно повысить до 1000МГц. Raspberry Pi теперь можно официально разогнать до 1 ГГц и не потерять гарантию (клик!). Ставим 1000МГц, это даст нам производительности при работе с XBMC.
— Advanced Options — Дополнительные настройки. Есть след. пункты:
- Overscan — Если у вас по краю изображения имеется широкая чёрная полоса, то необходимо выключить этот режим.
- Hostname — Сетевое имя RPI. Оставляем по-умолчанию.
- Memoy Split — Выделение видеопамяти для работы графического процессора. Ставим 128.
- SSH — Доступ по SSH. Включаем, т.к. далее все будем настраивать по SSH. У меня появились некоторые ошибки.
Initial ssh key generation still running. Please wait and try again.
Лечится простыми действиями после перезагрузки:sudo rm /var/log/regen_ssh_keys.logsudo rm /etc/ssh/ssh_host*sudo ssh-keygen -A
- Update — Обновление ОС. Для этого необходим доступ в интернет.
- About raspi-config — Пропускаем, не интересно.
Теперь нажимаем TAB, выбираем FINISH.
После перезагрузки вводим логин pi и пароль который вы сделали (по умолчанию raspberry). Рекомендую сразу поменять рутовый пароль:
sudo passwd root
Настройка доступа по SSH к файловой системе RPI (из Windows)
Первым делом скачиваем WinSCP. Устанавливаем, настраиваем.
В поле host name вводим ip адрес RPI, у меня 192.168.1.100 (узнать можно с помощью Advanced IP Scaner, либо через роутер, думаю не стоит подробно объяснять как это сделать). В поле user name и password указываем данные для авторизации. Лучше всего пользоваться root'ом, далее Save. Далее все просто, указываем название, жмем чекбокс и OK. Все, теперь мы готовы приступить к следующему шагу.
Xming: X-Server для Windows
Собственно след. шагом будет установка X-Ming. Он нам нужен скорее для мониторинга, ну и это облегчит нам жизнь в будущем, так как мы поставим Conky для мониторинга и MySqlWorkbench для администрирования БД(но это скорее просто прихоть) на RPI. Тем кому это не нужно, могут смело идти к следующему шагу.
Скачиваем, устанавливаем. Параметры установки:
галка Non US keyboard Support
галка XLaunnch wizard
галка Run Unility
Normal PuTTY Link SSH client
В свойствах ярлыка XMing прописываем путь_до_программы\Xming.exe :10 -clipboard -multiwindow
После этого врубаем и можно смело подключаться к RPI посредством SSH, главное напомнить вашему SSH клиенту использовать X-11 Forwarding.
В PuTTY заходим в Connections -> SSH -> X11 -> Включаем X11 Forwarding
X display location — localhost:10.0
Remote X11 authentification protocol — XDM-Authorization-1
Затем сами настройки сессии (Sessions)
HostName (or IP address) — 192.168.1.100 (ваш ip RPI) port 22
Connection type — SSH -> Жмем Save и подключаемся. Запускаем терминал и…
pi@raspberrypi ~ $ lxterminal&
[1] 2997
pi@raspberrypi ~ $
Установка XBMC на Raspberry Pi под Raspbian
Все приготовления закончены и я думаю мы подошли к главному. Лирическое отступление. До того как я решил сделать так как мы сделаем, я ставил себе и OpenELEC и RaspBMC. Мне это не подошло, потому что приходилось перезагружать RPI что бы запустить или Raspbian или XBMC (В случае с OpenELEC), а с RaspBMC я не смог даже близко сделать что то подобное. Хотя может и найдутся умельцы которые скажут что я дурак, и все такое. Идем дальше. Описание сего процесса не моё, нашлись умельцы которые изобрели колесо за нас, я просто применил на практике. По порядку:
cd /etc/apt/sources.list.d/
deb http://ift.tt/1nMZ1Rp wheezy contrib
CTRL + X -> Y -> Enter
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED
sudo apt-get update
sudo apt-get install xbmc
Добавляем пользователя из под которого планируется запускать XBMC в следующие группы (audio video input dialout plugdev tty) командой:
sudo usermod -a -G имя_группы пользователь
Затем, меняем настройки группы input командой:
sudo nano /etc/udev/rules.d/99-input.rules
В файле должно быть:
SUBSYSTEM=="input", GROUP="input", MODE="0660"
KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"
Запускать XBMC командой:
xbmc-standalone
Дождаться загрузки и profit!
Это уже настроенный XBMC с уже установленными плагинами, список я приведу ниже.
Если необходимо сделать Автостарт XBMC то нужно редактировать /etc/default/xbmc и изменить ENABLED to 1:
ENABLED=1
Плагины которые стоят у меня:
— repository.superrepo.org.frodo.al — Огромное количество всяких дополнений к XBMC
— repository.seppius — Русский репозиторий, с дополнениями «наших» сайтов на подобии LostFilm и Seasonvar и не только. Можно найти на любой вкус
— repository.oneevil — Сервис аддон ACEStream для XBMC и Аддон Torrenter в этом репозитории
— repository.nuismons — TSengine api
— plugin.watch.is.latest — Плагин для сайта watch.is (Сайт по приглашениям!!)
— plugin.video.torrenter.1.1.5.5 — Плагин для потокового воспроизведения торрент фильмов, скажем так.
Так же нужно установить libTorrent, для того что бы стримить фильмы с LostFilm:
sudo apt-get install python-libtorrent
Все эти плагины можно спокойно найти в интернете, вдаваться в подробности настройки и установки я не буду.
Что бы заработали скреперы — необходимо в настройках TheMovieDB использовать не TMDB а IMDB. Не понял почему так, но после смены у меня заработали скреперы на поиске некоторых русских фильмов, однако некоторые все еще найти не может.
Установка Conky
Он нам нужен для мониторинга за температурой, загрузкой CPU и тд. По порядку:
sudo apt-get install conky
Затем создаем файл .conkyrc командой:
sudo nano .conkyrc
и вставляем туда:
alignment top_left
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont DejaVu Sans Mono:size=12
gap_x 5
gap_y 60
minimum_size 5 5
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_class Conky
own_window_type desktop
stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no
TEXT
${color grey}Uptime:$color $uptime
${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
${color red}Temp: $color ${alignr 4}${color red}${acpitemp}°С$color
${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes
$hr
${color grey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color grey}Networking:
Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0}
$hr
${color grey}Name PID CPU% MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
Запускать командой:
conky
Все настройки можно найти в интернете и настроить «на свой вкус».
Установка и настройка WebServer-а Apache2.2, php5, mysql, phpmyadmin, mysql-workbench
Просьба за данный пункт сильно не бить. Это не инструкция "как это должно быть", это инструкция "как это работает у меня", конструктивная критика по делу приветствуется, если будут какие-либо дополнения или замечания, приму во внимание, и адаптирую себе для работы.
Перед установкой рекомендую в настройках роутера(на пример, мой ADSL модем 192.168.1.1 — пробросить порты Virtual Rout(Port Forwarding), пробрасываем 80 порт на 80 порт 192.168.1.100(.100 это у меня Raspberry PI))
Итак, поехали. GIT:
sudo apt-get install git
Апач:
sudo apt-get install apache2 apache2-doc libapache2-mod-scgi
Теперь php5 с плюшками:
sudo apt-get install php5 libapache2-mod-php5 libapache2-mod-auth-mysql php5 php5-common php5-curl php5-mysql php-image-graph imagemagick
Ребутим апач:
sudo service apache2 restart
Проверяем. Заходим в браузере на IP_малинки (в моем примере 192.168.1.100). Если появилась надпись «It works!», то я вас поздравляю, если нет — просьба попробовать включить-выключить сначала. Для тех кто не пробрасывал порты, можно проверить прямо с RPI. Для этого цепляется через SSH и запускаем браузер:
midori&
Затем вводим
localhost/ или localhost/apache2-default. Если появилась надпись «It works!», то я вас поздравляю, если нет — просьба попробовать включить-выключить сначала./var/www/ — папочка с вашими сайтами и скриптами./etc/php5/ и /etc/apache2/ — тут лежат конфиги php5 и апача.
Далее проверим работоспособность php5, создадим файл test.php:
sudo nano /var/www/phpinfo.php
В него внесем изменения:
<?php
phpinfo();
?>
CTRL + X -> Y -> Enter, заходим по ссылке
IP_адрес_малины/test.php (если через RPI то localhost/test.php). Если появилось информация о PHP5 то все хорошо. Далее ставим PHPMyAdmin:sudo apt-get install phpmyadmin
Что бы получить доступ к phphmyadmin, необходимо в файл /etc/apache2/apache2.conf
sudo nano /etc/apache2/apache2.conf
вписать следующее (необходимо только до версии Squeeze, начиная с версии 6,0 это будет включено в сценарий установки пакета
/etc/apache2/conf.d/phpmyadmin.conf -> ../../phpmyadmin/apache.conf автоматически):Include /etc/phpmyadmin/apache.conf
Перезапускаем апач:
sudo /etc/init.d/apache2 restart
Проверяем, заходим в браузере
192.168.1.100/phpmyadmin (c RPI localhost/phpmyadmin).Думаю с установкой веб-сервера закончено. Про настройку DNS в bind9 и VIrtual Hosts в апаче будет в другой статье. Скажу еще то, что для себя я поставил так же RhodeCode на RPI и хотел поставить какой нибудь Issue трекер. Выбор пал на YouTrack от JetBrain, но JavaМашина сильно грузит Raspberry, поэтому не стал заморачиваться. Так как я пользуюсь phpstorm — вот небольшое отступление о том Как подружить phpstorm с нашей БД на RPI:
Врубаем PHPStorm заходим в DataBase (кнопка слева) -> new -> DataBase Source
DataBasse URL — адрес и порт удаленной машины, а так же имя БД
User — имя пользователя БД
Password — пароль пользователя БД
SSH tunnel will be opened on localhost and port — порт обязательно должен быть свободным на машине, с которой нужно подключить phpstorm к mysql на удаленной машине.
Монтируем нашу USB флешку
Втыкаем флешку в RPI, вводим команду:
sudo blkid
Результат:
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="993B-8922" TYPE="vfat"
/dev/mmcblk0p2: UUID="fc254b57-8fff-4f96-9609-ea202d871acf" TYPE="ext4"
/dev/sda: LABEL="TR16GB" UUID="D29807B898079A5D" TYPE="ntfs"
Смотрим, запоминаем, TR16GB, тип «ntfs», устанавливаем поддержку ntfs:
sudo apt-get install ntfs-3g
Создаем каталог, куда будем монтировать нашу флешку:
sudo mkdir /mount/flash
Открываем файл:
sudo nano /etc/fstab
Дописываем туда:
"UUID="D29807B898079A5D" /mount/flash ntfs-3g rw,force,exec,users 0 0"
Где UUID, это уникальный id нашей флешки, который мы посмотрели командой
sudo blkid в самом начале. Перезагружаем RPI:sudo reboot
Установка Samba
Приступаем к установке, Обновим на всякий случай все что мы тут натворили:
sudo apt-get update && sudo apt-get upgrade
Установим сервер Samba:
sudo apt-get install samba samba-common-bin
Теперь откроем /etc/samba/smb.conf и вписываем туда:
[global]
workgroup = WORKGROUP
security = share
guest ok = yes
browseable = yes
[flash]
path = /mount/flash
writeable = yes
readonly = no
browseable = yes
guest ok = yes
Где workgroup, это рабочая группа, скорее всего у вас WORKGROUP. Доступ к серверу будет осуществляться без авторизации. Если необходимо что бы при подключении надо было запрашивать пароль, то вместо
security = share и guest ok = yes напишите security = user. Нужно так же создать нового пользователя, вводим команду sudo smbpasswd -a [имя], где [имя] — это имя пользователя. Сохраняем конфиг, перезагружаем:sudo /etc/init.d/samba restart
Я «замапил» себе сетевой диск, для удобства. Можно прямо с компа закидывать фильмы на RPI и смотреть уже на огромном телевизоре, который допустим стоит у вас где-нибудь в гостиной.
Установка rTorrent, Screen, RuTorrent
Сначала поставим rTorrent
sudo aptitude install rtorrent
Затем создадим папку на нашей флешке, сюда будем качать наши фильмы:
mkdir /mount/flash/Torrent/
А так же папку, где у нас будет храниться информация о закачках:
mkdir /mount/flash/Torrent/.rt/
Затем переходим в домашнюю папку юзера, под которым будет работать rtorrent, у меня это
/home/pi:cd /home/pi
Тут создаем файл ".rtorrent.rc", это настройки нашего rtorrent:
min_peers = 1
max_peers = 30
download_rate = 0
upload_rate = 0
directory = /mount/flash/Torrent/
session = /mount/flash/Torrent/.rt/
port_range = 40890-40890
port_random = no
check_hash = yes
session_save = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
use_udp_trackers = yes
dht = auto
dht_port = 6881
encoding_list = UTF-8
scgi_port = 127.0.0.1:5000
Описание настроек можно посмотреть здесь. Настроим автозагрузку и установим screen для работы rtorrent в фоне:
sudo aptitude install screen
sudo wget http://ift.tt/1nMZ1Rx -O /etc/init.d/rtorrent
Отредактируем скрип для корректной работы:
sudo nano /etc/init.d/rtorrent
в строке
user="user" пишем user="pi". Сохраняем. Теперь все это дело добавим в автозагрузку и запустим:sudo chmod 755 /etc/init.d/rtorrent && sudo update-rc.d rtorrent defaults && sudo /etc/init.d/rtorrent start
Настроим апач, включим модули:
sudo a2enmod scgi
Отредактируем файл
/etc/apache2/apache2.conf — в самом конце файла нужно добавить строку — "SCGIMount /RPC2 127.0.0.1:5000". Перезапускаем апач:sudo service apache2 restart
Пришло время ставить web-морду для нашего rtorrent. Я выбрал ruTorrent, т.к. она простенькая и на русском языке. Сначала поставим Subversion:
sudo apt-get install subversion
Теперь загрузим ruTorrent:
cd /var/www/
sudo svn checkout http://ift.tt/RD6XUr
Выставим права на папку:
sudo chown -R www-data:www-data ./rutorrent/
Осталось проверить работу нашей web-морды, заходим в браузере
ip_адрес_RPI/rutorrent (если с RPI то localhost/rutorrent):Ну вот вроде и все. Теперь мы имеем готовый к работе RPI, для web-разработчиков, которые в ночь с пятницы на субботу могут поставить качать свой любимый сериал и на следующее утро, лежа на диване смотреть все это дело на огромном телике. Спасибо за внимание.
P.S. Хочу принести извинения за отсутствие некоторых ссылок на сторонние ресурсы, материалом которых я руководствовался т.к. делал я это давно, а опубликовал только сейчас.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий