1. 开箱与硬件初探
IDO-SBC2D06-V1B-12W开发板采用全黑色PCB设计,尺寸为85mm×56mm,比信用卡略小。板载瑞芯微RK3566四核Cortex-A55处理器,主频1.8GHz,搭配2GB LPDDR4内存和16GB eMMC存储。开发板左侧排列着两个RJ45百兆以太网接口(eth0和eth1),右侧是USB 3.0和USB 2.0各一个,Type-C电源接口位于上边缘。
首次上电需要准备:
- 5V/3A电源适配器(建议使用带开关的适配器)
- 支持HDMI输入的显示器
- USB转串口调试工具(CP2102或CH340芯片)
- 8GB以上容量的microSD卡(用于系统烧录)
注意:开发板默认不带操作系统,需要自行烧录Linux镜像。Type-C接口仅用于供电,不支持数据传输。
2. 开发环境搭建详解
2.1 主机端工具准备
在Ubuntu 20.04 LTS主机上安装必要工具链:
sudo apt update sudo apt install -y gcc-arm-linux-gnueabihf build-essential \ bison flex libssl-dev u-boot-tools python3-dev交叉编译器推荐使用官方提供的gcc-linaro-7.5.0:
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz tar xvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz export PATH=$PATH:$(pwd)/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin2.2 系统镜像烧录
从触觉智能官网下载最新Debian镜像后,使用Etcher工具烧录到microSD卡:
- 插入SD卡到读卡器
- 启动Etcher选择镜像文件
- 选择正确的SD卡设备(务必确认设备名)
- 点击Flash开始烧录(约需5分钟)
烧录完成后,将SD卡插入开发板卡槽,上电启动。首次启动会自动扩展文件系统,这个过程大约需要2分钟。
3. 基础系统配置
3.1 串口终端连接
使用USB转TTL模块连接开发板调试口:
- 黑色:GND
- 白色:RX(接模块TX)
- 绿色:TX(接模块RX)
波特率设置为1500000(这是瑞芯微平台的特殊设置),使用minicom连接:
sudo minicom -D /dev/ttyUSB0 -b 1500000登录凭证:
- 用户名:root
- 密码:无(直接回车)
3.2 网络配置
开发板预装NetworkManager,配置静态IP方法:
nmcli con add con-name eth0-static ifname eth0 type ethernet \ ip4 192.168.1.100/24 gw4 192.168.1.1 nmcli con mod eth0-static ipv4.dns "8.8.8.8 114.114.114.114" nmcli con up eth0-static测试网络连通性:
ping -c 4 www.baidu.com4. 外设功能验证
4.1 双网卡性能测试
使用iperf3测试网络吞吐量(需在PC端先启动服务端):
# PC端(假设IP为192.168.1.50) iperf3 -s # 开发板端 iperf3 -c 192.168.1.50 -t 60 -P 4实测结果:
| 测试类型 | 带宽(Mbps) | CPU占用率 |
|---|---|---|
| TCP单线程 | 94.2 | 15% |
| TCP 4线程 | 95.7 | 48% |
| UDP 100M | 98.3 | 32% |
4.2 GPIO控制示例
通过sysfs接口控制GPIO:
# 导出GPIO30(对应板载LED) echo 30 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio30/direction # 闪烁LED for i in {1..5}; do echo 1 > /sys/class/gpio/gpio30/value sleep 0.5 echo 0 > /sys/class/gpio/gpio30/value sleep 0.5 done5. 开发实战技巧
5.1 内核模块编译
编译自定义内核模块的完整流程:
- 获取官方内核头文件:
apt install linux-headers-$(uname -r)- 编写简单模块代码hello.c:
#include <linux/module.h> #include <linux/init.h> static int __init hello_init(void) { printk(KERN_INFO "Hello IDO-SBC2D06!\n"); return 0; } static void __exit hello_exit(void) { printk(KERN_INFO "Goodbye!\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL");- 编写Makefile:
obj-m := hello.o KDIR := /lib/modules/$(shell uname -r)/build all: make -C $(KDIR) M=$(PWD) modules clean: make -C $(KDIR) M=$(PWD) clean- 编译并测试:
make insmod hello.ko dmesg | tail -n 1 # 查看输出 rmmod hello5.2 常见问题排查
USB设备无法识别:
- 检查dmesg输出是否有错误
- 确认内核配置已启用相关驱动:
zgrep USB /proc/config.gz
SD卡读写速度慢:
- 调整I/O调度器为deadline:
echo deadline > /sys/block/mmcblk0/queue/scheduler - 检查是否启用DMA模式:
dmesg | grep -i dma
- 调整I/O调度器为deadline:
双网卡同时工作异常:
- 检查MAC地址是否冲突:
ip link show - 确认交换机端口配置为access模式
- 检查MAC地址是否冲突:
6. 进阶开发指南
6.1 构建自定义根文件系统
使用Debootstrap构建最小系统:
sudo debootstrap --arch=arm64 bullseye ./rootfs http://mirrors.ustc.edu.cn/debian/ # 进入chroot环境配置 sudo chroot ./rootfs /bin/bash apt update apt install ssh net-tools # 退出后打包 tar -cjpf rootfs.tar.bz2 -C ./rootfs .6.2 功耗优化技巧
通过以下命令降低功耗:
# 关闭不用的外设电源 echo 0 > /sys/class/gpio/gpio30/value # 设置CPU频率策略 echo powersave > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor # 禁用HDMI输出 echo 0 > /sys/class/graphics/fb0/blank实测功耗对比:
| 工作模式 | 电流(mA) | 温度(℃) |
|---|---|---|
| 全性能模式 | 680 | 52 |
| 平衡模式 | 450 | 45 |
| 低功耗模式 | 280 | 38 |
我在实际项目中发现,通过合理配置GPU渲染参数,可以进一步降低约15%的功耗。特别是在连续运行场景下,建议将DRAM频率设置为最低可用值,这能使待机功耗降至200mA以下。