Portál AbcLinuxu, 5. listopadu 2025 22:04
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.