差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
nk-r39s2-a1 [2023/03/05 22:57] wjj |
nk-r39s2-a1 [2023/06/04 19:18] (当前版本) hc |
||
---|---|---|---|
行 17: | 行 17: | ||
==== 快速上手 ==== | ==== 快速上手 ==== | ||
=== 系统烧录 === | === 系统烧录 === | ||
- | {{page>: | + | |
+ | 1、下载烧录工具: | ||
+ | * 请务必先安装驱动,烧录工具链接含有驱动DriverAssitant压缩包,解压后点击DriverInstall.exe安装驱动 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 2、开始烧录: | ||
+ | * 将数据线一端与主板OTG连接,另一端连接电脑。注意烧录前,需关闭电源,开电源时按住boot_key按键进行烧入。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 打开压缩包中开发工具 >> 升级固件 >> 点击固件并选择好固件 >> 点升级开始烧录 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 烧录过程中的状态,会有进度显示 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 更换系统平台(例如安卓切换到Linux)时,可能出现无法烧录的情况,此时打开开发工具 >> 高级功能 >> 点击进入Maskrom切换烧录模式后烧录系统 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3、完成烧录: | ||
+ | * 烧录过程不需要任何操作,烧录成功后右框会显示设备自动重启,烧录完成。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Fwbackups备份软件安装 === | ||
+ | |||
+ | {{page>: | ||
+ | |||
+ | === 生成rootfs镜像 === | ||
+ | |||
+ | {{page>: | ||
=== Debug串口调试 === | === Debug串口调试 === | ||
1、通过串口进入系统后台,需要利用板子的Debug接口,接口位置和定义如图: | 1、通过串口进入系统后台,需要利用板子的Debug接口,接口位置和定义如图: | ||
行 60: | 行 95: | ||
{{page>: | {{page>: | ||
== LAN == | == LAN == | ||
- | {{page>:template:temp_android_lan}} | + | 1. 将网线连接到主板LAN1接口上 |
+ | |||
+ | {{: | ||
+ | |||
+ | 2. 查看网卡IP地址 | ||
+ | |||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3. 连接上网络后,打开浏览器浏览网页查看是否连接上网络 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 4.设置以太网静态IP地址 | ||
+ | |||
+ | * 点击 Ethernet IP mode 选择 static | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 进行设置 | ||
+ | |||
+ | {{: | ||
== WIFI == | == WIFI == | ||
- | {{page>:template:temp_android_wifi}} | + | 1.打开设置,点击WLAN |
+ | |||
+ | {{:arm:rk3399: | ||
+ | |||
+ | 2.点击开启 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3.浏览可用的WIFI路由,然后点击,输入密码 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 4.连接成功右上角状态栏图标变为这样 | ||
+ | |||
+ | {{: | ||
== 4G/5G == | == 4G/5G == | ||
1.测试4G网络 | 1.测试4G网络 | ||
行 149: | 行 229: | ||
^ 主板丝印 | ^ 主板丝印 | ||
- | | | + | | |
- | | | + | | |
- | | | + | | |
- | | RS485 | + | | RS485 | / |
- | | UART | / | + | | UART |
3. CuTecom 测试串口,以/ | 3. CuTecom 测试串口,以/ | ||
行 165: | 行 245: | ||
{{: | {{: | ||
- | 4. 命令行方式测试串口,同样以UART_RX5\TX5_232回环测试为例 | + | 4. 命令行方式测试串口,同样以J_RS232 RX3\TX3回环测试为例 |
打开终端输入如下指令接收数据: | 打开终端输入如下指令接收数据: | ||
行 178: | 行 258: | ||
== LAN == | == LAN == | ||
- | {{page>:template:temp_linux_lan}} | + | 1. 查看网卡IP地址,系统默认都为动态获取IP地址 |
+ | #ifconfig -a | ||
+ | {{:arm:rk3399: | ||
+ | |||
+ | 2. 设置网卡静态IP地址 | ||
+ | * 方法1 -- 使用图形界面工具设置 | ||
+ | |||
+ | 双击桌面图标Advanced Network Configuration | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 方法2 -- 修改配置文件的方式: | ||
+ | |||
+ | vim / | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 修改完成后输入重启生效。 | ||
+ | |||
== WIFI == | == WIFI == | ||
- | {{page>:template:temp_linux_wifi}} | + | 1. 点击右下角网络图标,浏览可用WIFI路由: |
+ | |||
+ | {{:arm:rk3399: | ||
+ | |||
+ | * 输入WIFI密码,点击connect | ||
+ | {{: | ||
+ | |||
+ | 2. 方法2 -- 命令行连接wifi | ||
+ | |||
+ | nmcli d wifi connect " | ||
== 4G/5G == | == 4G/5G == | ||
- | {{page>:template:temp_linux_4g5g}} | + | 1. 系统已带自动拨号,打开终端,输入命令4g 即可自动拨号: |
+ | |||
+ | root@rk3399: | ||
+ | |||
+ | 2. 拨号完成后,查看IP地址: | ||
+ | |||
+ | {{:arm:rk3399: | ||
+ | |||
+ | 3. 打开浏览器,浏览任意网站。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 4. 5G测试方法与4G类似,输入命令5g即可自动拨号: | ||
+ | |||
+ | root@rk3399: | ||
== Can == | == Can == | ||
{{page>: | {{page>: | ||
行 221: | 行 345: | ||
{{page>: | {{page>: | ||
== Audio == | == Audio == | ||
- | {{page>:template:temp_linux_audio}} | + | * 将喇叭连接板子上的 SPK 端口 |
+ | |||
+ | 1. 方法① -- 使用系统自带SMPayer播放器,以及音频测试文件,可以做简单音频功能测试 | ||
+ | |||
+ | {{:arm:rk3399: | ||
+ | |||
+ | 2. 方法② -- 使用命令方式播放: | ||
+ | |||
+ | aplay / | ||
== Mic == | == Mic == | ||
- | {{page>: | + | * 录音测试 |
+ | |||
+ | arecord -d 5 -f cd -r 44100 -c 2 -t wav test.wav | ||
+ | aplay test.wav | ||
== USB == | == USB == | ||
- | {{page>:template: | + | 1. U盘自动挂载/ |
+ | |||
+ | root@rk3399:~# df -h | ||
+ | 文件系统 | ||
+ | / | ||
+ | devtmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | / | ||
== SDCARD == | == SDCARD == | ||
- | {{page>:template: | + | * SDcard 自动挂载: |
+ | |||
+ | root@rk3399:~# df -h | ||
+ | 文件系统 | ||
+ | / | ||
+ | devtmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | tmpfs | ||
+ | / | ||
+ | |||
+ | 解除挂载: | ||
+ | |||
+ | umount / | ||
+ | |||
+ | 挂载: | ||
+ | |||
+ | mount / | ||
== Bluetooth == | == Bluetooth == | ||
- | {{page>:template:temp_linux_bluetooch}} | + | 1. 打开蓝牙管理器,搜索附近蓝牙设备: |
+ | |||
+ | {{:arm:rk3399: | ||
+ | |||
+ | 2. 选中蓝牙设备,配对然后选择信任: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3. 设置蓝牙连接类型: | ||
+ | |||
+ | {{: | ||
== WatchDog == | == WatchDog == | ||
{{page>: | {{page>: | ||
== Key == | == Key == | ||
- | {{page>:template:temp_linux_key}} | + | 1. 输入命令evtest 查看系统下所有按键、输入设备: |
+ | |||
+ | root@rk3399: | ||
+ | No device specified, trying to scan all of / | ||
+ | Available devices: | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | Select the device event number [0-4]: | ||
+ | |||
+ | 2. 按照上面提示选择测试按键,如RK3399 boot按键为 | ||
+ | |||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 3. 自定义按键功能,配置文件为 | ||
+ | |||
+ | / | ||
+ | 如下为定义按键为reboot功能,亦为系统默认配置,用户可以根据需要自定义。 | ||
+ | |||
+ | KEY_VOLUMEUP | ||
== LCD/ | == LCD/ | ||
- | {{page>:template:temp_linux_lcd}} | + | 1. 系统支持使用APP切换不同的LCD屏,输入dis命令打开APP如下图: |
+ | |||
+ | * 选择对应的eDP/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 2. 背光亮度调节: | ||
+ | |||
+ | * 方法①:点击右下角系统托盘如下图标,打开背光调节APP | ||
+ | |||
+ | {{: | ||
+ | |||
+ | * 方法②:控制驱动应用层接口: | ||
+ | |||
+ | echo 100 > / | ||
+ | (注:写入数值越大亮度越大,max_brightness 为250) | ||
== PowerManager == | == PowerManager == | ||
- | {{page>:template:temp_linux_pm}} | + | 1. 电源管理设置: |
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 休眠后按POWER键唤醒 | ||
+ | 2. 电源管理功能非所有产品支持,需定制系统请联系业务窗口人员。 | ||
== RTC/ | == RTC/ | ||
- | {{page>:template:temp_linux_rtc}} | + | 1.查看当前系统时间: |
+ | |||
+ | [root@rk3399: | ||
+ | Wed Jun 8 15:54:09 CST 2022 | ||
+ | |||
+ | 2. 设置同步硬件时钟: | ||
+ | |||
+ | [root@rk3399:/ | ||
+ | Wed Jun 8 17:01:01 CST 2022 | ||
+ | [root@rk3399:/ | ||
+ | [root@rk3399:/ | ||
+ | Wed Jun 8 17:01:09 2022 0.000000 seconds | ||
+ | |||
+ | 3. 关机断电5秒以上,再开机查看系统时间是否保存: | ||
+ | [root@rk3399:/ | ||
+ | Wed Jun 8 17:02:30 CST 2022 | ||
+ | 注:系统默认为网络时间同步,以上RTC测试需要在断外网情况下测试。 | ||
+ | |||
+ | 4. 时区设置 | ||
+ | |||
+ | * 方法① -- 修改link文件, | ||
+ | |||
+ | ln -sf / | ||
+ | reboot | ||
+ | |||
+ | |||
+ | 设置其他时区只需将上面命令中的Asia/ | ||
+ | |||
+ | * 方法② -- 在图形界面依次打开首选项-> | ||
+ | |||
+ | {{:arm: | ||
+ | |||
+ | 选择完成后关闭窗口,使用date命令查看时区变化: | ||
+ | |||
+ | | ||
== CPU == | == CPU == | ||
- | {{page>: | + | 查看CPU信息: |
+ | |||
+ | cat / | ||
== Memory == | == Memory == | ||
- | {{page>: | + | 查看内存容量大小: |
+ | |||
+ | free -h | ||
+ | | ||
== EMMC == | == EMMC == | ||
- | {{page>: | + | 查看EMMC可用容量大小 |
+ | |||
+ | df -h | ||
==== Linux 编程指南 ==== | ==== Linux 编程指南 ==== | ||
行 341: | 行 604: | ||
exit(-1); | exit(-1); | ||
} | } | ||
- | printf(" | + | printf(" |
if (gpio_get(" | if (gpio_get(" | ||
exit(-1); | exit(-1); | ||
行 351: | 行 614: | ||
交叉编译源码: | 交叉编译源码: | ||
- | aarch64-linux-gnu-gcc -o gpio gpio.c | + | aarch64-linux-gnu-gcc -o a.out gpio.c |
将编译好的gpio程序使用scp拷贝到 r39s2 主板上,执行测试: | 将编译好的gpio程序使用scp拷贝到 r39s2 主板上,执行测试: | ||
行 359: | 行 622: | ||
0:./gpio 1 out 0 | 0:./gpio 1 out 0 | ||
- | 1: ./gpio 1 out 1 | + | 1:./gpio 1 out 1 |
| | ||
行 384: | 行 647: | ||
#include < | #include < | ||
- | #define UART_DEVICE | + | #define UART_DEVICE |
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
行 453: | 行 716: | ||
交叉编译源码: | 交叉编译源码: | ||
- | aarch64-linux-gnu-gcc -o uart uart.c | + | aarch64-linux-gnu-gcc -o a.out uart.c |
将编译好的程序使用 scp 拷贝到 3399 主板上,执行测试: | 将编译好的程序使用 scp 拷贝到 3399 主板上,执行测试: | ||
- | {{: | + | {{: |
行 513: | 行 776: | ||
< | < | ||
- | aarch64-linux-gnu-gcc -o key key.c | + | aarch64-linux-gnu-gcc -o key1 key.c |
</ | </ | ||
将编译好的程序使用 scp 拷贝到 r39s2 主板上,执行测试,按动 key 打印如下: | 将编译好的程序使用 scp 拷贝到 r39s2 主板上,执行测试,按动 key 打印如下: | ||
行 527: | 行 790: | ||
==== Linux 应用支持 ==== | ==== Linux 应用支持 ==== | ||
=== QT交叉编译环境 === | === QT交叉编译环境 === | ||
- | {{page>:template:temp_Linux_qt}} | + | * 主机环境推荐:Debian 10 x64 bit, |
+ | 可以直接导入配置好的虚拟机镜像: | ||
+ | [[ftp:// | ||
+ | |||
+ | 或者使用QT编译环境 Docker image: | ||
+ | [[ftp:// | ||
+ | |||
+ | ### load docker image | ||
+ | sudo docker load < | ||
+ | |||
+ | ### 运行docker image, | ||
+ | sudo docker run --rm --mount type=bind, | ||
+ | |||
+ | ### | ||
+ | | ||
+ | | ||
+ | | ||
+ | * 主机交叉编译环境配置参考步骤: | ||
+ | |||
+ | 1. 安装交叉编译工具链: | ||
+ | apt install -y crossbuild-essential-arm64 | ||
+ | |||
+ | 2. 拷贝平板系统内的/ | ||
+ | |||
+ | 3. 配置以下环境变量 | ||
+ | |||
+ | QTSYSROOT="/ | ||
+ | QTPATH=$QTSYSROOT/ | ||
+ | |||
+ | LD_LIBRARY_PATH=$QTPATH/ | ||
+ | LIBRARY_PATH=$QTPATH/ | ||
+ | C_INCLUDE_PATH=$QTPATH/ | ||
+ | PATH=$QTPATH/ | ||
+ | |||
+ | PKG_CONFIG_PATH=$QTPATH/ | ||
+ | |||
+ | export LD_LIBRARY_PATH | ||
+ | export LIBRARY_PATH | ||
+ | export C_INCLUDE_PATH | ||
+ | export CPLUS_INCLUDE_PATH | ||
+ | |||
+ | export PKG_CONFIG_PATH | ||
+ | export PATH | ||
+ | |||
+ | |||
+ | 4. 编译APP | ||
+ | |||
+ | qmake | ||
+ | make | ||
+ | |||
+ | {{: | ||
=== QT Creator === | === QT Creator === | ||
- | {{page>:template:temp_Linux_qt_creator}} | + | 1. 安装 |
+ | |||
+ | 进入Qt官方下载页面,选择一个版本下载 qt-creator-opensource-linux-x86_64-x.x.x.run,下载完成之后,在终端执行 ./xxxx.run 运行安装,注意文件需要有执行权限。 | ||
+ | |||
+ | 2.配置 | ||
+ | |||
+ | 安装完成后,启动 Qt Creator,打开菜单 Tools -> Option , | ||
+ | |||
+ | *配置 Qt Versions | ||
+ | |||
+ | 点击右侧 add 按钮添加,选择 Qt 环境安装位置中的 qmake 即可 | ||
+ | |||
+ | qmake: | ||
+ | |||
+ | / | ||
+ | |||
+ | {{:arm: | ||
+ | |||
+ | *配置 Compilers | ||
+ | |||
+ | 点击右侧 add 按钮添加 gcc 和 g++ 交叉编译器的位置 | ||
+ | |||
+ | 如果主机安装了 crossbuild-essential-arm64,则编译器就在 /usr/bin/ 下 | ||
+ | |||
+ | 如果使用了第三方的交叉编译器,找到安装位置并添加即可 | ||
+ | |||
+ | 如果目标平台是 Buildroot ,则需要使用 Buildroot Qt 环境包中的编译器 | ||
+ | |||
+ | g++:/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | gcc:/ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 为方便调试,配置 Debeggers 和 Devices 用于在线调试: | ||
+ | |||
+ | *配置 Debuggers | ||
+ | |||
+ | 点击右侧 add 按钮添加 gbd-multiarch: | ||
+ | |||
+ | 检查目标机上是否存在 / | ||
+ | |||
+ | 回到主机的 Qt Creator, | ||
+ | |||
+ | 选择主机中的 gdb-multiarch : / | ||
+ | |||
+ | {{: | ||
+ | |||
+ | *配置 Devices | ||
+ | |||
+ | 设置好设备的 IP 、用户名(root)。为了方便调试,可以在设备上设置静态 IP。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | *配置Kits | ||
+ | |||
+ | 将前面设置的配置项添加到 Kits。 | ||
+ | |||
+ | 如果目标平台是 Ubuntu 系统,这一步也需要添加 sysroot 的路径 | ||
+ | |||
+ | {{: | ||
=== 高清硬解码 === | === 高清硬解码 === | ||
{{page>: | {{page>: | ||
=== Docker === | === Docker === | ||
- | {{page>:template:temp_Linux_docker}} | + | Docker English-Community 支持以下的 Ubuntu 版本: |
+ | *Xenial 16.04(LTS) | ||
+ | *Bionic 18.04(LTS) | ||
+ | *Cosmic 18.04 | ||
+ | *Disco 19.04 | ||
+ | *其他更新的版本... | ||
+ | |||
+ | 安装命令如下: | ||
+ | |||
+ | curl -fsSL https:// | ||
+ | |||
+ | 也可以使用国内 daocloud 一键安装命令: | ||
+ | |||
+ | curl -sSL https:// | ||
+ | |||
+ | 测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功: | ||
+ | |||
+ | sudo docker run hello-world | ||
+ | |||
+ | Unable to find image ' | ||
+ | latest: Pulling from library/ | ||
+ | 1b930d010525: | ||
+ | Digest: sha256: | ||
+ | Status: Downloaded newer image for hello-world: | ||
+ | |||
+ | |||
+ | Hello from Docker! | ||
+ | This message shows that your installation appears to be working correctly. | ||
+ | |||
+ | |||
+ | To generate this message, Docker took the following steps: | ||
+ | 1. The Docker client contacted the Docker daemon. | ||
+ | 2. The Docker daemon pulled the " | ||
+ | (amd64) | ||
+ | 3. The Docker daemon created a new container from that image which runs the | ||
+ | executable that produces the output you are currently reading. | ||
+ | 4. The Docker daemon streamed that output to the Docker client, which sent it | ||
+ | to your terminal. | ||
+ | |||
+ | |||
+ | To try something more ambitious, you can run an Ubuntu container with: | ||
+ | $ docker run -it ubuntu bash | ||
+ | |||
+ | |||
+ | Share images, automate workflows, and more with a free Docker ID: | ||
+ | | ||
+ | |||
+ | |||
+ | For more examples and ideas, visit: | ||
+ | | ||
===OpenCL=== | ===OpenCL=== |