使用龙芯派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
完成后显示如下:
- 插上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文件中添加参数即可。