制作根系统文件

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"

运行结果:

 

 

 

 

 

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