製作根系統文件

1.下載busybox工具

下載地址:https://busybox.net/downloads/busybox-1.28.1.tar.bz2

2.解壓busybox

解壓源碼: tar -xvf busybox-1.28.1.tar.bz2

3.配置並編譯busybox

/*配置*/
make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- menuconfig
/*編譯*/
make -j4 ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
/*安裝*/
make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu- install

 安裝結束結果如下圖所示:

製作所需要的工具在默認路徑busybox-1.28.1/_install路徑下。

4.製作簡易根文件系統 

4.1將生成的安裝工具拷貝到rootfs目錄下

[cx@localhost ppc-linux-crosscompile]$ mkdir rootfs
[cx@localhost target-project]$ cp ../busybox-1.28.1/_install/* rootfs/ -rfd

4.2添加glibc庫 

[cx@localhost target-project]$ mkdir rootfs/lib
[cx@localhost target-project]$ cp crosscompile/tools/powerpc-linux-gnu/lib/* rootfs/lib -rfp

4.3靜態創建設備

[cx@localhost ppc-linux-crosscompile]$ mkdir rootfs/dev
[cx@localhost ppc-linux-crosscompile]$ cd rootfs/
[cx@localhost rootfs]$ cd dev
[cx@localhost dev]$ sudo mknod -m 666 tty1 c 4 1
[cx@localhost dev]$ sudo mknod -m 666 tty2 c 4 2
[cx@localhost dev]$ sudo mknod -m 666 tty3 c 4 3
[cx@localhost dev]$ sudo mknod -m 666 tty4 c 4 4
[cx@localhost dev]$ sudo mknod -m 666 console c 5 1
[cx@localhost dev]$ sudo mknod -m 666 null c 1 3

4.4製作文件系統SD卡文件系統鏡像

4.4.1 生成空的SD卡鏡像

/*bs是指一個block的大小,這裏查看了掛載文件的大小爲300多M,因此選擇bs大小爲8M,原本選選擇1M,最後掛載時報錯設備空間不足*/
[cx@localhost target-project]$ dd if=/dev/zero of=rootfs.ext3 bs=8M count=64
記錄了64+0 的讀入
記錄了64+0 的寫出
67108864 bytes (67 MB, 64 MiB) copied, 1.16914 s, 57.4 MB/s

4.4.2將SD卡格式化爲exts文件系統

[cx@localhost target-project]$ mkfs.ext3 rootfs.ext3
mke2fs 1.45.3 (14-Jul-2019)
丟棄設備塊: 完成                            
創建含有 65536 個塊(每塊 1k)和 16384 個inode的文件系統
文件系統UUID:3534c852-2b4b-42c6-abfe-6fe8e7283fb0
超級塊的備份存儲於下列塊: 
	8193, 24577, 40961, 57345

正在分配組表: 完成                            
正在寫入inode表: 完成                            
創建日誌(4096 個塊)完成
寫入超級塊和文件系統賬戶統計信息: 已完成

4.4.3將rootfs燒到sd卡 

[cx@localhost target-project]$ mkdir tmpfs
[cx@localhost target-project]$ sudo mount -t ext3 rootfs.ext3 tmpfs/ -o loop
[cx@localhost target-project]$ sudo cp -rf rootfs/* tmpfs/
[cx@localhost target-project]$ sudo umount ./tmpfs

運行QEMU

運行腳本:

export TARGET=/home/cx/cxworkspace/grad/target-project/crosscompile/kernel/linux-5.3.11/arch/powerpc/boot
export UPATH=/home/cx/cxworkspace/grad/u-boot-2018.01
export SPATH=/home/cx/cxworkspace/grad/target-project

./qemu-system-ppc  -M mpc8544ds \
                   -m 512\
                   -kernel $TARGET/uImage\
                   -s -nographic\
                   -sd $SPATH/rootfs.ext3\
                   -append "init=$SPATH/rootfs/linuxrc root=$SPATH/rootfs/dev/mmcblk0 rw rootwait earlyprintk console=ttyAMA0"

運行結果:

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章