Instalowanie Raspbian z NOOBS bez wyświetlacza

88

Próbuję zainstalować Raspbian z NOOBS, ale nie mam innego ekranu / klawiatury niż ekran / klawiatura mojego laptopa. Znajduję wystarczającą ilość informacji na temat używania ekranu / klawiatury laptopa do Pi, ale wtedy musisz już mieć zainstalowany system operacyjny. Ale nie mam zainstalowanego systemu operacyjnego, ponieważ moja karta SD zawiera NOOBS i chcę zainstalować Raspbian za pomocą NOOBS.

Jak mogę to zrobić, używając tylko ekranu laptopa i klawiatury? Korzystam z systemu Windows 7 na swoim laptopie.

ProgramFOX
źródło
13
Po co się męczyć. Jeśli nie masz ekranu ani klawiatury, co planujesz zrobić z NOOBS? Wystarczy pobrać Raspbian i zainstalować na karcie SD. NOOBS to tylko strata miejsca.
Milliways

Odpowiedzi:

117

To już nie działa, ponieważ sshnie jest włączone.

Używając tylko ekranu i klawiatury laptopa (zarówno przed, jak i po instalacji), instalacja i konfiguracja do bezgłowego działania za pomocą SSH jest możliwa przy użyciu NOOBS (nazywają to „cichą instalacją”). Robi nie wymagają oddzielnego ekranu lub klawiatura / mysz. Wymaga jednak czytnika kart SD na laptopie (wbudowanego lub zewnętrznego USB).

Jedyną rzeczą, wymagane na stronie Raspberry Pi jest Ethernet Połączenie (do SSH do niego z systemu hosta). Alternatywnie, przy użyciu specjalnego sprzętu (adapter USB-szeregowy), można użyć niektórych pinów GPIO na Raspberry Pi. [3]

Można to zrobić, usuwając kilka folderów, edytując dwa pliki na karcie SD i ustawiając niektóre dowiązania symboliczne /etc/init.d(wykonaj kopię zapasową zawartości karty SD, jeśli masz tylko kartę SD z NOOBS). Świadomi bezpieczeństwa mogą chcieć zmienić domyślne hasło przed instalacją.

Wymagania wstępne:

  • Komputer hosta zdolny do uruchamiania klienta SSH oraz do odczytu / zapisu systemu plików na karcie SD Raspberry Pi ( ext4 ). System operacyjny może być Windows, Mac lub Linux. Może to być komputer z normalnym systemem Windows, ale wyposażony w napęd DVD, dzięki czemu Ubuntu można uruchomić w trybie próbnym za pomocą LiveCD .

  • Połączenie Ethernet z Raspberry Pi i dostępne dla komputera hosta TCP / IP w kierunku przeciwnym (komputer host może sam korzystać z Ethernetu lub połączenia bezprzewodowego).

  • Edytor tekstu w systemie hosta, który może poprawnie obsługiwać znaki uniksowe końca linii. Na przykład UltraEdit w systemie Windows, którego użyłem do testowania. Notepad ++ i Vim w systemie Windows również powinny być w porządku.

  • Czytnik kart SD (aby dokonać istotnych zmian na karcie SD podczas procesu, zarówno przed instalacją, jak i po instalacji).

Jak

Wstępnie zainstaluj

Na przykład, aby automatycznie zainstalować Raspbian (zalecany wybór) po podłączeniu zasilania do Raspberry Pi z włożoną kartą SD, wykonaj następujące czynności offline (w systemie hosta, Windows, Mac lub Linux):

  1. Pobierz i przygotuj NOOBS ( NOOBS 1.3.10 , wydany 2014-09-09, to 704 MB do pobrania) na wystarczająco dużej karcie SD, 4 GB lub większej.

    Może to obejmować użycie SDFormatter z opcją „FORMAT SIZE ADJUSTMENT” ustawioną na „ON”, aby sformatować całą kartę SD jako jedną dużą partycję sformatowaną w FAT32). Szczegółowe informacje można znaleźć na połączonej stronie.

  2. W osfolderze na karcie SD z NOOBS, usuń wszystkie foldery z wyjątkiem Raspbian(foldery Arch, RaspBMC, Pidora, OpenELEC, RISC_OS, i data_partitiondla NOOBS 1.3.7. I tylko Data_Partitiondla NOOBS 1.3.10).

  3. Edytuj plik \os\Raspbian\flavours.json, aby zawierał tylko żądaną wersję Raspbian, „Raspbian” (nie „Raspbian - Boot to Scratch”).

    Przed:

       {
         "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"
           }
         ]
       }
    

    Po:

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

    Usuń dodatkowe pliki, które może wygenerować edytor tekstu (np. Plik .bak).

  4. Edytuj plik recovery.cmdline(w rootfolderze karty SD ), aby dołączyć silentinstalldo listy argumentów.

    Przed (może się różnić w zależności od wersji NOOBS):

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

    Po (może się różnić w zależności od wersji NOOBS):

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

    Usuń dodatkowe pliki, które może wygenerować edytor tekstu (np. Plik .bak).

  5. Opcjonalny:

    Aby pozostawić otwartą opcję podłączenia telewizora do wyjścia wideo, dodaj także display=3(3 dla PAL, 4 dla NTSC):

     runinstaller quiet vt.cur_default=1 coherent_pool=6M elevator=deadline silentinstall display=3
    
  6. Opcjonalnie: zmień domyślną nazwę użytkownika i hasło, edytując \os\Raspbian\os.json:

    Przed:

       {
         "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"
       }
    

    Po:

       {
         "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"
       }
    

    Usuń dodatkowe pliki, które może wygenerować edytor tekstu (np. Plik .bak).

  7. Włóż kartę SD do Raspberry Pi, podłączyć go za pomocą kabla Ethernet takie, że system hosta z klientem SSH można go zobaczyć i takie, że DHCP jest dostępny na Raspberry Pi (na przykład, większość NAT -routers posiada wbudowany serwer DHCP w). Być może odłącz system od Internetu, dopóki hasło nie zostanie zmienione.

  8. Włącz Raspberry Pi, aby rozpocząć instalację. I czekaj! Może to chwilę potrwać, na przykład pół godziny lub dłużej. Dla pewności pozostaw to w spokoju na kilka godzin. Podczas korzystania z NOOBS 1.3.10 zmierzono czas instalacji 19 minut i 20 sekund (od uruchomienia do pierwszego pomyślnego pingowania). Pobrany prąd wynosił 400 - 480 mA i spadł do 370 mA po pierwszym pingu.

Po instalacji

  1. Znajdź w jakiś sposób adres IP Raspberry Pi (przypisany przez DHCP). Na przykład zgadnij z zakresu adresów IP, z którego korzysta serwer DHCP w routerze NAT, i pinguj te adresy (mój jest skonfigurowany do używania 192.168.0.100 - 192.168.0.255 i często ma przypisany 192.168.0.100 lub 192.168.0.101) .

    W tym celu można również użyć Wireshark , zwłaszcza jeśli znajduje się w środowisku z wieloma urządzeniami. Jest to o wiele łatwiejsze, jeśli znany jest adres MAC Raspberry Pi, i można go uzyskać tymczasowo za pomocą kroku 4 poniżej.

    Ten krok nie jest konieczny, jeśli ustalony adres IP jest ustawiony w kroku 4 poniżej.

  2. Pinguj z hosta, aby sprawdzić, czy istnieje połączenie.

  3. SSH nie jest domyślnie włączony dla Raspbian w NOOBS w wersji 1.3.7 - pomimo tego, co twierdzą niektóre strony. (Może być inaczej w Arch Linux.) Jednak dotyczy to Raspbian w wersji NOOBS 1.3.10 i ten krok może nie być już konieczny (jednak każdy zakupiony Raspberry Pi może być dostarczony z kartą SD ze starszą wersją NOOBS, a może warto zapisać 700 MB do pobrania).

    Najłatwiejszy sposób na włączenie tego jest opisany w odpowiedzi Oli na Przygotowanie do ssh bez ekranu (na tej stronie) i jest zmiana dowiązań symbolicznych w /etc/init.d(in root).

    Na przykład wystarczy uruchomić system Ubuntu 13.04 LiveCD z czytnikiem kart USB w systemie hosta i wydać te polecenia w terminalu :

     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. Opcjonalnie: ustaw stały adres IP, jeśli to ułatwia i pozwala na to rodzaj sieci. W sieci domowej może to być przypisanie adresu IP spoza zakresu adresów IP używanych przez serwer DHCP routera NAT, na przykład 192.168.0.93.

    W pliku cmdline.txt(w folderze bootpoza katalogiem głównym karty SD) dodaj to na końcu długiej linii:

    ip=192.168.0.93
    

    Efektem końcowym może być coś takiego:

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

    Podobnie jak w kroku 3, plik do edycji to /media/ubuntu/root/boot/cmdline.txt.

    Uwaga: bez dodatkowych parametrów po adresie IP nie ma połączenia z Internetem, a zatem krok 11 poniżej zakończy się niepowodzeniem.

  5. Jeśli w kroku 3 i 4 zastosowano metodę LiveCD: Zamknij system Ubuntu (aby zapisać zmiany i odmontować kartę SD).

  6. Uruchom Raspberry Pi z włożoną kartą SD.

  7. SSH do Raspberry Pi przy użyciu adresu IP znalezionego w kroku 1 lub kroku 4 (na przykład przy użyciu PuTTY w systemie Windows) i zaloguj się:

    login as: pi
    [email protected]'s password: raspberry    (or the password that was set in os.json, see 6 in *Pre-install*.)
    
  8. Zmień na nowe hasło:

        su pi
        passwd
    
  9. Opcjonalnie: wykonaj dalszą konfigurację Raspberry Pi

        sudo raspi-config
    
  10. Opcjonalnie: włącz wyjście TV

    • Otwórz config.txtw vi :

        sudo vi /boot/config.txt
      
    • Przechodź do tej linii (NOOBS mógł wstawić dodatkową linię z włączoną funkcją), więc czyta (wstaw # na początku linii):

        #hdmi_force_hotplug=1
      
    • Odznacz tę linię ( 2dotyczy PAL; użyj 0dla NTSC), więc czyta (usuń #na początku linii):

        sdtv_mode=2
      
    • :wq

    • Uruchom ponownie, aby zobaczyć efekt:

        sudo shutdown -r now
      
  11. Nawet Raspbian dostarczany z NOOBS 1.3.10 ma bardzo poważną lukę w Shellshock, która występuje w Bash , i nie chcesz, aby Raspberry Pi pozostało niezałatane.

    Aby sprawdzić, czy Raspberry Pi jest podatny na Shellshock, problem:

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

    Aby odświeżyć repozytoria i zaktualizować Bash, wydaj:

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

Podczas testowania użyłem:

  1. NOOBS 1.3.7 i NOOBS 1.3.10.

  2. UltraEdit w systemie Windows, ponieważ bez problemu obsługuje pliki tekstowe z zakończeniami linii w systemie Unix.

  3. Windows XP 64-bit (tak, wiem)


Źródła:

  1. NOOBS w GitHub , podsekcja Jak automatycznie zainstalować system operacyjny

  2. Uruchamianie Raspberry Pi bezgłowo w systemie Debian Linux (zakłada się jednak, że SSH jest domyślnie włączony, co nie ma miejsca w przypadku wersji 1.3.7 NOOBS).

  3. Nowe bezgłowe oprogramowanie Out Of Box Software (ROOBS) na Raspberry Pi . Wideo na YouTube. Wykorzystuje specjalny sprzęt (kabel USB z wbudowanym konwerterem USB na port szeregowy), aby połączyć się ze stykami TX / RX w GPIO. W rzeczywistości przypomina to podłączenie staromodnego terminala zrzutowego do Raspberry Pi.

  4. Zdalne połączenia Raspberry Pi - bez sieci! . W tym artykule opisano, jak podłączyć komputer bezpośrednio do Raspberry za pomocą zwykłego kabla Ethernet (nie jest wymagane specjalne przejście) i jak ustawić statyczny adres IP na Raspberry Pi (jednak przykład wyklucza połączenie poza bieżącą podsiecią, a zatem połączenie z Internetem).

  5. Montowanie głównego systemu plików przez NFS (nfsroot) , w pobliżu „Ten parametr informuje jądro”. Formalna dokumentacja do ustawiania statycznego adresu IP jak w źródle 4 i 8 innych parametrów, które powinny umożliwiać połączenie z Internetem, ale nie jest jasne, jakie dokładnie te parametry powinny być ...

  6. Konfigurowanie sieci Ethernet , w pobliżu „Metoda 1: Edycja /boot/cmdline.txt”. Przykład bardziej zaawansowanych zastosowań „ip =”, z których można odliczyć, jak to skonfigurować, aby możliwe było połączenie z Internetem.

Peter Mortensen
źródło
2
Tak, świetna odpowiedź! Zdecydowanie warte nagrody! Kilka interesujących rzeczy tutaj :)
Piotr Kula
Uwaga: przy użyciu metody statycznego adresu IP nie ma połączenia z Internetem, ponieważ adres bramy itp. Nie jest skonfigurowany. Dlatego łatka Shellshock nie będzie działać. Można go jednak użyć do uruchomienia procesu przez znalezienie adresu MAC podczas połączenia przy użyciu metody statycznego adresu IP - wydaj „ifconfig” i zapisz adres MAC (pole „HWaddr” w wierszu z „eth0”). Adres MAC może być używany z serwerem DHCP, aby zawsze używać tego samego adresu IP (zarezerwować konkretny adres IP dla konkretnego adresu MAC) w celu skutecznego uzyskania statycznego adresu IP.
Peter Mortensen
(Aby edytować: w pobliżu „można go uzyskać tymczasowo przy użyciu kroku 4 poniżej.”)
Peter Mortensen
1
@PeterMortensen W międzyczasie doszedłem do tego. Dziękuję za potwierdzenie. Zauważ, że partycja musi mieć typ szesnastkowy C(FAT32 LBA), inaczej Raspberry Pi się nie uruchomi.
FUZxxl
1
Niesamowita odpowiedź! Proszę spojrzeć na to pytanie: raspberrypi.stackexchange.com/questions/61351/… jest to w jakiś sposób związane z tym tematem. Potrzebuję pomocy, aby upewnić się, że mirrory sieciowe są wyłączone podczas instalacji. Dziękuję Ci.
Drew
9

Krótka odpowiedź brzmi: pobierz wersję instalacyjną NOOBS offline, a następnie edytuj plik recovery.cmdlinei dodaj silentinstallna końcu pierwszego wiersza.

To automatycznie zainstaluje Raspbian i uruchomi się ponownie na pulpicie po zakończeniu.

Mike Redrobe
źródło
2
Jeśli znajdziesz recovery.cmdline ma pusty wiersz na końcu, usuń go, w przeciwnym razie cicha instalacja nie będzie działać!
Mike Redrobe
8

W przypadku konfiguracji bezgłowej SSH można włączyć, umieszczając plik o nazwie ssh, bez żadnego rozszerzenia, na partycji rozruchowej karty SD.

Kiedy Pi się uruchamia, szuka sshpliku. Jeśli zostanie znaleziony, SSH jest włączony, a plik jest usuwany. Zawartość pliku nie ma znaczenia: może zawierać tekst lub w ogóle nic.

philip mudenyo
źródło
Czy plik naprawdę został usunięty? Jeśli tak, to po kolejnym ponownym uruchomieniu plik nie będzie już obecny, a SSH nie będzie włączony. Czy to naprawdę tylko jednorazowy mechanizm i za każdym razem, gdy uruchamia się Pi, sshplik musi zostać ręcznie zastąpiony? To nie brzmi całkiem dobrze.
Greenonline
1
Tak, plik jest naprawdę usuwany. Podczas rozruchu musisz się zalogować i skonfigurować normalne rozruchy dla ssh, takie jak: sudo systemctl enable sshwięc pojawi się następnym razem.
Dave X
Potwierdzono, że plik jest zdecydowanie usuwany podczas rozruchu.
slm
5

Uważam ten przewodnik za najbardziej użyteczny.

Ważna aktualizacja w konfiguracji:

  • ssh jest domyślnie wyłączony w najnowszych obrazach. Musisz utworzyć nowy plik ssh w / boot (może być pusty). Na przykład

    touch /Volumes/boot/ssh

gameweld
źródło
2

Sposób, w jaki to zrobiłem, był następujący:

  1. Odłącz kabel zasilający od Pi, a następnie wyjmij kartę SD.

  2. Użyj czytnika kart (lub wbudowanego, jeśli laptop go posiada) i adaptera SD, aby odczytać kartę na komputerze.

  3. Na recovery.cmdlinedodatek vncinstallna końcu linii. Źródło tutaj , przykład tutaj .

  4. Bezpiecznie wysuń nośnik z systemu operacyjnego, a następnie wyjmij adapter.

  5. Włóż SD do Pi, podłącz Pi z eterem do routera, włącz zasilanie, a następnie znajdź urządzenie w sieci. Jeśli nie możesz uzyskać dostępu do routera, aby zobaczyć podłączone urządzenia, użyj narzędzia takiego jak nmapskanowanie sieci. np nmap 192.168.1.0/24 -p 5900. Inną rzeczą, można spróbować to nslookup raspberrypialbo ping raspberrypiznaleźć IP. Użyj vncviewer raspberrypilub, vncviewer <IP>aby połączyć się z hostem.

  6. Zainstaluj Raspbian za pomocą połączenia VNC.

  7. Po instalacji urządzenie uruchomi się ponownie.

  8. Wyłącz Pi i włóż kartę z powrotem do komputera.

  9. Dodaj plik wywoływany sshdo partycji rozruchowej. Możesz to zrobić touchw systemie Linux.

  10. Bezpiecznie wysuń SD i włóż z powrotem do Pi i włącz zasilanie.

  11. Będziesz teraz mógł SSH do Pi.

  12. Zmień hasło natychmiast za pomocą passwd.

SilverlightFox
źródło
1

Nawet ja miałem ten sam problem co twój. Korzystałem z wyświetlacza RCA dla NOOBS i nic nie było na ekranie. Jedyną opcją, jaką miałem, było korzystanie z laptopa, ale najpierw trzeba skonfigurować PuTTY, aby połączyć się z Raspberry Pi przez SSH.

Szybkie rozwiązanie tego problemu: Pobierz osobny obraz Raspbian z oficjalnej strony internetowej, a następnie zamontuj go na karcie SD po sformatowaniu. Łatwo dostaniesz wyświetlacz. Musisz tylko dostać monitor RCA (może masz stary telewizor leżący w pobliżu).

Sanyam Khurana
źródło
1
OP stwierdził: „Nie mam innego ekranu / klawiatury niż ekran / klawiatura mojego laptopa”.
Peter Mortensen
Jakie jest to ustawienie domyślne dla RCA w Raspbian, PAL lub NTSC?
Peter Mortensen
1

Szczegółową konfigurację Raspberry Pi bez ekranu, myszy i klawiatury zamieściłem na stronie Jak uruchomić Raspberry Pi bez ekranu? .

Kush Rami
źródło
5
Witamy w Raspberry Pi! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Steve Robillard