Portál AbcLinuxu, 7. května 2025 12:36
Dobrý den,
chtěl bych do rpi_b dostat mainline Linux (jádro), konkrétně teď verzi 3.16-rc5. Mám připravený na SD kartě u-boot.bin
(tím jsem nahradil kernel.img z Arch Linux ARM, zkopíroval jsem z obrazu Arch Linuxu ARM první oddíl na SD kartu, ostatní oddíly jsem smazal), který mi nabootuje Linux z TFTP serveru.
Jádro sestavuju následovně:
make distclean export CROSS_COMPILE=/path/to/cross_compiler- make ARCH=arm bcm2835_defconfig make ARCH=arm menuconfig ## Provedu konfiguraci. Jenže nevím přesně, co můžu a nemůžu zapnout. make ARCH=arm zImage -j4 && make ARCH=arm dtbs
Zkopíruju zImage
a bcm2835-rpi-b.dtb
na TFTP server a zkouším bootovat: u-boot ještě hlásí, že nahrává do paměti RAM Linux a pak píše, že ho spouští, ale černá obrazovka a nic to nedělá.
Ještě přikládám pxelinux.cfg/default
:
default pxe prompt 0 timeout 3 label pxe kernel zImage fdt bcm2835-rpi-b.dtb append root=/dev/nfs nfsroot=192.168.1.103:/home/rpi rw ip=dhcp rootwait console=ttySAC2,115200n8 init --no-log
Nevíte, jaké volby make menuconfig
musím zapnout, aby mi to fungovalo? Budu vděčný za každou radu. Předem díky.
Vezmi si .config z fungujícího jádra, strč ho do adresáře se zdrojovým kódem Liuxu a tam místo make menuconfig
pusť make oldcondfig
. Tím docílíš toho, že co bylo zapnuté na starém jádře bude, pokud je k tomu kód ve vanilkovém jádře, i v novém.
Já když se se o to pokoušel naposledy nad stromem pro raspberry, tak to nešlo ani přeložit. Vanilla zase neobsahovala potřebné ovladače.
Díky. Postupoval jsem podle vašeho návodu, ale: (výpis u-boot):
Retrieving file: /home/tftp/pxelinux.cfg/default Filename '/home/tftp/pxelinux.cfg/default' Load address: 0x100000 Loading: # 92.8 KiB/s done Bytes transferred = 190 (be hex) Config file found 1: pxe Retrieving file /home/tftp/uImage Filename '/home/tftp/uImage'. Load address: 0x1000000 Loading: ########################################################################### ########################################################################### 698.2 KiB/s done Bytes trasnferred = 4789568 (491540 hex) append: root=/dev/nfs nfsroot=192.168.1.103:/home/rpi rw ip=dhcp rootwait consolee=ttySACZ,115200n8 init --no-log Retrieving file: /home/tftp/bcm2835-rpi-b.dtb Filename '/home/tftp/bcm2835-rpi-b.dtb' Load address: 0x2000000 Loading: # 625 KiB/s done Bytes transferred = 3843 (f03 hex) ## Booting kernel from legacy Image at 01000000 ... Image Name: Linux-3.16.0-rc5 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4789504 Bytes = 4.6 MiB Load Address: 01000000 Entry Point: 01000000 Verfifying Checksum ... OK ## Flattened Device Tree blob at 02000000 Booting using the fdt blob at 0x2000000 Loading Kernel Image ... OK Using Device Tree in place at 02000000, end 02003f02 Starting kernel ...
A tím to končí. Nic se už dál nevypisuje, na monitoru zůstává původní text od u-boot, není vidět žádná aktivita. Nevíte prosím jak dál? Jako přílohu (soubor config) přikládám, s jakými volbami bylo jádro sestaveno.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.