Решил присоединиться к клубу любителей малины, чтобы заняться домашней автоматизацией и робототехникой. Купил стартовый набор и много дополнительных железок, способных работать с Raspberry (надеюсь позже написать о 4tronix Initio 4WD Robot Kit). По получении начал все это дело осваивать. Телевизора и отдельного монитора у меня нет, но я не считал это большой проблемой — в комплекте была MicroSD карта с NOOBS и wifi адаптер. Подключив Raspberry к домашней сети по витой паре и посмотрев ip адрес на маршрутизаторе, я попытался подключиться по ssh, но у меня ничего не вышло — на 22 порту меня никто не ждал. В Raspberry Pi B+ используется MicroSD — но ни соответствующего ридера, ни SD адаптера у меня под рукой не было. В наборе был последовательный порт с USB интерфейсом.
Под катом рассказ о том, как я все-таки завел Raspberry Pi через последовательный порт и поставил туда x2go сервер.
NOOBS при загрузке в графическом режиме (которого без монитора не видно) ждет выбора OS для инсталляции — поэтому задача произвести инсталляцию без вопросов.
Кабель оказался без опознавательных знаков:
По VID и PID выяснил что это Prolific PL-2303. Под Windows 8.1 порт не заработал, производитель пишет, что PL-2303HXA и PL-2303X в Windows 8 не поддерживаются и рекомендует использовать PL-2303HXD или PL2303TA — но какая именно у меня модель я так и не знаю.
Под Mac OS X 10.9 порт заработал с драйверами с сайта производителя, под Ubuntu 14.04 заработал сразу, без драйверов.
Дополнительным плюсом порта является наличие питания.
ВАЖНО: питание надо использовать только одно — либо от порта, либо через microUSB — но не оба.
Подключение порта:
Красный кабель — питание — подключается в последнюю очередь или не подключается вообще если используется питание от microUSB.
Подключение к порту в Mac OS:
$ screen /dev/cu.usbserial 115200
В документации сказано, что порт называется /dev/cu.PL2303-00001004
, но у меня порт был /dev/cu.usbserial
.
Подключение к порту в Linux:
$ sudo screen /dev/ttyUSB0 115200
В Windows можно использовать PuTTY (так как под Windows порт у меня не завелся то этот вариант я не проверял).
После включения Raspberry с NOOBS видим:
Uncompressing Linux... done, booting the kernel.
Welcome to the rescue system
recovery login:
Входим, используя:
login: root
password: raspberry
Файловая система смонтирована только для чтения, перемонтируем ее для записи:
# mount -o remount,rw /dev/mmcblk0p1 /mnt
Удаляем все дистрибутивы кроме Raspbian:
# cd /mnt/os
# rm -r Arch/ Pidora/ RaspBMC/ data_partition/ OpenELEC/ RISC_OS/
Оставляем единственный вариант установки Raspbian в /mnt/os/Raspbian/flavours.json
Файл до редактирования:
{
"flavours": [
{
"name": "Raspbian - Boot to Scratch",
"description": "A version of Raspbian that boots straight into Scratch",
"feature_level": 123900
},
{
"name": "Raspbian",
"description": "A Debian wheezy port, optimised for the Raspberry Pi",
"feature_level": 123900
}
]
}
после редактирования:
# cat /mnt/os/Raspbian/flavours.json
{
"flavours": [
{
"name": "Raspbian",
"description": "A Debian wheezy port, optimised for the Raspberry Pi",
"feature_level": 123900
}
]
}
#
Для редактирования я использую vi:
# vi /mnt/os/Raspbian/flavours.json
Минимальный набор команд:
dd
— удалить строку;
5dd
— удалить 5 строк;
<esc>:x
— выход с сохранением;
<esc>:q!
— выход без сохранения изменений.
Редактируем /mnt/recovery.cmdline
добавляя runinstaller
в начало (если его там нет) и silentinstall
в конец:
# vi /mnt/recovery.cmdline
Минимальный набор команд:
i
— перейти в режим вставки;
a
— перейти в режим вставки со следующего символа;
<esc>
— выход из режима редактирования.
Проверяем что с файлом все в порядке:
# cat /mnt/recovery.cmdline
runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall
Если есть доступ к SD карте из под других OS — вышеописанные редактирование и удаление файлов можно производить в любимом редакторе и файловом менеджере.
Перегружаю Raspberry отключая/подключая питание и жду окончания инсталляции, которая занимает полчаса. Проверить что инсталляция происходит можно залогинившись в консоли и введя команду top
— после окончания инсталляции произойдет перезагрузка и теперь уже загрузится Raspbian:
...
[ 13.281406] EXT4-fs (mmcblk0p6): re-mounted. Opts: (null)
[ 13.785784] EXT4-fs (mmcblk0p6): re-mounted. Opts: (null)
Raspbian GNU/Linux 7 raspberrypi ttyAMA0
raspberrypi login:
Вхожу, используя:
login: pi
password: raspberry
Linux raspberrypi 3.12.22+ #691 PREEMPT Wed Jun 18 18:29:58 BST 2014 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
NOTICE: the software on this Raspberry Pi has not been fully configured. Please run 'sudo raspi-config'
pi@raspberrypi:~$
В raspi-config
включаю ssh
и дальнейшую настройку произвожу подключившись по ssh через локальную сеть.
Обновляем Raspbian:
$ sudo apt-get update
$ sudo apt-get upgrade -y
Настраиваем wifi:
$ sudo apt-get install wpasupplicant wireless-tools
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
Добавляем в конец файла (у меня используется WPA2 PSK):
network={
ssid="<ssid>"
psk="<пароль>"
key_mgmt=WPA-PSK
}
Отключаю проводную сеть, перегружаюсь, и дальше использую wifi.
Для Scratch
, с которым, в отличие от питона, мой сын уже знаком мне нужен GUI.
Для удаленного доступа к GUI в Linux я предпочитаю x2go
— к сожалению, в репозитории для Raspberry пока есть только клиент, сервер пришлось собирать из исходников чуть обновив инструкции отсюда:
sudo apt-get install -y debhelper libpng-dev libjpeg-dev zlib1g-dev quilt libfontconfig1-dev libfontenc-dev libfreetype6-dev libxmltok1-dev libxml2-dev autoconf pkg-config x11proto-core-dev man2html-base
git clone http://code.x2go.org/git/nx-libs.git
cd nx-libs/
git checkout redist-server/3.5.0.27
dpkg-buildpackage -us -uc
cd ..
git clone http://code.x2go.org/git/x2goserver.git
cd x2goserver/
git checkout 4.0.1.18
dpkg-buildpackage -us -uc
cd ..
git clone git://code.x2go.org/cups-x2go.git
cd cups-x2go/
git checkout 3.0.1.0
dpkg-buildpackage -us -uc
cd ..
sudo apt-get install -y autotools-dev libqt4-gui libglib2.0-dev m4 qt4-qmake libqt4-dev dh-autoreconf
git clone git://code.x2go.org/pinentry-x2go.git
cd pinentry-x2go
git checkout 0.7.5.7
dpkg-buildpackage -us -uc
cd ..
sudo apt-get install -y libc6 lsof bc openssh-server openssh-client libconfig-simple-perl pwgen libdbd-pg-perl libdbd-sqlite3-perl libfile-basedir-perl libcapture-tiny-perl adduser xauth psmisc net-tools sshfs x11-apps x11-session-utils x11-utils x11-xfs-utils x11-xkb-utils x11-xserver-utils fontconfig xinit xfonts-base x11-common
sudo apt-get install -y libxml2 libjpeg8 libpng12-0 libstdc++6 zlib1g libgcc1
sudo dpkg -i x2goagent_*.deb nxagent_*.deb libnx-x11_*.deb libxcomp3_*.deb libxcompext3_*.deb libxcompshad3_*.deb
sudo dpkg -i x2goserver_*.deb x2goserver-xsession_*.deb x2goserver-extensions_*.deb
Сборка заняла несколько часов, если кому нужны собранные пакеты, пишите — выложу куда-нибудь.
На этом выходные закончились — сажать Raspberry на колеса буду в следующие выходные.
Автор: ISanych