完善ubuntu的文件系统
完善ubuntu的文件系统
我们之前在Linux固件制作的文档中,已经有制作了一个Ubuntu的文件镜像,但是那个文件镜像是“别人的”,现在我们就来说说如何制作你想要的、更是你需要的文件系统。
准备工作
-
安装一个工具包
sudo apt-get install qemu-user-static binfmt-support
-
然后如之前的操作一样,制作一个空的文件系统,并且挂载它到/mnt下
dd if=/dev/zero of=rock_rootfs.img bs=1M count=1024
mkfs.ext4 -F -L linuxroot rock_rootfs.img
sudo mount -o loop rock_rootfs.img /mnt
-
接着下载一个文件系统,然后“塞”进去。下面的包名字和路经是随机的,大家根据自己的路经,视情况而进行替换
sudo tar zxvf linaro-raring-alip-20130826-474.tar.gz -C /mnt
cd /mnt
sudo mv binary/*
sudo rmdir binary
-
拷贝我们之前编译内核时,编译好的内核模块
sudo mkdir -p /mnt/lib/modules
sudo cp -r /modules/lib/modules/3.0.36+ /mnt/lib/modules
-
准备chroot
sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin
sudo modprobe binfmt_misc
sudo mount -t devpts devpts /mnt/dev/pts
sudo mount -t proc proc /mnt/proc
-
chroot进入文件系统
sudo chroot /mnt
现在我们进来文件系统了,shell变成了”root@target:#“。
-
修改默认的shell bash
root@target:# rm /bin/sh && ln -s /bin/bash /bin/sh
-
然后,你就可以利用平时我们操作ubuntu系统的一切命令来操作这个系统,安装软件、更改配置等等
-
我们建议你进行一项操作,就是增加一个开机脚本,让你可以增加一些开机启动的程序
vim /usr/local/bin/mtd-by-name.sh
加入下列文本
{
#!/bin/sh -e
# mtd-by-name link the mtdblock to name
# radxa.com, thanks to naobsd
rm -rf /dev/block/mtd/by-name/
mkdir -p /dev/block/mtd/by-name
for i in ls -d /sys/class/mtd/mtd*[0-9]
; do
name=cat $i/name
tmp=”echo $i | sed -e 's/mtd/mtdblock/g'
”
dev=”echo $tmp |sed -e 's/\/sys\/class\/mtdblock/\/dev/g'
”
ln -s $dev /dev/block/mtd/by-name/$name
done
}
-
在/etc/rc.local文件 “exit 0”前加入下面文字
> /usr/local/bin/mtd-by-name.sh -
回到PC系统
exit
sync
sudo umount /mnt
然后在继续Linux固件制作的步骤!