[Из песочницы] Первоначальная настройка Raspberry Pi без монитора
Решил присоединиться к клубу любителей малины, чтобы заняться домашней автоматизацией и робототехникой. Купил стартовый набор и много дополнительных железок, способных работать с 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 строк;
Редактируем /mnt/recovery.cmdline добавляя runinstaller в начало (если его там нет) и silentinstall в конец:
# vi /mnt/recovery.cmdline Минимальный набор команд:
i — перейти в режим вставки; a — перейти в режим вставки со следующего символа;
Проверяем что с файлом все в порядке:
# 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=»
Для 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 на колеса буду в следующие выходные.