180 lines
4.4 KiB
Markdown
180 lines
4.4 KiB
Markdown
# 易百纳 EB-RV1126-DC-201 Linux 说明
|
||
|
||
## SDK 目录结构
|
||
|
||
- buildroot:buildroot 文件系统。
|
||
- device:设备编译指导。
|
||
- rockchip:瑞芯微的编译脚本。
|
||
- common:主编译脚本。
|
||
- 芯片型号目录:各型号芯片的子编译脚本
|
||
- docs:瑞芯微文档资料
|
||
- Common:各通用子系统的文档,如 Audio、CAN 等。
|
||
- Linux:Linux 子系统帮助文档,如 Camera、Graphics、Multimedia 等。
|
||
- Others:其他说明文档。
|
||
- RV1126_RV1109:RV1126/RV1109 专有说明文档。
|
||
- external:外部库,主要是瑞芯微自定义或移植的库,如 rockit、mpp 等。
|
||
- kernel:内核源码目录。
|
||
- prebuilts:预构建好的工具,主要是 gcc 等。
|
||
- rkbin:瑞芯微预编译好的工具,如 mkkrnlimg 等。
|
||
- rockdev:最终编译生成的镜像文件目录。
|
||
- tools:工具软件,如烧录工具等
|
||
|
||
## 编译时使能的宏
|
||
|
||
```bash
|
||
TARGET_ARCH=arm
|
||
TARGET_PLATFORM=rv1126_rv1109
|
||
TARGET_UBOOT_CONFIG=rv1126
|
||
TARGET_SPL_CONFIG=
|
||
TARGET_KERNEL_CONFIG=rv1126_defconfig
|
||
TARGET_KERNEL_DTS=rv1126-aybering
|
||
TARGET_TOOLCHAIN_CONFIG=
|
||
TARGET_BUILDROOT_CONFIG=rockchip_rv1126_rv1109
|
||
TARGET_RECOVERY_CONFIG=rockchip_rv1126_rv1109_recovery
|
||
TARGET_PCBA_CONFIG=
|
||
TARGET_RAMBOOT_CONFIG=
|
||
# 多任务处理
|
||
RK_JOBS=12
|
||
```
|
||
|
||
## 构建方法
|
||
|
||
```bash
|
||
# 选择 90:rockchip_rv1126_rv1109.
|
||
source envsetup.sh
|
||
# 选择 6:BoardConfig-aybering.mk.
|
||
./build.sh lunch
|
||
# 全部构建,输出结果在 rockdev 文件夹下.
|
||
./build.sh
|
||
# 全部清除.
|
||
./build.sh cleanall
|
||
```
|
||
|
||
## 刷机方法
|
||
|
||
连接 Micro USB 到计算机(不要通过 USB-Hub,直接使用 USB3.0 口)。
|
||
|
||
按下 recover 和 reset 键,进入 Loader 模式,打开 RKDevTool->高级功能->进入 Maskrom,进入 Maskrom 模式。
|
||
|
||
点击下载镜像,添加 Parameter 字段,按 rockdev/parameter.txt 中的参数设置 uboot、rootfs 等。设置 Loader 为 rockdev/MiniLoaderAll.bin。
|
||
|
||
从 Parameter 字段添加 rockdev/parameter.txt 文件,将自动修改各字段地址。
|
||
|
||
点击执行进行烧录。
|
||
|
||
烧录前需要关闭 VirtualBox 等影响 USB 的程序。
|
||
|
||
## 修改 kernel
|
||
|
||
```bash
|
||
cd kernel
|
||
# 保存旧的配置.
|
||
make ARCH=arm savedefconfig
|
||
cp defconfig arch/arm/configs/rv1126_defconfig
|
||
# 清除编译结果和配置.
|
||
make distclean
|
||
# 重新配置内核.
|
||
make ARCH=arm rv1126_defconfig
|
||
make ARCH=arm menuconfig
|
||
make ARCH=arm savedefconfig
|
||
cp defconfig arch/arm/configs/rv1126_defconfig
|
||
# 重新编译内核.
|
||
cd ..
|
||
./build.sh kernel
|
||
```
|
||
|
||
## 修改 buildroot
|
||
|
||
```bash
|
||
# 清除编译结果
|
||
rm -rf buildroot/output
|
||
# 配置 buildroot.
|
||
cd buildroot
|
||
make rockchip_rv1126_rv1109_defconfig
|
||
# 自动保存成 rockchip_rv1126_rv1109_defconfig.
|
||
make menuconfig
|
||
make savedefconfig
|
||
# 重新编译 buildroot.
|
||
cd ..
|
||
./build.sh cleanall
|
||
./build.sh buildroot
|
||
```
|
||
|
||
### 增加 Qt
|
||
|
||
Pixe format of linuxfb drm screen 选 rgb565。
|
||
|
||
如果出现:
|
||
|
||
```bash
|
||
mv -f libXXXXXX.so ...
|
||
...
|
||
make[3]: *** [sub-plugins-make_first] Error 2
|
||
...
|
||
make[2]: *** [sub-src-make_first] Error 2
|
||
```
|
||
|
||
则是因为缺少对应的依赖库,在 buildroot 中增加相应依赖库即可。
|
||
|
||
### libglib2
|
||
|
||
libglib2.mk 修改 LIBGLIB2_SITE 为:
|
||
|
||
```mk
|
||
LIBGLIB2_SITE = https://download.gnome.org/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
|
||
```
|
||
|
||
### glibmm
|
||
|
||
修改 threads.h 中的 gobj() 方法。
|
||
|
||
```cpp
|
||
// GPrivate* gobj() { return gobject_; }
|
||
GPrivate* gobj() { return &gobject_; }
|
||
```
|
||
|
||
### 裁剪
|
||
|
||
- nginx
|
||
- host-ntfs1
|
||
|
||
### 软件包下载过慢或无法下载的处理
|
||
|
||
1. 将文件直接下载到 buildroot/dl 文件夹中;
|
||
2. 手动下载并添加到自建 Http 文件服务器中:
|
||
1. 用 HttpFileServer 搭建 Http 文件服务器,将需要的软件包手动下载到 Http 文件服务器路径下。
|
||
2. 修改 buildroot/pack 路径下的 *.mk 文件,将其中的下载地址修改为 HttpFileServer 的地址。
|
||
3. 使用代理进行科学上网。
|
||
|
||
## 挂载为可读写
|
||
|
||
```bash
|
||
mount -o remount,rw /
|
||
```
|
||
|
||
## 修改 /tmp 权限
|
||
|
||
```bash
|
||
chmod 777 /tmp
|
||
```
|
||
|
||
## 关闭 CA 认证
|
||
|
||
```bash
|
||
touch /etc/apt/apt.conf.d/99verify-peer.conf && echo >>/etc/apt/apt.conf.d/99verify-peer.conf "Acquire { https::Verify-Peer false }"
|
||
```
|
||
|
||
## 替换清华源
|
||
|
||
```bash
|
||
sudo sed -i "s@http://ports.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
|
||
```
|
||
|
||
## 安装 Qt
|
||
|
||
```bash
|
||
apt install qt5-qmake libqt5serialport5-dev
|
||
|
||
apt install libqt5core5a libqt5serialport5 libqt5quick5 libqt5quickcontrols2-5 libqt5qml5 libqt5network5 libqt5media5 libqt5gui5
|
||
```
|