飞凌 OKA40i-C 开发板 Linux 3.10 编译环境搭建:Ubuntu 14.04 依赖包一键安装与 3 大常见错误修复
飞凌 OKA40i-C 开发板 Linux 3.10 编译环境搭建Ubuntu 14.04 依赖包一键安装与 3 大常见错误修复第一次接触飞凌 OKA40i-C 开发板时最让人头疼的就是编译环境的搭建。不同于常见的 x86 平台嵌入式开发往往需要在特定版本的 Linux 系统上配置复杂的工具链和依赖库。本文将手把手带你完成 Ubuntu 14.04 环境下的一键依赖安装并针对三个最常见的编译错误提供详细解决方案。1. 环境准备Ubuntu 14.04 依赖包一键安装全志 A40i 的官方 SDK 对编译环境有严格要求推荐使用 Ubuntu 14.04 64 位系统。以下是经过验证的完整依赖包安装脚本#!/bin/bash # 飞凌 OKA40i-C 开发板完整依赖安装脚本 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 # 关键配置项 sudo dpkg-reconfigure dash # 选择否保留bash sudo ln -sf /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so注意执行脚本前请确保至少有 20GB 可用磁盘空间。建议使用干净的 Ubuntu 14.04 系统以避免库版本冲突。常见问题排查若遇到Unable to locate package错误请先运行sudo apt-get update32 位库安装失败时确认已启用多架构支持sudo dpkg --add-architecture i3862. SDK 路径配置与初始化飞凌官方提供的 SDK 通常包含 lichee 和 android 两个目录。正确的路径配置能避免后续 80% 的编译问题# 推荐目录结构 /root/workspace/allwinner/ ├── bsp │ ├── lichee # 内核及uboot │ └── android # 安卓系统可选初始化环境变量cd /root/workspace/allwinner/bsp/lichee source env.sh # 设置交叉编译链验证环境配置echo $PATH | grep sun8iw11p1 # 应显示工具链路径 arm-linux-gnueabihf-gcc -v # 应显示gcc版本5.3.13. 三大编译错误解决方案3.1 build.sh 报错lichee/out 目录异常典型错误信息ERROR: buildroot output dir is not set correctly!根本原因SDK 解压位置不符合编译脚本预期路径。解决方案# 步骤1清理旧编译产物慎用 rm -rf lichee/out/ # 步骤2建立标准目录结构 mkdir -p /root/workspace/allwinner/bsp mv lichee /root/workspace/allwinner/bsp/ # 步骤3重新编译 cd /root/workspace/allwinner/bsp/lichee ./build.sh ./build.sh pack3.2 硬盘空间不足导致编译中断当出现以下错误时No space left on device优化方案操作命令可释放空间清理apt缓存sudo apt-get clean500MB-2GB删除旧内核sudo purge-old-kernels1-3GB增加swap空间sudo fallocate -l 4G /swapfile额外4GB虚拟内存精简源码删除android/out目录5GB提示编译完整 SDK 至少需要 70GB 空间建议准备 100GB 以上硬盘3.3 镜像打包失败文件权限问题常见报错pack: cannot stat sun8iw11p1_linux_xxx.img解决方法分三步# 1. 检查文件是否存在 ls -lh lichee/tools/pack/ # 2. 添加执行权限 chmod x lichee/tools/pack/*.sh # 3. 使用sudo重新打包 sudo ./build.sh pack4. 编译优化技巧通过多年实践我们总结出以下加速编译的方法并行编译配置# 根据CPU核心数设置并行任务数 # 查看CPU核心grep -c ^processor /proc/cpuinfo make -j$(nproc) # 使用全部核心ccache 编译缓存配置sudo apt-get install ccache export USE_CCACHE1 export CCACHE_DIR/tmp/ccache ccache -M 50G # 设置缓存大小典型编译时间对比配置首次编译增量编译无优化6小时2小时-j8 ccache4小时30分钟5. 镜像烧写验证成功编译后会生成镜像文件lichee/tools/pack/sun8iw11p1_linux_oka40i_c_uart0.img烧写工具对比工具方式速度稳定性PhoenixSuitUSB线刷快★★★★☆PhoenixCardSD卡刷慢★★★☆☆推荐使用 PhoenixSuit 线刷# Windows端操作 PhoenixSuit.exe -i sun8iw11p1_linux_oka40i_c_uart0.img开发板进入烧录模式的方法断开电源按住板载UBOOT按钮连接USB OTG线保持按键3秒后松开6. 串口调试技巧连接串口后可通过以下命令监控启动过程screen /dev/ttyUSB0 115200关键启动日志分析日志片段含义正常状态U-Boot SPL第一阶段引导显示版本号DRAM:内存初始化显示正确容量[OK]服务启动无failed项遇到启动卡顿时可尝试修改bootargssetenv bootargs consolettyS0,115200 root/dev/mmcblk0p2 rootwait panic10 saveenv7. 进阶问题排查当遇到难以解决的编译问题时可以检查环境变量env | grep -E PATH|CROSS_COMPILE查看详细编译日志make V1 # 显示详细编译命令对比官方配置diff .config sun8iw11p1smp_oka40i_c_defconfig记得每次修改配置后需要完全清理再编译make clean make mrproper