CX102S-DPU开放智能网关-DPU操作系统安装指导-Debian
DPU操作系统安装指导-Debian
1 操作前声明
技术人员在进行后续操作前,建议仔细阅读产品的用户手册,对CX102S-D设备的结构设计充分了解。
本文档将以Debian Linux系统的安装为例,介绍如何安装一个新系统到设备的计算单元(DPU)。
2 安装流程
2.1 准备安装所需文件和物料
- 系统文件,包括:内核镜像、设备树、文件系统;
- U盘,容量不小于4GB。
常见的Linux发行版系统(Debian、OpenWRT等)的内核镜像与设备树文件,请联系星融元的售前/售后获取。用户也可以根据需求自行编译适配内核镜像和设备树,以支持特定的系统和版本。
U盘烧录:
可以使用balenaEtcher烧录工具,或通过Linux的命令行,将准备好的Debian Linux烧录进U盘。
工具参考下载地址:
2.2 从U盘中引导临时系统
把制作好的U盘插入设备USB接口,连接串口到电脑,设备上电启动,根据系统提示按任意键中断autoboot进入uboot界面。在串口连接下输入switchUart0、1或2可分别切换到交换单元、计算单元 1或计算单元 2。交换单元中断autoboot流程后会进入ac5y uboot,计算单元中断autoboot流程后会进入9130 uboot。
默认下会进入ac5y uboot,后续操作需要通过switchUart*命令切换到指定计算单元的9130 uboot界面中进行。
设置环境变量,让计算单元从U盘中引导系统:
Marvell>> setenv bootusb 'usb reset;ext4load usb 0:1 $kernel_addr_r boot/Image;ext4load usb 0:1 $fdt_addr_r boot/cn9130-db-A.dtb;booti $kernel_addr_r - $fdt_addr_r'
Marvell>> setenv bootargs 'console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 root=/dev/sda1 rootwait rw pci=pcie_bus_safe cpuidle.off=1'
Marvell>> saveenv
Marvell>> run bootusb
2.3 安装系统到DPU硬盘
成功从U盘引导系统后,证明准备的系统能正常适配计算单元芯片,所以在这一步将U盘的系统文件拷贝到计算单元的本地存储MMC。
# 强制格式化MMC为ext4
mkfs.ext4 -F /dev/mmcblk0
# 将MMC分成两个分区,boot和root
fdisk /dev/mmcblk0 <<EOF
n
p
1
2048
+1024M
n
p
2
2099200
w
EOF
# 格式化分区为 ext4 文件系统
echo "格式化分区为 ext4 文件系统..."
mkfs.ext4 /dev/mmcblk0p1
mkfs.ext4 /dev/mmcblk0p2
# 挂载目标分区
mkdir -p /mnt/mmcblk0p1 /mnt/mmcblk0p2
mount /dev/mmcblk0p1 /mnt/mmcblk0p1
mount /dev/mmcblk0p2 /mnt/mmcblk0p2
# 复制系统文件到目标分区
echo "复制系统文件到目标分区..."
cp -r /boot/* /mnt/mmcblk0p1/
cp -r /basefs-ac5x-ac5y.tgz /mnt/mmcblk0p2/
cd /mnt/mmcblk0p2/
tar xvf basefs-ac5x-ac5y.tgz
# 取消挂载目标分区
umount /mnt/mmcblk0p1
umount /mnt/mmcblk0p2
2.4 设置uboot环境变量
重启系统,进入uboot界面,设置环境变量使其从MMC引导系统。
Marvell>> setenv bootmmc 'usb reset;ext4load mmc 0:1 $kernel_addr_r boot/Image;ext4load mmc 0:1 $fdt_addr_r boot/cn9130-db-A.dtb;booti $kernel_addr_r - $fdt_addr_r'
Marvell>> setenv bootargs 'console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000 root=/dev/mmcblk0p2 rootwait rw pci=pcie_bus_safe cpuidle.off=1'
Marvell>> setenv bootcmd 'run bootmmc'
Marvell>> saveenv
2.5 从DPU硬盘引导系统
Marvell>> run bootmmc
从DPU硬盘启动后可以正常进入操作系统,进入系统后进行测试确认系统工作状态正常,到此完流程系统安装的所有流程,拔掉U盘。
3 附录
3.1 环境变量解释
3.1.1 setenv bootusb
setenv bootusb:设置bootusb的环境变量;
'usb reset;ext4load usb 0:1 $kernel_addr_r boot/Image;ext4load usb 0:1 $fdt_addr_r boot/cn9130-9130-102.dtb;booti $kernel_addr_r - $fdt_addr_r'
· usb reset:重置USB,确保USB设备可以读取;
· ext4load usb 0:1 $kernel_addr_r boot/Image:从USB设备的第一个分区中加载Linux内核文件Image到内存中的地址$kernel_addr_r;
· ext4load usb 0:1 $fdt_addr_r boot/cn9130-9130-102.dtb:从USB设备的第一个分区中 加载cn9130设备树cn9130-9130-102.dtb到内存中地址$fdt_addr_r;
· booti $kernel_addr_r - $fdt_addr_r:启动Linux内核,$kernel_addr_r是内核文件在 内存中的地址,$fdt_addr_r是设备树文件在内存中的地址。
命令作用:从USB设备加载Linux内核和设备树文件到内存中,然后启动Linux内核。
3.1.2 setenv bootarg
setenv bootargs:设置bootargs的环境变量。
· console=ttyS0,115200:指定了系统的控制台设备为串口0(ttyS0),波特率为115200,表示系统的输出会通过串口0进行,波特率为115200;
· earlycon=uart8250,mmio32,0xf0512000:指定了早期控制台(early console),用于在Linux内核启动早期输出信息到串口。使用了UART8250控制器,并指定MMIO地址为0xf0512000;
· root=/dev/sda2:指定了根文件系统的位置,这里设定为/dev/sda2;
· phy-mode=sgmii:设置物理层传输模式为SGMII(SerDes Gigabit Media Independent Interface),这是一种千兆以太网的物理层传输模式;
· rootwait:在根文件系统挂载之前等待根设备就绪;
· rw:将根文件系统以读写模式挂载;
· pci=pcie_bus_safe:用于PCI子系统的配置,pcie_bus_safe表示在PCI Express总线上运行时采用了安全的探测方式;
· cpuidle.off=1:禁用CPU空闲状态管理(CPU Idle)。CPU空闲状态管理是一种节能机制,通过降低CPU的功耗来减少电能消耗,但在某些情况下可能会引起问题,这个参数用来禁用这个功能。
3.1.3 setenv bootcmd
setenv bootcmd:设置 bootcmd 环境变量;
· 'run bootusb':bootcmd 环境变量的值。告诉系统在启动时运行bootusb这个命令。使用了run命令来执行之前设置好的bootusb环境变量中的命令。
命令作用:是设置系统启动时要执行的命令序列为bootusb。
3.1.4 saveenv
保存环境变量
相关产品:云化园区交换机
相关阅读: