1. 久久派开发板与龙芯K架构概述
龙芯K系列处理器作为国产自主CPU的代表之一,其采用的MIPS64指令集架构在嵌入式领域具有独特优势。久久派开发板是基于龙芯1C300B处理器(K架构)设计的开源硬件平台,主频300MHz,配备64MB DDR2内存,支持多种外设接口,是学习国产处理器和嵌入式开发的理想选择。
与常见的ARM架构开发板相比,龙芯K架构开发环境搭建有几个显著差异点:
- 工具链采用mips64el-linux-gnu前缀而非arm-linux-gnueabi
- 内核配置需要特别关注MIPS架构相关选项
- 固件烧写工具和流程与ARM平台不同
我去年在参与某工业控制器项目时首次接触这个平台,当时发现市面上系统的开发指南非常稀缺,很多问题需要反复试验才能解决。本文将基于实际项目经验,详细介绍从零开始的环境搭建到内核升级的完整过程。
2. 基础开发环境搭建
2.1 交叉编译工具链配置
龙芯官方提供了两种获取工具链的方式:
- 预编译工具链(推荐新手)
- 从源码构建(适合需要定制的情况)
对于大多数开发者,建议直接下载官方预编译工具链:
bash复制wget http://ftp.loongnix.org/toolchain/gcc/release/mips64el-loongson-gcc7.3-linux-gnu.tar.gz
tar -xvf mips64el-loongson-gcc7.3-linux-gnu.tar.gz -C /opt
环境变量配置示例:
bash复制echo 'export PATH=/opt/mips64el-loongson-linux-gnu/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
验证安装:
bash复制mips64el-linux-gnu-gcc --version
注意:官方工具链有时会更新,如果遇到兼容性问题,可以尝试指定
-march=mips64r2编译参数。
2.2 串口调试工具配置
久久派默认通过CH340 USB转串口芯片与主机通信,在Linux下需要安装驱动:
bash复制sudo apt install usb-serial-ch340
推荐使用minicom作为终端工具,配置方法:
bash复制sudo apt install minicom
sudo minicom -s
在配置界面选择:
- Serial port setup → /dev/ttyUSB0
- 波特率设置为115200
- 关闭硬件流控
3. 系统镜像烧写与启动
3.1 获取官方基础镜像
久久派社区提供了预编译的Debian系统镜像:
bash复制wget http://download.9pi.org/jiujiupai/debian-9pi-base.img.gz
gunzip debian-9pi-base.img.gz
3.2 使用dd命令烧写镜像
插入MicroSD卡后(假设设备为/dev/sdb):
bash复制sudo dd if=debian-9pi-base.img of=/dev/sdb bs=4M status=progress
sync
重要提示:务必确认设备路径正确,错误的路径可能导致数据丢失。可以通过
lsblk命令确认SD卡设备节点。
3.3 首次启动配置
系统启动后,通过串口登录(默认账号/密码:pi/jiujiupai),建议立即:
- 扩展文件系统:
sudo resize2fs /dev/mmcblk0p2 - 修改root密码:
passwd - 更新软件源:
sudo apt update && sudo apt upgrade
4. 内核源码获取与编译
4.1 获取龙芯定制内核源码
久久派使用的内核基于Linux 4.19长期支持版本:
bash复制git clone https://github.com/loongson-community/linux-4.19-jiujiupai.git
cd linux-4.19-jiujiupai
4.2 内核配置要点
使用默认配置并进入菜单配置:
bash复制make ARCH=mips CROSS_COMPILE=mips64el-linux-gnu- jiujiupai_defconfig
make ARCH=mips CROSS_COMPILE=mips64el-linux-gnu- menuconfig
需要特别关注的配置项:
- CPU类型选择:Machine selection → Loongson 1 family
- 启用硬件浮点支持:Kernel Features → Use FPU emulation
- 文件系统支持:确保EXT4、SQUASHFS等常用文件系统已启用
4.3 编译与安装内核
编译命令(根据CPU核心数调整-j参数):
bash复制make ARCH=mips CROSS_COMPILE=mips64el-linux-gnu- -j4
编译产物位于:
- 内核镜像:arch/mips/boot/vmlinuz
- 设备树:arch/mips/boot/dts/loongson/jiujiupai.dtb
5. 内核升级与验证
5.1 制作升级包
创建升级目录结构:
bash复制mkdir -p upgrade/boot
cp arch/mips/boot/vmlinuz upgrade/boot/vmlinuz-4.19.190
cp arch/mips/boot/dts/loongson/jiujiupai.dtb upgrade/boot/
制作升级脚本(upgrade/install.sh):
bash复制#!/bin/sh
cp /boot/vmlinuz-4.19.190 /boot/vmlinuz-4.19.190.bak
cp ./boot/vmlinuz-4.19.190 /boot/
cp ./boot/jiujiupai.dtb /boot/
sync
5.2 升级过程
将升级包拷贝到开发板:
bash复制scp -r upgrade pi@192.168.1.100:~/
在开发板上执行升级:
bash复制cd ~/upgrade
sudo chmod +x install.sh
sudo ./install.sh
5.3 验证新内核
重启后检查内核版本:
bash复制uname -a
cat /proc/version
常见问题排查:
- 启动卡住:检查串口输出,确认设备树是否正确加载
- 网络不可用:检查内核配置中的网络驱动是否启用
- 文件系统错误:确认内核配置支持当前文件系统类型
6. 开发环境优化技巧
6.1 加速编译的方法
- 使用ccache缓存:
bash复制sudo apt install ccache
export CC="ccache mips64el-linux-gnu-gcc"
- 分布式编译(在多台机器上):
bash复制make ARCH=mips CROSS_COMPILE=mips64el-linux-gnu- -j8 -l8
6.2 调试工具配置
GDB调试环境搭建:
bash复制sudo apt install gdb-multiarch
调试内核模块示例:
bash复制gdb-multiarch vmlinux
target remote /dev/ttyUSB0
6.3 性能优化建议
- 调整CPU频率:
bash复制echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
- 内存优化:
- 减少不必要的内核模块
- 调整swappiness值:
sudo sysctl vm.swappiness=10
7. 实际项目经验分享
在最近的一个物联网网关项目中,我们遇到了GPIO中断响应延迟的问题。通过内核性能分析工具发现是默认的CONFIG_HZ设置过低(100Hz),将其调整为250Hz后显著改善了响应速度:
bash复制# 在内核配置中
Processor type and features → Timer frequency → 250Hz
另一个常见问题是USB设备识别不稳定,解决方法是在设备树中添加电源管理配置:
dts复制&usb_phy {
vcc-supply = <®_usb_vbus>;
};
对于需要长时间运行的应用,建议:
- 启用内核看门狗
- 配置定期内存自检
- 使用RAM文件系统存储临时数据
