【久久派】 新世界系统安装

虚拟机环境

基于wuwu的开源工程: ubuntu 22.04

用户:wuwu 密码:123456

21届走马观碑超级好用仓库开源啦?_哔哩哔哩_bilibili

1 写 uboot

原来loongOS 的久久派,按 C 进入PMON,修改IP

复制代码
set ifconfig syn0:192.168.1.50

PC 机改IP为192.168.1.250, 开 tftp ,将 u-boot-spl-gz.bin 复制到 tftp 服务器打开的目录下

bash 复制代码
fload tftp://192.168.1.250/u-boot-spl-gz.bin

2 更换 内核 和文件系统 启动

参考中科云 新世界: 【龙芯】久久派新世界系统烧录_哔哩哔哩_bilibili

bash 复制代码
git clone https://gitee.com/Wuwu129/SmartCar_99Pai_OpenSource.git
1)tftp启动

虚拟机操作 更换内核:

(1) 将开源仓库下system/uImage 拷贝到虚拟机 ~/linux/tftpboots 将开源仓库下system/wuwusama_buildrootfs.tar 解压到虚拟机 ~/linux/nfs/lsrootfs

(2)命令如下 内核更新:

cp SmartCar_99Pai_OpenSource/system/uImage ~/linux/tftpboot/

(3) 系统更新:

1)先删除原来的系统文件

sudo rm ~/linux/nfs/lsrootfs/* -r

2)写入新的系统

tar -xvf SmartCar_99Pai_OpenSource/system/wuwusama_buildrootfs.tar -C ~/linux/nfs/lsrootfs/

开发板 uboot操作

uboot中设置久久派IP (IP根据自己网段修改, 保证局域网内没有其他设备使用)

setenv ipaddr 192.168.3.99

设置网关 (根据自己局域网设置)

setenv gatewayip 192.168.3.1

设置虚拟机当前IP (需要与久久派在同一网段下)

setenv serverip 192.168.3.90
设置通过网络挂在根文件系统 (实例中IP根据上述自行修改)

setenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.3.90:/home/wuwu/linux/nfs/lsrootfs,vers=3,tcp ip=192.168.3.99:192.168.3.90:192.168.3.1:255.255.255.0::eth0:off'

设置TFTP下载内核

setenv bootcmd 'tftp {loadaddr} uImage; bootm {loadaddr}'

保存设置 (出错不需要重新设置)

saveenv

查看当前环境设置(可选)

printenv

启动系统

boot

2)U盘启动

内核与根文件系统配套使用,先加载内核后,枚举出 /dev/sda1 ,才能加载U盘的文件系统(wuwu的内核不能用U盘启动,只能tftp)

准备U盘

挂载ext4格式的U盘

sudo mount -t ext4 /dev/sda1 /mnt/usb

复制 rootfs.tar 到U盘根目录

cp rootfs.tar /mnt/usb

解压 文件系统 到U盘 根目录

sudo tar -xvf rootfs.tar

到 串口, 开机 99 派, 进入 #soc , 进行U盘 手动 启动

(1)配置为U盘启动

setenv bootargs root=/dev/sda1 rootdelay=5

(2)手动启动系统

ext4load usb 0:1 ${loadaddr} boot/uImage #加载固件文件到内存中 <设备编号>:<分区编号> <加载地址> <文件路径>

bootm KaTeX parse error: Expected 'EOF', got '#' at position 13: {loadaddr} #̲ 其中`{loadaddr}` 指定内核映像的加载地址

U盘自动启动:

(3)设置自动启动系统

setenv bootargs root=/dev/sda1 rootdelay=5

setenv bootcmd 'ext4load usb 0:1 {loadaddr} boot/uImage;bootm {loadaddr}'

saveenv

3)EMMC启动步骤1-烧写系统到EMMC

(1) 输入密码root进入系统

(2) 在虚拟机中将项目中system/ 拷贝至 ~/linux/nfs/lsroots (在虚拟机中操作)

cp system/ ~/linux/nfs/lsrootfs/root/ -r

(3) 输入y确认格式化

y

(4) 挂载emmc

mount /dev/mmcblk0 /mnt

(5) 将system/中wuwusama_buildrootfs.tar 解压至emmc根目录中

tar -xvf wuwusama_buildrootfs.tar -C /mnt

(6) 将新内核拷贝到emmc中

cp uImage /mnt/boot

(7) 取消emmc挂载

umount /mnt

此时已经成功将内核和系统烧写至EMMC


4)EMMC启动步骤2-U-BOOT设置EMMC启动

(1) reboot重新启动系统

reboot

(2) 按 c 进入U-BOOT

(3) 设置跟文件系统路径 rootdelay 参数用于设置U-BOOT等待时间

setenv bootargs root=/dev/mmcblk0

(4) 设置从EMMC中读取内核

setenv bootcmd 'ext4load mmc 0:0 {loadaddr} boot/uImage; bootm {loadaddr}'

(5) 保存参数

saveenv

(6) 启动系统

boot

3 启动总结

引导 内核 文件系统 交叉编译工具
旧世界 PMON 4.19 looonOS loongson-gnu-toolchain-8.3
新世界 uboot 6.9 buildroot_roootfs loongson-gnu-toolchain-13.2

在新世界中,先用uboot引导 ,再加载内核 ,最后启动文件系统 。

(1)uboot引导 的文件是 u-boot-spl-gz.bin

这是写入到 GD32Q80芯片中的,可以在PMON中烧录 ,也可以用 编程器烧录 。

(2) 内核 uImage 加载

在 uboot启动后,加载内核 uImage 方法:

命令 说明
setenv bootcmd 'tftp {loadaddr} uImage; bootm {loadaddr}' tftp 加载,要配置tftp服务
setenv bootcmd 'ext4load usb 0:1 {loadaddr} boot/uImage;bootm {loadaddr}' U盘加载
setenv bootcmd 'ext4load mmc 0:0 {loadaddr} boot/uImage; bootm {loadaddr}' emmc加载

(3) 文件系统 rootfs.tar 启动

文件系统 rootfs.tar 要解压 到 NFS的 根目录下或者EMMC的根目录或者U盘根目录下。

在 uboot启动后,加载内核 uImage 结后,再加载文件系统 方法:

命令 说明
setenv ipaddr 192.168.3.99 setenv gatewayip 192.168.3.1 setenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.3.90:/home/wuwu/linux/nfs/lsrootfs,vers=3,tcp ip=192.168.3.99:192.168.3.90:192.168.3.1:255.255.255.0::eth0:off' nfs启动,要配置NFS服务
setenv bootargs root=/dev/sda1 rootdelay=5 U盘启动
setenv bootargs root=/dev/mmcblk0 emmc启动

(4) 组合使用

上面的 (2 里的三种选择一种) 和 (3 里的三种选择一种) 可随意组合使用,例如 使用 tftp加载内核,emmc的文件系统(常用的,因为要修改内核 )。

wuwu是 使用 tftp加载内核 , nfs 启动文件系统。

附录:

1 boot 启动参数

1 )${loadaddr}参数

执行编译命令: make uImage LOADADDR=0x00008000 生成的uImage文件位于arch/arm/boot/目录下。

ext4load usb 0:1 ${loadaddr} boot/uImage

加载固件文件 uImage 到内存中 <设备编号>:<分区编号> <加载地址> <文件路径>

bootm ${loadaddr}

其中${loadaddr} 指定内核映像的加载地址

setenv bootcmd tftp ${loadaddr} uImage

通过tftp 加载 uImage 到内存

2)setenv bootargs 'console=...'

ssetenv bootargs 'console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.3.90:/home/wuwu/linux/nfs/lsrootfs,vers=3,tcp ip=192.168.3.99:192.168.3.90:192.168.3.F1:255.255.255.0::eth0:off'

  • console=ttyS0,115200:指定串口终端设备为 ttyS0,波特率为 115200,用于内核的日志输出和用户交互 4
  • root=/dev/nfs:表明根文件系统采用网络文件系统(NFS)。
  • nfsroot=192.168.3.90:/home/wuwu/linux/nfs/lsrootfs:指定 NFS 服务器的 IP 地址是 192.168.3.90,以及根文件系统在服务器上的路径为 /home/wuwu/linux/nfs/lsrootfs
  • vers=3:指定使用NFS 协议版本 3,NFSv3 是嵌入式开发中的稳定版本,兼容性好
  • tcp:指定 NFS 使用TCP 传输协议,相比 UDP,TCP 提供可靠传输
  • ip=192.168.3.99:192.168.3.90:192.168.3.1:255.255.255.0::eth0:off:配置开发板的网络参数,其中 192.168.1.50 是开发板的 IP 地址, 192.168.3.90 是 NFS 服务器的 IP 地址, 192.168.3.1 是网关地址, 255.255.255.0 是子网掩码,eth0 是网络设备名,off 表示不使用 DHCP 自动获取 IP 地址 。
相关推荐
zbguolei2 小时前
Debian提示:“用户名” 不是 sudoers 文件
linux·服务器·debian
梦星辰.2 小时前
超大 JSONL 数据集交互式查看器 Linux便捷工具
linux·windows·microsoft
optimistic_chen2 小时前
【Redis系列】主从复制
linux·数据库·redis·缓存·中间件·命令行·主从复制
zhyf1192 小时前
零刻AI Max395(Ubuntu 24.04)AMD 显卡监控工具(amdgpu_top)部署手册
linux·运维·ubuntu
wdfk_prog3 小时前
[Linux]学习笔记系列 -- 内存管理与访问
linux·笔记·学习
go_bai3 小时前
Linux-网络基础
linux·开发语言·网络·笔记·学习方法·笔记总结
糖~醋排骨3 小时前
FW防火墙的配置
linux·服务器·网络
ZFB00013 小时前
【麒麟桌面系统】V10-SP1 2503 系统知识——设置面板无法打开
linux·运维·kylin
2301_780943843 小时前
linux 对文件打补丁(Patch)
linux·运维·服务器