Первоначальная настройка Raspberry Pi без монитора

в 7:14, , рубрики: Raspberry Pi, raspbian, tutorial, x2go

Решил присоединиться к клубу любителей малины, чтобы заняться домашней автоматизацией и робототехникой. Купил стартовый набор и много дополнительных железок, способных работать с Raspberry (надеюсь позже написать о 4tronix Initio 4WD Robot Kit). По получении начал все это дело осваивать. Телевизора и отдельного монитора у меня нет, но я не считал это большой проблемой — в комплекте была MicroSD карта с NOOBS и wifi адаптер. Подключив Raspberry к домашней сети по витой паре и посмотрев ip адрес на маршрутизаторе, я попытался подключиться по ssh, но у меня ничего не вышло — на 22 порту меня никто не ждал. В Raspberry Pi B+ используется MicroSD — но ни соответствующего ридера, ни SD адаптера у меня под рукой не было. В наборе был последовательный порт с USB интерфейсом.

Под катом рассказ о том, как я все-таки завел Raspberry Pi через последовательный порт и поставил туда x2go сервер.

Первоначальная настройка Raspberry Pi без монитора
Первоначальная настройка Raspberry Pi без монитора

NOOBS при загрузке в графическом режиме (которого без монитора не видно) ждет выбора OS для инсталляции — поэтому задача произвести инсталляцию без вопросов.

Кабель оказался без опознавательных знаков:

Первоначальная настройка Raspberry Pi без монитора

По 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 — но не оба.

Подключение порта:

Первоначальная настройка Raspberry Pi без монитора

Красный кабель — питание — подключается в последнюю очередь или не подключается вообще если используется питание от 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 на колеса буду в следующие выходные.

Первоначальная настройка Raspberry Pi без монитора

Автор: ISanych

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js