logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Bootowanie Raspberry Pi z dysku USB

ghost666 14 Mar 2019 20:30 10818 14
REKLAMA
  • Bootowanie Raspberry Pi z dysku USB
    Raspberry Pi 3 B można bootować bez problemu z pendrive USB, jednakże trzeba dokonać w nim jednej, prostej modyfikacji. Nie trzeba zmieniać nic w sprzęcie, ale konieczna jest zmiana w pamięci OTP systemu.

    Krok 1: Zmiany w pamięci OTP

    W pierwszej kolejności musimy załadować system z karty SD, aby zmienić zawartość interesującej nas komórki w pamięci OTP. W pierwszej kolejności aktualizujemy system do najnowszej wersji (jeśli jeszcze tego nie zrobiliśmy):

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    A następnie dodać odpowiedni wpis konfiguracyjny w pliku /boot/config.txt. Po wejściu w folder /boot dodajemy tą linijkę:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Po dodaniu opcji możemy zresetować nasz komputer, wpisując w linii komend:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Następnie możemy sprawdzić, czy pamięć OTP została poprawnie zaprogramowana. Wystarczy wpisać linii komend:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Pod adresem 17:3020000a powinien być widoczny nasz zapis. Jeżeli nie jest, to należy powtórzyć opisaną powyżej procedurę programowania. Jeśli po kolejnej próbie bit konfiguracyjny w pamięci OTP nie jest poprawnie ustawiony, to znaczy, że nasze Raspberry Pi może być w jakiś sposób uszkodzone.

    Po zaprogramowaniu układu wpis 'program_usb_boot_mode' możemy z config.txt usunąć. Dzięki temu nie zaprogramujemy tego bitu przypadkiem, gdy włożymy kartę SD do innego Raspberry Pi.

    Krok 2: po resecie

    Teraz potrzebny nam będzie kompatybilny pendrive, z którego możemy załadować system na Raspberry Pi. Autor poradnika wykorzystuje Buffalo RUF3-KS, ponieważ jest dosyć szybki i niedrogi. Z kolei np. napędy firmy Verbatim w większości nie działają.

    Następnie możemy wgrać na pendrive obraz interesującego nas systemu (zastępujemy X w poniższych komendach ścieżką do naszego pendrive); image.img to obraz systemu, jaki chcemy wykorzystać.

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Zachowajmy ostrożność wprowadzając tą komendę - jeśli pomylimy ścieżki, to możemy uszkodzić w ten sposób nasz komputer.

    Po załadowaniu obrazu systemu na pendrive możemy wyłączyć nasz system:

    Kod: Bash
    Zaloguj się, aby zobaczyć kod


    Krok 3: bootowanie systemu

    Teraz możemy usunąć kartę SD ze slotu w Raspberry Pi i podłączyć do komputera dysk USB i zasilanie. Wszystko powinno automatycznie wystartować i nasz system zostanie załadowany z dysku USB.

    Źródło: https://www.instructables.com/id/Booting-Raspberry-Pi-3-B-With-a-USB-Drive/

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11960 postów o ocenie 10197, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • REKLAMA
  • #2 17842725
    CHAST
    Poziom 27  
    Odnośnie tej przeróbki mam kilka pytań.
    Skoro pamięć OTP czyli operacja w jedną stronę.
    Mają SD i USB które staruje pierwsze?
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?
  • REKLAMA
  • #3 17842823
    Konto nie istnieje
    Poziom 1  
  • #4 17842839
    qbus1981
    Poziom 12  
    CHAST napisał:
    Odnośnie tej przeróbki mam kilka pytań.
    Skoro pamięć OTP czyli operacja w jedną stronę.
    Mają SD i USB które staruje pierwsze?
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?


    Jeśli podasz błędny parametr "of" (który na przykład wskaże na twój dysk HDD) zniszczy ci tablicę partycji zapisując obraz z parametru "if" tworząc nowe partycje.

    I w sumie powinno być na odwrót czyli if=/ścieżka do pliku.img of=/dev/sdx.
  • #5 17842874
    Slawek K.
    Poziom 35  
    Zamiast pendrive polecam dysk SSD, u mnie domoticz w ten sposób obsługuje cały dom przy zapisie co minutę z kilkudziesięciu rożnych czujników. Karta SD padała po niespełna miesiącu, pendrive wytrzymywał nieco dłużej.
    Ważne info, które kolega @ghost666 napisał moze nie dla wszystkich czytelnie, zmiana OTP nie jest możliwa na RPi poniżej wersji 3B.

    Pozdr
  • #6 17843130
    igorrr
    Poziom 15  
    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?
  • REKLAMA
  • #7 17843732
    enigma
    Poziom 13  
    Podpinasz kolego dysk SSD w kieszeni na USB i już
  • #8 17844234
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #9 17844656
    Marek_Ertew
    Poziom 16  
    Artykuł przydało by się rozszerzyć o botowanie z USB na starszych malinkach, np. 2B. Tutaj procesor botuje się z karty SD, lecz w kolejnym kroku bootloader umożliwia załadowanie Linuxa z dowolnej partycji, w tym z dysku USB.
    https://www.raspberrypi.org/forums/viewtopic.php?t=193157
  • #10 17845332
    bfksoql
    Poziom 9  
    A czy komuś udało się zrobić boot z pendrive przy jednocześnie podłączonym innym pendrive bez systemu. U mnie taki konfig nie działa:(
  • #11 17845588
    PUH_HESTA
    Poziom 13  
    igorrr napisał:
    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?


    Można zastosować X820.
  • #12 17845849
    bfksoql
    Poziom 9  
    PUH_HESTA napisał:
    igorrr napisał:
    rs6000 napisał:
    Zamiast pendrive polecam dysk SSD, u mnie domoticz


    Możesz więcej coś na ten temat napisać? Jak podpinasz dysk do maliny? Dysk Jakiej pojemności masz?


    Można zastosować X820.


    Jeden 60gb ssd z systemem i jak go wpinam samego to działa. Drugi 250gb taki NAS. Jak wepne go do działającej malinki to ok. Ale jak są oba wpiete to się nie bootuje. Wpisy fstab i config są ok - na UUID dysku.
  • #13 17846020
    Konto nie istnieje
    Poziom 1  
  • #14 17848598
    Bojleros
    Poziom 16  
    O ile dobrze pamiętam to mam 3B+. Bootloader zachowuje się w nich tak że najpierw próbuje bootować SD a potem zaczyna poszukiwanie urządzeń usb-storage. Jak znajdzie jakiekolwiek urządzenie usb-storage z bootloaderem EFI to zaczyna się bootowanie systemu. Nic z OTP kopać nie trzeba.

    Marek_Ertew napisał:
    Artykuł przydało by się rozszerzyć o botowanie z USB na starszych malinkach, np. 2B. Tutaj procesor botuje się z karty SD, lecz w kolejnym kroku bootloader umożliwia załadowanie Linuxa z dowolnej partycji, w tym z dysku USB.


    Najprostszy sposób na boot z mmc z systemem na dysku usb to wrzucenie tego samego obrazu na obydwa nośniki a potem wyedytowanie bootloadera na mmc tak aby zamiast bootować /dev/mmc* bootowało /dev/sda* . Przy takim tricku nie polecam używania UUID.

    CHAST napisał:
    W jaki sposób uszkodzi się komputer wpisując źle: sudo dd if=/dev/sdX of="/path/to/image.img"?


    To chyba skrót myślowy. Odpalasz jako root polecenie którym możesz wyorać plik albo całe urządzenie dyskowe. Wystarczy artystycznie zamienić if na of i/lub wybrać nieodpowiednie urządzenie :)

    bfksoql napisał:
    A czy komuś udało się zrobić boot z pendrive przy jednocześnie podłączonym innym pendrive bez systemu. U mnie taki konfig nie działa


    Zamiana urządzeń miejscami nie powinna raczej pomóc bo współczesne kernele enumerują sprzęt równolegle i kolejność wpięcia w gniazda usb niczego nie gwarantuje. Zobacz czy Twój bootloader ma podane nazwy urządzeń blokowych czy uuid.
  • #15 17860315
    sesmart
    Poziom 9  
    Witam. Odpalałem boot z dysku 1.8 cala na RPI3B+ przez dwie przejsciówki USB=>PATA=>ZIF (dysk zif zasilanie 3.3v)
    Niestety samo nie poszło.
    Dopiero po podaniu napięcia zasilania zewnętrznego na dysk, wpiecia usb do RPI i na koncu zasilenia raspberry poszło.
    Nie każdy dysk bez aktywnego hab-a pójdzie w związku z poborem prądu przez dysk a wydolnością prądową portów usb raspberry (zależne od modelu rpi #i zasilacza).
REKLAMA