飞腾平台编译文件系统

news/2024/11/28 0:44:30/

如下网址为飞腾适配的buildroot项目,其中说明支持飞腾腾珑E2000开发板和腾锐D2000开发板。

https://gitee.com/phytium_embedded/phytium-linux-buildroot

以下尝试编译针对腾锐D2000开发板镜像。首先下载buildroot:

$ git clone https://gitee.com/phytium_embedded/phytium-linux-buildroot.git

查看支持的Phytium开发板:

$ cd phytium-linux-buildroot/
$ 
$ make list-defconfigs | grep phytiumphytium_d2000-64b-efi_defconfig     - Build for phytium_d2000-64b-efiphytium_d2000_debian_defconfig      - Build for phytium_d2000_debianphytium_d2000_debian_desktop_defconfig - Build for phytium_d2000_debian_desktopphytium_d2000_defconfig             - Build for phytium_d2000phytium_d2000_ubuntu_defconfig      - Build for phytium_d2000_ubuntuphytium_e2000_debian_defconfig      - Build for phytium_e2000_debianphytium_e2000_debian_desktop_defconfig - Build for phytium_e2000_debian_desktopphytium_e2000_defconfig             - Build for phytium_e2000phytium_e2000_ubuntu_defconfig      - Build for phytium_e2000_ubuntuphytium_e2000_ubuntu_desktop_defconfig - Build for phytium_e2000_ubuntu_desktopphytium_e2000_xenomai_defconfig     - Build for phytium_e2000_xenomaiphytium_initrd_defconfig            - Build for phytium_initrd

使用默认的第一个phytium_d2000-64b-efi_defconfig配置,首先修复其中的几个错误,对于4.19版本内核,sdk.config配置已经不存在,更改为defconfig文件。另外,飞腾的内核代码库已经迁移到gitee,修改对应的URL和版本。

$ vi configs/phytium_d2000-64b-efi_defconfig30 # Kernel31 BR2_LINUX_KERNEL=y32 BR2_LINUX_KERNEL_CUSTOM_VERSION=y33 BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19"34 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y35 BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y36 BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"37 BR2_LINUX_KERNEL_CUSTOM_GIT=y38 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/sdk.config"39 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="ssh://git@gitlab.phytium.com.cn:12022/embedded/linux/linux-4.19.git"40 41 BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="349e93465734b958647552a1d3d1d2072efd0b89"

查看当前gitee上飞腾内核的版本信息。

$ git clone https://gitee.com/phytium_embedded/phytium-linux-kernel.git
$
$ cd phytium-linux-kernel
$
$ ls arch/arm64/configs/
defconfig  e2000_defconfig
$
$ git log
commit e92ac4aa0b2e3ca7ef4d5c3667d6000a45410a8f (HEAD -> master, origin/master, origin/HEAD)
Author: liutianyu1250 <liutianyu1250@phytium.com.cn>
Date:   Fri Nov 18 17:05:45 2022 +0800drivers: net/ethernet/phytium: modify 'macb_tx_restart' to prevent wrong tx restart.Signed-off-by: liutianyu1250 <liutianyu1250@phytium.com.cn>

修改phytium_d2000-64b-efi_defconfig配置文件如下:

 38 BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(LINUX_DIR)/arch/arm64/configs/defconfig"39 BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://gitee.com/phytium_embedded/phytium-linux-kernel.git"40 41 BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="e92ac4aa0b2e3ca7ef4d5c3667d6000a45410a8f"

执行编译。

$ make phytium_d2000-64b-efi_defconfig
$ make

编译过程中遇到如下的错误,找不到rproc_handle_ipi函数。

  LD      vmlinux.oMODPOST vmlinux.o
/home/kai/work/phytium-linux-buildroot/output/host/bin/aarch64-none-linux-gnu-ld: warning: -z norelro ignored
/home/kai/work/phytium-linux-buildroot/output/host/bin/aarch64-none-linux-gnu-ld: arch/arm64/kernel/smp.o: in function `handle_IPI':
/home/kai/work/phytium-linux-buildroot/output/build/linux-custom/arch/arm64/kernel/smp.c:921: undefined reference to `rproc_handle_ipi'
/home/kai/work/phytium-linux-buildroot/output/build/linux-custom/arch/arm64/kernel/smp.c:921:(.text+0x86c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rproc_handle_ipi'
make[2]: *** [Makefile:1050: vmlinux] Error 1
make[1]: *** [package/pkg-generic.mk:292: /home/kai/work/phytium-linux-buildroot/output/build/linux-custom/.stamp_built] Error 2
make: *** [Makefile:84: _all] Error 2
kai@thunderbolt:~/work/phytium-linux-buildroot$ 

原因是defconfig内核配置文件没有选择CONFIG_REMOTEPROC配置,修改如下:

vi output/build/linux-e92ac4aa0b2e3ca7ef4d5c3667d6000a45410a8f/arch/arm64/configs/defconfig596 CONFIG_ARM_SMMU_V3=y
597 CONFIG_REMOTEPROC=y
598 CONFIG_PHYTIUM_REMOTEPROC=m

重新make menuconfig之后,新旧配置文件对比如下。

$ cd output/build/linux-e92ac4aa0b2e3ca7ef4d5c3667d6000a45410a8f
$
$ diff -bup .config.old .config
--- .config.old 2022-12-06 08:49:35.519201902 +0000
+++ .config     2022-12-06 11:22:09.142811620 +0000
@@ -5302,18 +5302,24 @@ CONFIG_QCOM_IOMMU=y## Remoteproc drivers#
-# CONFIG_REMOTEPROC is not set
+CONFIG_REMOTEPROC=y
+# CONFIG_QCOM_ADSP_PIL is not set
+# CONFIG_QCOM_Q6V5_PIL is not set
+# CONFIG_QCOM_Q6V5_WCSS is not set
+# CONFIG_QCOM_SYSMON is not set
+# CONFIG_QCOM_WCNSS_PIL is not set
+CONFIG_PHYTIUM_REMOTEPROC=y## Rpmsg drivers#CONFIG_RPMSG=y
-# CONFIG_RPMSG_CHAR is not set
+CONFIG_RPMSG_CHAR=yCONFIG_RPMSG_QCOM_GLINK_NATIVE=yCONFIG_RPMSG_QCOM_GLINK_RPM=y# CONFIG_RPMSG_QCOM_GLINK_SMEM is not setCONFIG_RPMSG_QCOM_SMD=y
-# CONFIG_RPMSG_VIRTIO is not set
+CONFIG_RPMSG_VIRTIO=y# CONFIG_SOUNDWIRE is not set

对于buildroot配置文件phytium_d2000_defconfig,其使用的内核配置也是defconfig,也存在同样的问题。对于使用内核配置文件e2000_defconfig的情况,已经配置了CONFIG_REMOTEPROC选项,应当没有问题。


http://www.ppmy.cn/news/346471.html

相关文章

Linux系统启动时间优化

优化系统启动时间 前提&#xff08;******重点&#xff09;&#xff1a; &#xff08;1&#xff09; 首先要熟悉系统启动流程&#xff0c;以及每个流程中具体所做的事情 &#xff08;2&#xff09; 测量系统启动流程中每一步所花费的时间&#xff08;这个时间需要与最终优化时间…

基本ROP之ret2shellcode

原理 控制程序执行shellcode代码 shellcode指的是用于完成某个功能的汇编代码&#xff0c;常见的功能主要是获取目标系统的shell。 一般来说&#xff0c;shellcode需要我们自己进行填充&#xff0c;这其实是一种典型的利用方法。 执行条件&#xff1a; 对应二进制在执行时…

1.SD卡初始化、写入、读取、数据比较

设计目标&#xff1a; 1.sd卡初始化完成 2.往sd卡内的某一扇区写入数据 3.将对应扇区中的数据进行读取 4.比较写入数据与读取数据是否一致 sd卡顶层&#xff1a; sd卡采用spi模式&#xff0c;有片选cs、时钟clk、命令线mosi、数据线miso四个引脚 例化sd初始化&#xff0…

2.3 逻辑代数的基本公式和常用公式

博主介绍&#xff1a;一个爱打游戏的计算机专业学生 博主主页&#xff1a;夏驰和徐策 所属专栏&#xff1a;程序猿之数字电路 学习目标&#xff1a; 1. 学习基本概念&#xff1a;首先&#xff0c;了解逻辑代数的基本概念和术语&#xff0c;如命题、逻辑运算符&#xff08;与…

spdk环境搭建

SPDK环境搭建 运行环境源码拉取编译增加虚拟盘&#xff0c;运行样例hello world代码简要解析申请队列空间发送admin 命令&#xff0c;创建SQ/CQ申请DMA缓冲区PRP处理数据收发流程 本来21年就写了这篇博客&#xff0c;但因为在博客中放了vmware的密钥&#xff0c;违规了&#xf…

某款PC Camera试玩儿

X宝购得一款USB PC Camera&#xff0c;规格如下&#xff1a; CMOS chip type: Color CMOS image sensorInterface: USBS/N ratio:Dynamic range: Focus range: 3cm-infinityBuilt-in image compessionAutomatic white balanceAutomatic color compensatedDynamic image E-mail…

2022中国可信链大赛初赛赛题全解

所有的题目我都放在了代码仓库&#xff0c;由于太长就不放入wp了&#xff0c;感兴趣的可自行移步。 题目预览 TrusterLenderPool分析攻击 SVip分析攻击 Merkle分析攻击 OwnerBuy分析攻击 LostAssets分析攻击 Storage1分析攻击 FlashLoanMain分析攻击 Governance分析攻击 Every…

HECO使用docker部署单节点的开发网

文章目录 一. 编写说明1.1 文档说明1.2 配置信息1.3 部署文档信息 二.heco开发网镜像生成三.heco主链容器生成3.1 配置文件编写3.2 预先创建一个账户地址3.3 创建genesis.json3.4 初始化geth3.5 启动geth3.6 启动挖矿 四.控制台指令使用五.rpc命令使用5.1当前燃气价格5.2 返回客…