龙芯板卡ramdisk、yaffs、cramfs、jffs2 文件系统制作与启动

- 龙芯板卡ramdisk、yaffs、cramfs、jffs2 文件系统制作与启动

一、ramdisk 文件系统启动内核

使用ramdisk文件系统启动内核后,会在内存中形成一个根文件系统,这需要在编译内核时,告诉内核根文件系统所在的目录,把根文件系统编译到内核中。

下面的步骤是如何把根文件系统编译到内核中:
1、内核源码目录下执行 make menuconfg ARCH=mips
(执行该命令启动图形化配置界面,并用上下键选择General setup —>,执行过上述操作后)
General setup蓝色停留在上图位置按 Enter 键进入该选项,并用上下键按照下图所示选择:
initial RAM黑色选中为[*],蓝色停留在上图位置,单击 Enter 键,输入文件系统的绝对路径,假设文件系统的绝对路径为/home/rootfs/,执行上述步骤后,如下图所示:
文件系统路径然后保存退出,并通过命令 make vmlinux ARCH=mips CROSS_COMPILE=mipsel-
linux 编译内核。

2、通过网络或U盘加载内核

a、通过网路加载内核
	把编译好的内核镜像拷贝到 tftp 服务器目录中假设 tftp 服务器目录为:/home/tftpboot/
	cp vmlinux /home/tftpboot/
	
	板卡上电,启动到pmon命令行下,执行以下指令
	ifconfig syn0 192.168.1.1             
	load tftp://192.168.1.100/vmlinux
	g console=ttyS0,115200 rdinit=/sbin/init
b、通过U盘加载
	把编译好的内核镜像拷贝到U盘里
	cp vmlinux /media/U
	
	板卡上电,启动到pmon命令行下,执行以下指令
	load /dev/fs/fat@usb0/vmlinux
	g console=ttyS0,115200 rdinit=/sbin/init

二、启动 yaffs、cramfs、jffs2 文件系统

启动 yaffs、cramfs、jffs2 文件系统时,需要确定内核配置了该文件系统,并
且配置不启动 ramfs 文件系统,这里介绍配置不启动 ramfs 文件系统的步骤:
内核源码目录下执行make menuconfg ARCH=mips
General setup蓝色停留在上图位置按 Enter 键进入该选项,并用上下键按照下图所示选择:
在这里插入图片描述确保上图中蓝色部分前面的[]中,没有任何内容,按 Esc 键,并保存配置,重新编译内核既可(make vmlinux ARCH=mips CROSS_COMPILE=mipsel-linux-)

yaffs 文件系统的制作及启动
	cp vmlinux /home/tftpboot/
	./mkfs.yaffs2 rootfs rootfs.img
	备注:rootfs 为文件系统的名字 rootfs.img 为制作的 yaffs 文件格式的文件系统
	cp rootfs.img /home/tftpboot/
	chmod 777 /home/tftpboot/rootfs.img
	
	板卡上电,启动到pmon命令行下,执行以下指令
	ifconfig syn0 192.168.1.1   
	向开发板上的 nand 烧写文件系统的命令
	devcp tftp://192.168.1.100/rootfs.img /dev/mtd1y   
	备注:烧写到 nand 的分区 1,若烧到分区 0,改为 mtd0y,做好烧写到分区 1
	load tftp://192.168.1.100/vmlinux
	g console=ttyS0,115200 init=/linuxrc rootfstype=yaffs2 rw root=/dev/mtdblock1
cramfs 文件系统的制作和启动
	cp vmlinux /home/tftpboot/
	mkfs.cramfs -b 16384 rootfs cramfs.imgs
	备注:-b 参数,大小与 PAGE_SIZE(linux 内核的配置)一样,具体-b 的实际意义
	通过 man mkfs.cramfs 查看
	cp cramfs.imgs /home/tftpboot/
	chmod 777 /home/tftpboot/cramfs.imgs
	
	板卡上电,启动到pmon命令行下,执行以下指令
	ifconfig syn0 192.168.1.1   
	devcp tftp://192.168.1.100/cramfs.imgs /dev/mtd1
	load tftp://192.168.1.100/vmlinux
	g console=ttyS0,115200 init=/linuxrc rootfstype=cramfs rw root=/dev/mtdblock1
	
jffs2 文件系统的制作和启动
	cp vmlinux /home/tftpboot/
	mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x10000 -s 0x100
	备注:-r:指定要生成 image 的目录名。
			-o:指定输出 image 的文件名。
			-e:每一块要擦除的 block size,不同的 flash, block size 会不一样。这里为 64KB。
			-s:节点页大小 这里为256字节
	通过 man mkfs.jffs2查看
	cp rootfs.jffs2 /home/tftpboot/
	chmod 777 /home/tftpboot/rootfs.jffs2
	
	板卡上电,启动到pmon命令行下,执行以下指令
	ifconfig syn0 192.168.1.1   
	mtd_erase /dev/mtd1 -j
	devcp tftp://192.168.1.100/rootfs.jffs2 /dev/mtd1
	load tftp://192.168.1.100/vmlinux
	g console=ttyS0,115200  init=/linuxrc rootfstype=jffs2 rw root=/dev/mtdblock1
	

三、更新内核和initrd 到nand 上的方法步骤

1. 确认分区情况,pmon下用mtdparts 看,内核下 cat /proc/mtd , 确保分区一致
2. pmon 命令行下擦除分区 
    mtd_erase /dev/mtd0y 
    mtd_erase /dev/mtd1y
3. pmon下设置环境变量:
    set  al1 ‘/dev/fs/yaffs2@mtd0/vmlinuz’
    set  rd  ‘/dev/fs/yaffs2@mtd1/initrd-2k.gz’
    set append ‘console=tty console=ttyS0,1152004. pmon下加载内核(文件系统ramdisk )
    load tftp://IP/vmlinux-ramdisk
    g console=ttyS0,115200 rdinit=/sbin/init
5. 进入命令行 mount /dev/mtdblock0 /mnt, 将内核拷贝进去, umont /mnt
6. 同上拷贝initrd-2k.gz 文件到mtdblock1 中
7. 关机重启
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大 大猫

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值