Linux驱动22 --- RV1126 环境搭建&&设备树修改

目录

一、编译前的准备

[1.1 清理缓存​编辑](#1.1 清理缓存编辑)

[1.2 扩容教程](#1.2 扩容教程)

[1.3 解决网络图标消失](#1.3 解决网络图标消失)

[二、SDK 编译](#二、SDK 编译)

[2.1 参考资料](#2.1 参考资料)

[2.2 将 SDK 复制到虚拟机](#2.2 将 SDK 复制到虚拟机)

[2.3 SDK 的编译](#2.3 SDK 的编译)

编译过程需要保证网络连接

三、硬件设备

[3.1 板子介绍](#3.1 板子介绍)

四、固件的烧录

五、板子的使用

六、共享文件夹的建立

[6.1 为什么要建立共享文件夹](#6.1 为什么要建立共享文件夹)

[6.2 Ubuntu 的操作](#6.2 Ubuntu 的操作)

[6.3 VMware 配置](#6.3 VMware 配置)

[6.4 板子的更改](#6.4 板子的更改)

[七、GPIO 查找方式](#七、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

设备树编译报错

相关推荐
Cyrus_柯19 分钟前
单片机(STM32-ADC模数转换器)
stm32·单片机·嵌入式硬件·adc
南山十一少31 分钟前
STM32CubeMX + HAL库:基于DHT11温湿度监测实现
stm32·单片机·嵌入式硬件
xx.ii1 小时前
4.Linux 应用程序的安装和管理
linux·服务器·网络
wxy8888881 小时前
CIU32L051 DMA+Lwrb环形队列实现串口无阻塞性数据的收发 + 数据百分百不丢失的实现
驱动开发
奋斗的蛋黄2 小时前
解析分区、挂载与块设备:Linux 存储管理核心命令详解
linux·服务器·网络
Hallin_Me2 小时前
单片机的第一个程序—LED灯的控制
单片机·嵌入式硬件
墨迹的陌离2 小时前
【Linux】重生之从零开始学习运维之Mysql
linux·运维·服务器·数据库·学习·mysql
Ray Song2 小时前
Linux DNS解析1--终端通过网关或者路由器进行域名解析的原理
linux·运维·服务器·dns解析
Zero .2 小时前
macbook安装homebrew
linux·运维·服务器
NEXU52 小时前
Linux:线程同步与线程互斥
linux