Самый простой способ запустить и настроить Raspberry Pi - подключить к ней монитор и клавиатуру, вставить SD карту на которую скопирован установщик NOOBS, и включить. Если же лишнего монитора нет, то можно по-прежнему установить самостоятельно установить Raspbian на SD карту, запустить с этой карты Raspberry Pi, подключиться по ssh (включен по умолчанию) и настроить удаленный рабочий стол. Для этого понадобится только компьютер с Ubuntu (просто потому, что у меня Ubuntu - для других дистрибутивов, Windows и OS X процесс не должен принципиально отличаться), сеть ( и возможность подключиться к ней с помощью Ethernet кабеля), чистая SD карта размером больше, чем образ Raspbian (Raspbian Jessie занимает 4 Гб) и сама Raspberry. Ниже приведена пошаговая инструкция, что надо сделать, чтобы все заработало.
Теперь у нас есть работающая и обновленная Raspberry Pi, к которой мы можем подключаться через ssh или через VNC.
Шаг 1: установка Raspbian
- Скачиваем самый новый образ Raspbian отсюда. Если скачали zip, то распаковываем.
- Вставляем SD карту в кард-ридер.
- Определяем имя SD карты в системе: команда
покажет все примонтированные устройства, среди них нужно найти что-то похожее на /dev/mmcblk0p1. Причем /dev/mmcblk0 - это имя всего устройства, а дополнительные символы p1 в конце определяют конкретный раздел. Если на SD карте несколько разделов, то в выводе команды df будет несколько записей для каждого раздела, отличающихся последними двумя символами.
df -h
- Отмонтируем SD карту командой:
Если разделов несколько - делаем это для всех разделов.
umount /dev/mmcblk0p1
- Записываем образ Raspbian на SD карту с помощью команды:
где то, что идет после if= должно быть путем к файлу образа, а то - что после of= - именем всей SD карты (а не какого-то ее раздела). Если неправильно указать имя устройства, то dd сотрет все данные на этом устройстве и запишет туда Raspbian. Команда dd не выдает ничего в консоль пока не закончит запись, поэтому со стороны может казаться, что она зависла. Чтобы получить текущий статус dd можно в другом терминале выполнить команду
sudo dd bs=4M if=2016-05-27-raspbian-jessie.img of=/dev/mmcblk0
Вывод появится в терминале, в котором работает dd.sudo pkill -USR1 -n -x dd
- Когда dd запишет образ, синхронизируем данные с помощью команды
Теперь Raspbian установлен на SD карту. Если Raspberry будет подключаться с помощью Ethernet кабеля к роутеру, то с SD картой больше ничего делать не нужно - можно вынимать eё из кард-ридера (предварительно выполнив sync) и вставлять в Raspberry (и пропустить шаг 2). Если нужно подключиться сразу к WiFi - переходим к шагу 2.
sync
Шаг 2: Настройка WiFi
- Только что записанная SD карта содержит два раздела - boot и раздел с корневой файловой системой (у меня он называется 2f840c69-cecb-4b10-87e4-01b9d28c231c, его имя можно посмотреть в выводе команды df -h, которую мы использовали ранее). Нас интересует файл /etc/wpa_supplicant/wpa_supplicant.conf в разделе корневой файловой системы SD карты. Открываем его c sudo с помощью любого текстового редактора (я использую vim):
sudo vim /путь-до-корневого-каталога-на-sd-карте/etc/wpa_supplicant/wpa_supplicant.conf
- И дописываем в конец файла:
network={ ssid="название сети" psk="пароль" } - Выполняем sync, извлекаем SD карту, вставляем ее в Raspberry и запускаем.
Шаг 3: Подключение к Raspberry по ssh
- Устанавливаем nmap (если еще не установлен):
sudo apt-get install nmap
- Выясняем параметры своего подключения к сети с помощью команды:
ifconfig
- Сканируем сеть, чтобы выяснить адрес Raspberry Pi (чуть более подробно о том, как это делать, я писал здесь):
nmap -sn 192.168.178.0/24
- Подключаемся к Raspberry Pi по ssh (в моем случае Raspberry достался адрес 192.168.178.42):
Имя пользователя по умолчанию - pi, пароль для этого пользователя - raspberry.
ssh pi@192.168.178.42
Шаг 4: Первоначальная настройка и обновление
- Если все было сделано правильно, у нас сейчас в терминале должна быть открыта ssh-сессия с RaspberryPi. Я сразу после подключения делаю первоначальную настройку с помощью встроенной утилиты raspi-config:
Я сразу выбираю пункты Expand filesystem - это позволит Raspberry использовать всю SD карту, а не только то пространство куда был записан образ Raspbian, и Enable camera - позволит использовать камеру. Там же можно поменять пароль для пользовтаеля pi и, например, настроить локаль. После завершения работы утилита попросит автоматически перезагрузить Raspberry. Ждем немного и подключаемся к ней снова по ssh.
sudo raspi-config
- Затем имеет смысл обновить пакеты:
sudo apt-get update && sudo apt-get upgrade
Шаг 5: Настройка удаленного рабочего стола
- Устанавливаем VNC сервер на Raspberry:
sudo apt-get install tightvncserver
- Настраиваем курсор в VNC сервер (обычный указатель мыши вместо крестика):
- открываем файл /home/pi/.vnc/xstartup:
vi /home/pi/.vnc/xstartup
- и дописываем к xsetroot параметр:
-cursor_name left_ptr
- Настраиваем автозагрузку VNC сервера вместо lightdm (монитора-то все равно нет, lightdm стартовать не имеет смысла).
- Переходим в режим superuser:
sudo su
- Переходим в /etc/init.d/:
cd /etc/init.d/
- Создаем новый файл vncboot:
vi vncboot
- Копируем туда следующий скрипт:
и сохраняем.
#! /bin/sh# /etc/init.d/vncboot ### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO USER=pi HOME=/home/pi export USER HOME case "$1" in start) echo "Starting VNC Server" #Здесь можно использовать свои любимые настройки VNC su - $USER -c "/usr/bin/vncserver :1 -geometry 1366x768 -depth 24" ;; stop) echo "Stopping VNC Server" /usr/bin/vncserver -kill :1 ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0 - Делаем его исполняемым:
chmod 755 vncboot
- Заменяем выполнение lightdm на vncboot при загрузке:
update-rc.d -f lightdm remove update-rc.d vncboot defaults
- Теперь можно перезагрузить Raspberry и, когда она загрузится, подключиться к ней из под Ubuntu с помощью, например, Remmina Remote Desktop Client (который в Ubuntu установлен по умолчанию).
Теперь у нас есть работающая и обновленная Raspberry Pi, к которой мы можем подключаться через ssh или через VNC.
Добрый день,
ОтветитьУдалитьУточните как добавить sh скрипт в автозагрузку. Гуглил, пробывал разные варианты, но ни как не срабатывает автозагрузка. Подскажите пожалуйста как это сделать.
из консоли под рутом запускаю скрипт двумя командами:
cd /home/pi/package/
nohup sh /home/pi/package/nix.runNis.sh >/dev/null &
В первой строке скрипта попробуйте удалить часть кода, т.е. первая строка должна выглядеть так "#! /bin/sh" без кавычек и решетки в конце.
УдалитьЯ в линуксе не сильно силен, но зачем после #! /bin/sh идет указание пути до папки, в которой лежит скрипт, если он и так там лежит...
Возможно опечатка, а может я чего-то не понимаю.
Не знаю, может сюда кто-то и зайдет, надеюсь, прочитает это сообщение. Все хорошо, НО, ssh по-умолчанию в raspberry pi не работает c 2016 года, соединение будет обрываться. Причина: https://www.raspberrypi.org/documentation/remote-access/ssh/ Решение: создать пустой файл без всяких расширений /boot/ssh тогда ssh соединение будет разрешено. Статья, видно, вышла немногим раньше нововведения и этой важной детали нету. Надеюсь я помог и позволил вам избежать очень неприятной процедуры: выдергивание кабеля питания без возможности безопасно выключить устройство.
ОтветитьУдалитьВАЖНАЯ ПОПРАВКА: под boot имеется ввиду загрузочный диск. Смотрится через lsblk - обычно первый раздел вашего устройства на несколько mb. В корне этого раздела и надо создавать ssh файл
Удалить