一、Cubieboard 开发板简介
Cubieboard 系列开发板是基于 ARM 架构的低功耗嵌入式开发平台,适用于物联网、边缘计算、多媒体处理等场景。其核心优势包括:
- 硬件扩展性:支持多种外设接口(GPIO、UART、I2C、SPI、HDMI 等);
- 系统兼容性:可运行 Linux(Debian、Ubuntu、ArchLinux)、Android 等操作系统;
- 社区支持:拥有活跃的开源社区,提供丰富的驱动和开发资源。
本指南以 Cubieboard2(A20 芯片) 为例,其他型号(如 Cubieboard1、Cubieboard4)的配置逻辑类似,但需注意硬件差异(如芯片型号、存储接口)。
二、启动前准备:硬件与工具清单
1. 硬件清单
- Cubieboard2 开发板(含电源适配器,推荐 5V/2A);
- MicroSD 卡(至少 8GB,Class 10 或更高,用于系统镜像烧录);
- HDMI 显示器(或通过串口调试);
- USB 转 TTL 串口线(可选,用于无显示器时的调试);
- 键盘/鼠标(USB 接口)。
2. 软件工具
- 镜像烧录工具:
- Windows:Win32 Disk Imager、BalenaEtcher;
- Linux/macOS:
dd命令或 BalenaEtcher。
- 串口调试工具(如 PuTTY、minicom)。
- SSH 客户端(如 Xshell、MobaXterm)。
三、系统镜像选择与烧录
1. 镜像类型
Cubieboard 支持多种系统镜像,常用选项包括:
- Lubuntu:轻量级 Linux 发行版,适合资源受限场景;
- Debian:稳定性强,适合服务器或长期运行;
- Android:适用于多媒体或触摸屏应用。
推荐从官方或社区获取镜像:
- 官方镜像源:Cubieboard 官网;
- 社区镜像:Armbian(基于 Debian/Ubuntu 的优化镜像)。
2. 烧录步骤(以 BalenaEtcher 为例)
- 下载镜像文件(如
armbian-2023-xx-focal-cubieboard2.img.xz); - 插入 MicroSD 卡,运行 BalenaEtcher;
- 选择镜像文件,选择目标设备(SD 卡),点击 Flash;
- 等待烧录完成(约 5-10 分钟)。
注意事项:
- 烧录前备份 SD 卡数据;
- 使用高速 SD 卡(UHS-I 或更高)以提升系统性能。
四、首次启动与基础配置
1. 启动方式
- HDMI 显示器:连接 HDMI 线、键盘鼠标,直接启动;
- 无显示器(Headless 模式):通过 USB 转 TTL 串口线连接电脑,使用串口工具(如 PuTTY)访问。
2. 串口调试配置
- 连接 USB 转 TTL 线到 Cubieboard 的 UART0 接口(TX、RX、GND);
- 在电脑上打开串口工具,设置波特率为 115200,无流控;
- 启动 Cubieboard,观察串口输出日志。
3. 首次登录
系统启动后,默认用户名为 root,密码为 1234(首次登录需修改密码):
passwd root # 修改 root 密码
4. 网络配置
Cubieboard 支持有线(以太网)和无线(需外接 USB Wi-Fi 模块)网络:
- 有线网络:插入网线后自动获取 IP(DHCP);
- 无线网络:编辑
/etc/network/interfaces或使用nmcli命令。
示例:通过 nmcli 连接 Wi-Fi:
nmcli device wifi list # 列出可用网络nmcli device wifi connect "SSID" password "密码" # 连接指定网络
五、开发环境搭建
1. 更新系统
apt update && apt upgrade -y # Debian/Ubuntu
2. 安装开发工具
- 编译工具链:
apt install build-essential gcc-arm-linux-gnueabihf # ARM 交叉编译
- Python 环境:
apt install python3 python3-pip # 安装 Python3pip install numpy pandas # 安装常用库
3. GPIO 控制示例
Cubieboard 的 GPIO 引脚可通过 /sys/class/gpio 接口或 Python 库(如 RPi.GPIO 的兼容库)控制。
示例:通过 Bash 控制 GPIO 引脚(需 root 权限):
echo 20 > /sys/class/gpio/export # 导出 GPIO20echo out > /sys/class/gpio/gpio20/direction # 设置为输出echo 1 > /sys/class/gpio/gpio20/value # 输出高电平
Python 示例(使用 sunxi-gpio 库):
import sunxi_gpio as gpiogpio.init()gpio.setcfg(20, gpio.OUTPUT) # 设置 GPIO20 为输出gpio.output(20, 1) # 输出高电平
六、常见问题与排查
1. 启动卡在 logo 界面
- 原因:SD 卡损坏、镜像不兼容、电源不足;
- 解决方案:
- 重新烧录镜像;
- 更换电源适配器(确保 5V/2A);
- 检查 SD 卡是否为高速卡。
2. 串口无输出
- 原因:波特率错误、接线错误;
- 解决方案:
- 确认串口工具波特率为 115200;
- 检查 TX/RX 线序是否正确。
3. 网络无法连接
- 原因:驱动未加载、DHCP 失败;
- 解决方案:
- 加载 Wi-Fi 驱动(如
modprobe 8192cu); - 手动配置静态 IP:
echo "auto eth0iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1" > /etc/network/interfaces.d/eth0
- 加载 Wi-Fi 驱动(如
七、总结与后续建议
本指南覆盖了 Cubieboard 从硬件准备到基础开发的完整流程。下一步可探索:
- 高级功能:如 GPU 加速、摄像头驱动开发;
- 项目实践:搭建家庭媒体服务器、物联网网关;
- 社区资源:参与 Cubieboard 论坛(forum.armbian.com)获取最新支持。
通过系统化的配置和调试,Cubieboard 可成为强大的嵌入式开发平台,满足从原型设计到产品落地的需求。