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

双椒派E2000D开发板Linux环境配置指南

双椒派E2000D开发板Linux环境配置指南

——从内核编译到根文件系统实战详解


📚 目录
  1. 环境准备:工具链与源码部署
  2. 内核编译全流程详解
  3. 设备树定制与配置技巧
  4. 根文件系统制作
  5. 思维导图总结

1️⃣ 环境准备:工具链与源码部署

步骤1:创建工具链目录
sudo mkdir /opt/toolchains  # 创建交叉编译工具链目录
sudo mkdir /opt/kernel     # 创建内核源码目录
步骤2:解压工具链与内核源码
# 解压ARMv8工具链(从资料包复制)
tar -xvf cross_tool/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.xz -C /opt/toolchains# 解压飞腾定制内核
tar -xvf phytium-linux-kernel.tar.xz -C /opt/kernel
步骤3:配置环境变量
# 永久生效(添加到~/.bashrc)
echo 'export PATH=$PATH:/opt/toolchains/arm-cortex_a9-eabi-4.7-eglibc-2.18/bin:/opt/toolchains/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin' >> ~/.bashrc
source ~/.bashrc# 验证安装
aarch64-none-linux-gnu-gcc --version

预期输出

gcc version 10.3.1 20210621 (GCC)  # 确认版本匹配

2️⃣ 内核编译全流程详解

步骤1:内核配置
cd /opt/kernel/phytium-linux-kernel# 添加设备树支持(针对E2000D开发板)
cp arch/arm64/boot/dts/phytium/e2000d-chillipi-board.dts .# 修改Makefile关键配置
sed -i '7,8 s/^# //' Makefile  # 取消ARCH和CROSS_COMPILE注释
echo "ARCH ?= arm64" >> Makefile
echo "CROSS_COMPILE ?= aarch64-none-linux-gnu-" >> Makefile
步骤2:解决依赖问题
# 安装编译依赖
sudo apt install bison flex libssl-dev ncurses-dev -y# 生成默认配置
make e2000_defconfig
步骤3:编译内核
# 启动编译(-jN根据CPU核心数调整)
make -j$(nproc) # 验证生成文件
ls arch/arm64/boot/Image  # 内核镜像
ls arch/arm64/boot/dts/phytium/e2000d-chillipi-board.dtb  # 设备树二进制

编译成功标志

Kernel: arch/arm64/boot/Image is ready  # 最终输出

3️⃣ 设备树定制与配置技巧

关键设备树配置(e2000d-chillipi-board.dts)
// 示例:配置40Pin GPIO复用功能
&gpio0 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_gpio0>;// 将GPIO18配置为PWM输出pwm_pin: pwm-pin {pins = "GPIO1_A7";  // 对应物理引脚18function = "pwm";};
};// 调试串口配置(匹配bootargs参数)
&uart1 {status = "okay";pinctrl-names = "default";pinctrl-0 = <&pinctrl_uart1>;
};
编译设备树
# 单独编译设备树
make dtbs# 反编译验证(调试用)
dtc -I dtb -O dts e2000d-chillipi-board.dtb > debug.dts

4️⃣ 根文件系统制作

方案1:使用预编译根文件系统
# 解压资料包提供的Ubuntu根文件系统
tar -xvf rootfs-ubuntu.tar.xz -C /opt/rootfs# 或从飞腾官方仓库下载
git clone https://gitee.com/phytium_embedded/phytium-rootfs.git
方案2:自定义Buildroot构建
# 安装Buildroot
sudo apt install buildroot# 配置E2000D专用配置
make phytium_e2000d_defconfig# 添加定制软件包
echo "BR2_PACKAGE_PYTHON3=y" >> .config
make
部署到SD卡
# 假设SD卡挂载在/media/sdcard
sudo cp /opt/kernel/arch/arm64/boot/Image /media/sdcard/boot/
sudo cp /opt/kernel/arch/arm64/boot/dts/*.dtb /media/sdcard/boot/
sudo rsync -a /opt/rootfs/* /media/sdcard/rootfs/# 创建extlinux.conf启动配置
echo "LABEL Linux" > /media/sdcard/boot/extlinux/extlinux.conf
echo "  KERNEL /boot/Image" >> /media/sdcard/boot/extlinux/extlinux.conf
echo "  FDT /boot/e2000d-chillipi-board.dtb" >> /media/sdcard/boot/extlinux/extlinux.conf
echo "  APPEND console=ttyAMA1,115200 root=/dev/mmcblk0p2 rw" >> /media/sdcard/boot/extlinux/extlinux.conf

5️⃣ 思维导图总结

在这里插入图片描述

💡 避坑指南

  1. 依赖缺失:首次编译前务必安装bison flex,否则报错/bin/sh: bison: not found
  2. 权限问题:操作/opt目录需加sudo,或修改目录权限sudo chown -R $USER /opt
  3. 设备树匹配.dts文件名必须与bootcmd加载的设备树名一致
  4. 文件系统权限rsync时用-a参数保留权限属性,避免启动失败

性能优化技巧

  • CCache加速:在make前设置export CCACHE_DIR=/path/to/ccache,二次编译速度提升70%
  • 分布式编译:使用distcc将编译任务分发到多台机器
  • 增量编译:修改代码后只运行make,无需make clean

完成以上步骤,您的双椒派E2000D将具备:
✅ 定制化Linux内核 ✅ 专用设备树支持 ✅ 完整Ubuntu根文件系统

原创技术笔记,转载需注明出处。更多系统编程内容持续更新中…

欢迎在评论区交流启动日志和性能测试结果!

http://www.dtcms.com/a/328391.html

相关文章:

  • WireShark:非常好用的网络抓包工具
  • 【工具】通用文档转换器 推荐 Markdown 转为 Word 或者 Pdf格式 可以批量或者通过代码调用
  • 淘宝化妆品
  • Day52 Java面向对象07 类与对象总结
  • 第五章 树与二叉树
  • 腾讯云iOA:全面提升企业办公安全与效率的智能解决方案
  • 什么时候用WS(WebSocket),什么使用用SSE(Server-Sent Events)?
  • HTTP 协议详解:深入理解 Header 与 Body!
  • 【前端Vue】log-viewer组件的使用技巧
  • 有趣的 npm 库 · json-server
  • frp 实现内网穿透实战教程
  • CANopen Magic调试软件使用
  • 1 JQ6500语音播报模块详解(STM32)
  • 工作流调度(草稿)
  • Android Studio注释如何不从行首开始
  • Mysql GROUP_CONCAT函数数据超长导致截取问题记录
  • 常用Linux指令:Java/MySQL/Tomcat/Redis/Nginx运维指南
  • React 合成事件系统深度解析
  • Jenkins 实战指南-项目自动构建部署全流程通关
  • 明远智睿T113-i核心板:工业设备制造的“破局者”
  • Qt 常用控件 - 7
  • 大数据与人工智能在保险行业中的应用:2025年精准理赔的优化
  • VirtualBox 虚拟机磁盘扩容完整手册
  • 深入理解二维数组创建与使用
  • Unity TextMeshPro(二)优化
  • Redis知识点+项目+面试八股
  • 深度解读 WizTelemetry 2.0:链路追踪如何让分布式系统“无所遁形”
  • spring-cloud整合nacos详细攻略
  • 《汇编语言:基于X86处理器》第13章 高级语言接口(2)
  • 无人机在环保监测中的应用:低空经济发展的智能监测与高效治理