2. 快速开始

2.1. 准备工作

在使用RDK X3开发板前,需要做下述准备工作:

供电
RDK X3开发板通过USB Type C接口供电,需要使用支持5V 3A的电源适配器为开发板供电,推荐使用基础配件清单中推荐的电源适配器型号。

注意,请不要使用电脑USB接口为开发板供电,否则会因供电不足造成开发板异常断电、反复重启等异常情况。

存储
RDK X3开发板采用Micro SD存储卡作为系统启动介质,推荐至少8GB容量的存储卡,以便满足Ubuntu系统、应用功能软件对存储空间的需求。

显示
RDK X3开发板支持HDMI显示接口,通过HDMI线缆连接开发板和显示器,支持图形化桌面显示。

网络连接
RDK X3开发板支持以太网、Wi-Fi两种网络接口,用户可通过任意接口实现网络连接功能。

常见问题
用户首次使用开发板时的常见问题如下:

  • 上电不开机:请确保使用支持5V/3A的适配器供电;请确保开发板使用烧录过Ubuntu镜像的Micro SD存储卡

  • USB Host接口无反应:请确保开发板Micro USB接口没有接入数据线

  • 使用中热插拔存储卡:开发板不支持热插拔Micro SD存储卡,如发生误操作请重启开发板

注意事项

  • 禁止带电时拔插除USB、HDMI、网线之外的任何设备

  • RDK X3的 Type C USB接口仅用作供电

更多问题的处理,可以查阅 常见问题 章节,同时可以访问 地平线开发者官方论坛 获得帮助。

2.2. 安装系统

开发板支持Ubuntu 20.04 Desktop系统版本,支持图形化交互。

Ubuntu Desktop版本系统启动完成后,会通过HDMI接口在显示器上输出系统桌面,如下图:

image-desktop_display.png

2.2.1. 镜像下载

下载Ubuntu镜像压缩包,解压出Ubuntu系统镜像文件:ubuntu-preinstalled-desktop-arm64.img,1.0版本的系统镜像名为system_sdcard.img

版本说明:

  • 2.0版本:基于RDK Linux开源代码包制作,支持RDK X3派、X3模组等全系列硬件

  • 1.0版本:旭日X3派历史版本,仅支持旭日X3派硬件

点击 下载镜像 进入版本选择页面,选择对应版本目录,进入文件下载页。以下载2.0.0版本的系统镜像为例:

image-20230510143353330

2.2.2. 烧录系统到Micro SD卡

在烧录Ubuntu系统镜像前,用户需要做如下准备:

balenaEtcher是一款支持Windows/Mac/Linux等多平台的PC端启动盘制作工具,制作SD启动卡流程如下:

  1. 打开balenaEtcher工具,点击Flash frome file按钮,选择解压出来的ubuntu-preinstalled-desktop-arm64.img文件作为烧录镜像

    image-X3-Update-balena1

  2. 点击Select target按钮,选择对应的Micro SD存储卡作为目标存储设备

    image-X3-Update-balena3

  3. 点击Flash按钮开始烧录,待工具提示Flash Complete时,表示镜像烧录完成,您可以关闭balenaEtcher工具并取出存储卡

    image-X3-Update-balena4

    image-X3-Update-balena5

    image-X3-Update-balena5

如Micro SD存储卡烧录过程发生中断,用户需要按照上述步骤重新进行。

2.2.3. 启动系统

首先保持开发板断电,然后将制作好的存储卡插入开发板的Micro SD卡槽,并通过HDMI线缆连接开发板与显示器,最后给开发板上电。用户可通过指示灯判断开发板状态,指示灯说明如下:

  • 红色指示灯:点亮代表硬件上电正常

  • 绿色指示灯:点亮代表系统启动中,熄灭或闪烁代表系统启动完成

系统首次启动时会进行默认环境配置,整个过程持续45秒左右,配置结束后会在显示器输出Ubuntu系统桌面。

如果开发板上电后长时间没有显示输出(2分钟以上),说明开发板启动异常。此时用户可通过指示灯确认系统状态,方法如下:

  • 绿灯常亮:说明系统启动失败,可检查使用的电源适配器是否满足5V3A的要求,可尝试重新制作Micro SD卡系统镜像

  • 绿灯熄灭或闪烁:说明系统启动成功,但显示服务启动失败,请确认连接的显示器符合支持列表规格

2.3. 远程登录

本章节旨在向需要通过个人电脑(PC)远程访问开发板的用户介绍如何通过串口、网络(VNC、SSH)方式进行远程登录。

注意,通过网络方式远程登录前,开发板需要通过有线以太网或者无线WiFi方式接入网络,配置好开发板IP地址。对于两种连接方式下的IP地址信息可参考如下描述:

  • 有线以太网:开发板默认采用静态IP模式,IP地址为192.168.1.10,掩码255.255.255.0,网关 192.168.1.1

  • 无线WiFi:开发板IP地址一般由路由器分配,可在设备命令行中通过ifconfig命令查看wlan0网络的IP地址

2.3.1. 串口登录

在使用串口登录前,需要确认开发板串口线跟电脑正确连接,连接方法可参考调试串口章节。串口登录需要借助PC终端工具,目前常用的工具有PuttyMobaXterm等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm为例,介绍新建串口连接过程:

  • 当串口USB转接板首次插入电脑时,需要安装串口驱动。驱动程序可从资源中心的工具子栏目获取。驱动安装完成后,设备管理器可正常识别串口板端口,如下图:
    image-20220416105939067

  • 打开MobaXterm工具,点击Session,然后选择Serial

  • 配置端口号,例如COM3,实际使用的串口号以PC识别到的串口号为准

  • 设置串口配置参数,如下:

    • 波特率(Baud rate):921600

    • 数据位(Data bits):8

    • 奇偶校验(Parity):None

    • 停止位(Stop bits):1

    • 流控(Flow Control):无

  • 点击OK,输入用户名:root、密码:root登录设备
    image-Uart-Login

此时,可使用ifconfig命令查询开发板IP地址,其中eth0、wlan0分别代表有线、无线网络:

root@ubuntu:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::211:22ff:feaa:7637  prefixlen 64  scopeid 0x20<link>
        ether 00:11:22:aa:76:37  txqueuelen 1000  (Ethernet)
        RX packets 767  bytes 54006 (54.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5766  bytes 246466 (246.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43  base 0xa000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3847  bytes 339115 (339.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3847  bytes 339115 (339.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 08:e9:f6:ae:f8:8a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.3.2. 网络状态确认

在使用远程登录前,需要确保电脑、开发板网络通信正常,如无法ping通,需按如下步骤进行确认:

  • 确认开发板、电脑IP地址配置,一般前三段需要是一样的,例如开发板:192.168.1.10 电脑:192.168.1.100

  • 确认开发板、电脑的子网掩码、网关配置是否一致

  • 确认电脑网络防火墙是否处于关闭状态

开发板有线以太网默认采用静态IP模式,IP地址为192.168.1.10。对于开发板、电脑网络直连的情况,只需要将电脑配置为静态IP,保证跟开发板处于同一网段即可。以WIN10系统为例,电脑静态IP修改方法如下:

  • 在网络连接中找到对应的以太网设备并双击打开

  • 找到Internet协议版本4选项并双击打开

  • 在下图红框位置填入对应的网络参数,点击确定

image-20220416110242445

如需将开发板有线网络配置为动态获取DHCP模式,可参考有线网络章节进行配置。

2.3.3. VNC登录

本章节面向使用Ubuntu Desktop系统版本的用户,介绍如何通过VNC Viewer实现远程桌面登录功能。VNC Viewer是一个图形桌面共享软件,可在电脑上实现设备远程登录和控制桌面。该软件可以通过电脑显示器预览开发板系统桌面,并使用电脑的鼠标、键盘进行远程操作。用户通过VNC Viewer操作,可以获得跟开发板本地操作相同的效果,下载链接VNC Viewer

连接开发板
目前VNC支持直接、云端两种连接方式,用户可以根据自身情况选择。本文推荐使用直接连接方式,连接步骤如下:

  • 输入设备ip地址,例如:192.168.1.10
    image-20220610160658103

  • 输入IP地址后回车,弹出链接未加密的提示,点击 Continue
    image-20220610160715916

  • 输入密码 sunrise,勾选 Remember password, 点击 OK连接
    image-20220610160928136

2.3.4. SSH登录

除了VNC登录远程桌面外,还可以通过SSH连接登录开发板。下面分别介绍终端软件、终端命令行两种方法的创建步骤。

终端软件
目前常用终端工具有PuttyMobaXterm等,用户可根据自身使用习惯来选择。不同工具的端口配置流程基本类似,下面以MobaXterm为例,介绍新建SSH连接过程:

  • 打开MobaXterm工具,点击Session,然后选择SSH

  • 输入开发板IP地址,例如192.168.1.10

  • 选中specify username,输入sunrise

  • 点击OK后,输入用户名(sunrise)、密码(sunrise)即可完成登录

image-Network-Login

电脑命令行
用户也可通过命令行方式进行SSH登录,步骤如下:

  • 打开终端窗口,输入SSH登录命令,例如ssh sunrise@192.168.1.10

  • 弹出连接确认提示,输入YES

  • 输入密码(sunrise)即可完成登录

image-Cmdline-Linux

2.4. 硬件接口说明

2.4.1. 接口总览

RDK X3开发板提供了网口、USB、摄像头、LCD、HDMI、40PIN等功能接口,方便用户进行图像多媒体、深度学习算法等应用的开发和测试。开发板接口布局如下: image-20220802160110194

序号
功能
序号
功能
序号
功能
1 USB Type C 供电接口 6 USB 3.0 Type A接口 11 Wi-Fi天线接口
2 MIPI CSI 摄像头接口 7 千兆以太网口 12 TF卡接口(底面)
3 调试串口 8 40PIN接口 13 MIPI 接口的LCD屏接口
4 Micro USB 2.0 接口 9 HDMI接口 14 触摸屏接口
5 USB 2.0 Type A接口两路 10 电源和状态LED指示灯

2.4.2. 电源接口

开发板提供一路USB Type C接口(接口1),作为供电接口,需要使用支持5V/3A的电源适配器为开发板供电。将电源适配器接入开发板后,开发板红色电源指示灯亮起,说明开发板供电正常。

注意,请不要使用电脑USB接口为开发板供电,否则会因供电不足造成开发板异常断电、反复重启等情况。

2.4.3. 调试串口

开发板提供一路调试串口(接口3),以实现串口登录、调试功能。电脑串口工具的参数配置如下:

  • 波特率(Baud rate):921600

  • 数据位(Data bits):8

  • 奇偶校验(Parity):None

  • 停止位(Stop bits):1

  • 流控(Flow Control):无

串口连接时,需要将杜邦线接入开发板接口3,串口USB转接板接入电脑。连接完成后如下图:
image-20220612121707048

2.4.4. 有线网口

开发板提供一路千兆以太网接口(接口7),支持1000BASE-T、100BASE-T标准,默认采用静态IP模式,IP地址192.168.1.10。如需确认开发板IP地址,可通过串口登录设备,并用ifconfig命令进行查看 eth0网口的配置:

sunrise@ubuntu:/# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::211:22ff:fe6f:de17  prefixlen 64  scopeid 0x20<link>
        ether 00:11:22:6f:de:17  txqueuelen 1000  (Ethernet)
        RX packets 112  bytes 7327 (7.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 197  bytes 8678 (8.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 39  base 0xc000 

开发板插入网线后,以太网驱动会建立连接,如果系统有如下打印,说明网线连接正常:

[13293.952661] st_gmac a5014000.ethernet eth0: Link is Down
[13295.062996] st_gmac a5014000.ethernet: Link is Up - 1000/Full 
[13296.000750] st_gmac a5014000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx

2.4.5. HDMI接口

开发板提供一路HDMI(接口9)显示接口,最高支持1080P分辨率。开发板通过HDMI接口在显示器输出Ubuntu系统桌面(Ubuntu Server版本显示logo图标)。此外,HDMI接口还支持实时显示摄像头、网络流画面功能。

目前HDMI接口支持的显示分辨率如下:

  • 1920x1080

  • 1280x720

  • 1024x600

  • 800x480

2.4.6. USB接口

由于X3芯片只提供一路USB接口,开发板通过硬件电路实现了多路USB接口扩展,满足用户对多路USB设备接入的需求,接口描述如下:

接口类型 接口序号 接口数量 接口描述
Micro USB 2.0 接口4 1路 USB Device模式,用于连接主机实现ADB、Fastboot、UVC等功能
USB 2.0 Type A 接口5 2路 USB Host模式,用于接入USB 2.0外设
USB 3.0 Type A 接口6 1路 USB Host模式,用于接入USB 3.0外设

USB主从模式切换完全由硬件电路实现,用户只需按照上表的逻辑连接设备即可。

开发板USB Host、Device功能互斥,Device接口接入设备后,Host接口会自动失效。

接入U盘

开发板USB Type A接口(接口5和6),支持U盘功能,可自动检测U盘接入并挂载,默认挂载目录为/media/sda1。用户可通过touch命令确认U盘工作正常,如下:

sunrise@ubuntu:/media/sda1$ sudo touch test
[sudo] password for sunrise: 
sunrise@ubuntu:/media/sda1$ ls -l test 
-rwxr-xr-x 1 root root 0 Apr 30 21:19 test
sunrise@ubuntu:/media/sda1$

接入USB串口转接板

开发板USB Type A接口(接口5和6),支持USB串口转接板功能,可自动检测USB串口转接板接入并创建设备节点/dev/ttyUSB* 或者 /dev/ttyACM*(星号代表0开始的数字)。用户可参考 使用串口 章节对串口进行使用。

2.4.7. USB摄像头

开发板USB Type A接口(接口5和6),支持USB摄像头功能,可自动检测USB摄像头接入并创建设备节点/dev/video8。用户可通过v4l2命令确认USB摄像头工作正常,如下:

sunrise@ubuntu:/media/sda1$ sudo v4l2-ctl -d /dev/video8 --all
Driver Info:
        Driver name      : uvcvideo
        Card type        : FHD Camera: FHD Camera
        Bus info         : usb-xhci-hcd.0.auto-1.2
        Driver version   : 4.14.87
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : FHD Camera: FHD Camera
        Serial           : 12345
        Bus info         : 1.2
        Media version    : 4.14.87
        Hardware revision: 0x00000020 (32)
        Driver version   : 4.14.87
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : FHD Camera: FHD Camera
        Function         : V4L2 I/O
        Pad 0x01000004   : Sink
          Link 0x0200000a: from remote pad 0x1000007 of entity 'Processing 2': Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 4147200
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             : 
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1920, Height 1080
        Default     : Left 0, Top 0, Width 1920, Height 1080
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags: 
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0

2.4.8. MIPI摄像头

开发板提供1路MIPI CSI接口(接口2),可实现MIPI摄像头的接入。目前开发板适配了多种规格的摄像头模组,模组型号、规格如下:

序号 Sensor 分辨率 FOV I2C 设备地址
1 GC4663 400W H:104 V:70 D:113 0x29
2 JXF37 200W H:62 V:37 D:68 0x40
3 IMX219 800W H:62 V:37 D:68 0x10
4 IMX477 1200W H:62 V:37 D:68 0x1a
5 OV5647 500W H:62 V:37 D:68 0x36

摄像头模组通过FPC排线跟开发板连接,注意排线两端蓝面向上插入连接器。

重要提示:严禁在开发板未断电的情况下插拔摄像头,否则非常容易烧坏摄像头模组。

以JXF37摄像头模组为例,安装完成后如下图:
image-X3-PI-Camera

安装完成后,用户可以通过i2cdetect命令确认模组I2C地址能否正常检测到。如检测不到,用户需要检查FPC排线连接是否正常。成功探测到I2C地址时,log打印如下所示:

# 首先使能sensor的24MHz主时钟
sunrise@ubuntu:~# sudo bash -c "echo 1 > /sys/class/vps/mipi_host0/param/snrclk_en"
sunrise@ubuntu:~# sudo bash -c "echo 24000000 > /sys/class/vps/mipi_host0/param/snrclk_freq"
# 执行 i2cdetect 命令探测, 其中显示的 40 即JXF37这颗sensor的i2c设备地址,说明摄像头连接正常
sunrise@ubuntu:~# sudo i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

2.4.9. Micro SD接口

开发板提供1路Micro SD存储卡接口(接口12)。推荐使用至少8GB容量的存储卡,以便满足Ubuntu操作系统及相关功能包的安装要求。

开发板使用中禁止热插拔TF存储卡,否则会造成系统运行异常,甚至造成存储卡文件系统损坏。

2.4.10. Wi-Fi天线接口

开发板的无线网络支持板载和外置天线两种配置,通常情况下板载天线可以满足使用需求。当开发板安装金属材质外壳后,需要连接外置天线到(接口11),以增强信号强度。

2.4.11. 40PIN

RDK X3开发板提供40PIN标准接口,方便用户进行外围扩展,其中数字IO采用3.3V电平设计。40PIN接口定义如下:

image-20220501181722851

开发板40PIN接口位置提供了丝印网表,方便用户对照操作,PIN1、PIN40位置如下:

image-X3-PI-40Pin_Index

40PIN各功能的使用方法请查看 40PIN 功能使用 章节。

2.4.12. 蓝牙

2.4.12.1. 初始化

开发板蓝牙功能默认没有开启,需要执行 /usr/bin/startbt6212.sh脚本进行初始化,该脚本完成以下工作:

  • 复位蓝牙

  • 创建 messagebus 用户和用户组,dbus-daemon 程序运行时需要使用该用户

  • 运行 brcm_patchram_plus 完成蓝牙的驱动加载和固件加载

  • 循环检查 /sys/class/bluetooth/hci0 目录是否存在,确认蓝牙驱动已经正常运行

  • 出现 Done setting line discpline 表示蓝牙启用成功

  • 执行 hciconfig hci0 up 完成蓝牙的Link Up

  • 执行 hciconfig hci0 piscan 进行蓝牙扫描,本步骤可以根据情况去掉

脚本执行成功后的log如下:

image-20220601172145987

此外,用户可以使用命令查询蓝牙进程是否正常,命令如下:

ps ax | grep "/usr/bin/dbus-daemon\|brcm_patchram_plus\|/usr/lib/bluetooth/bluetoothd"`
/usr/bin/dbus-daemon

brcm_patchram_plus

/usr/lib/bluetooth/bluetoothd

2.4.12.2. 配网连接

执行sudo bluetoothctl进入交互模式下的蓝牙配置界面,出现了类似下图的设备信息表示蓝牙被识别到了,然后用show来查看蓝牙信息,留意蓝牙的powereddiscoverable状态。

image-20220601172604051

执行 power on 使能蓝牙,如下图所示:

image-20220601172501882

为了能够使蓝牙被附近的设备发现,需要执行discoverable on使能蓝牙并打开蓝牙可发现属性,如下图所示:

image-20220601172648853

此时使用手机或者电脑扫描蓝牙就可以发现 ubuntu 这个名称的蓝牙设备:

image-20220601175322650

接下来测试蓝牙的主动扫描功能,在bluetoothctl的交互界面输入scan on即可打开主动扫描,它会周期性地打印附近的设备,可以看到已经发现了我的手机设备,scan off关闭扫描功能并汇总打印扫描到的蓝牙设备:

image-20220601154131158

image-20220601154253947

然后就是和其他蓝牙的配对:

  • 配对命令:pair [targetMAC] ,输入该命令后,根据提示输入yes,对端蓝牙设备选择配对选项完成配对。

  • 配对成功后可以使用trust [targetMAC]来让下次自动连接

image-20220601154414717

经过以上操作后,蓝牙的扫描、配对的基本功能就完成了,如需使用更多功能,可查阅 BlueZ的官方帮助说明。

2.4.13. 音频子板

RDK X3的40PIN接口上有两路i2s接口,通过他们可以外接音频codec,实现音频采集和播放。地平线提供音频模块供开发调试使用,该转接板提供I2S的传输通路,实现音频数据在音频子板与RDK X3单板之间的传输;提供DAC与模拟信号接口,实现外置扬声器的接入;并且提供AEC功能需要的参考信号回传。音频模块设计框图、实物图如下:

image-20220803114152748

image-20220803111900516

2.4.13.1. 接口连接

音频子板对齐插入RDK X3位号J23的40pin插针,二者引脚与引脚均应对齐;实物连接图如下:

image-20220803113006285

2.4.13.2. 驱动初始化

首先上电检查i2c是否可以和ES7210, ES8156正常通信,接好单板后,运行 sudo i2cdetect -r -y 0检查设备接入情况,其中08ES8156的设备地址,4042ES7210的设备地址。

image-20220803120213807

加载驱动音频codec驱动和X3音频框架驱动:

sudo modprobe es7210
sudo modprobe es8156
sudo modprobe hobot-i2s-dma
sudo modprobe hobot-cpudai
sudo modprobe hobot-snd-7210 snd_card=5

成功加载后,运行 ls  /dev/snd 命令可以看到已经生成音频控制节点,pcm的录音、播放节点。

image-20220831111825812

2.4.13.3. 录音及播音

采集4通道麦克风的录音5秒钟:

tinycap ./4chn_test.wav -D 0 -d 0 -c 4 -b 16 -r 48000 -p 512 -n 4 -t 5

采集2通道麦克风的录音5秒钟:

tinycap ./2chn_test.wav -D 0 -d 0 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5

播放2通道的音频(不支持直接播放4通道录音):

tinyplay ./2chn_test.wav -D 0 -d 1

然后使用音箱或者3.5mm接口耳塞接入插口中,试听音频效果。

2.4.13.4. AEC功能使用

若想使用AEC功能,先使用下面录音指令启动录音:

tinycap ./8chn_test.wav -D 0 -d 0 -c 8 -b 16 -r 48000 -p 512 -n 4 -t 5

然后使用下面指令播放测试音频:

tinyplay ./2chn_test.wav -D 0 -d 1

那么保存下来的录音文件即AEC回传的参考信号音频。可通过专业音频软件分析其频谱。

AEC测试分析:

播放频率为1k的测试音频;获取AEC的回采信号,分析如图

image-20220803123635094

回采信号在7-8声道,在播放开始和结束的瞬间有爆破音,其余时间的底噪很低。

2.4.13.5. 桌面系统使用音频子板

当您在使用RDK X3的桌面系统时,此时想要通过浏览器看视频,听音频的时候,可以按照以下方法配置,使能音频播放功能。

安装播放软件

安装smplayer播放软件

sudo apt update
sudo apt-get install smplayer

安装pulseaudio声音服务器

sudo apt install pavucontrol
sudo apt install pulseaudio

完成以上软件安装后,修改如下配置项:

  1. 打开文件 /etc/pulse/default.pa, 找到.ifexists module-udev-detect.so 这一行,修改为如下内容:

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
#load-module module-udev-detect
load-module module-alsa-source device=hw:0,0
load-module module-alsa-sink device=hw:0,1 mmap=false tsched=0 fragments=2 fragmm
ent_size=960 rate=48000 channels=1 rewind_safeguard=960
.else
### Use the static hardware detection module (for systems that lack udev supportt
)
  1. 打开文件/etc/rc.loacl, 在文件最后添加音频驱动的加载命令:

modprobe es7210
modprobe es8156
modprobe hobot-i2s-dma
modprobe hobot-cpudai
modprobe hobot-snd-7210 snd_card=5

配置完成后,重启开发板。

注意事项

  1. 修改后识别不到设备,通过以下方式在终端执行

# 启动pulseaudio服务
pulseaudio --start

# 显示加载的模块信息
pactl list sinks

检查是否能显示加载到的模块信息。如果不显示任何模块信息,表示pulseaudio服务启动失败。终端执行pulseaudio -vvv,打开debug log检查pulseaudio服务挂在何处。

  1. 按照修改项配置修改后,桌面系统依然识别不到设备 模块加载时的device=hw:0,1,依赖当前环境下加载到的设备。 通过命令aplay -l确认当前环境真实输出设备对应的节点。例如这里得到的为card 0、device 1。因此对应的device=hw:0,1。那么/etc/pulse/default.pa配置中的节点信息依据现实情况做改动。

root@ubuntu:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: hobotsnd5 [hobotsnd5], device 1: (null) es8156.0-0008-1 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0