Küsimus:
Kas u-boot'i saab laadida ilma SD-kaardita?
GnP
2017-06-19 22:52:30 UTC
view on stackexchange narkive permalink

Püüan luua täiesti "kettadeta" raspi3 keskkonna, lastes pi laadida võrgust u-boot (sarnane x86 tavalise pxelinuksi seadistusega)

Olen saanud pi, et saada IP-aadress dhcp kaudu ja ühendada oma tftp-serveriga, et tuua bootcode.bin, start.elf ja config.txt.

Ma saan kasutada järgmist config.txt:

  kernel = u-boot.bin  

Ja see tõmbab u-boot pildi. Kuid ma ei saa aru, kuidas panna see boot.scr tftp kaudu laadima, nii et u-boot teeb midagi kasulikku (näiteks linuxi tuuma ja initrdi laadimine ning kogu süsteemi käivitamine).

Kui kasutan sama config.txt-ga SD-kaarti, laadib see boot.scr-i SD-kaardilt.

Kas see on võimalik?

üks vastus:
GnP
2017-06-21 11:25:07 UTC
view on stackexchange narkive permalink

See on kindlasti võimalik.

Vaikimisi teeb u-boot käivitamisel run distro_bootcmd . Selle määrab kompileerimise ajal muutuja CONFIG_BOOTCOMMAND .

Ma saan lihtsalt määrata oma CONFIG_BOOTCOMMAND ja kompileerida u-boot:

  cat <<EOF >> sisaldab / configs / rpi.h # define CONFIG_BOOTCOMMAND \\ "setenv autoload no;" \\ "setenv autostart nr;" \\ "bootp;" \\ "tftp 0x100000 /rpi/boot.scr;" \\ "source 0x100000;" EOFmake rpi_3_32b_defconfigmake all  

See on kiire viis. Pisut süvenedes leidsin, et distro_bootcmd peaks juba tegema seda, mida mul vaja on.

Käsu käitumist kontrollib kompileerimise ajal muutuja BOOT_TARGET_DEVICES . Näiteks rpi puhul on see aadressil include/configs/rpi.h:

  #define BOOT_TARGET_DEVICES (func) \ func (MMC, mmc, 0) \ func ( USB, usb, 0) \ func (PXE, pxe, na) \ func (DHCP, dhcp, na)  

PXE-sihtmärk otsib extlinuxi konfiguratsioonifaili samamoodi nagu pxelinux, nii et asetades konfiguratsioonifaili kausta pxelinux.cfg / default-arm , saan käskida u-boot'il laadida kernel ja initrd või teha midagi muud.

Tundub, et DHCP-sihtmärk proovida laadida dhcp-serveri pakutavat faili või vaikimisi <IP>.img , kui ühtegi pole määratud. ( <IP> on IP-aadress kuusnurgas).

Nii laaditakse u-boot.img ilma sdcard / msd-ta (või ilma boot.scr või boot.scr.uimg in / or / boot) peaks käivitama DHCP ja PXE alglaadimise otse kastist välja.

Ma pole kindel, miks see minu jaoks ei töötanud, tõenäoliselt võrgu seadistamise probleem või vale u- boot pilt. Pole veel olnud võimalust pi-ga uuesti mängida.

BTW, u-boot-dokumendid on ägedad. Ma ei usu, et oleksin varem nii hea dokumentatsiooniga kokku puutunud.



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...