Linux驱动22 --- RV1126 环境搭建设备树修改
目录
一、编译前的准备
1.1 清理缓存编辑
1.2 扩容教程
1.3 解决网络图标消失
二、SDK 编译
2.1 参考资料
2.2 将 SDK 复制到虚拟机
2.3 SDK 的编译
编译过程需要保证网络连接
三、硬件设备
3.1 板子介绍
四、固件的烧录
五、板子的使用
六、共享文件夹的建立
6.1 为什么要建立共享文件夹
6.2 Ubuntu 的操作
6.3 VMware 配置
6.4 板子的更改
七、GPIO 查找方式
八、设备树文件
定义设备节点
单独编译内核
设备树编译报错
一、编译前的准备
1.1 清理缓存

1.2 扩容教程
https://blog.csdn.net/Wifi__Baby/article/details/139797510?spm=1001.2014.3001.5501
1.3 解决网络图标消失
二、SDK 编译
2.1 参考资料
是参考板子的官方给的资料
当前资料分为两种:
第一种:去网上找PDF
第二种:给一个网站,可以在网站上获取板子的所有信息
从去年开始大部分板子的厂家采用的都是第二种方式
第二种方式的优势:厂家的更新信息,可以及时获取
2.2 将 SDK 复制到虚拟机
解压错误
1、归档错误
将压缩包删除
清理缓存:sudo rm ~/.cache/vmware -r
然后重新从 windows 拷贝一个进来
如果复制了一个还是归档错误,说明 windows 下的压缩包就有问题
找一个没有问题的同学的压缩包,放到你的虚拟机里
2、空间剩余???.MB
说明空间不足,根据教程扩容
2.3 SDK 的编译
编译过程需要保证网络连接
编译完成的标志
按下 Q 键退出
三、硬件设备
3.1 板子介绍
芯片:RV1126 --- 瑞芯微
板子:易百纳
RAM:板载 2*DDR3,共 1GB
时钟主频:1.5GHz
IRAM:64KB
IROM:20KB
ROM:
ARMCortex-A7 的四核 32 位
在 RK3588 使用的是 A76+A55
内核版本:Linux4.19
使用上,和 Linux5.10 完全相同
NPU --- 算力达到 2.0TOPs
支持硬件加速 --- 我们主要使用的是音视频的编解码
选择这个芯片的原因
1、支持音视频编解码的硬件加速
2、支持瑞芯微音视频开发闭源库 --- RkMedia
大大减轻开发难度
官方默认支持两种摄像头
GC2053、IMX415 --- 分辨率更高
目前使用的摄像头
GC2053 --- 200 像素
ISP:图像信号处理
ISP 一般用来处理 Image Sensor(图像传感器)的输出数据,如做 AEC(自动曝光控制)、AGC(自动增益控制)、AWB(自动白平衡)、色彩校正、Lens Shading、Gamma 校正、祛除坏点、Auto Black Level、Auto White Level 等等功能的处理。
OTG:OTG 是 On-The-Go 的缩写,是近年发展起来的技术。2001 年 12 月 18 日由 USB 标准化组织公布,主要应用于不同的设备或移动设备间的联接,进行数据交换。
OTG目前在这个板子主要用于升级固件 --- 烧录固件的接口
在 RK3588S 上烧录用 USB 接口
在 RV1126 上烧录用的是早期安卓口
四、固件的烧录
挂起虚拟机
烧录软件在整体烧录的时候没有区别
但是在部分烧录的时候有区别
如果点击进入 MASKROM 之后,一直无法发现设备
断电重新上电,就会发现一个 ADB 设备,在执行一次上面的指令
如果插板子上电,右下角出现无法识别 USB 设备
直接把板子断电(所有的线都拔了),过大概 5 分钟~1 个小时 --- 再次使用
五、板子的使用
终端打开之后,按下回车
六、共享文件夹的建立
6.1 为什么要建立共享文件夹
之前的 Ubuntu 和板子之间的沟通,通过 adb 服务
但是目前的板子虽然有 ADB 模式,但是无法进行 ADB 调试
使用另外的开发方式
NFS --- 网络文件系统
和板子建立共享文件夹,完成 ubuntu 和板子的通信
6.2 Ubuntu 的操作
确保网络连接
ping www.baidu.com
安装服务
sudo apt-get install nfs-common nfs-kernel-server
/home/lwl/share *(rw,sync,no_root_squash)
加粗部分换成自己的共享文件夹路径
验证共享文件夹有没有问题
sudo /etc/init.d/nfs-kernel-server restart
如果这个指令报错,说明你的共享文件, 夹路径不存在
从此刻配置网络开始,Ubuntu 就变成了局域网
点击 board,连接 board
如果 ubuntu 再次开机之后,网络连接只剩下了 1 个 --- board
需要新建一个网络连接,叫一个不一样的名字
完成上图步骤,然后点击添加
最终网络图标
6.3 VMware 配置
然后点击确定
如果电脑没有网口,此时此刻拿出你的扩展坞,插电脑上,连接到 Windows
记住当前扩展坞接入的是哪个 USB 接口,后续一直接这个接口
获取自己电脑的网卡
6.4 板子的更改
mount -t nfs 192.168.66.66:/home/lwl/share /MyProject -o nolock
红色需要改成自己的 ubuntu 设置的 IP
绿色需要改成自己的 ubuntu 共享文件夹路径
蓝色需要改成自己的板子共享文件夹路径
执行指令,没有提示就是成功
ifconfig eth0 192.168.66.88 --- 每次重启都需要重新执行
mount -t nfs 192.168.66.66:/home/lwl/share/MyProject -o nolock --- 每次重启都需要重新执行
七、GPIO 查找方式
板子上共有 3 个可以操作的硬件设备
LED 灯,按键,蜂鸣器
获取 ALARM_IN1
获得 AA6
八、设备树文件
定义设备节点
板子上的外设
按键、LED 灯(在按键旁边)、蜂鸣器
以蜂鸣器为例
第一步:蜂鸣器在底板
BEEP 和 ALARM_OUT1 相连
ALARM_OUT1 是 GPIO 的一个别称
第二步:看芯片手册
从芯片手册获取 GPIO 的名字
开发过程和 RK3588 相同
第三步:GPIO 在核心板
最终需要的引脚就是 GPIO0_C3
将设备树节点信息放在.dts 文件中
单独编译内核
单独烧录内核使用的.txt 文件
单独烧录内核,必须使用烧录软件 V2.71
第一步:回到 SDK 根路径
第二步:
source envsetup.sh --- 选择 99 rockchip_rv1126_rv1109_spi_nand
./build.sh lunch --- 选择 3 BoardConfig-38x38-spinand.mk
./build.sh kernel --- 单独编译内核
第三步:获取新版的内核&设备树的固件
在 kernel 文件夹下有一个 zboot.img --- 放到 windows 下
第四步:固件的烧录
1、挂起虚拟机
2、打开烧录工具
3、把板子端从串口换到 OTG
提示下载完成之后,将板子 OTG 换到串口
进入超级终端
ls /proc/device-tree/
添加交叉编译工具路径
sudo gedit /etc/profile
打开文件后在末尾添加一行
export PATH=$PATH:/home/he/RV1126/RV1126_RV1109_LINUX_SDK_V2.2.5.1_20231011/buildroot/output/rockchip_rv1126_rv1109_spi_nand/host/bin
让环境变量临时起作用
source /etc/profile
验证
在任意路径下输入arm-linux-gnueabihf-gcc -v,出现版本信息说明成功
然后重启电脑 reboot
交叉编译工具名字 --- arm-linux-gnueabihf-gcc