2020/05/29
整合至 sdcard.img #1
截至目前為止,我們已經完成了底下事項:
1. rootfs -> OK
2. linux kernel -> OK
3. boot loader (u-boot) -> OK
4. SD card image -> OK
現在要開始進行整合的步驟:
1+2+3 -> SD card -> qemu
1. 複製 Linux 核心至 /mnt/sdcard1
~eecs/virtualarm/kernel/linux-3.16.81/arch/arm/boot# cp uImage /mnt/sdcard1
2. 複製 u-boot 檔案至 /mnt/sdcard1
u-boot
u-boot.bin
~eecs/virtualarm/bootloader/u-boot-2016.09# cp u-boot /mnt/sdcard1
~eecs/virtualarm/bootloader/u-boot-2016.09# cp u-boot.bin /mnt/sdcard1
3. 複製 rootfs 目錄至 /mnt/sdcard2
~eecs/virtualarm# rsync -av rootfs/ /mnt/sdcard2
作完之後,我們先解除掛載,然後用 qemu 來開機。
4. 測試開機
截至目前為止,我們已經完成了底下事項:
1. rootfs -> OK
2. linux kernel -> OK
3. boot loader (u-boot) -> OK
4. SD card image -> OK
現在要開始進行整合的步驟:
1+2+3 -> SD card -> qemu
1. 複製 Linux 核心至 /mnt/sdcard1
~eecs/virtualarm/kernel/linux-3.16.81/arch/arm/boot# cp uImage /mnt/sdcard1
2. 複製 u-boot 檔案至 /mnt/sdcard1
u-boot
u-boot.bin
~eecs/virtualarm/bootloader/u-boot-2016.09# cp u-boot /mnt/sdcard1
~eecs/virtualarm/bootloader/u-boot-2016.09# cp u-boot.bin /mnt/sdcard1
3. 複製 rootfs 目錄至 /mnt/sdcard2
~eecs/virtualarm# rsync -av rootfs/ /mnt/sdcard2
作完之後,我們先解除掛載,然後用 qemu 來開機。
4. 測試開機
~/virtualarm$ ~/virtualarm$ qemu-system-arm -machine vexpress-a9 -m 256 -nographic -kernel u-boot -drive file=../../sd_test.img,if=sd,format=raw,index=0
U-Boot 2016.09 (May 22 2020 - 09:58:23 +0800)
DRAM: 256 MiB
WARNING: Caches not enabled
Flash: 128 MiB
MMC: MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
=> fatload mmc 0:1 0x60000000 uimage
=> setenv bootargs console=ttyAMA0,38400n8 root=/dev/mmcblk0p2
=> bootm 0x60000000
此時即可開機,並以 root 或是 leenix 帳號登錄。
5. 與 br10 連接在一起
請將底下內容另存為 runsd.sh,再來執行即可。
MACHINE=vexpress-a9
#SD_IMAGE=sdcard.img
SD_IMAGE=sd_test.img
#SD_IMAGE=sd_512M.img
#FLASH_IMG=flash.img
KERNEL_VERSION=3.16.81
UBOOT_VERSION=2016.09
MAC="52:54:12:34:00:A0"
BRIDGE=br10
MEMORY=256
#MEMORY=1024
qemu-system-arm -machine $MACHINE -m $MEMORY \
-serial stdio \
-drive file=./$SD_IMAGE,if=sd,format=raw,index=0 \
-kernel ./bootloader/u-boot-$UBOOT_VERSION/u-boot \
-net nic,macaddr=$MAC -net bridge,br=$BRIDGE
沒有留言:
張貼留言