概要
本文为自用笔记
授课人:朱有鹏
时间:2018年6月23日
注意:朱老师使用的zImage是人家自己制作之后的
笔者自己做的时候使用了九鼎移植之后的zImage,确定有实验现象。
ubuntu: /root/driver 目录下,由x210kernel.tar.bz2
windows: D:\fastboot\Kimo\zImage
自己制作的根文件系统:/root/rootfs_stu/Kimo_rootfs
我自己根文件系统的位置:/root/rootfs_stu/rootfs
什么是挂载?
譬如我们说“把我们制作的rootfs.ext2挂载到rootfs目录下去”
就是将rootfs.ext2文件 以 窗口化的方式打开,让我们方便的去访问他
2.18.3.2、动手制作ext3格式的根文件系统
(1) 创建rootfs.ext2文件并且将之挂载到一个目录下方便访问它
《参考资料:http://blog.csdn.net/zhengmeifu/article/details/24174513》
> dd if=/dev/zero of=rootfs.ext2 bs=1024 count=2048 //制作2M大小的空文件
> losetup /dev/loop1 rootfs.ext2 //
> mke2fs -m 0 /dev/loop1 2048 //这一步注意要看到3个完成
> mount -t ext2 /dev/loop1 ./rootfs/ //ext3不行,报错,做ext2吧
//这一步就是把我们制作的ext2挂载到rootfs目录下去。
//进入到rootfs就相当于进入到rootfs.ext2里面来。
消除错误影响:
umount /dev/loop1
losetup -d /dev/loop1
(2) 我们向镜像中写入一个普通文件linuxrc。这个文件就会成为我们制作的镜像中的/linuxrc。
内核挂载了这个镜像后就会尝试去执行/linuxrc。然后执行时必然会失败。我们将来实验看到的现象就应该是:挂载成功,执行/linuxrc失败。
touch linuxrc // 注意:这是个空的普通文件
(3) 将来真正去做有用的rootfs时,就要在这一步添加真正可以执行的linuxrc程序,然后还要添加别的/lib目录下的库文件,/etc目录下的配置文件等。
(4) 卸载掉,然后镜像就做好了。
> umount /dev/loop1
> losetup -d /dev/loop1
当我卸载了之后,进入rootfs/就什么都看不到了,因为里面的东西就已经拿走了
2.18.3.3、烧录制作的rootfs.ext3
(1)烧录过程参考裸机中第三部分的刷机过程。注意bootargs传参设置
> fastboot flash system Kimo\rootfs.ext2 set bootargs
> console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc
> rootfstype=ext2
2.18.4.nfs方式启动自制简易文件夹形式的rootfs
2.18.4.1、什么是nfs
(1) nfs是一种网络通讯协议,由服务器和客户端构成。
(2) nfs的作用。利用nfs协议可以做出很多直接性应用,我们这里使用nfs主要是做rootfs挂载。开发板中运行kernel做nfs客户端,主机ubuntu中搭建nfs服务器。在主机ubuntu的nfs服务器中导出我们制作的文件夹形式的rootfs目录,则在客户端中就可以去挂载这个文件夹形式的rootfs进而去启动系统。
注意:NFS,他在menuconfig中被认为是一种文件系统格式,而不是简单的服务
(3) 搭建nfs服务器。
【搭建nfs服务器的完整过程】
一、安装 NFS
> $ sudo apt-get install nfs-kernel-server
> $ sudo apt-get install nfs-common
二、配置/etc/exports
$ sudo vi /etc/exports
文本末添加
/root/rootfs_stu/rootfs *(rw,sync,no_root_squash,no_subtree_check)
然后在终端执行 $chmod 777 -R /root/rootfs
$ sudo showmount -e
显示 clnt-create : RPC : Program not registered
$ sudo exportfs -r 更新
$ sudo showmount localhost -e
显示
Export list for 192.168.1.116
/root/rootfs *
三、启用
$ sudo /etc/init.d/nfs-kernel-server restart 重启 nfs 服务
显示如下
- Stopping NFS kernel daemon [ OK ]
- Unexporting directories for NFS kernel daemon… [ OK ]
- Exporting directories for NFS kernel daemon… [ OK ]<