IMX6Q busybox制作根文件系统2

本文介绍了如何使用QEMU在ARM平台如Msabrelite-m500上进行Linux内核安装,包括交叉编译Busybox、创建文件系统镜像以及处理kernelpanic问题。过程中涉及了sysroots设置和文件系统挂载等技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-

/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi


-march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi


--sysroot=/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi

make CONFIG_PREFIX=/home/fangxin/imx6q/rootfs  install

qemu 安装
下载源码
https://download.qemu.org/


qemu-system-arm -M sabrelite -m 500 -kernel ./../image/zImage -dtb ./../image/imx6q-forlinx.dtb -initrd ./../image/rootfs.img.gz -append "init=/linuxrc root=/dev/ram rw console=ttymxc0,115200" -nographic

qemu-system-arm -M sabrelite -m 500 -kernel ./../image/zImage -dtb ./../image/imx6q-forlinx.dtb -initrd ./../image/rootfs.img.gz -append "init=/linuxrc root=/dev/mmcblk3p2 rw console=ttymxc0,115200" -nographic

qemu-system-arm -M sabrelite -m 500 -kernel ./../image/zImage -dtb ./../image/imx6q-forlinx.dtb -initrd ./../image/rootfs.img.gz -append "root=/dev/ram init=/linuxrc rw console=ttymxc0,115200" -nographic


busybox 制作文件系统

用交叉编译工具链编译busybox后只有 bin linuxrc sbin user 一个文件和三个文件夹,还需要其它文件夹 

# mkdir etc dev mnt 目录
# mkdir -p proc sys tmp mnt  目录  , proc sys 是虚拟文件系统, tmp 是临时文件系统 ,mnt是挂载点
# mkdir -p etc/init.d/    创建系统启动所执行的脚本
# vim etc/fstab    文件系统挂载的信息 ,用于挂载文件系统 
proc	/proc	proc	defaults	0	0
tmpfs	/tmp	tmpfs	defaults	0	0
sysfs	/sys	sysfs	defaults	0	0

# vim etc/init.d/rcS  busybox启动时 执行的代码
echo -e "Welcome to linux"
/bin/mount -a   挂载fstab里面的文件系统
echo -e "remounting the root filesystem"
mount -o remount,rw /  重新挂载根文件系统,可读可写
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
# chmod 755 etc/init.d/rcS

# vim etc/inittab  busybox启动时的文件
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::cttlaltdel:/bin/umount -a -r

# chmod 755 etc/inittab
# cd  dev  创建console 设备文件 
# mknod console c 5 1   c字符设备 5主设备号  1次设备号
# mknod null c 1 3
# mknod tty1 c 4 1


打包文件系统镜像
1,先制作一个空的镜像文件
2,然后将此镜像文件格式化为ext3
3, 然后把此镜像文件挂载,把制作好的根文件系统复制到挂载目录
4,卸载该镜像文件
5,打包成gzip包

#!/bin/bash
rm -rf rootfs.ext3
rm -rf fs
dd if=/dev/zero of=./rootfs.ext3 bs=1M count=32
mkfs.ext3 rootfs.ext3
mkdir fs
mount -o loop rootfs.ext3 ./fs
cp -rf ./install/* ./fs
umount ./fs
gzip --best -c rootfs.ext3 > rootfs.img.gz




error4: end Kernel panic - not syncing: Requested init /linuxrc failed (error -2).

cp  -a    /opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/lib/*   /home/fangxin/rootfs/lib

cp  -a    /opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/*   /home/fangxin/rootfs/usr/lib
















评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值