Установка Raspbian из NOOBS без дисплея

88

Я пытаюсь установить Raspbian из NOOBS, но у меня нет другого экрана / клавиатуры, кроме экрана / клавиатуры моего ноутбука. Я нахожу достаточно информации об использовании экрана / клавиатуры ноутбука для Pi, но тогда вам уже нужно установить ОС. Но у меня не установлена ​​ОС, потому что моя SD-карта содержит NOOBS, и я хочу установить Raspbian с помощью NOOBS.

Как я могу это сделать, используя только экран моего ноутбука и клавиатуру? Я использую Windows 7 на своем ноутбуке.

ProgramFOX
источник
13
Зачем беспокоиться. Если у вас нет экрана или клавиатуры, что вы планируете делать с NOOBS? Просто скачайте Raspbian и установите на SD-карту. NOOBS это просто пустая трата пространства.
Милливей

Ответы:

117

Это больше не работает, так sshкак не включено.

Используя только экран и клавиатуру ноутбука (как до, так и после установки), установка и настройка для автономной работы с использованием SSH возможна с использованием NOOBS (они называют это «тихой установкой»). Он не требует отдельного экрана или клавиатуры / мыши. Тем не менее, он требует чтения карт памяти на ноутбуке (встроенный или внешний USB).

Единственное, что требуется на стороне Raspberry Pi, - это соединение EthernetSSH в него из хост-системы). В качестве альтернативы, используя специальное оборудование (адаптер USB-последовательный порт), можно использовать несколько выводов GPIO на Raspberry Pi. [3]

Это можно сделать, удалив несколько папок, отредактировав два файла на SD-карте и установив несколько символических ссылок /etc/init.d(сначала сделайте резервную копию содержимого SD-карты, если у вас есть только SD-карта с NOOBS на ней). Специалисты по безопасности могут захотеть изменить пароль по умолчанию перед установкой.

Предпосылки:

  • Главный компьютер, на котором можно запустить SSH-клиент и читать / записывать файловую систему на SD-карте Raspberry Pi ( ext4 ). Операционная система может быть Windows, Mac или Linux. Это может быть компьютер, который обычно работает под управлением Windows, но имеет привод DVD, поэтому Ubuntu можно запустить в пробном режиме с помощью LiveCD .

  • Соединение Ethernet с Raspberry Pi и доступ к нему через хост-компьютер по протоколу TCP / IP (хост-компьютер сам может использовать Ethernet или беспроводное соединение).

  • Текстовый редактор в хост-системе, который может правильно обрабатывать символы конца строки Unix . Например, UltraEdit на Windows, который я использовал для тестирования. Notepad ++ и Vim на Windows также должны быть в порядке.

  • Считыватель SD-карт (чтобы внести важные изменения в SD-карту во время процесса, оба предварительно установите или установите после установки).

Как

Предварительная установка

Например, чтобы автоматически установить Raspbian (рекомендуемый вариант) при подаче питания на Raspberry Pi с SD-картой, выполните следующие действия в автономном режиме (в хост-системе, Windows, Mac или Linux):

  1. Загрузите и подготовьте NOOBS ( NOOBS 1.3.10 , выпущена в 2014-09-09, загрузка 704 МБ) на достаточно большой SD-карте, 4 ГБ или более.

    Это может включать использование SDFormatter с параметром «НАСТРОЙКА ФОРМАТА РАЗМЕРА», установленным на «ВКЛ», для форматирования всей карты SD как одного большого отформатированного раздела FAT32). Смотрите связанную страницу для деталей.

  2. В osпапке на SD - карте с недоносков, удалите все папки , за исключением Raspbian(папки Arch, RaspBMC, Pidora, OpenELEC, RISC_OS, и data_partitionдля нубов 1.3.7. И только Data_Partitionдля нубов 1.3.10).

  3. Редактируйте файл \os\Raspbian\flavours.json, чтобы он содержал только желаемую версию Raspbian, «Raspbian» (не «Raspbian - Boot to Scratch»).

    До:

       {
         "flavours": [
           {
             "name": "Raspbian - Boot to Scratch",
             "description": "A version of Raspbian that boots straight into Scratch"
           },
           {
             "name": "Raspbian",
             "description": "A Debian wheezy port, optimised for the Raspberry Pi"
           }
         ]
       }
    

    После:

       {
         "flavours": [
           {
             "name": "Raspbian",
             "description": "A Debian wheezy port, optimised for the Raspberry Pi"
           }
         ]
       }
    

    Удалите дополнительные файлы, которые может создать ваш текстовый редактор (например, файл .bak).

  4. Отредактируйте файл recovery.cmdlinerootпапке SD-карты ), чтобы добавить silentinstallего в список аргументов.

    До (может отличаться в зависимости от версии NOOBS):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline
    

    После (может отличаться в зависимости от версии NOOBS):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall
    

    Удалите дополнительные файлы, которые может создать ваш текстовый редактор (например, файл .bak).

  5. По желанию:

    Чтобы оставить открытой возможность подключения телевизора к видеовыходу, также добавьте display=3(3 для PAL, 4 для NTSC):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall display=3
    
  6. Необязательно: измените имя пользователя и пароль по умолчанию, отредактировав \os\Raspbian\os.json:

    До:

       {
         "name": "Raspbian",
         "url": "http://www.raspbian.org/",
         "version": "wheezy",
         "release_date": "2014-01-07",
         "kernel": "3.10",
         "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
         "username": "pi",
         "password": "raspberry"
       }
    

    После:

       {
         "name": "Raspbian",
         "url": "http://www.raspbian.org/",
         "version": "wheezy",
         "release_date": "2014-01-07",
         "kernel": "3.10",
         "description": "A community-created port of Debian wheezy, optimised for the Raspberry Pi",
         "username": "pi",
         "password": "DerSkalMangeFlereJobsTilI2014tOverHeleVerden11111111111111111111df11111111111111111111"
       }
    

    Удалите дополнительные файлы, которые может создать ваш текстовый редактор (например, файл .bak).

  7. Вставьте SD-карту в Raspberry Pi, подключите ее с помощью кабеля Ethernet, чтобы ее могла видеть хост-система с клиентом SSH, и чтобы DHCP был доступен для Raspberry Pi (например, большинство маршрутизаторов NAT имеют встроенный DHCP-сервер). в). Возможно, отключите систему от Интернета, пока пароль не будет изменен.

  8. Включите Raspberry Pi, чтобы начать установку. И ждать! Это может занять некоторое время, например, полчаса или больше. Чтобы быть уверенным, оставьте это в покое на несколько часов. Время установки 19 минут и 20 секунд было измерено при использовании NOOBS 1.3.10 (от включения до первого успешного пинга). Потребляемый ток составлял 400 - 480 мА и упал до 370 мА после успешного первого пинга.

После установки

  1. Найдите как-то IP-адрес Raspberry Pi (назначенный DHCP). Например, угадать его из диапазона IP-адресов, который использует DHCP-сервер в маршрутизаторе NAT, и пропинговать эти адреса (мой настроен на использование 192.168.0.100 - 192.168.0.255, и часто ему назначается 192.168.0.100 или 192.168.0.101) ,

    Wireshark также может быть использован для этой цели, особенно если он находится в среде с большим количеством устройств. Это намного проще сделать, если известен MAC-адрес Raspberry Pi, и его можно получить, временно выполнив шаг 4 ниже.

    Этот шаг не требуется, если на шаге 4 ниже установлен фиксированный IP-адрес.

  2. Пинг с хоста для проверки наличия соединения.

  3. SSH не включен по умолчанию для Raspbian в NOOBS версии 1.3.7 - несмотря на то, что утверждают некоторые страницы. (Это может быть различным для Arch Linux.) Тем не менее, это является для Raspbian в NOOBS версии 1.3.10, и этот шаг может не потребоваться (впрочем, любой купил Raspberry Pi может поставляться с SD - картой с более старой версией NOOBS, и, возможно, стоит сэкономить 700 МБ загрузки).

    Самый простой способ включить его описан в ответе Оли на « Подготовка к ssh без экрана» (на этом сайте) и состоит в изменении символических ссылок в /etc/init.droot).

    Например, загрузки с Ubuntu 13.04 LiveCD с помощью устройства чтения карт USB на хост-системе и выдачи этих команд в Терминале будет достаточно:

     sudo su
     cd /media/ubuntu/root
     for i in 2 3 4 5; do sudo ln -s /etc/init.d/ssh etc/rc$i.d/S02ssh; done
    
  4. Необязательно: установите фиксированный IP-адрес, если это облегчает, а тип сети позволяет это. В домашней сети это может быть сделано путем назначения IP-адреса за пределами диапазона IP-адресов, используемого DHCP-сервером NAT-маршрутизатора, например, 192.168.0.93.

    В файле cmdline.txt(в папке bootвне корня SD-карты) добавьте это в конце длинной строки:

    ip=192.168.0.93
    

    Конечный результат может быть примерно таким:

    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait ip=192.168.0.93
    

    Как и в шаге 3, файл для редактирования будет /media/ubuntu/root/boot/cmdline.txt.

    Примечание: без дополнительных параметров после IP-адреса соединение с Интернетом отсутствует, и, таким образом, приведенный ниже шаг 11 завершится неудачей.

  5. Если метод LiveCD был использован для шагов 3 и 4: Завершите работу Ubuntu (чтобы записать изменения и размонтировать SD-карту).

  6. Запустите Raspberry Pi с вставленной SD-картой.

  7. SSH к Raspberry Pi с использованием IP-адреса, найденного в шаге 1 или шаге 4 (например, с помощью PuTTY в Windows), и войдите в систему:

    login as: pi
    pi@192.168.0.100's password: raspberry    (or the password that was set in os.json, see 6 in *Pre-install*.)
    
  8. Изменить на новый пароль:

        su pi
        passwd
    
  9. Дополнительно: сделать дальнейшую настройку Raspberry Pi

        sudo raspi-config
    
  10. Дополнительно: включить ТВ выход

    • Открыть config.txtв vi :

        sudo vi /boot/config.txt
      
    • Закомментируйте эту строку (NOOBS, возможно, вставил дополнительную строку с этим включенным), поэтому она читает (вставить # в начале строки):

        #hdmi_force_hotplug=1
      
    • Раскомментируйте эту строку ( 2для PAL; используйте 0для NTSC), поэтому она читает (удалите #в начале строки):

        sdtv_mode=2
      
    • :wq

    • Перезапустите, чтобы увидеть эффект:

        sudo shutdown -r now
      
  11. Даже Raspbian, поставляемый с NOOBS 1.3.10, имеет очень серьезную уязвимость Shellshock, которая есть в Bash , и вы не хотите, чтобы Raspberry Pi оставался незащищенным.

    Чтобы проверить, уязвим ли Raspberry Pi для Shellshock, выполните:

    env x='() { :;}; echo "WARNING: SHELLSHOCK DETECTED"' bash --norc -c ':' 2>/dev/null;
    

    Чтобы обновить репозитории и обновить Bash, выполните:

    sudo su
    apt-get update && apt-get install --only-upgrade bash
    

При тестировании я использовал:

  1. NOOBS 1.3.7 и NOOBS 1.3.10.

  2. UltraEdit на Windows, так как он обрабатывает текстовые файлы с окончанием строки Unix без каких-либо проблем.

  3. Windows XP 64-битная (да, я знаю)


Источники:

  1. NOOBS на GitHub , подраздел « Как автоматически установить ОС»

  2. Запуск Raspberry Pi без Debian Linux (однако это предполагает, что SSH включен по умолчанию, что не имеет место в версии 1.3.7 NOOBS).

  3. Новое программное обеспечение из коробки (NOOBS) без установки на Raspberry Pi . YouTube видео. Для подключения к выводам TX / RX на GPIO используется специальное оборудование (USB-кабель со встроенным преобразователем USB-в-последовательный). По сути, это все равно, что подключить к Raspberry Pi устаревший самосвальный терминал .

  4. Raspberry Pi Удаленные подключения - без сети! , Описывает, как подключить компьютер напрямую к Raspberry с помощью обычного кабеля Ethernet (особый переход не требуется) и как установить статический IP-адрес на Raspberry Pi (однако в этом примере исключается подключение за пределы текущей подсети и, таким образом, подключение к интернету).

  5. Монтирование корневой файловой системы через NFS (nfsroot) рядом с «Этот параметр сообщает ядру». Официальная документация для установки статического IP-адреса, как в источнике 4 и 8 других параметров, которые должны разрешать подключение к Интернету, но не ясно, какие именно параметры должны быть ...

  6. Настройка Ethernet рядом с «Метод 1: Редактирование /boot/cmdline.txt». Пример более продвинутого использования «ip =», из которого можно вывести, как настроить его так, чтобы было возможно подключение к Интернету.

Питер Мортенсен
источник
2
Да, отличный ответ! Определенно стоит награды! Некоторые интересные вещи здесь :)
Петр Кула
Примечание. При использовании метода статического IP-адреса подключение к Интернету отсутствует, поскольку адрес шлюза и т. Д. Не настроен. Таким образом, патч Shellshock не будет работать. Но его можно использовать для начальной загрузки процесса путем поиска MAC-адреса при подключении с использованием метода статического IP-адреса - введите «ifconfig» и запишите MAC-адрес (поле «HWaddr» в строке с «eth0»). MAC-адрес может использоваться с сервером DHCP, чтобы всегда использовать один и тот же IP-адрес (зарезервировать определенный IP-адрес для определенного MAC-адреса) для эффективного получения статического IP-адреса.
Питер Мортенсен
(Для редактирования: рядом с «он может быть получен путем временного использования, используя шаг 4 ниже.»)
Питер Мортенсен,
1
@PeterMortensen Я понял это в то же время. Спасибо за подтверждение. Обратите внимание, что раздел должен иметь шестнадцатеричный тип C(FAT32 LBA), иначе Raspberry Pi не загрузится.
FUZxxl
1
Удивительный ответ! Пожалуйста, взгляните на этот вопрос: raspberrypi.stackexchange.com/questions/61351/… это как-то связано с этой темой. Мне нужна помощь, чтобы убедиться, что сетевые зеркала отключены во время установки. Спасибо.
Дрю
9

Краткий ответ: убедитесь, что вы скачали версию NOOBS для автономной установки, затем отредактируйте файл recovery.cmdlineи добавьте silentinstallв конце первой строки.

Это автоматически установит raspbian и перезагрузит компьютер после завершения.

Майк Редроб
источник
2
Если вы обнаружите, что recovery.cmdline имеет пустую строку в конце, удалите строку, в противном случае silentinstall не будет работать!
Майк Редроб
8

Для автономной настройки SSH можно включить, поместив файл с именем sshбез расширения в загрузочный раздел SD-карты.

Когда Pi загружается, он ищет sshфайл. Если он найден, SSH включен, а файл удален. Содержание файла не имеет значения: он может содержать текст или вообще ничего.

Филипп Муденьо
источник
Файл действительно удален? Если это так, то при последующей перезагрузке файл больше не будет присутствовать, и SSH не будет включен. Действительно ли это единовременный механизм использования, и каждый раз, когда загружается Pi, sshфайл нужно заменять вручную? Это звучит не совсем правильно.
Greenonline
1
Да, файл действительно удален. При загрузке вам необходимо войти в систему и настроить обычные загрузки для ssh, например: sudo systemctl enable sshтак оно и будет в следующий раз.
Дэйв Икс
Подтвердил, что файл обязательно удаляется при загрузке.
SLM
5

Я нашел это руководство наиболее полезным.

Важное обновление в настройке:

  • ssh отключен по умолчанию на новейших изображениях. Вы должны создать новый файл ssh в / boot (может быть пустым). Например

    touch /Volumes/boot/ssh

gameweld
источник
2

Я сделал это следующим образом:

  1. Отключите кабель питания от Pi, а затем выньте SD-карту.

  2. Используйте устройство для чтения карт памяти (или встроенное устройство, если оно есть на вашем ноутбуке) и адаптер SD для чтения карты на вашем компьютере.

  3. В recovery.cmdlineдобавление vncinstallв конец строки. Источник здесь , пример здесь .

  4. Безопасно извлеките носитель в вашей ОС, затем удалите адаптер.

  5. Вставьте SD в Pi, подключите Pi с Ethernet к маршрутизатору, включите питание, а затем найдите устройство в вашей сети. Если вы не можете получить доступ к маршрутизатору для просмотра подключенных устройств, используйте инструмент, например, nmapдля сканирования сети. например nmap 192.168.1.0/24 -p 5900. Еще одна вещь , которую вы можете попробовать это nslookup raspberrypiили ping raspberrypiнайти IP - адрес. Используйте vncviewer raspberrypiили vncviewer <IP>для подключения к хосту.

  6. Установите Raspbian, используя ваше соединение VNC.

  7. После установки устройство перезагрузится.

  8. Выключите Pi и вставьте карту обратно в компьютер.

  9. Добавьте файл с именем sshв загрузочный раздел. Вы можете использовать touchв Linux, чтобы сделать это.

  10. Безопасно извлеките SD, вставьте обратно в Pi и включите питание.

  11. Теперь вы сможете SSH к Пи.

  12. Измените пароль немедленно, используя passwd.

SilverlightFox
источник
1

Даже я столкнулся с той же проблемой, что и ты. Я использовал дисплей RCA для NOOBS, и на экране ничего не было. Единственный вариант, который у меня был, - это использование моего ноутбука, но он должен быть изначально настроен на PuTTY для подключения к Raspberry Pi через SSH.

Быстрое решение вашей проблемы: загрузите отдельный образ Raspbian с официального сайта, а затем отформатируйте его на SD-карте. Вы получите дисплей легко. Вы просто должны получить монитор RCA (возможно, у вас лежит старый телевизор).

Саньям Хурана
источник
1
ОП заявил: «У меня нет другого экрана / клавиатуры, кроме экрана / клавиатуры моего ноутбука».
Питер Мортенсен
Что такое настройка по умолчанию для RCA в Raspbian, PAL или NTSC?
Питер Мортенсен
1

Я разместил подробную настройку Raspberry Pi без экрана, мыши и клавиатуры в разделе Как запустить Raspberry Pi без экрана? ,

Куш Рами
источник
5
Добро пожаловать в Raspberry Pi! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Стив Робиллард