飞腾D2000(uboot+kernel+ubuntu)

背景介绍

目前常见的有UEFI+kylin或者UEFI+Ubuntu,在这里记录下UBOOT+Kernel5.10+Ubuntu20.04。因此这里不记录不介绍X100的打包流程及配置细节包括X100用做电源管理等,如有需要后续整理。

D2000固件打包环境搭建

我这里编译系统选择的Ubuntu16.04,其它版本自行安装即可。
在这里插入图片描述

  1. 源码准备

    需要的源码及打包工具版本如下(源码可咨询FAE获取最新版本):

U-Boot源码打包工具
d2000_u-boot_open-v1.41_202409261633.tar.gzimage_fix_d2000_v1.73.tar
  1. 安装交叉编译工具链
    交叉编译工具链下载地址:点击进入下载
    下载好后,拷贝到自定义目录,比如"~/workspace/phytium/toolchain",解压:tar -xvJf gcc-linaro-6.1.1-2016.08-x86_64_aarch64-linux-gnu.tar.xz
    在这里插入图片描述

U-Boot编译

进入到U-Boot源码目录下执行:

make ARCH=arm CROSS_COMPILE=/home/lithos/workspace/phytium/toolchain/gcc-linaro-6.1.1-2016.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- D2000_defconfig
make ARCH=arm CROSS_COMPILE=/home/lithos/workspace/phytium/toolchain/gcc-linaro-6.1.1-2016.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- -j4

在这里插入图片描述
如下图所示,是我们需要的文件
在这里插入图片描述

配置打包

  1. 更新打包文件中的软连接

下面开始打包,进入到飞腾提供的打包文件根目录下。首先删除掉原先的"bl33_new.bin"文件,然后再次创建它,将其软连接到刚刚生成的u-boot.bin。
在这里插入图片描述

  1. 参数配置
    执行以下命令进入配置界面:./my_scripts/fix_parameter.sh
    在这里插入图片描述
    具体的参数和配置项大家应该都很熟悉了,这里就不再进行说明。
    配置好后,保存并退出。

  2. 生成最终BIOS
    执行如下命令:./my_scripts/image-fix.sh
    在这里插入图片描述
    如图所示,这就是我们想要得到的文件。将其烧录到你的QSPI Flash中即可。

    看下效果:
    在这里插入图片描述
    以上工作完美结束。

内核编译

这里使用的内核版本为5.10.209

  1. 源码获取
    安装Git工具,确保联网没问题。执行以下命令:git clone https://gitee.com/zlt_audi/phytium-kernel-5.10.git
    在这里插入图片描述
  2. 编译
make ARCH=arm64 CROSS_COMPILE=/home/lithos/workspace/phytium/toolchain/gcc-linaro-6.1.1-2016.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- phytium_defconfig
make ARCH=arm64 CROSS_COMPILE=/home/lithos/workspace/phytium/toolchain/gcc-linaro-6.1.1-2016.08-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- -j4

Ubuntu文件系统制作

这里不再进行说明,请翻看我以前的文章

制作系统启动U盘

  1. U盘分区
    将U盘接入我们配置好的开发环境,执行以下命令:
    sudo fdisk /dev/sdb
    创建2个分区,第一个存放kernel Image和设备树,第二个分区存放文件系统。分区大小根据自己U盘大小来自行规划,前提是要放的下这些文件。
    在这里插入图片描述
    在这里插入图片描述
    格式化分区:
    sudo mkfs.vfat /dev/sdb1
    sudo mkfs.ext4 /dev/sdb2
    在这里插入图片描述

  2. 文件拷贝

    内核与设备树拷贝到第一个分区

sudo mount /dev/sdb1 /mnt/mount/
sudo cp arch/arm64/boot/Image /mnt/mount/
sudo cp arch/arm64/boot/dts/phytium/d2000-lithos.dtb /mnt/mount/
sudo umount /mnt/mount

文件系统拷贝到第二个分区

sudo mount /dev/sdb2 /mnt/mount/
// ~/workspace/ubuntu/rootfs/ 是我们制作的文件系统ubuntu20
sudo cp -r ~/workspace/ubuntu/rootfs/* /mnt/
sudo umount /mnt/mount

系统启动

u盘插入设备,执行:usb start
在这里插入图片描述
配置环境变量:

setenv bootargs "console=ttyAMA0,115200n1 earlycon=pl011,0x28001000 loglevel=8 root=/dev/sda2 rw rootdelay=5"
setenv bootcmd "fatload usb 0:1 0x90100000 Image;fatload usb 0:1 0x90000000 d2000-lithos.dtb;booti 0x90100000 - 0x90000000"

启动:
执行:run bootcmd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是在D2000+X100平台上运行uboot+kernel+ubuntu的流程,做个记录也做个分享。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值