当前位置: 首页 > news >正文

飞腾D2000/E2000/D3000如何从头制作UBOOT引导系统镜像

1、背景介绍

目前针对飞腾D2000,E2000,D3000均采用uboot方式进行引导操作系统,采用该方法的原因是开发简单,而且启动时间比uefi快。但采用该方式后无法像uefi那种方式通过插入系统镜像u盘按常规步骤安装系统,只能采用预先把系统安装到某个载体上的方式进行处理,然后在uboot中配置启动参数直接启动,uboot启动参数配置见这里:飞腾D3000PBF和UBOOT配置说明-CSDN博客

2、系统镜像制作

首先如果板子上面是可取下的sata或者nvme,可以通过USB转接器连接一台Linux服务器,在服务器上执行操作,如果板子上面的sata或nvme无法取下来,那可以先把系统装在一个u盘里,然后通过u盘启动板子,待系统启动后再进行板上sata或nvme的系统安装。

下文以第二种复杂情况为例,描述具体过程

把u盘插到服务器中看到如下KYL开头的镜像

然后把ios挂载在对应mnt目录下,会发现这几个文件

直接执行

bash /mnt/images/harddisk_copy-hwsys.sh /dev/sdb 

等待完成后,就能看到系统装到了U盘,并以及分好区了。

注:该脚本作用就是读取u盘大小,并依据大小按比例进行分区并将对应文件拷到分区内

把对应的part1分区挂载,其中part1放入对应的设备树XXXX.dtb

注:这里D2000,E2000,D3000设备树都不一样,需要飞腾提供参考设备树。

将飞腾启动uboot烧进flash

进入uboot成功进入输入pri显示如下的界面

输入 usb start 开始扫描对应的usb 设备,看到设备后就可以看到是设备0还是1,一般一个设备默认为0。

找到其中对应的load_fdt、load_initrd、load_kernel、后面的参数找对应文件所在储存的类型,如果是从u盘起的,就把0:1前面的储存设备改成usb 0:1 ,如果是nvme起的就改成对应的nvme 0:1 ,如果是sata起的就改成 scsi 后面还有诸如 0x900000000 和0x950000000 还有0x90100000,是从对应储存设备读对应的文件到内存的地址,一般不要变。

改完以后,输入以下三个命令

ext4load scsi 0:1 0x90000000 ft2004.dtbext4load scsi 0:1 0x95000000 initramfs.imgext4load scsi 0:1 0x90100000 Image

然后用booti指令进操作系统

具体指令为

booti 0x90100000 0x950000000:0x2000000 0x900000000

就可以进入对应的系统,

进入系统后,找到usb装iso的分区挂载在对应的mount目录下,具体指令是  

mount /dev/sda4 /mnt

可以发现如下图所示

然后把kylinsec开头的文件拷贝到root目录media下,然后把ios挂载在对应mnt目录下

会发现这几个文件

然后直接执行 bash /mnt/images/harddisk_copy-hwsys.sh /dev/sdb,后面的设备就是把U盘的系统放入的其他盘,比如板贴的SATA,这里板贴SATA盘在linux下面对应识别的设备为sdb。

等于在板子上面继续针对SATA按照前面对U盘操作那样重新安装一遍系统。

关机重启,重新回到uboot阶段,把对应的load_fdt、load_initrd、load_kernel后面的参数改成scsi 0:1其余保持不变,然后saveenv保存对应的参数关机重启,后续就可以从sata盘引导系统了。

http://www.lryc.cn/news/598388.html

相关文章:

  • Pycharm、Python安装及配置小白教程
  • 【docker | 部署 】Jetson Orin与AMD平台容器化部署概述
  • 用LangChain重构客服系统:腾讯云向量数据库+GPT-4o实战
  • 使用爬虫获取游戏的iframe地址
  • DRF - 博客列表API
  • Django Models详解:数据库模型的核心
  • Unity3D + VR头显 × RTSP|RTMP播放器:构建沉浸式远程诊疗系统的技术实践
  • Ascendc msOpST测试报错问题
  • 【Unity开发】数据存储——XML
  • MySQL的命令行客户端
  • Code Composer Studio:CCS 设置代码折叠
  • MySQL零基础教程增删改查实战
  • [语言模型训练]基于 PyTorch 的双向 LSTM 文本分类器实现:基于旅店的评论分类语言模型
  • 与deepseek的问答:dot net与Borland VCL的关系
  • OSPF多区域介绍
  • 【Spring Cloud Gateway 实战系列】高级篇:服务网格集成、安全增强与全链路压测
  • 开源链动2+1模式AI智能名片S2B2C商城小程序的场景体验分析
  • 从零用java实现 小红书 springboot vue uniapp(15) 集成minio存储 支持本地和minio切换
  • 开源中国:以国产开源生态筑基,赋能智能研发全栈升级
  • 谈谈ArrayList与Vector的理解?
  • DiffServ服务模型与DS码点详解
  • 数据库第三章练习题(大雪圣期末复习参考)
  • [硬件电路-81]:学习和分析一个电子元器件的思维框架
  • 2.7 PNIO-AL
  • MySQL---索引、事务
  • 借助 Amazon Redshift 为具有强大抗风险能力的使用案例提供支持
  • Concert Tickets 二分+并查集
  • Visual Studio 2010-.Net Framework 4.0-DevExpress安装
  • 使用adb 发送广播 动态改变app内的值
  • Lua(文件I/O)