飞凌 OKA40i-C 开发板 Linux 3.10 编译实战:Ubuntu 14.04 环境搭建与 70G 源码编译避坑

发布时间:2026/7/10 7:27:54
飞凌 OKA40i-C 开发板 Linux 3.10 编译实战:Ubuntu 14.04 环境搭建与 70G 源码编译避坑 飞凌 OKA40i-C 开发板 Linux 3.10 编译实战Ubuntu 14.04 环境搭建与 70G 源码编译避坑第一次接触飞凌 OKA40i-C 开发板时面对庞大的 70GB 源码和复杂的编译环境我踩了不少坑。这篇文章将分享从零开始搭建 Ubuntu 14.04 编译环境到成功生成系统镜像的全过程特别针对常见编译错误提供解决方案。1. 环境准备Ubuntu 14.04 系统配置选择 Ubuntu 14.04 是因为官方 SDK 对该版本有最佳兼容性。建议使用物理机安装而非虚拟机因为编译过程对磁盘 I/O 和 CPU 性能要求较高。必备软件包安装清单sudo apt-get update sudo apt-get install -y git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g-multilib mingw32 tofrodos python-markdown \ libxml2-utils xsltproc zlib1g-dev:i386 gawk关键配置步骤修改 dash 为 bashsudo dpkg-reconfigure dash # 选择 No创建符号链接解决 libGL 问题sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so注意确保磁盘剩余空间至少 100GB实际编译过程中发现 70GB 源码解压后需要约 85GB 空间。2. SDK 源码获取与解压飞凌官方提供的 SDK 通常分割为多个压缩包如 xaa、xab 等需按特定步骤处理mkdir -p /root/workspace/allwinner/A40i/bsp cd /root/workspace/allwinner/A40i/bsp # 合并分割压缩包 cat xaa xab linux_sdk.tar.gz # 校验并解压 md5sum linux_sdk.tar.gz # 对比官方提供的MD5值 tar -zxvf linux_sdk.tar.gz解压后的目录结构应包含lichee/ # 内核和uboot源码 android/ # Android系统源码如编译Android buildroot/ # 文件系统构建3. 编译环境深度配置进入 lichee 目录进行环境初始化cd lichee source env.sh # 设置交叉编译环境交叉编译器信息版本5.3.1路径lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/前缀arm-linux-gnueabihf-配置编译参数时需特别注意./build.sh config选择配置时Chip: sun8iw11p1Platform: linux (非Android)Board: a40-OKA40i_CLCD: 选择与开发板匹配的分辨率如1024x6004. 编译过程与典型错误解决启动编译./build.sh ./build.sh pack常见错误1lichee/out 目录异常Error: Buildroot output dir not found解决方案rm -rf lichee/out/* # 重新执行编译常见错误2磁盘空间不足现象编译中途失败提示 No space left on device处理# 查看磁盘使用 df -h # 清理或扩展虚拟磁盘编译时间参考四核i7处理器约2小时双核处理器可能超过4小时5. 镜像生成与验证成功编译后镜像文件位于lichee/tools/pack/sun8iw11p1_linux_xxx.img镜像组成bootloaderLinux 内核 (3.10.65)rootfs (buildroot)设备树文件使用file命令验证file sun8iw11p1_linux_xxx.img # 应显示DOS/MBR boot sector6. 高级技巧模块化编译当只需修改特定组件时可单独编译仅编译内核./build.sh -m kernel仅编译uboot./build.sh -m uboot文件系统修改后重新打包./build.sh -m rootfs ./build.sh pack7. 开发板烧录准备虽然本文聚焦编译环节但烧录前需注意Windows 端安装 PhoenixSuit 工具开发板进入 FEL 模式按住 FEL 键上电镜像文件建议放在英文路径下遇到烧录问题时可尝试更换 USB 端口重新安装驱动检查开发板供电稳定性8. 性能优化建议编译加速方法make -j$(nproc) # 使用所有CPU核心SSD vs HDD 实测对比存储类型完整编译时间增量编译时间SATA SSD110分钟25分钟HDD240分钟60分钟内存不足时的Swap配置sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 永久生效 echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab通过这套流程我在三台不同配置的机器上成功完成了编译。最关键的教训是一定要提前规划好磁盘空间并做好长时间编译的心理准备。