☰
飞凌 OKA40i-C 开发板 Linux 3.10 编译环境搭建:Ubuntu 14.04 依赖包一键安装与 3 大常见错误修复
2026/10/23 17:14:09 网站建设 项目流程

飞凌 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 update
  • 32 位库安装失败时,确认已启用多架构支持:sudo dpkg --add-architecture i386

2. 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.1

3. 三大编译错误解决方案

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 pack

3.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 pack

4. 编译优化技巧

通过多年实践,我们总结出以下加速编译的方法:

并行编译配置:

# 根据CPU核心数设置并行任务数 # 查看CPU核心:grep -c ^processor /proc/cpuinfo make -j$(nproc) # 使用全部核心

ccache 编译缓存配置:

sudo apt-get install ccache export USE_CCACHE=1 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

开发板进入烧录模式的方法:

  1. 断开电源
  2. 按住板载"UBOOT"按钮
  3. 连接USB OTG线
  4. 保持按键3秒后松开

6. 串口调试技巧

连接串口后,可通过以下命令监控启动过程:

screen /dev/ttyUSB0 115200

关键启动日志分析:

日志片段含义正常状态
U-Boot SPL第一阶段引导显示版本号
DRAM:内存初始化显示正确容量
[OK]服务启动无failed项

遇到启动卡顿时,可尝试修改bootargs:

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10 saveenv

7. 进阶问题排查

当遇到难以解决的编译问题时,可以:

  1. 检查环境变量:
env | grep -E "PATH|CROSS_COMPILE"
  1. 查看详细编译日志:
make V=1 # 显示详细编译命令
  1. 对比官方配置:
diff .config sun8iw11p1smp_oka40i_c_defconfig

记得每次修改配置后需要完全清理再编译:

make clean && make mrproper

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询