You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
$ wget https://github.com/u-boot/u-boot/archive/refs/tags/v2024.04.tar.gz -O u-boot-v2024.04.tar.gz
$ tar xzvf u-boot-v2024.04.tar.gz
$ cd u-boot-2024.04
$ make clean && make distclean
(arm)
$ make vexpress_ca9x4_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
(aarch64)
//$ make vexpress_ca9x4_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu-
//$ make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu-
//
$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-none-linux-gnu-
$ make vexpress_ca9x4_defconfig
$ make -j4
// or for qemu_defconfig
(arm)
$ make qemu_arm_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
(arm64)
$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-none-linux-gnu-
$ make qemu_arm64_defconfig
$ make -j4
Linux Kernel
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.277.tar.xz
$ tar xJvf linux-5.4.277.tar.xz
$ cd linux-5.4.277
$ make clean && make distclean
// with source code indexing
// $ make <..._defconfig><ARCH=...><...> tags cscope
(x86_64)
$ make defconfig
$ make -j4
(arm)
//$ make versatile_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
$ make vexpress_defconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
$ make menuconfig ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
// VersatilePB
- Kernel Features -> Use the ARM EABI to compile the kernel
-> Allow old ABI binaries to run with this kernel (EXPERIMENTAL)
- System Type
-> MMU-based Paged Memory Management Support
-> Multiple platform selection -> ARMv5 based platforms (...)
-> ARM Ltd. Versatile Express family --->
// vexpress
- Kernel Features -> Use the ARM EABI to compile the kernel
//-> Allow old ABI binaries to run with this kernel (EXPERIMENTAL)
- System Type
-> MMU-based Paged Memory Management Support
-> Multiple platform selection -> ARMv6 based platforms (...)
-> Multiple platform selection -> ARMv7 based platforms (...)
-> ARM Ltd. Versatile Express family --->
$ make -j4 ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf-
(aarch64)
////$ make versatile_defconfig ARCH=arm64
//$ make vexpress_defconfig ARCH=arm
//$ make menuconfig ARCH=arm64
//$ make -j4 ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu-
//
$ export ARCH=arm64
$ export CROSS_COMPILE=aarch64-none-linux-gnu-
//$ make defconfig
$ make vexpress_defconfig
$ make menuconfig
$ make -j4
$ wget https://www.buildroot.org/downloads/buildroot-2024.02.2.tar.xz
$ tar xJvf buildroot-2024.02.2.tar.xz
$ cd buildroot-2024.02.2
$ make clean && make distclean
//$ make list-defconfigs
$ make qemu_arm_vexpress_defconfig
$ make -j4
1.
VFS: Cannot open root device "ram" or unknown-block(1,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
1f00 131072 mtdblock0
(driver?)
1f01 32768 mtdblock1
(driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.277 #1
Hardware name: ARM-Versatile Express
==> -append "root=/dev/mmcblk0 rw rdinit=/bin/sh console=ttyAMA0,115200"
2.
Run /init as init process
Alignment trap: not handling instruction f8530b04 at [<0001225a>]
...
https://gitlab.com/qemu-project/qemu/-/issues/2326
==> USE QEMU 7.2.x
Create a bootable ISO file
// for grup-mkrescue
$ sudo apt-get install grub-common
$ sudo apt-get install xorriso
$ git clone https://github.com/godmode2k/linux_bsp_test.git
$ cd linux_bsp_test/bootable_iso
(EDIT .sh environment first)
SEE:
- init_add_files_arm32bit.sh
- run_qemu_arm32bit_iso.sh
// initrd: busybox-1.36.1 (initrd.cpio.gz)
// Linux Kernel: linux-5.4.277 (arch/arm/boot/zImage, arch/arm/boot/dts/vexpress-v2p-ca9.dtb)
// creates ISO
$ sh init_add_files_arm32bit.sh
// run QEMU with new bootable ISO
$ sh run_qemu_arm32bit_iso.sh