一、环境
1.虚拟机
官方推荐Ubuntu22,我使用的Ubuntu1804目前也正常
2.软件环境安装
# 需要安装工具
sudo apt-get install gperf cmake git device-tree-compiler flex bison build-essential libssl-dev libelf-dev python3 python curl -y
3.拉取工程
我是基于幸狐科技的开发板测试的,所以拉取的幸狐官方库
拉取使用gitee,国内好用一点
sudo git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
二、配置
1.选择对应的代码存储介质和硬件型号
./build.sh lunch
2.取消摄像头保留内存,以及修改编译拉取Gitee
vi project/cfg/BoardConfig_IPC/BoardConfig-***.mk
export RK_BOOTARGS_CMA_SIZE=“66M” # 可以改为1M
......
LF_SUBMODULES_BY=gitee # 文件末尾新增
三、编译和生成下载文件
1.编译
./build.sh
2.生成镜像
./build.sh firmware
3.其他命令说明
# 1.选择开发板
./build.sh lunch
# 2.编译
./build.sh
# 3.生成镜像,目录:output/image
./build.sh firmware
# 4.kernel的menuconfig
./build.sh kernelconfig
# 5.buildroot的menuconfig
./build.sh buildrootconfig
四、烧录
1.安装驱动


2.进入下载模式:按住boot,短按reset,放开boot
3.打开烧录工具软件:SocToolKit
(1)选择芯片

(2)软件上能看见USB设备,如果看不见,重复步骤2.
(4)下载
使用out文件夹中的:update.img

4.确认升级成功
uname -v
查看内核编译时间
五、编译可执行文件
1.环境配置(基于buildroot)
(1)创建一个.sh
#!/bin/bash
# 设置工具链路径
TOOLCHAIN_PATH="/你的存放路径/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin"
# 检查路径是否存在
if [ ! -d "$TOOLCHAIN_PATH" ]; then
echo "错误:路径不存在 '$TOOLCHAIN_PATH'"
echo "请修改脚本中的 TOOLCHAIN_PATH 为实际路径"
exit 1
fi
# 添加到PATH并导出
export PATH="$TOOLCHAIN_PATH:$PATH"
echo "环境变量已设置:PATH=$PATH"
(2)修改
vim ~/.bashrc
添加到末尾:
alias lfox='source /你的存放路径/你的脚本名.sh:$PATH'
(3)使能环境:
source ~/.bashrc
(4)以后只需要使用命令,自动设置环境:
lfox
2.编写代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("hello world\n");
return 0;
}
4.编译
arm-rockchip830-linux-uclibcgnueabihf-gcc hello.c -o hello
5.拷贝到开发板运行
六、APP开发(4G模块和USB摄像头)
1.4G模块(USB+EC20)
迅为干货 | Linux系统移远EC20 4G模块移植方法 - topeet - 博客园
(99+ 封私信 / 94 条消息) 正点原子Linux第七十一章Linux 4G通信实验 - 知乎
(1)配置系统
a.设备树,将USB设置为host
b.buildroot设置uqmi工具包
Target packages
-> Networking applications
[*] uqmi
c.kernel启用PPP拨号上网

d.kernel启用CDC调制器
Device Drivers
-> USB support
-> USB Modem (CDC ACM) support [*]
-> USB Network Adapters
[*] CDC Wireless Mobile Network Device Support (QMI_WWAN)
(2)插入USB-4G网卡,等待显示:

(3)测试
echo -e "AT+ICCID\r" > /dev/ttyUSB2 && cat /dev/ttyUSB2

查看模块能力
uqmi -d /dev/cdc-wdm0 --get-capabilities

(4)PPP拨号
Raspberrypi —— 实现 EC20 4G模块PPP拨号上网_4g模块 pppd拨号流程-优快云博客
基于官方脚本,我测试了一个EC20的,目前使用正常,不复杂,我这里就略过了
2.摄像头UVC
(1)设备树和内核
主要是USB主机设置
(2)软件包V4L
buildroot中设置,默认已经启用
(3)查看设备列表
v4l2-ctl --list-devices
(4)查看设备信息
# 设备参数
v4l2-ctl --device /dev/video0 --info
# 支持的格式
v4l2-ctl --device /dev/video0 --list-formats-ext
(5)拍照(RAW格式)
# 使用 1280x1024 分辨率(需注意低帧率 7fps)
v4l2-ctl --device /dev/video0 \
--set-fmt-video=width=1280,height=1024,pixelformat=YUYV \
--stream-mmap \
--stream-count=1 \
--stream-to=frame.raw
# 转换(文件大小应为 1280x1024x2=2,621,440 字节)
ffmpeg -f rawvideo -pix_fmt yuyv422 -s 1280x1024 -i frame.raw photo.jpg -y
(6)使用MJPG
如果(4)查看设备信息中支持的话
v4l2-ctl --device /dev/video0 \
--set-fmt-video=width=1280,height=720,pixelformat=MJPG \
--stream-mmap --stream-count=1 --stream-to=photo.jpg

4388

被折叠的 条评论
为什么被折叠?



