Min linuxkärna startar inte rootfs på / - Något är fel?
Lite mer detaljer vore på sin plats, jag läser det som att du har en include (vilken) som hänvisar till källkod som saknas? Kan det vara så att du bör stå i /usr/src/linux när du kompilerar detta, för att få in saker från kärn-källkoden. Vilken maskin (Linux?) använder du när du kompilerar detta?
Device trees do not need to be compiled with "architecture-aware" tools. The dtc compiler on your ubuntu machine is probably current enough to compile your device tree. Or you can download the latest source and compile it yourself. The dtc compiler can be found here:
https://stackoverflow.com/questions/21670967/how-to-compile-d...
Skoj, hittade en massa *.dts filer i min kärn-källkod, och en dtc.c , har även dtc-kompilatorn.
/usr/src/linux # which dtc
/usr/bin/dtc
/usr/src/linux # equery belongs /usr/bin/dtc
* Searching for /usr/bin/dtc ...
sys-apps/dtc-1.6.0 (/usr/bin/dtc)
Lite mer detaljer vore på sin plats, jag läser det som att du har en include (vilken) som hänvisar till källkod som saknas? Kan det vara så att du bör stå i /usr/src/linux när du kompilerar detta, för att få in saker från kärn-källkoden. Vilken maskin (Linux?) använder du när du kompilerar detta?
https://stackoverflow.com/questions/21670967/how-to-compile-d...
Skoj, hittade en massa *.dts filer i min kärn-källkod, och en dtc.c , har även dtc-kompilatorn.
/usr/src/linux # which dtc
/usr/bin/dtc
/usr/src/linux # equery belongs /usr/bin/dtc
* Searching for /usr/bin/dtc ...
sys-apps/dtc-1.6.0 (/usr/bin/dtc)
Kan du testa kompilera denna kod?
/dts-v1/;
#include <dt-bindings/pinctrl/stm32-pinfunc.h>
#include "stm32mp151.dtsi"
#include "stm32mp15xa.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"
#include "stm32mp15-m4-srm.dtsi"
/* USER CODE BEGIN includes */
#include "stm32mp15-scmi.dtsi"
#include "stm32mp15-scmi-u-boot.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/mfd/st,stpmic1.h>
/* USER CODE END includes */
/ {
model = "STMicroelectronics custom STM32CubeMX board - openstlinux-6.1-yocto-mickledore-mpu-v24.06.26";
compatible = "st,stm32mp151a-stm32-mx", "st,stm32mp151";
memory@c0000000 {
device_type = "memory";
reg = <0xc0000000 0x20000000>;
/* USER CODE BEGIN memory */
/* USER CODE END memory */
};
}; /*root*/
Testa kör med
dtc -I dts -O dtb -o test.dtb test.dts
Du kommer få felmeddelandet
Error: test.dts:3.1-9 syntax error
FATAL ERROR: Unable to parse input tree
Men då är frågan varför?
En .dtb fil måste finnas tillgänglig i U-boot/arch/arm/dts, annars kan man inte kompilera med detta för U-boot
make stm32mp15_trusted_defconfig
make DEVICE_TREE=my_device_dtb_file CROSS_COMPILE=arm-linux-gnueabihf- all
Jag får samma fel som dig. Efter att ha läst lite här .. så gick jag vidare och kikade under arch/arm/boot/dts där det fanns drös stm32* filer.
https://stackoverflow.com/questions/50658326/device-tree-comp...
Testade detta, vilket genererade en kvim1.dtb - nu gäller det att hitta något närmare dina stm32..
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts meson-gxl-s905x-khadas-vim.dts.preprocessed
Valde ut prt1c.dts och skrev om raden:
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm/boot/dts/stm32mp151a-prtt1c.dts stm32mp151a-prtt1c.dts.preprocessed
# dtc -I dts -O dtb stm32mp151a-prtt1c.dts.preprocessed -o kvim1.dtb
OK. Jag vet inte om prtt1c är relevant för dig, men det fungerade här. Har fortfarande en kvim1.dtb
PS. När jag gick tillbaka hit på rond II så kan jag inte återskapa denna "make", någonting går fel. Hade hoppats på att göra "make ARCH=arm test"
# make -j16 ARCH=arm stm32mp151a-prtt1c
Några 50-talet .config direktiv senare...
Min maskin blir mer och mer lik en arm-kärna.. Ta för guds skull backup!
Jag utelämnar ARCH=arm här, testade med det senare och det gick som förväntat (vanligt) åt h...
# time make -j16 DEVICE_TREE=kwim1.dtb all
... (Några nya .config direktiv och kompilerar en full kärna)
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#36)
real 8m40s
Efter ytterligare hundratalet .config direktiv så har jag en kärna. Jo, jag vet, x86, men med en diger arm-config!
---- make clean ---- Rond II ---- Nu börjar jag om! Din test.dts är kvar, kvim1.dtb är bortstädad.
Ändrade två rader i din test.dts - fick ta bort två rader också *m4* och *u-boot.dtsi
Förhoppningsvis har du de filerna på din maskin.
#include "stm32mp151.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"
// #include "stm32mp15-m4-srm.dtsi"
# cp test.dts arch/arm/boot/dts/
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm/boot/dts/test.dts test.precomp
# dtc -I dts -O dtb test.precomp -o kvim1.dtb
# ls -l kvim* *.precomp
-rw-r--r-- 1 root root 33436 Aug 28 18:44 kvim1.dtb
-rw-r--r-- 1 root root 87061 Aug 28 18:40 test.precomp
# make ARCH=arm test
make: *** No rule to make target 'test'. Stop.
(Dåligt filnamnsval, eller vad? make stm32mp151a-prtt1c.dts gick ju bra ovan?)
# time make -j16 DEVICE_TREE=kwim1.dtb all
Kernel: arch/x86/boot/bzImage is ready (#38)
Bara 4m12s denna gång? Make clean slarvar - make mrproper!
Hoppas du kan plocka något ätbart ur denna hög. Om du döper om kvim1.dtb och lägger den rätt så håller jag tummarna!
Jag får samma fel som dig. Efter att ha läst lite här .. så gick jag vidare och kikade under arch/arm/boot/dts där det fanns drös stm32* filer.
https://stackoverflow.com/questions/50658326/device-tree-comp...
Testade detta, vilket genererade en kvim1.dtb - nu gäller det att hitta något närmare dina stm32..
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts meson-gxl-s905x-khadas-vim.dts.preprocessed
Valde ut prt1c.dts och skrev om raden:
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm/boot/dts/stm32mp151a-prtt1c.dts stm32mp151a-prtt1c.dts.preprocessed
# dtc -I dts -O dtb stm32mp151a-prtt1c.dts.preprocessed -o kvim1.dtb
OK. Jag vet inte om prtt1c är relevant för dig, men det fungerade här. Har fortfarande en kvim1.dtb
PS. När jag gick tillbaka hit på rond II så kan jag inte återskapa denna "make", någonting går fel. Hade hoppats på att göra "make ARCH=arm test"
# make -j16 ARCH=arm stm32mp151a-prtt1c
Några 50-talet .config direktiv senare...
Min maskin blir mer och mer lik en arm-kärna.. Ta för guds skull backup!
Jag utelämnar ARCH=arm här, testade med det senare och det gick som förväntat (vanligt) åt h...
# time make -j16 DEVICE_TREE=kwim1.dtb all
... (Några nya .config direktiv och kompilerar en full kärna)
ZOFFSET arch/x86/boot/zoffset.h
OBJCOPY arch/x86/boot/vmlinux.bin
AS arch/x86/boot/header.o
LD arch/x86/boot/setup.elf
OBJCOPY arch/x86/boot/setup.bin
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#36)
real 8m40s
Efter ytterligare hundratalet .config direktiv så har jag en kärna. Jo, jag vet, x86, men med en diger arm-config!
---- make clean ---- Rond II ---- Nu börjar jag om! Din test.dts är kvar, kvim1.dtb är bortstädad.
Ändrade två rader i din test.dts - fick ta bort två rader också *m4* och *u-boot.dtsi
Förhoppningsvis har du de filerna på din maskin.
#include "stm32mp151.dtsi"
#include "stm32mp15xxac-pinctrl.dtsi"
// #include "stm32mp15-m4-srm.dtsi"
# cp test.dts arch/arm/boot/dts/
# cpp -nostdinc -I include -I arch -undef -x assembler-with-cpp arch/arm/boot/dts/test.dts test.precomp
# dtc -I dts -O dtb test.precomp -o kvim1.dtb
# ls -l kvim* *.precomp
-rw-r--r-- 1 root root 33436 Aug 28 18:44 kvim1.dtb
-rw-r--r-- 1 root root 87061 Aug 28 18:40 test.precomp
# make ARCH=arm test
make: *** No rule to make target 'test'. Stop.
(Dåligt filnamnsval, eller vad? make stm32mp151a-prtt1c.dts gick ju bra ovan?)
# time make -j16 DEVICE_TREE=kwim1.dtb all
Kernel: arch/x86/boot/bzImage is ready (#38)
Bara 4m12s denna gång? Make clean slarvar - make mrproper!
Hoppas du kan plocka något ätbart ur denna hög. Om du döper om kvim1.dtb och lägger den rätt så håller jag tummarna!
Jag lyckades lösa det...MEN....helt plötsligt så fanns det andra flera problem. Den ville ha en äldre version av U-boot för mina .dts filer är skapat efter detta. Herre gud....jadu, jag får väll anpassa mig efter ST's "legacy" mjukvara.
Dom säger själva att dom rekommenderar INTE ARM Trusted Firmware, U-boot, Linux, Optee nedladdat direkt från GitHub, utan det dom själv lägger upp på deras hemsida. Detta kan vara förklaringen.
Men åter igen då! Då är det bara för mig att boota upp med initrd. Tydligen så bootar min initrd upp, men inte rootfs systemet. Jag hade CONFIG_LEGACY_IMAGE_FORMAT = y enligt .config för u-boot redan.
Tillbaka till att bygga egen initrd!
Lite framsteg. Skapade egen uInitrd för Uboot. Den gick att boota.
Så då betyder detta att rootfs systemet är helt enkelt kasst!
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:6...
Found /mmc0_extlinux/extlinux.conf
Retrieving file: /mmc0_extlinux/extlinux.conf
Retrieving file: /splash_landscape.bmp
1: UUID
2: p1
3: p2
4: p3
5: p4
6: p5
7: p6
8: p7
9: p8
10: p9
11: boot0
12: boot1
13: prmb
Enter choice: 1: UUID
Retrieving file: /uImage
Retrieving file: /uInitrd
append: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=ttySTM0,115200
Retrieving file: /stm32mp151a-stm32-computer-firmware-mx.dtb
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at c6400000 ...
Image Name: Initrd Image
Created: 2024-08-28 21:24:48 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 425413 Bytes = 415.4 KiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at c6000000
Booting using the fdt blob at 0xc6000000
XIP Kernel Image
Loading Ramdisk to cff98000, end cffffdc5 ... OK
Loading Device Tree to cff81000, end cff974a9 ... OK
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01808, size 4
Kvällens ämne och läsning: initrd: https://docs.kernel.org/admin-guide/initrd.html
Ge akt på "Boot command-line options" som öppnar upp för en del labbar. Du kan ju faktiskt prova noinitrd och se hur det blir. (dvs hoppa över initrd och gå direkt på din root-partition enligt root=/dev/...) Sen det där med "root=/dev/ram0", är det relevant för dig?
Några frågor om din initrd (tillverkarens och den du skapar)
* Är /sbin/init ett program eller ett sccipt ?
* Om det är ett program, vad innehåller din /etc/inittab ?
* Har du någon /init eller /linuxrc ?
OBS: Det som finns i initrd-filen, inte din root-partition.
Ett script som skapar en initrd, återigen frågor om /dev/ram0 : https://developer.ibm.com/articles/l-initrd/
Några labtips så du får en känsla av vad som faktiskt körs.
* /sbin/init kan vara / är ett script, börja med att bara lägga in en echo "min init"
* /linuxrc används av den äldre startsekvensen, lägg in en echo "xrc"
* Prova med "noinitrd" .
* Prova med "root=/dev/ram0" - Den lär fastna i initrd om den inte själv kan lämna över till din root-partition.
* När du använder initrd-funktionen så skall /sbin/init startas två gånger, först i initrd-filsystemet, sedan i din riktiga root-partition. Dessa två har samma namn, men behöver inte alls vara samma program. Det som skall göras i initrd är oftast väldigt enkla saker. (hårdvaruinitiering)
Flashiga bilder: https://www.golinuxcloud.com/linux-boot-process-explained-ste...
Kvällens ämne och läsning: initrd: https://docs.kernel.org/admin-guide/initrd.html
Ge akt på "Boot command-line options" som öppnar upp för en del labbar. Du kan ju faktiskt prova noinitrd och se hur det blir. (dvs hoppa över initrd och gå direkt på din root-partition enligt root=/dev/...) Sen det där med "root=/dev/ram0", är det relevant för dig?
Några frågor om din initrd (tillverkarens och den du skapar)
* Är /sbin/init ett program eller ett sccipt ?
* Om det är ett program, vad innehåller din /etc/inittab ?
* Har du någon /init eller /linuxrc ?
OBS: Det som finns i initrd-filen, inte din root-partition.
Ett script som skapar en initrd, återigen frågor om /dev/ram0 : https://developer.ibm.com/articles/l-initrd/
Några labtips så du får en känsla av vad som faktiskt körs.
* /sbin/init kan vara / är ett script, börja med att bara lägga in en echo "min init"
* /linuxrc används av den äldre startsekvensen, lägg in en echo "xrc"
* Prova med "noinitrd" .
* Prova med "root=/dev/ram0" - Den lär fastna i initrd om den inte själv kan lämna över till din root-partition.
* När du använder initrd-funktionen så skall /sbin/init startas två gånger, först i initrd-filsystemet, sedan i din riktiga root-partition. Dessa två har samma namn, men behöver inte alls vara samma program. Det som skall göras i initrd är oftast väldigt enkla saker. (hårdvaruinitiering)
Flashiga bilder: https://www.golinuxcloud.com/linux-boot-process-explained-ste...
Ibland undrar jag om ST har gjort egen lösning för att skapa ett Linux. Dom verkar göra icke standardiserade lösningar på sitt Linux. Tråkigt.
Men det jag ska göra om en timme är att testa ta bort root= raden i extlinux.conf för att verkligen kolla om den läser den eller inte...
Jag kan nämligen skriva in root=vad som helst utan att jag får något meddelande.
Här är uppdateringen. Om jag väljer denna extlinux.conf
# Generic Distro Configuration file generated by OpenEmbedded
MENU BACKGROUND /splash_landscape.bmp
DEFAULT UUID
TIMEOUT 20
LABEL UUID
KERNEL /uImage
FDTDIR /
INITRD /uInitrd
APPEND root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=${console},${baudrate}
LABEL p1
KERNEL /uImage
FDTDIR /
INITRD /uInitrd
APPEND root=? rootwait rw console=${console},${baudrate}
LABEL p2
KERNEL /uImage
FDTDIR /
INITRD /uInitrd
APPEND root== rootwait rw console=${console},${baudrate}
LABEL p3
KERNEL /uImage
FDTDIR /
INITRD /uInitrd
LABEL p4
KERNEL /uImage
FDTDIR /
LABEL p5
KERNEL /uImage
LABEL p6
Sedan väljer jag p5 som alternativ när U-boot ska starta upp kärnan
Scanning mmc 0:6...
Found /mmc0_extlinux/extlinux.conf
Retrieving file: /mmc0_extlinux/extlinux.conf
Retrieving file: /splash_landscape.bmp
1: UUID
2: p1
3: p2
4: p3
5: p4
6: p5
7: p6
Enter choice: 6
6: p5
Retrieving file: /uImage
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Flattened Device Tree blob at dbae3420
Booting using the fdt blob at 0xdbae3420
XIP Kernel Image
Loading Device Tree to cffe9000, end cffffa47 ... OK
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01808, size 4
..
..
..
F/TC:0 pwr_scv_handler:77 set off c=40000000 => 40000000
D/TC:0 pwr_scv_handler:56 PWR service: set 0x10000000 at offset 0xc
F/TC:0 pwr_scv_handler:77 set off c=10000000 => d0000000
[ 4.705251] ohci-platform 5800c000.usb: Generic Platform OHCI controller
[ 4.712094] ohci-platform 5800c000.usb: new USB bus registered, assigned bus number 1
[ 4.718732] ehci-platform 5800d000.usb: EHCI Host Controller
[ 4.724726] ohci-platform 5800c000.usb: irq 53, io mem 0x5800c000
[ 4.731608] ehci-platform 5800d000.usb: new USB bus registered, assigned bus number 2
[ 4.738661] ehci-platform 5800d000.usb: irq 52, io mem 0x5800d000
[ 4.745102] mmc0: new DDR MMC card at address 0001
[ 4.750365] mmcblk0: mmc0:0001 008GB0 7.28 GiB
[ 4.764644] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9
[ 4.769184] ehci-platform 5800d000.usb: USB 2.0 started, EHCI 1.00
[ 4.776121] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB
[ 4.781074] hub 2-0:1.0: USB hub found
[ 4.784694] hub 2-0:1.0: 2 ports detected
[ 4.789304] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB
[ 4.797768] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (244:0)
[ 4.808291] hub 1-0:1.0: USB hub found
[ 4.810830] hub 1-0:1.0: 2 ports detected
F/TC:? 0 pta_scmi_ocall:205 Posting MSG message on channel 0u
F/TC:? 0 plat_scmi_clock_set_state:472 SCMI clock 13 disable
F/TC:0 0 __clk_disable:1187 Clock 140 has been disabled
Om jag väljer p1
mmc0(part 0) is current device
Scanning mmc 0:6...
Found /mmc0_extlinux/extlinux.conf
Retrieving file: /mmc0_extlinux/extlinux.conf
Retrieving file: /splash_landscape.bmp
1: UUID
2: p1
3: p2
4: p3
5: p4
6: p5
7: p6
Enter choice: 2
2: p1
Retrieving file: /uImage
Retrieving file: /uInitrd
append: root=? rootwait rw console=ttySTM0,115200
Retrieving file: /stm32mp151a-stm32-computer-firmware-mx.dtb
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at c6400000 ...
Image Name: Initrd Image
Created: 2024-08-28 21:24:48 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 425413 Bytes = 415.4 KiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at c6000000
Booting using the fdt blob at 0xc6000000
XIP Kernel Image
Loading Ramdisk to cff98000, end cffffdc5 ... OK
Loading Device Tree to cff81000, end cff974a9 ... OK
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
..
..
..
D/TC:0 pwr_scv_handler:56 PWR service: set 0x40000000 at offset 0xc
F/TC:0 pwr_scv_handler:77 set off c=40000000 => 40000000
D/TC:0 pwr_scv_handler:56 PWR service: set 0x10000000 at offset 0xc
F/TC:0 pwr_scv_handler:77 set off c=10000000 => d0000000
[ 4.744601] ohci-platform 5800c000.usb: Generic Platform OHCI controller
[ 4.751391] ohci-platform 5800c000.usb: new USB bus registered, assigned bus number 1
[ 4.758020] ehci-platform 5800d000.usb: EHCI Host Controller
[ 4.763614] ehci-platform 5800d000.usb: new USB bus registered, assigned bus number 2
[ 4.771788] ohci-platform 5800c000.usb: irq 53, io mem 0x5800c000
[ 4.779028] ehci-platform 5800d000.usb: irq 52, io mem 0x5800d000
[ 4.784648] mmc0: new DDR MMC card at address 0001
[ 4.789788] mmcblk0: mmc0:0001 008GB0 7.28 GiB
[ 4.803977] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9
[ 4.807350] ehci-platform 5800d000.usb: USB 2.0 started, EHCI 1.00
[ 4.816519] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB
[ 4.821452] hub 2-0:1.0: USB hub found
[ 4.825045] hub 2-0:1.0: 2 ports detected
[ 4.829553] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB
[ 4.838186] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (244:0)
[ 4.851936] hub 1-0:1.0: USB hub found
[ 4.854345] hub 1-0:1.0: 2 ports detected
F/TC:? 0 pta_scmi_ocall:205 Posting MSG message on channel 0u
F/TC:? 0 plat_scmi_clock_set_state:472 SCMI clock 13 disable
F/TC:0 0 __clk_disable:1187 Clock 140 has been disabled
Alltså betyder detta att vid min uppstart så bryr sig inte linuxkärnan om vad jag väljer för root!
Linuxkärnan botar upp och aktiverar den blå LED-lampan som utför "heatbeat"-signalen. Vilket betyder att Linuxkärnan är uppstartad.
Men linuxkärnan läser inte root eller liknande. Om jag skulle välja p6 så skulle den säga följande att den väljer första alternativet UUID istället för uImage hittas inte, vilket är logiskt. Så extlinux.conf verkar i alla fall läsas av systemet, men inte alla rader!
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:6...
Found /mmc0_extlinux/extlinux.conf
Retrieving file: /mmc0_extlinux/extlinux.conf
Retrieving file: /splash_landscape.bmp
1: UUID
2: p1
3: p2
4: p3
5: p4
6: p5
7: p6
Enter choice: 7
7: p6
No kernel given, skipping p6
1: UUID
Retrieving file: /uImage
Retrieving file: /uInitrd
append: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=ttySTM0,115200
Retrieving file: /stm32mp151a-stm32-computer-firmware-mx.dtb
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at c6400000 ...
Image Name: Initrd Image
Created: 2024-08-28 21:24:48 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 425413 Bytes = 415.4 KiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at c6000000
Booting using the fdt blob at 0xc6000000
XIP Kernel Image
Loading Ramdisk to cff98000, end cffffdc5 ... OK
Loading Device Tree to cff81000, end cff974a9 ... OK
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01808, size 4
..
..
..
D/TC:0 pwr_scv_handler:56 PWR service: set 0x40000000 at offset 0xc
F/TC:0 pwr_scv_handler:77 set off c=40000000 => 40000000
D/TC:0 pwr_scv_handler:56 PWR service: set 0x10000000 at offset 0xc
F/TC:0 pwr_scv_handler:77 set off c=10000000 => d0000000
[ 4.763346] ohci-platform 5800c000.usb: Generic Platform OHCI controller
[ 4.769065] ohci-platform 5800c000.usb: new USB bus registered, assigned bus number 1
[ 4.776567] ehci-platform 5800d000.usb: EHCI Host Controller
[ 4.783591] ohci-platform 5800c000.usb: irq 53, io mem 0x5800c000
[ 4.788404] ehci-platform 5800d000.usb: new USB bus registered, assigned bus number 2
[ 4.796570] ehci-platform 5800d000.usb: irq 52, io mem 0x5800d000
[ 4.802377] mmc0: new DDR MMC card at address 0001
[ 4.808300] mmcblk0: mmc0:0001 008GB0 7.28 GiB
[ 4.822477] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9
[ 4.828793] mmcblk0boot0: mmc0:0001 008GB0 4.00 MiB
[ 4.835100] mmcblk0boot1: mmc0:0001 008GB0 4.00 MiB
[ 4.838826] ehci-platform 5800d000.usb: USB 2.0 started, EHCI 1.00
[ 4.847570] mmcblk0rpmb: mmc0:0001 008GB0 4.00 MiB, chardev (244:0)
[ 4.853663] hub 2-0:1.0: USB hub found
[ 4.856270] hub 2-0:1.0: 2 ports detected
[ 4.867943] hub 1-0:1.0: USB hub found
[ 4.870688] hub 1-0:1.0: 2 ports detected
F/TC:? 0 pta_scmi_ocall:205 Posting MSG message on channel 0u
F/TC:? 0 plat_scmi_clock_set_state:472 SCMI clock 13 disable
F/TC:0 0 __clk_disable:1187 Clock 140 has been disabled
Det verkar som att det är en konfigurering i U-boot. Jag testade ändra namn på mappen mmc0_extlinux till mmmc0_extlinux. Ett extra m med andra ord. Då klagar U-boot. Så detta betyder att U-boot är dåligt konfigurerat som inte riktigt förstår vad den ska läsa in. Den förstår att den ska läsa filen /boot/mmc0_extlinux/extlinux.conf och ladda in alla rader, men den utför bara uImage raden, resten skiter den i.
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:6...
79018 bytes read in 77 ms (1002 KiB/s)
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 plat_prng_add_jitter_entropy:73 0x60
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01438, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01408, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 plat_prng_add_jitter_entropy:73 0x89
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 16 val: 0x1355761f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01410, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 16 val: 0x1355761f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01440, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
BootOrder not defined
EFI boot manager: Cannot load any image
SCRIPT FAILED... /mmc0_extlinux/extlinux.conf not found !
Saving Environment to MMC... Writing to redundant MMC(0)... OK
SCRIPT FAILED: continuing...
79018 bytes read in 77 ms (1002 KiB/s)
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 plat_prng_add_jitter_entropy:73 0x27
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc010a0, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 1 val: 0x802f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01070, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 plat_prng_add_jitter_entropy:73 0x75
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 16 val: 0x1355761f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc01078, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
F/TC:? 0 bsec_pta_invoke_command:278 bsec.pta command 0 ptypes 0x61
F/TC:? 0 bsec_read_mem:86 Read shadow 16 val: 0x1355761f
F/TC:? 0 bsec_read_mem:148 Buffer orig 0xdbc010a8, size 4
D/TC:? 0 tee_ta_close_session:451 csess 0xde051270 id 1
D/TC:? 0 tee_ta_close_session:470 Destroy session
BootOrder not defined
EFI boot manager: Cannot load any image
STM32MP>
Ibland undrar jag om ST har gjort egen lösning för att skapa ett Linux. Dom verkar göra icke standardiserade lösningar på sitt Linux. Tråkigt.
Men det jag ska göra om en timme är att testa ta bort root= raden i extlinux.conf för att verkligen kolla om den läser den eller inte...
Jag kan nämligen skriva in root=vad som helst utan att jag får något meddelande.
Så är det, ARM har väl fortfarande ganska specifika önskemål för sin hårdvara. Jämfört med X86 som verkar vara mycket mer standardiserad och den primära utvecklingsmiljön för Linux-kärnan. Antar att ST32-tillverkarna i stort sätt kämpat tills de lyckats boota en gång och sedan är det bra med det. (lite raljant och surt skrivet) Detaljerna får användarna/utvecklarna ta hand om. Här ser man hur viktigt valet av processor är, om det finns en aktiv användarkrets som delar med sig av lösningar. Samma skillnad ses ju mellan de som väljer RK3588 jämfört med RPi-familjens processorer, lite mer opolerat.
Så, du har kommit igång med labbandet ser jag Ska du prova mina förslag också?
# raid= ger kanske en extra utskrift mellan usb och din problem-punkt?
# /dev/ram0 säger väl egentligen att du manuellt skall göra överlämningen i din initrd, är osäker här.
boot=/dev/ram0 raid=noautodetect
# Denna kan visa om den gör något mer, eller är lika död vid samma punkt som idag.
boot=/dev/mmcblk0p8 noinitrd raid=noautodetect
Jag har tittat på mina x86-loggar och gått tillbaka till dina första loggar. Helt klart är det USB-initializationen som är det sista innan vi skall gå vidare. Bifogar mina anteckningar nedan.
HIttade också denna, kan vara bra att ha framöver. Det är dock efter att /sbin/init startat.
"mmc bandwith is 8 bits on the 157 but 4 on the 151, their files don’t make a distinction"
https://forum.digikey.com/t/board-stops-booting-after-udev-st...
0. Spridda kommentarer om rpmb.
mmcblk0 ST32mp151aac
rpmb Replay Protected Memory Block.
Basically, its a small portion of the internal eMMC which is set aside for storing keys, etc.
Yes, its encrypted, and I don't even think there is a standard filesystem there for you to mount.
1. Boot-parametrar
Aug 29 03:09:35 kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-6.x.y-gentoo
root=PARTUUID=9a007193-05 ro raid=noautodetect
2. % av antalet rader i loggen. Identifiering av USB-bussar.
75% 0 Aug 29 03:09:36 kernel: hub 1-0:1.0: USB hub found
75% 0 Aug 29 03:09:36 kernel: hub 2-0:1.0: USB hub found
76% 0 Aug 29 03:09:36 kernel: hub 3-0:1.0: USB hub found
77% 0 Aug 29 03:09:36 kernel: hub 4-0:1.0: USB hub found
79% 0 Aug 29 03:09:36 kernel: hub 5-0:1.0: USB hub found
80% 0 Aug 29 03:09:36 kernel: hub 6-0:1.0: USB hub found
3. Den bekanta partitionslistan
Aug 29 03:09:36 kernel: sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 sda9 sda10 sda11 sda12 >
Aug 29 03:09:36 kernel: sd 0:0:0:0: [sda] Attached SCSI disk
4. Identifiering av tangentbord och mus.
Aug 29 03:09:36 kernel: usb 3-1: New USB device found, idVendor=413c, idProduct=2003, bcdDevice= 3.06
Aug 29 03:09:36 kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Aug 29 03:09:36 kernel: usb 3-1: Product: Dell USB Keyboard
Aug 29 03:09:36 kernel: usb 3-1: Manufacturer: Dell
Aug 29 03:09:36 kernel: ata2: SATA link down (SStatus 0 SControl 300)
Aug 29 03:09:36 kernel: input: USB Keyboard as /devices/pci0000:...
Aug 29 03:09:37 kernel: hid-generic 0003:413C:2003.0002: input,hidraw1: USB HID v1.10 Keyboard...
Aug 29 03:09:37 kernel: ata5: SATA link down (SStatus 0 SControl 300)
Aug 29 03:09:37 kernel: ata6: SATA link down (SStatus 0 SControl 300)
5. Raid-meddelande
Aug 29 03:09:37 kernel: md: Skipping autodetection of RAID arrays. (raid=autodetect will force)
6. Jag har ingen INITRD, men kärnan jobbar på med sin egen "dummy". (pivot_root)
Aug 29 03:09:37 kernel: EXT4-fs (sda5): mounted filesystem with ordered data mode. Quota mode: none.
Aug 29 03:09:37 kernel: VFS: Mounted root (ext4 filesystem) readonly on device 8:5.
Aug 29 03:09:37 kernel: devtmpfs: mounted
Aug 29 03:09:37 kernel: Freeing unused kernel image (initmem) memory: 1468K
Aug 29 03:09:37 kernel: Write protecting the kernel read-only data: 22528k
Aug 29 03:09:37 kernel: Freeing unused kernel image (text/rodata gap) memory: 2036K
Aug 29 03:09:37 kernel: Freeing unused kernel image (rodata/data gap) memory: 1244K
7. Överlämning till root:/sbin/init som process 1.
99% 1 Aug 29 03:09:37 kernel: Run /sbin/init as init process
Så är det, ARM har väl fortfarande ganska specifika önskemål för sin hårdvara. Jämfört med X86 som verkar vara mycket mer standardiserad och den primära utvecklingsmiljön för Linux-kärnan. Antar att ST32-tillverkarna i stort sätt kämpat tills de lyckats boota en gång och sedan är det bra med det. (lite raljant och surt skrivet) Detaljerna får användarna/utvecklarna ta hand om. Här ser man hur viktigt valet av processor är, om det finns en aktiv användarkrets som delar med sig av lösningar. Samma skillnad ses ju mellan de som väljer RK3588 jämfört med RPi-familjens processorer, lite mer opolerat.
Jag tycker det inte är svårt med ARM. Men problemet är att dom som skriver koden till ARM verkar inte veta vad dom håller på med.
Jag brukar alltid bugtesta min kod. Köra några exempel och testa gränserna.
Så, du har kommit igång med labbandet ser jag Ska du prova mina förslag också?
# raid= ger kanske en extra utskrift mellan usb och din problem-punkt?
# /dev/ram0 säger väl egentligen att du manuellt skall göra överlämningen i din initrd, är osäker här.
boot=/dev/ram0 raid=noautodetect
# Denna kan visa om den gör något mer, eller är lika död vid samma punkt som idag.
boot=/dev/mmcblk0p8 noinitrd raid=noautodetect
Med tanke på att jag kan skriva root= hej hej och den bryr sig inte så tror jag problemet sitter i U-boot. U-boot läser extlinux.inf men verkar inte gå vidare med att titta på dom övriga kodraderna i filen.
Jag har tittat på mina x86-loggar och gått tillbaka till dina första loggar. Helt klart är det USB-initializationen som är det sista innan vi skall gå vidare. Bifogar mina anteckningar nedan.
Det kan ju bara något där ja. Men med tanke på att Linux LED blinkar med hjärtfrekvens så betyder det att linuxkärnan är aktiverad till fullt.
HIttade också denna, kan vara bra att ha framöver. Det är dock efter att /sbin/init startat.
"mmc bandwith is 8 bits on the 157 but 4 on the 151, their files don’t make a distinction"
https://forum.digikey.com/t/board-stops-booting-after-udev-st...
Han använder MYIR istället för STM32MP. Det är fortfarande samma processor, men olika märken.
0. Spridda kommentarer om rpmb.
mmcblk0 ST32mp151aac
rpmb Replay Protected Memory Block.
Basically, its a small portion of the internal eMMC which is set aside for storing keys, etc.
Yes, its encrypted, and I don't even think there is a standard filesystem there for you to mount.
1. Boot-parametrar
Aug 29 03:09:35 kernel: Kernel command line: BOOT_IMAGE=/vmlinuz-6.x.y-gentoo
root=PARTUUID=9a007193-05 ro raid=noautodetect
2. % av antalet rader i loggen. Identifiering av USB-bussar.
75% 0 Aug 29 03:09:36 kernel: hub 1-0:1.0: USB hub found
75% 0 Aug 29 03:09:36 kernel: hub 2-0:1.0: USB hub found
76% 0 Aug 29 03:09:36 kernel: hub 3-0:1.0: USB hub found
77% 0 Aug 29 03:09:36 kernel: hub 4-0:1.0: USB hub found
79% 0 Aug 29 03:09:36 kernel: hub 5-0:1.0: USB hub found
80% 0 Aug 29 03:09:36 kernel: hub 6-0:1.0: USB hub found
3. Den bekanta partitionslistan
Aug 29 03:09:36 kernel: sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 sda9 sda10 sda11 sda12 >
Aug 29 03:09:36 kernel: sd 0:0:0:0: [sda] Attached SCSI disk
4. Identifiering av tangentbord och mus.
Aug 29 03:09:36 kernel: usb 3-1: New USB device found, idVendor=413c, idProduct=2003, bcdDevice= 3.06
Aug 29 03:09:36 kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Aug 29 03:09:36 kernel: usb 3-1: Product: Dell USB Keyboard
Aug 29 03:09:36 kernel: usb 3-1: Manufacturer: Dell
Aug 29 03:09:36 kernel: ata2: SATA link down (SStatus 0 SControl 300)
Aug 29 03:09:36 kernel: input: USB Keyboard as /devices/pci0000:...
Aug 29 03:09:37 kernel: hid-generic 0003:413C:2003.0002: input,hidraw1: USB HID v1.10 Keyboard...
Aug 29 03:09:37 kernel: ata5: SATA link down (SStatus 0 SControl 300)
Aug 29 03:09:37 kernel: ata6: SATA link down (SStatus 0 SControl 300)
5. Raid-meddelande
Aug 29 03:09:37 kernel: md: Skipping autodetection of RAID arrays. (raid=autodetect will force)
6. Jag har ingen INITRD, men kärnan jobbar på med sin egen "dummy". (pivot_root)
Aug 29 03:09:37 kernel: EXT4-fs (sda5): mounted filesystem with ordered data mode. Quota mode: none.
Aug 29 03:09:37 kernel: VFS: Mounted root (ext4 filesystem) readonly on device 8:5.
Aug 29 03:09:37 kernel: devtmpfs: mounted
Aug 29 03:09:37 kernel: Freeing unused kernel image (initmem) memory: 1468K
Aug 29 03:09:37 kernel: Write protecting the kernel read-only data: 22528k
Aug 29 03:09:37 kernel: Freeing unused kernel image (text/rodata gap) memory: 2036K
Aug 29 03:09:37 kernel: Freeing unused kernel image (rodata/data gap) memory: 1244K
7. Överlämning till root:/sbin/init som process 1.
99% 1 Aug 29 03:09:37 kernel: Run /sbin/init as init process
Vad tror du problemet ligger hos? Initrd, Linux eller U-boot?
U-boot har ju gjort sitt, vi har ju kärnan i luften. (LED blinkar som du säger), så vi har bootat. Nu gäller det hårdvara och user space.
Frågorna är, har den fått rätt parametrar och körs initrd eller inte, det vet vi väl inte. Dör den innan eller i initrd? Du nämner att du försöker bygga en egen initrd, men varför inte bara packa upp den du har och se vad den gör? Det skulle ge ledtrådar till vad den vill åstadkomma och vilka scripts den använder för detta. Det är ju en väldig skillnad på om felorsak om den inte lyckas packa upp, montera och starta initrd, eller om den hänger sig däri på någonting. Vi får ju ingen panic i alla fall.
Försökte lära mig lite om just ST32(mp(151)) och initrd, men det bästa jag hittade var ett dokument på ryska(!) Här har de ingen INITRD, men har specat FDT mer specifikt samt ett "console" direktiv som inte borde vara relevant ännu. Vad tror du om att ändra din FDT till den där twit1.dtb saken vi skapade tidigare(?) Eller om du har en bättre dtb.
LABEL stm32mp157a-dk1
KERNEL /zImage
FDT /stm32mp157a-dk1.dtb
APPEND root=/dev/mmcblk0p5 rootwait rw console=ttySTM0,115200
Ärligt talat, eftersom jag inte vet vad som försigår i initrd så är jag osäker på root= direktivet. Har inte hittat något dokument som presenterar alternativen här. (Såg en blänkare om att /dev/ är rent kosmetiskt, intressant!)
PS. Hur mycket minne har du på dina kort? Vad jag förstår så finns det inget i ST32mp1-chipparna.
Du kan inte peka på var jag kan ladda ner din standard-initrd. Vill inte logga in eller dela email på sidan du länkade till i början på tråden. Du kan skicka PM till mig om det kan vara känsligt licensmässigt.
U-boot har ju gjort sitt, vi har ju kärnan i luften. (LED blinkar som du säger), så vi har bootat. Nu gäller det hårdvara och user space.
Frågorna är, har den fått rätt parametrar och körs initrd eller inte, det vet vi väl inte. Dör den innan eller i initrd?
Dör?
Jag tror inte initrd körs ens. Det är linux som ska köra den eller?
Du nämner att du försöker bygga en egen initrd, men varför inte bara packa upp den du har och se vad den gör?
Jadu. Hur packar man upp "st-image-resize-initrd" som den heter? Det är en gzip fil när jag kör "file st-image-resize-initrd", men jag verkar inte kunna packa upp den. Annars hade jag inte skapat en egen initrd från första början.
Det skulle ge ledtrådar till vad den vill åstadkomma och vilka scripts den använder för detta. Det är ju en väldig skillnad på om felorsak om den inte lyckas packa upp, montera och starta initrd, eller om den hänger sig däri på någonting. Vi får ju ingen panic i alla fall.
Håller med. Jag tror inte det är Linux som är fel på. Den har gjort det den ska, Nu är det något annat som ska läsas in, men det görs inte.
Försökte lära mig lite om just ST32(mp(151)) och initrd, men det bästa jag hittade var ett dokument på ryska(!) Här har de ingen INITRD, men har specat FDT mer specifikt samt ett "console" direktiv som inte borde vara relevant ännu. Vad tror du om att ändra din FDT till den där twit1.dtb saken vi skapade tidigare(?) Eller om du har en bättre dtb.
LABEL stm32mp157a-dk1
KERNEL /zImage
FDT /stm32mp157a-dk1.dtb
APPEND root=/dev/mmcblk0p5 rootwait rw console=ttySTM0,115200
STM32MP processorerna är riktigt bra ska du veta. Man får MYCKET för pengarna. Det är därför folk idag kör ST. STM32MP151 eller STM32MP157 är typ samma processor. Skillnaden är inte mycket: FD CAN bus, GPU, DSI och 2 kärnor istället för en. Men annars så är det exakt samma minnesbank på dom.
twit1.dtb? Jag känner inte till detta. Men jag har andra .dtb filer.
Om jag låter FTD / så kommer den hitta min .dtb fil direkt. Om jag skriver in namnet på min .dbt fil så det ser ut som så här:
FDT /min_dtb_namn.dtb
Då kommer den tro att min_dtb_namn.dtb är en sökväg, och inte ett filnamn.
Ärligt talat, eftersom jag inte vet vad som försigår i initrd så är jag osäker på root= direktivet. Har inte hittat något dokument som presenterar alternativen här. (Såg en blänkare om att /dev/ är rent kosmetiskt, intressant!)
Vet du hur man packar upp initrd från https://www.st.com/en/embedded-software/stm32mp1starter.html ?
PS. Hur mycket minne har du på dina kort? Vad jag förstår så finns det inget i ST32mp1-chipparna.
Mycket minne. Jag tror jag har 4 GB RAM, 256 KB Sysram och 8 GB ROM. (ROM...90'tal...)
Du kan inte peka på var jag kan ladda ner din standard-initrd. Vill inte logga in eller dela email på sidan du länkade till i början på tråden. Du kan skicka PM till mig om det kan vara känsligt licensmässigt.
Jo. Se ovan. Du behöver inte registera dig. Bara klicka på "Get Software" och sedan klickar du på "Download as guest" (liten blå text till höger) och sedan kan du skriva in något fult och sedan ladda ned.
https://www.st.com/en/embedded-software/stm32mp1starter.html
Tvärtom hur du skapar den Posta sedan en "find . -type f" samt eventuella script (init,linuxrc)
Börja med att verifiera arkivet så att vi packar ihop det på rätt sätt. Det finns mer avancerade "format" där de lägger flera cpio-arkiv efter varandra, eller att det är en filsystemsavbildning, vilket inte är helt uppenbart om man inte fysiskt tittar in i arkivet.
https://unix.stackexchange.com/questions/266089/extracting-co...
Här är ett vanligt cpio-arkiv komprimerat med GZIP:
$ file initrd
initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 1536
$ zcat ../initrd > initrd.cpio
$ file initrd.cpio
initrd.cpio: ASCII cpio archive (SVR4 with no CRC)
Om du får denna beskrivning skall du inte använda "-H newc" varianten.
initrd.cpio: cpio archive; device 2053, inode 31, mode 40755, uid 1000, gid 1000, 2 links, modified Thu Aug 29 21:39:10 2024, 0 bytes "."
-- unpack GZIP
$ mkdir ird
$ cd ird
$ zcat ../initrd | cpio -i -d
$ find . -type f
-- pack GZIP
$ find . | cpio -o -H newc | gzip -9 > ../initrd
eller
$ find . | cpio -o | gzip -9 > ../initrd
Om arkivet är komprimerat med LZMA:
$ file initrd
initrd: LZMA compressed data, streamed
$ lzcat initrd > initrd.cpio
$ file initrd.cpio
initrd.cpio: ASCII cpio archive (SVR4 with no CRC)
-- unpack LZMA
$ mkdir ird
$ cd ird
$ lzcat ../initrd | cpio -i -d
$ find . -type f
-- pack LZMA
$ find . | cpio -o -H newc | xz --format=lzma > ../initrd
Dina ST-vänner kräver email-verifiering numera.
Tvärtom hur du skapar den Posta sedan en "find . -type f" samt eventuella script (init,linuxrc)
Börja med att verifiera arkivet så att vi packar ihop det på rätt sätt. Det finns mer avancerade "format" där de lägger flera cpio-arkiv efter varandra, eller att det är en filsystemsavbildning, vilket inte är helt uppenbart om man inte fysiskt tittar in i arkivet.
https://unix.stackexchange.com/questions/266089/extracting-co...
Här är ett vanligt cpio-arkiv komprimerat med GZIP:
$ file initrd
initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 1536
$ zcat ../initrd > initrd.cpio
$ file initrd.cpio
initrd.cpio: ASCII cpio archive (SVR4 with no CRC)
Om du får denna beskrivning skall du inte använda "-H newc" varianten.
initrd.cpio: cpio archive; device 2053, inode 31, mode 40755, uid 1000, gid 1000, 2 links, modified Thu Aug 29 21:39:10 2024, 0 bytes "."
-- unpack GZIP
$ mkdir ird
$ cd ird
$ zcat ../initrd | cpio -i -d
$ find . -type f
-- pack GZIP
$ find . | cpio -o -H newc | gzip -9 > ../initrd
eller
$ find . | cpio -o | gzip -9 > ../initrd
Om arkivet är komprimerat med LZMA:
$ file initrd
initrd: LZMA compressed data, streamed
$ lzcat initrd > initrd.cpio
$ file initrd.cpio
initrd.cpio: ASCII cpio archive (SVR4 with no CRC)
-- unpack LZMA
$ mkdir ird
$ cd ird
$ lzcat ../initrd | cpio -i -d
$ find . -type f
-- pack LZMA
$ find . | cpio -o -H newc | xz --format=lzma > ../initrd
Dina ST-vänner kräver email-verifiering numera.
Jag ska testa dina kommandon.
Här är nedladdningslänken: https://www.transfernow.net/dl/20240830zJ8KyWRR
Den är giltig i 7 dagar.
Edit:
Jag får inga av dina linux kommandon att fungera med min st-image-resize-initrd fil.
Jag ska testa dina kommandon.
Här är nedladdningslänken: https://www.transfernow.net/dl/20240830zJ8KyWRR
Den är giltig i 7 dagar.
Tack, har packat upp allt, kollat de fyra *.ext4 avbildningarna, hämtat ut st-image-resize-initrd och packat upp den.
Varken */init eller linuxrc används i initrd, därimot finns scriptet /init . Ska kolla vilka hyss den har för sig.
När den sedan kommer att starta från 0:8 så är /sbin/init en länk till /lib/systemd/systemd - så ingen /etc/inittab som användes förr.
Scriptet /init skapar och monterar /proc och /sys, exporterar boot-parametrarna och monterar /dev , sedan kör den igång modulerna i /init.d - det är väl först här som den börjar bli pratglad. 99-finish är den som lämnar över till 0:8 via root=/dev/mmcblk0p8 . Det kommer medelanden innan det sker.
01-udev 90-rootfs 95-resize 99-finish
Känns inte som att initrd startar, nej.. Men om du har tillfälle så skulle du kunna peta in en "echo 'hej' >/dev/console" i början på det scriptet.
Tack, har packat upp allt, kollat de fyra *.ext4 avbildningarna, hämtat ut st-image-resize-initrd och packat upp den.
Varken */init eller linuxrc används i initrd, därimot finns scriptet /init . Ska kolla vilka hyss den har för sig.
När den sedan kommer att starta från 0:8 så är /sbin/init en länk till /lib/systemd/systemd - så ingen /etc/inittab som användes förr.
Scriptet /init skapar och monterar /proc och /sys, exporterar boot-parametrarna och monterar /dev , sedan kör den igång modulerna i /init.d - det är väl först här som den börjar bli pratglad. 99-finish är den som lämnar över till 0:8 via root=/dev/mmcblk0p8 . Det kommer medelanden innan det sker.
01-udev 90-rootfs 95-resize 99-finish
Känns inte som att initrd startar, nej.. Men om du har tillfälle så skulle du kunna peta in en "echo 'hej' >/dev/console" i början på det scriptet.
Hur packade du upp initrd filen?
Jag har försökt med det går inte. Sitter vid Lubuntu.
Jag tar det från början med filen som jag laddade ned från dig, så får du hoppa in där du har dina grejor tillgängliga.
$ mkdir ~/work
$ cp en.FLASH-stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar.gz ~/work/x.gz
$ cd ~/work
$ gunzip x
$ file x
x: gzip compressed data (Ok, forfarande gzip, på'n igen)
$ mv x x.gz
$ gunzip x
$ file x
x: POSIX tar archive (GNU)
$ tar -xvf x
$ ls && cd stm*
$ ls && cd *
$ ls && cd * && pwd
~/work/stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26/images/stm32mp1
Vi har nu fyra kataloger och 14 filer, varav fyra *.ext4 filsystemsavbildningar.
$ ls -l | grep ^d
drwxr-xr-x 2 100000 100000 4096 Jun 21 17:28 arm-trusted-firmware
drwxr-xr-x 2 100000 100000 4096 Jun 21 17:28 fip
drwxr-xr-x 6 100000 100000 4096 Jun 21 17:28 flashlayout_st-image-weston
drwxr-xr-x 2 100000 100000 4096 Jun 21 17:28 scripts
$ ls -1 *.ext4
st-image-bootfs-openstlinux-weston-stm32mp1.ext4
st-image-userfs-openstlinux-weston-stm32mp1.ext4
st-image-vendorfs-openstlinux-weston-stm32mp1.ext4
st-image-weston-openstlinux-weston-stm32mp1.ext4
Nu lägger vi i en högre växel, vi vill titta in i en diskavbildning utan att installera den på någon hårdvara. (Användbart om du vill titta på ISO-avbildningar, t.ex. linux-distar som man brukar bränna på USB-pinnar. (Ja, det går att boota en sådana direkt via GRUB också!))
Först måste vi vara root, så logga in med en "su" så du får '#' prompten.
# mkdir -p /mnt/iso
# mount -o loop st-image-bootfs-openstlinux-weston-stm32mp1.ext4 /mnt/iso
Simsalabim, allt är tillgängligt hur lätt som helst.
# ls /mnt/iso
boot.scr.uimg stm32mp157a-ev1.dtb stm32mp157d-ev1.dtb
lost+found stm32mp157c-dk2-a7-examples.dtb stm32mp157f-dk2-a7-examples.dtb
mmc0_extlinux stm32mp157c-dk2-m4-examples.dtb stm32mp157f-dk2-m4-examples.dtb
mmc1_extlinux stm32mp157c-dk2.dtb stm32mp157f-dk2.dtb
nand0_extlinux stm32mp157c-ed1.dtb stm32mp157f-ed1.dtb
splash_landscape.bmp stm32mp157c-ev1-a7-examples.dtb stm32mp157f-ev1-a7-examples.dtb
splash_portrait.bmp stm32mp157c-ev1-m4-examples.dtb stm32mp157f-ev1-m4-examples.dtb
st-image-resize-initrd stm32mp157c-ev1.dtb stm32mp157f-ev1.dtb
stm32mp135f-dk-a7-examples.dtb stm32mp157d-dk1-a7-examples.dtb uImage
stm32mp135f-dk.dtb stm32mp157d-dk1-m4-examples.dtb
stm32mp157a-dk1.dtb stm32mp157d-dk1.dtb
#
# cp /mnt/iso/*initrd* ~/work
# cd ~/work
# umount /mnt/iso
Dags att packa upp initrd-filen:
# file *initrd
st-image-resize-initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 11539968
# mkdir ird && cp *initrd ird/x.gz
# cd ird
# gunzip x
# file x
x: ASCII cpio archive (SVR4 with no CRC)
# ls -sk x
11272 x
# cpio -i -d < x
22539 blocks
# echo $((11272+11272))
22544
# ls
bin boot dev etc home init init.d lib media mnt proc run sbin sys tmp usr var x
Listningar av de andra *.ext4 avbildningarna:
2. st-image-userfs-openstlinux-weston-stm32mp1.ext4
application bin board common demo_launcher.py
gtk-application gtk-installer launch-demo-gtk.sh media pictures
3. st-image-vendorfs-openstlinux-weston-stm32mp1.ext4
libEGL.so.1.5.0 libGAL.so libGLESv1_CM.so.1.1.0 libGLESv2.so.2.0.0 libGLSLC.so
libOpenVG.so.1.1.0 libVSC.so libgbm.so.1.0.0 libgbm_viv.so
4. st-image-weston-openstlinux-weston-stm32mp1.ext4
bin boot dev etc home lib lost+found media
mnt proc run sbin srv sys tmp usr var vendor
Okej!
Nu har jag packat upp dom.
Vad ska jag göra med dom nu? Jag måste packa ned dom i en fil. Lustigt att det var en gzip som var packad ned i en cpio fil. Vem kommer på liksom sådant?
lubuntu@lubuntu-20bg001kms:~/work$ ls
bin boot dev etc home init init.d lib media mnt proc run sbin sys tmp usr var x
lubuntu@lubuntu-20bg001kms:~/work$
CPIO var stort en gång i tiden, om du sett bilder med datorer och 10-talet bandstationer som snurrade frenetiskt för att hålla IO uppe. Nu får du göra en plan. Någonstans har du ett problem där den stannar innan den får chansen att starta inuti INITRD.
Funderade, hur länge har du låtit den stå i det stadiet, jag såg en blänkare på en sleep 3600 (sekunder) någonstans, det är en timma! Inte så att den fastnat just där, men den kanske gör något som är sirap..
Annars kanske bästa angreppssättet är att leta dig fram i kärn-källkoden till USB-initieringarna och sedan läsa dig framåt därifrån. Har du tillgång till källkod, brukar ligga under /usr/src/ med /usr/src/linux som en länk till den som är aktiv. (Viktigt för andra programvaror som bygger kärnmoduler, då de måste anpassa sig till rätt kärna.
CPIO var stort en gång i tiden, om du sett bilder med datorer och 10-talet bandstationer som snurrade frenetiskt för att hålla IO uppe. Nu får du göra en plan. Någonstans har du ett problem där den stannar innan den får chansen att starta inuti INITRD.
Funderade, hur länge har du låtit den stå i det stadiet, jag såg en blänkare på en sleep 3600 (sekunder) någonstans, det är en timma! Inte så att den fastnat just där, men den kanske gör något som är sirap..
Annars kanske bästa angreppssättet är att leta dig fram i kärn-källkoden till USB-initieringarna och sedan läsa dig framåt därifrån. Har du tillgång till källkod, brukar ligga under /usr/src/ med /usr/src/linux som en länk till den som är aktiv. (Viktigt för andra programvaror som bygger kärnmoduler, då de måste anpassa sig till rätt kärna.
Jag ändrar till det här i init filen
# Prints information if debug bootparam is used
debug() {
[ -n "$bootparam_debug" ] && echo "DEBUG: $@" >/dev/console
}
# Prints a message and start a endless loop
fatal() {
echo $1 >/dev/console
echo >/dev/console
if [ -n "$bootparam_init_fatal_sh" ]; then
sh
else
while [ "true" ]; do
msg "Fatal error - initrd"
sleep 10
done
fi
}
msg "Starting initrd"
# Variables shared amoung modules
ROOTFS_DIR="/rootfs" # where to do the switch root
MODULE_PRE_HOOKS="" # functions to call before running each module
MODULE_POST_HOOKS="" # functions to call after running each module
Sedan packar jag ihop allt.
lubuntu@lubuntu-20bg001kms:~$ ls
Bilder Dokument Hämtningar Mallar Musik Publikt STM32Cube uInitrd Untitled Video work
lubuntu@lubuntu-20bg001kms:~$ cd work/
lubuntu@lubuntu-20bg001kms:~/work$ find . | cpio -H newc -o | gzip > ../uInitrd
22539 block
lubuntu@lubuntu-20bg001kms:~/work$ ls
bin boot dev etc home init init.d lib media mnt proc run sbin sys tmp usr var
lubuntu@lubuntu-20bg001kms:~/work$ cd ..
lubuntu@lubuntu-20bg001kms:~$ ls
Bilder Dokument Hämtningar Mallar Musik Publikt STM32Cube uInitrd Untitled Video work
lubuntu@lubuntu-20bg001kms:~$ file uInitrd
uInitrd: gzip compressed data, from Unix, original size modulo 2^32 11539968
lubuntu@lubuntu-20bg001kms:~$
Nu gör jag ett test för att kolla om filen läses. Annars börjar jag undra om filen läses ej av linuxkärnan.
Ser ok ut. Hur enkelt är det för dig att ändra i mmc0-partitionerna (dvs att föra över filer dit från din linux-miljö), kan du montera dem via USB, eller något annat sätt? (Hjälper Uboot till?) Eller måste du bränna ut hela partitions-imagen?
Funderade också på; bygger du hela kortet själv, eller köper du det prefabrikerat med ST32-processorn lödd, eller socklad?
(Tyckte du länkade till kortet tidigare, men hittar det inte just nu. Lät som du bestämde själv hur mycket minne du villa ha?)
Ser ok ut. Hur enkelt är det för dig att ändra i mmc0-partitionerna (dvs att föra över filer dit från din linux-miljö), kan du montera dem via USB, eller något annat sätt? (Hjälper Uboot till?) Eller måste du bränna ut hela partitions-imagen?
Funderade också på; bygger du hela kortet själv, eller köper du det prefabrikerat med ST32-processorn lödd, eller socklad?
(Tyckte du länkade till kortet tidigare, men hittar det inte just nu. Lät som du bestämde själv hur mycket minne du villa ha?)
Det är väldigt enkelt att ändra i mmc0 partitionerna igenom att ändra i extlinux.conf.
Jag kan montera dom via USB serial. U-boot hjälper till boota upp linux-kärnan, men det verkar som att uInitrd ej läses.
Jag kan bränna in delvis med partitionsimagen. Jag kan bränna in bootfs bara om jag känner för det. Det går väldigt snabbt.
Jag har byggt kortet helt själv och lött den helt själv också. Vill du ha gerberfilerna så du kan producera eget via JLCPCB? Har ett lödlaboratorium
Här testar jag manuellt att montera. Det verkar som att något är skumt med uInitrd hela tiden.
STM32MP> ext4load mmc 0:6 0xC2000000 /uImage
8249920 bytes read in 955 ms (8.2 MiB/s)
STM32MP> ext4load mmc 0:6 0xC4000000 /stm32mp151a-stm32-computer-firmware-mx.dtb
79018 bytes read in 77 ms (1002 KiB/s)
STM32MP> ext4load mmc 0:6 0xC6000000 /uInitrd
6243098 bytes read in 739 ms (8.1 MiB/s)
STM32MP> bootm 0xC2000000 0xC6000000 0xC4000000
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
STM32MP>
Här testar jag montera efter rekommenderade adresser.
STM32MP> ext4load mmc 0:6 0xC2000040 /uImage
8249920 bytes read in 955 ms (8.2 MiB/s)
STM32MP> ext4load mmc 0:6 0xcf9f4000 /stm32mp151a-stm32-computer-firmware-mx.dtb
79018 bytes read in 77 ms (1002 KiB/s)
STM32MP> ext4load mmc 0:6 0xcfa0b000 /uInitrd
6243098 bytes read in 739 ms (8.1 MiB/s)
STM32MP> bootm 0xC2000040 0xcfa0b000 0xcf9f4000
## Booting kernel from Legacy Image at c2000040 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
STM32MP> bootm 0xC2000040 0xcf9f4000 0xcfa0b000 <---Här flyttade jag på 2:a och 3:e adressen
## Booting kernel from Legacy Image at c2000040 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Loading ramdisk from FIT Image at cf9f4000 ...
Bad FIT ramdisk image format! (err=-99)
Signature checking prevents use of unit addresses (@) in nodes
Ramdisk image is corrupt or invalid
STM32MP> bootm 0xC2000040 0xcfa0b000 0xcf9f4000
## Booting kernel from Legacy Image at c2000040 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
STM32MP>
Så här ser det ut när Linux kärnan botas automatiskt. Då får man inga felmeddelanden.
mmc0(part 0) is current device
Scanning mmc 0:6...
Found /mmc0_extlinux/extlinux.conf
Retrieving file: /mmc0_extlinux/extlinux.conf
1: UUID
Retrieving file: /uImage
Retrieving file: /uInitrd
append: root=PARTUUID=e91c4e10-16e6-4c0e-bd0e-77becf4a3582 rootwait rw console=ttySTM0,115200
Retrieving file: /stm32mp151a-stm32-computer-firmware-mx.dtb
## Booting kernel from Legacy Image at c2000000 ...
Image Name: Linux-6.1.82
Created: 2024-08-26 20:05:23 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 8249856 Bytes = 7.9 MiB
Load Address: c2000040
Entry Point: c2000040
Verifying Checksum ... OK
## Flattened Device Tree blob at c6000000
Booting using the fdt blob at 0xc6000000
XIP Kernel Image
Loading Ramdisk to cfa0b000, end cffff31a ... OK
Loading Device Tree to cf9f4000, end cfa0a4a9 ... OK
D/TC:? 0 tee_ta_init_session_with_context:549 Re-open TA 94cf71ad-80e6-40b5-a7c6-3dc501eb2803
gzip -9 kanske? (enligt 00:25) Vad säger file på både compressade filen, och den cpio-packade?
gzip -9 kanske? Vad säger file?
Filen säger
lubuntu@lubuntu-20bg001kms:~$ file uInitrd
uInitrd: gzip compressed data, from Unix, original size modulo 2^32 11539968
lubuntu@lubuntu-20bg001kms:~$
Jag ändrade mitt svar ovan också.
Orginalet har:
st-image-resize-initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 11539968
Notera "max compression", så "-9" kan vara relevant. (Ändrade också lite i min fråga ovan.)
Orginalet har:
st-image-resize-initrd: gzip compressed data, max compression, from Unix, original size modulo 2^32 11539968
Notera "max compression", så "-9" kan vara relevant. (Ändrade också lite i min fråga ovan.)
Men just detta fungerar inte. Det går att starta upp om jag låter systemet välja själv.
Monterar jag själv så får jag felmeddelandet.
Det kanske är så att initrd är fel i grund och botten? Det är kanske som är problemet varför linuxkärnan inte boostar upp initrd ?
Hittade en tråd som föreslår att man tillåter CONFIG_LEGACY_IMAGE_FORMAT i U-Boot
https://unix.stackexchange.com/questions/579640/u-boot-wrong-...
Samma i en annan tråd:
You should add
\+CONFIG_IMAGE_FORMAT_LEGACY=y
to your u-boot config file. Worked for me.
Denna tråd är kanske intressant:
https://e2e.ti.com/support/processors-group/processors/f/proc...
I've never used the bootm with an initrd argument. I am guessing that bootm expects the initrd image to have the u-boot header. You could try using mkimage to add that header.
Kan det vara så att "bootm" vill ha en ramdisk, och inte en initrd? Det är två olika saker.
Hittade en tråd som föreslår att man tillåter CONFIG_LEGACY_IMAGE_FORMAT i U-Boot
https://unix.stackexchange.com/questions/579640/u-boot-wrong-...
Samma i en annan tråd:
You should add
\+CONFIG_IMAGE_FORMAT_LEGACY=y
to your u-boot config file. Worked for me.
Denna tråd är kanske intressant:
https://e2e.ti.com/support/processors-group/processors/f/proc...
Jag kollade faktiskt upp detta tidigare, och min u-boot tillåter faktiskt äldre initrd.
Kanske man ska sätta lite loggar in Linux kärnan för att logga varje funktionsanrop den gör ? Typ som log4j.
Men hur gör man sådant i Linux ?
- Elsparkcykel från F1-ingenjörer når 160 knyck14
- Dagens fynd — Diskussionstråden54k
- Ny dator, okänd "Љ" enhet ansluten?3
- Plats för lite gubbgnäll12k
- [FAQ] Vilken router ska jag köpa?4,6k
- Microsoft slutar sälja film och serier23
- Fick för en tid sedan råd av er, är det ff en bra rekommendation? 25k gamingrigg2
- Sverige tappar fart i 5G-racet47
- Fråga om höga temperaturer på SSDs och hårddiskar16
- Vad gör du först på datorn vid ominstallation/ nyinstallation?71
- Skänkes Ger bort grejer som samlar damm!
- Säljes NAS QNAP TS-253D-4G (+ 1x6 TB disk)
- Köpes RTX 3090 + vattenblock till TR4
- Säljes 32 gb ram, CMK32GX5M2X7200C34 Säljes
- Säljes ASUS RTX 2080 OC
- Köpes Köpes: RTX 4070 Ti Super (Billigt?)
- Säljes Intel Arc b580 limited edition
- Säljes Wooting 80HE (ISO-Nordic, TTC KOM RGB, Glorious Aura Keycaps, ABS Ghost)
- Säljes Äldre PC till salu - GPU eller HDD ingår ej
- Skänkes NYTT Skärmskydd till iPhone 11/XR
- Elsparkcykel från F1-ingenjörer når 160 knyck14
- Microsoft slutar sälja film och serier24
- Programmerare besegrar Chat GPT i kodmaraton64
- AMD:s Threadripper Pro med 96 kärnor kostar 113 000 kronor22
- Civilization VI med alla expansioner gratis hos Epic 40
- Navigera rätt i grafikkortsdjungeln102
- Telia kan köpa Bredband290
- Adware i populära Crystaldiskinfo8
- Säkerhetsbrist hos Gigabyte-moderkort berör över 240 modeller19
- Kivra testar att ta betalt för tjänsten238
Externa nyheter
Spelnyheter från FZ