u-boot porting
linux run
linux + SD card (rootfs) run
u-boot + SD card (kernel + dtb + rootfs)
The previous section introduced separately the transplantation of u-boot, the transplantation of Linux and the creation of the rootfs root file system. This section mainly introduces u-boot + SD card (kernel + dtb + rootfs)
to start linux by stringing together the previous ones.
Root file system production
cd rootfs cp -r /home/tyustli/code/open_source/busybox/busybox-1.36.1/_install/* ./ #Copy library files mkdirlib cp -r /home/tyustli/cross_tool/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/lib/* lib/ #Create device node mkdirdev cddev sudo mknod -m 666 tty1 c 4 1 sudo mknod -m 666 tty2 c 4 2 sudo mknod -m 666 tty3 c 4 3 sudo mknod -m 666 tty4 c 4 4 sudo mknod -m 666 tty5 c 4 5 sudo mknod -m 666 tty6 c 4 6 #Create a console node sudo mknod -m 666 console c 5 1 #Create an empty node sudo mknod -m 666 null c 1 3 cd ../ mkdir etc mkdir proc mkdir tmp mkdir sys cd etc touch fstab # Write content to the file cat > fstab <<EOF #<file system> <mount point> <type> <options><dump><pass> proc /proc proc defaults 00 tmpfs /tmp tmpfs defaults 00 sysfs /sys sysfs defaults 00 EOF touch inittab cat > inittab<<EOF #etc/inittab ::sysinit:/etc/init.d/rcS console::askfirst:-/bin/sh ::restart:/sbin/init ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff -a EOF mkdir init.d cd init.d rcS chmod 777rcS # Write content to the file cat >rcS <<EOF #!/bin/sh ATH=/sbin:/bin:/usr/sbin:/usr/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib export PATH LD_LIBRARY_PATH runlevel mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts # echo /sbin/mdev >/proc/sys/kernel/hotplug mdev -s EOF
After the root file system is created, the rootfs.ext3 image file is not created. Instead, it is placed in the SD card image together with kernel + dtb in the next section.
SD card image creation
Package kernel + dtb + rootfs into an SD card image
# Generate virtual SD card system image sudo dd if=/dev/zero of=my_kernel.img bs=1M count=512 # Format image sudo chmod 777 my_kernel.img sudo mkfs.ext3 my_kernel.img #Create two partitions sudo sgdisk -n 0:0: + 100M -c 0:kernel ./my_kernel.img sudo sgdisk -n 0:0:0 -c 0:rootfs my_kernel.img sudo sgdisk -p my_kernel.img LOOPDEV=`losetup -f` # Find idle loop devices echo $LOOPDEV # This is /dev/loop18 sudo losetup $LOOPDEV my_kernel.img sudo partprobe $LOOPDEV sudo losetup -l ls /dev/loop* # format sudo mkfs.ext3 /dev/loop18p1 sudo mkfs.ext3 /dev/loop18p2 # mount mkdir p1 p2 sudo mount -t ext3 /dev/loop18p1 p1 # Store kernel and device tree sudo mount -t ext3 /dev/loop18p2 p2 # Store the root file system # Check the mounting status df-h #Copy kernel and dtb sudo cp -r arch/arm/boot/zImage arch/arm/boot/dts/arm/vexpress-v2p-ca9.dtb p1 sudo rmdir p1/lost + found # Remove temporary folder #Copy root file system sudo cp /home/tyustli/code/open_source/busybox/rootfs/* p2 -arf sudo rmdir p2/lost + found # Remove temporary folder sudo umount p1 p2 sudo losetup -d /dev/loop18 sudo rmdir p1 sudo rmdir p2 #Copy the SD image to the u-boot directory mv my_kernel.img /home/tyustli/code/open_source/u-boot
u-boot startup
sudo qemu-system-arm -M vexpress-a9 -m 1024M -smp 1 -nographic -kernel ./u-boot -sd ./my_kernel.img
u-boot log
alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' U-Boot 2023.10-00813-g997bef3c6d (Oct 12 2023 - 21:45:33 + 0800) DRAM: 512 MiB (effective 1 GiB) WARNING: Caches not enabled Core: 18 devices, 10 uclasses, devicetree: embed Flash: 128 MiB MMC: mmci@5000: 0 Loading Environment from Flash... *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: eth0: ethernet@3,02000000 Hit any key to stop autoboot: 0 =>
u-boot check sd card status
- mmc info
=> mmc info Device: mmci@5000 Manufacturer ID: aa OEM: 5859 Name: QEMU! Bus Speed: 12000000 Mode: MMC legacy Rd Block Len: 512 SD version 2.0 High Capacity: No Capacity: 512 MiB Bus Width: 1-bit Erase Group Size: 512 Bytes
- mmcdev 0
=> mmcdev 0 switch to partitions #0, OK mmc0 is current device
View the 2 partitions of the SD card:
- Partition 1:
ls mmc 0:1
- Partition 2:
ls mmc 0:2
=>ls mmc 0:1 <DIR> 4096. <DIR> 4096 .. 5565624 zImage 14129 vexpress-v2p-ca9.dtb => ls mmc 0:2 <DIR> 4096. <DIR> 4096 .. <DIR> 4096 bin <DIR> 4096 dev <DIR> 4096 etc <DIR> 4096 lib <SYM> 11 linuxrc <DIR> 4096 proc <DIR> 4096 sbin <DIR> 4096 sys <DIR> 4096 tmp <DIR> 4096 usr
You can see that partition 1 is kernel + dtb
Partition 2 is rootfs
Load kernel and device tree
- Load kernel
load mmc 0:1 0x60008000 zImage
- Load device tree
load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb
=> load mmc 0:1 0x60008000 zImage 5565624 bytes read in 1255 ms (4.2 MiB/s) => load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb 14129 bytes read in 12 ms (1.1 MiB/s)
Set bootargs
setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel'
Boot kernel
bootz 0x60008000 - 0x61000000
Kernel startup log
=> bootz 0x60008000 - 0x61000000 Kernel image @ 0x60008000 [ 0x000000 - 0x54ecb8 ] ## Flattened Device Tree blob at 61000000 Booting using the fdt blob at 0x61000000 Working FDT set to 61000000 Loading Device Tree to 7eb11000, end 7eb17730 ... OK Working FDT set to 7eb11000 Starting kernel... ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': ...
Consolidate the u-boot command into the u-boot program
make menuconfig
Configure u-boot
Configure bootcmd
Boot options -> Enable a default value for bootcmd
Enter the following content, separated by ;
load mmc 0:1 0x60008000 zImage;load mmc 0:1 0x61000000 vexpress-v2p-ca9.dtb; setenv bootargs 'root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel';bootz 0x60008000 - 0x61000000
Appendix Linux kernel startup complete log
WARNING: Image format was not specified for './my_kernel.img' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions. ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' U-Boot 2023.10-00813-g997bef3c6d (Oct 26 2023 - 08:29:32 + 0800) DRAM: 512 MiB (effective 1 GiB) WARNING: Caches not enabled Core: 18 devices, 10 uclasses, devicetree: embed Flash: 128 MiB MMC: mmci@5000: 0 Loading Environment from Flash... *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Net: eth0: ethernet@3,02000000 Hit any key to stop autoboot: 0 5565624 bytes read in 1230 ms (4.3 MiB/s) 14129 bytes read in 12 ms (1.1 MiB/s) Kernel image @ 0x60008000 [ 0x000000 - 0x54ecb8 ] ## Flattened Device Tree blob at 61000000 Booting using the fdt blob at 0x61000000 Working FDT set to 61000000 Loading Device Tree to 7eb11000, end 7eb17730 ... OK Working FDT set to 7eb11000 Starting kernel... ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory ALSA lib pcm_dmix.c:1032:(snd_pcm_dmix_open) unable to open slave alsa: Could not initialize DAC alsa: Failed to open `default': alsa: Reason: No such file or directory audio: Failed to create voice `lm4549.out' Booting Linux on physical CPU 0x0 Linux version 6.5.7 (tyustli@tyustli-machine) (arm-none-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #3 SMP Sun Oct 15 20:44:33 CST 2023 CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache OF: fdt: Machine model: V2P-CA9 Malformed early option 'earlycon' printk: debug: ignoring loglevel setting. Memory policy: Data cache writeback Reserved memory: created DMA memory pool at 0x4c000000, size 8 MiB OF: reserved mem: initialized node vram@4c000000, compatible id shared-dma-pool OF: reserved mem: 0x4c000000..0x4c7fffff (8192 KiB) nomap non-reusable vram@4c000000 cma: Reserved 16 MiB at 0x9f000000 Zone ranges: Normal [mem 0x0000000060000000-0x000000009fffffff] Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000060000000-0x000000009fffffff] Initmem setup node 0 [mem 0x0000000060000000-0x000000009fffffff] CPU: All CPU(s) started in SVC mode. percpu: Embedded 16 pages/cpu s34516 r8192 d22828 u65536 pcpu-alloc: s34516 r8192 d22828 u65536 alloc=16*4096 pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 Kernel command line: root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait earlycon console=tty0 console=ttyAMA0 init=/linuxrc ignore_loglevel printk: log_buf_len individual max cpu contribution: 4096 bytes printk: log_buf_len total cpu_extra contributions: 12288 bytes printk: log_buf_len min size: 16384 bytes printk: log_buf_len: 32768 bytes printk: early log buf free: 14660(89%) Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear) Built 1 zonelists, mobility grouping on. Total pages: 260096 mem auto-init: stack:off, heap alloc:off, heap free:off Memory: 1008536K/1048576K available (9216K kernel code, 685K rwdata, 2052K rodata, 1024K init, 178K bss, 23656K reserved, 16384K cma-reserved) SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 trace event string verifier disabled rcu: Hierarchical RCU implementation. rcu: RCU event tracing is enabled. rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies. rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 GIC CPU mask not found - kernel will fail to boot. GIC CPU mask not found - kernel will fail to boot. L2C: platform modifies aux control register: 0x02020000 -> 0x02420000 L2C: DT/platform modifies aux control register: 0x02020000 -> 0x02420000 L2C-310 enabling early BRESP for Cortex-A9 L2C-310 full line of zeros enabled for Cortex-A9 L2C-310 dynamic clock gating disabled, standby mode disabled L2C-310 cache controller enabled, 8 ways, 128 kB L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x46420001 rcu: srcu_init: Setting srcu_struct sizes based on contention. sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns clocksource: arm,sp804: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns smp_twd: clock not found -2 Console: color dummy device 80x30 printk: console [tty0] enabled Calibrating local timer... 99.81MHz. Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208) CPU: Testing write buffer coherency: ok CPU0: Specter v2: using BPIALL workaround pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear) CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 Setting up static identity map for 0x60100000 - 0x60100060 rcu: Hierarchical SRCU implementation. rcu: Max phase no-delay instances is 1000. smp: Bringing up secondary CPUs ... smp: Brought up 1 node, 1 CPU SMP: Total of 1 processors activated (530.84 BogoMIPS). CPU: All CPU(s) started in SVC mode. devtmpfs: initialized VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 0 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns futex hash table entries: 1024 (order: 4, 65536 bytes, linear) NET: Registered PF_NETLINK/PF_ROUTE protocol family DMA: preallocated 256 KiB pool for atomic coherent allocations cpuidle: using governor ladder hw-breakpoint: debug architecture 0x4 unsupported. Serial: AMBA PL011 UART driver SCSI subsystem initialized libata version 3.00 loaded. usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb i2c 0-0039: Fixed dependency cycle(s) with /bus@40000000/motherboard-bus@40000000/iofpga@7,00000000/clcd@1f000/port/endpoint i2c 0-0039: Fixed dependency cycle(s) with /clcd@10020000/port/endpoint pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]> PTP clock support registered Advanced Linux Sound Architecture Driver Initialized. clocksource: Switched to clocksource arm,sp804 NET: Registered PF_INET protocol family IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear) Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear) TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear) TCP: Hash tables configured (established 8192 bind 8192) UDP hash table entries: 512 (order: 2, 16384 bytes, linear) UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) NET: Registered PF_UNIX/PF_LOCAL protocol family RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp-with-tls transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. hw perfevents: enabled with armv7_cortex_a9 PMU driver, 5 counters available workingset: timestamp_bits=30 max_order=18 bucket_order=0 squashfs: version 4.0 (2009/01/31) Phillip Lougher jffs2: version 2.2. (NAND) ? 2001-2006 Red Hat, Inc. 9p: Installing v9fs 9p2000 file system support io scheduler mq-deadline registered io scheduler kyber registered io scheduler bfq registered OF: graph: no port node found in /bus@40000000/motherboard-bus@40000000/iofpga@7,00000000/i2c@16000/dvi-transmitter@60 sii902x 0-0060: supply iovcc not found, using dummy regulator sii902x 0-0060: supply cvcc12 not found, using dummy regulator simple-pm-bus bus@40000000:motherboard-bus@40000000:iofpga@7,00000000: Failed to create device link (0x180) with dcc:tcrefclk simple-pm-bus bus@40000000:motherboard-bus@40000000:iofpga@7,00000000: Failed to create device link (0x180) with dcc:tcrefclk physmap-flash 40000000.flash: physmap platform flash device: [mem 0x40000000-0x43ffffff] 40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000 Intel/Sharp Extended Query Table at 0x0031 Using buffer write method erase region 0: offset=0x0,size=0x40000,blocks=256 physmap-flash 40000000.flash: physmap platform flash device: [mem 0x44000000-0x47ffffff] 40000000.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000 Intel/Sharp Extended Query Table at 0x0031 Using buffer write method erase region 0: offset=0x0,size=0x40000,blocks=256 Concatenating MTD devices: (0): "40000000.flash" (1): "40000000.flash" into device "40000000.flash" physmap-flash 48000000.psram: physmap platform flash device: [mem 0x48000000-0x49ffffff] smsc911x 4e000000.ethernet eth0: MAC Address: 52:54:00:12:34:56 isp1760 4f000000.usb: isp1760 bus width: 32, oc: digital isp1760 4f000000.usb: NXP ISP1760 USB Host Controller isp1760 4f000000.usb: new USB bus registered, assigned bus number 1 isp1760 4f000000.usb: Scratch test failed. 0x00000000 isp1760 4f000000.usb: can't setup: -19 isp1760 4f000000.usb: USB bus 1 deregistered usbcore: registered new interface driver usb-storage rtc-pl031 10017000.rtc: registered as rtc0 rtc-pl031 10017000.rtc: setting system clock to 2023-10-26T00:31:12 UTC (1698280272) mmci-pl18x 10005000.mmci: Got CD GPIO mmci-pl18x 10005000.mmci: Got WP GPIO mmci-pl18x 10005000.mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 35,36 (pio) ledtrig-cpu: registered to indicate activity on CPUs usbcore: registered new interface driver usbhid usbhid: USB HID core driver mmc0: new SD card at address 4567 input: AT Raw Set 2 keyboard as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10006000.kmi/serio0/input /input0 mmcblk0: mmc0:4567 QEMU! 512 MiB aaci-pl041 10004000.aaci: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 37 aaci-pl041 10004000.aaci: FIFO 512 entries NET: Registered PF_PACKET protocol family 9pnet: Installing 9P2000 support Registering SWP/SWPB emulation handler mmcblk0: p1 p2 10009000.serial: ttyAMA0 at MMIO 0x10009000 (irq = 38, base_baud = 0) is a PL011 rev1 printk: console [ttyAMA0] enabled 1000a000.serial: ttyAMA1 at MMIO 0x1000a000 (irq = 39, base_baud = 0) is a PL011 rev1 1000b000.serial: ttyAMA2 at MMIO 0x1000b000 (irq = 40, base_baud = 0) is a PL011 rev1 1000c000.serial: ttyAMA3 at MMIO 0x1000c000 (irq = 41, base_baud = 0) is a PL011 rev1 drm-clcd-pl111 1001f000.clcd: assigned reserved memory node vram@4c000000 drm-clcd-pl111 1001f000.clcd: using device-specific reserved memory drm-clcd-pl111 1001f000.clcd: core tile graphics present drm-clcd-pl111 1001f000.clcd: this device will be deactivated drm-clcd-pl111 1001f000.clcd: Versatile Express init failed - -19 drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111 drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111 clk: Disabling unused clocks ALSA device list: #0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 37 input: ImExPS/2 Generic Explorer Mouse as /devices/platform/bus@40000000/bus@40000000:motherboard-bus@40000000/bus@40000000:motherboard-bus@40000000:iofpga@7,00000000/10007000.kmi/serio1/ input/input2 drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111 EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem EXT4-fs (mmcblk0p2): recovery complete EXT4-fs (mmcblk0p2): mounted filesystem 37a96b8f-82b1-477b-913c-847a75fea97e r/w with ordered data mode. Quota mode: disabled. VFS: Mounted root (ext3 filesystem) on device 179:2. Freeing unused kernel image (initmem) memory: 1024K Run /linuxrc as init process with arguments: /linuxrc with environment: HOME=/ TERM=linux random: crng init done mkdir: can't create directory '/dev/pts': File exists Please press Enter to activate this console. drm-clcd-pl111 10020000.clcd: DVI muxed to daughterboard 1 (core tile) CLCD drm-clcd-pl111 10020000.clcd: initializing Versatile Express PL111 amba 1000f000.wdt: deferred probe pending amba 10020000.clcd: deferred probe pending amba 100e0000.memory-controller: deferred probe pending amba 100e1000.memory-controller: deferred probe pending amba 100e5000.watchdog: deferred probe pending i2c 0-0039: deferred probe pending ~ #ls bin etc linuxrc sbin tmp dev lib proc sys usr ~ #
Reference
- https://www.zhaixue.cc/qemu/qemu-intro.html