使用龙芯派2代烧写自己制作的内核及文件系统
前期准备:
- 已经制作好的具有init RAmdisk 选项的linux内核。
- 使用buildroot工具制作好的文件系统。
- 将这两部分拷贝到longxnix系统下的/boot路径下,修改/boot/boot.cfg文件中的内容,添加新建的两个选项。
- 烧写启动流程:先启动ramdisk的内核到系统下,将文件系统解压到硬盘中,再启动到pmon下设置环境变量,
set al1 /dev/fs/ext2@wd0/boot/vmlinuz set append "console=ttyS0,115200 init=/linuxrc rw root=/dev/sda1 rootfstype=ext2"
实践过程
方法1
- 启动ramdisk系统,进入暂时存在内存下的文件系统中,在根目录下包含着该文件系统的cpio压缩包:
mount /dev/sda1 /mnt/rootfs cd /mnt/rootfs mkdir rootfs cd rootfs cp /yxkj_rootfs_test.cpio . #解压文件系统 cpio -idmv < yxkj_rootfs_test.cpio
- 到此,文件系统已经解压到了硬盘/dev/sda1下的rootfs目录下,尝试设置启动参数进行试验。
- 设置参数:
set al /dev/fs/ext2@wd0/boot/vmlinuz set append "console=ttyS0,115200 init=/linuxrc rw root=/dev/sda1 rootfstype=ext2"
- 启动失败,机器卡死,
尝试解决:
- 考虑可能是内核路径设置不对的原因,进行修改。
- 修改后,内核能够正常启动,文件系统不行,提示
- Kernel panic - not syncing : VFS : Ubable to mount root fs on unknown-block(0,0)
- 该错误考虑是需要将硬盘进行分区,所以接下来进行龙芯loongnix重新安装并进行存储分区。
龙芯loongnix系统重新安装
- 使用龙芯官方提供的系统镜像:
在Ubuntu虚拟机下执行指令:
# 代表安装盘 iso 镜像文件路径, Y 代表待写入 U 盘设备符 dd if=loongnix-20190331.iso of=/dev/sdb • 1 • 2
完成后显示如下:
- 插上U盘后,重启龙芯派,并没有显示u盘安装选项,重新安装龙芯loongnix系统失败。
硬盘分区后将文件系统写入新分区进行启动尝试
进行硬盘分区:
- 观察到当前/dev/sda 硬盘设备有16G大小,但是当前只分区了10G作为/dev/sda1,所以开始考虑新建分区/dev/sda2,并在上面保存文件系统进行启动尝试。
fdisk /dev/sda n(新建盘指令) p(新建主分区) 2(序号2) 以下默认即可 w(保存退出) #查看当前磁盘 fdisk -l
设置新分区的文件系统类型
mkfs.ext2 /dev/sda2 #查看修改后的文件系统类型 parted #显示文件系统命令 print list #输入打印信息命令
在新建分区中写入文件系统
#挂载分区 mount /dev/sda2 /mnt cd /mnt #拷贝文件系统压缩包到当前目录下 cp /boot/rootfs.cpio.gz . gunzip rootfs.cpio.gz #解压 cpio -idmv < rootfs.cpio #修改启动参数,重启尝试 cd /boot vi boot.cfg titel "YXKJ_TEST" kernel (wd0,0)/boot/vmlinuz_yxkj_1104_02 args console=tty0,ttyS0,115200 init=/linuxrc rw root=/dev/sda2 rootfstype=ext2 #重启 reboot
使用镜像系统启动
titel "YXKJ_TEST" kernel (wd0,0)/boot/vmlinuz_yxkj_1104_02 initrd (wd0,0)/boot/rootfs.cpio.gz args console=ttyS0,115200 console=tty0
搞定
结论:
- 目前正常启动自己制作的文件系统,就是使用新建分区并且初始化文件系统类型,然后在/boot/boot.cfg文件中添加参数即可。