5. Ubuntu Application

5.1 Serial Terminal

Idea3588S_Display_IO

Connect the board and PC with USB Serial cable, then power on, the terminal will output boot information. To get more log information from the device, execute the following command

1echo "8 4 1 7" > /proc/sys/kernel/printk

8: The default print level, meaning that messages of all levels from 1 (emergency) to 8 (debug) are printed to the system log.

4: Console print level, meaning that only messages with levels 1 (critical) to 4 (error) will be printed to the console.

1: Minimum message level, meaning that any message below the emergency level will not be printed.

7: The console’s minimum message level means that any messages below the emergency and alert levels will not be printed to the console.

5.2 Display

Display_IO

Display Ports

Idea3588S supports Triple-display: MIPI LCD, HDMI and Type-C(DP Alt Mode).

Warning

MIPI LCD hot swapping is not allowed.

ubuntu_Display

ubuntu Triple-display

5.3 USB Type-C

_images/docking-station.jpg

Docking station

Features Supported by the Type-C Interface:

  1. Reversible Design: Allows insertion in either orientation for user convenience.

  2. Data Transmission Roles: Supports flexible designation of host and device roles.

  3. Multiple Protocol Support: Compatible with USB 3.0 and DisplayPort, enabling high-speed data transmission.

5.3.1 ADB

ADB is the command-line debugging tool. It can use for system logs, uploading and downloading the files, installing the applications, etc.

❶ Connect the board and PC host with Type-C cable.

_images/adb_connection.jpg

❷ Install ADB driver on Windows system.

❸ Press Windows + R to open the Run program. Type cmd and press Enter

❹ Execute commands to enable ADB.

1adb devices
2adb -s <device number> shell
_images/ubuntu_adb.png

enable ADB

5.3.2 Type-C to USB3.0

Idea3588S supports Type-C to USB3.0. The device can use directly without install any driver.

After inserting the USB3.0 flash disk, the system will automatically mount the device, and an appropriate icon will appear on the desktop. Users can double-click the icon to access the files in the USB3.0 flash disk.

_images/type-C_to_type-A_ubuntu.png

Type-C to USB3.0

5.3.3 DP Alt Mode

DisplayPort Alternate Mode (DP Alt Mode) is a technology that facilitates the transmission of DisplayPort video signals through a USB Type-C interface. It enables devices to output video and audio via a USB-C connection without requiring a dedicated DisplayPort connector. This allows users to connect a display using a single USB-C port while transmitting video, audio, and additional data.

Boardcon has conducted the testing at Type-C to HDMI/DP (3840x2160 @ 60Hz).

ubuntu_type-C_display

Type-C to HDMI

5.4 Ethernet

Ethernet Port

Connect the Board and router with an Ethernet cable.

1ifconfig          //view the status of the network interfaces
#Serial terminal output
root@rk3588s-ubuntu:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.142  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::a54e:e87c:cf28:4e0d  prefixlen 64  scopeid 0x20<link>
        ether 26:d8:f9:cf:ed:c1  txqueuelen 1000  (Ethernet)
        RX packets 56  bytes 8108 (8.1 KB)
        RX errors 0  dropped 3  overruns 0  frame 0
        TX packets 44  bytes 4260 (4.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 93
1 ping -I eth0 www.armdesigner.com                 //ping URL to test Network
#Serial terminal output
root@rk3588s-ubuntu:~# ping -I eth0 www.armdesigner.com
PING www.armdesigner.com (67.222.54.196) from 192.168.0.142 eth0: 56(84) bytes of data.
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=1 ttl=48 time=171 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=2 ttl=48 time=171 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=3 ttl=48 time=173 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=4 ttl=48 time=171 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=5 ttl=48 time=171 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=6 ttl=48 time=171 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=7 ttl=48 time=171 ms
--- www.armdesigner.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 10716ms
rtt min/avg/max/mdev = 170.848/171.418/172.591/0.542 ms
root@rk3588s-ubuntu:~#

5.5 USB Host

USB Host IO

The USB Host can be used to connect USB mouse, USB keyboard, U-Disk or other USB devices.

After connecting the USB flash disk, it will be automatically mounted. Once successfully mounted, an icon will appear on the desktop, allowing users to access the device by double-clicking on it.

ubuntu_Test_USB

USB Device

The USB3.0 default support Superspeed.

#Serial terminal output
root@rk3588s-ubuntu:~# [ 1311.671865] usb 6-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[ 1311.699357] usb 6-1: New USB device found, idVendor=0dd8, idProduct=3b00, bcdDevice= 0.02
[ 1311.699406] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1311.699418] usb 6-1: Product: OnlyDisk
[ 1311.699429] usb 6-1: Manufacturer: Netac
[ 1311.699438] usb 6-1: SerialNumber: 0A6544CD10427AB2
[ 1311.701009] usb-storage 6-1:1.0: USB Mass Storage device detected
[ 1311.702829] scsi host0: usb-storage 6-1:1.0
[ 1312.800690] scsi 0:0:0:0: Direct-Access     Netac    OnlyDisk         8.01 PQ: 0 ANSI: 6
[ 1312.807235] sd 0:0:0:0: [sda] 121610240 512-byte logical blocks: (62.3 GB/58.0 GiB)
[ 1312.808336] sd 0:0:0:0: [sda] Write Protect is off
[ 1312.808374] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
[ 1312.809288] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1312.820955]  sda: sda1
[ 1312.828029] sd 0:0:0:0: [sda] Attached SCSI removable disk
[ 1313.134482] FAT-fs (sda1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

5.6 WiFi & Bluetooth

WiFi&BT

WiFi&BT module

5.6.1 WiFi

❶ Connect the WiFi antenna.

❷ Click the network icon in the top right corner of the UI interface.

❸ Select the SSID from the list of available networks and enter the password.

_images/ubuntu_Test_WIFI.jpg

After connected, user can ping URL/IP at terminal to test network.

1ifconfig
2ping -I wlan0 www.armdesigner.com

5.6.2 Bluetooth

❶ Click the Bluetooth icon in the top right corner of the UI interface. Click Devices…

ubuntu_Test_BT_1

❷ The Bluetooth device name is hidden by default. Set the Bluetooth device name to be visible.

Click Adapter -> Preferences -> Always visible

_images/ubuntu_Test_BT_2.png

❸ Click Search to start searching and select the available device in the list to pair.

_images/ubuntu_Test_BT_3.png

After pairing, devices can connect with each other automatically.

5.7 Audio I/O

Idea3588S_Headset

Headset

❶ Plug the Headset into the Audio jack

❷ View sound card

1cat /proc/asound/cards
#Serial terminal output
root@rk3588s-ubuntu:~# cat /proc/asound/cards
 0 [rockchipdp0    ]: rockchip-dp0 - rockchip-dp0
                      rockchip-dp0
 1 [rockchipes8388 ]: rockchip-es8388 - rockchip-es8388
                      rockchip-es8388
 2 [rockchipspdiftx]: rockchip_spdif- - rockchip,spdif-tx0
                      rockchip,spdif-tx0
 3 [rockchiphdmi0  ]: rockchip-hdmi0 - rockchip-hdmi0
                      rockchip-hdmi0
root@rk3588s-ubuntu:~#

❸ Record

1arecord -Dhw:1,0 -f cd record.wav

❹ Playback

1aplay -Dhw:1,0 record.wav        //Adudio output via headset
#Audio output instructions
aplay -Dhw:0,0 record.wav   //output via Type-C display
aplay -Dhw:1,0 record.wav   //output via Headset
aplay -Dhw:3,0 record.wav   //output via HDMI

5.8 4G & GPS

4G+SIM

4G module

5.8.1 4G

❶ Insert 4G module to mPCIe socket (4G model: EC20).

❷ Connect antenna and insert SIM card.

❸ Power on.

❹ Execute commands to connect 4G network.

1pppd call quectel-ppp &          //Initiate the PPP connection
#Serial terminal output
root@rk3588s-ubuntu:~# pppd call quectel-ppp &
[1] 2381
root@rk3588s-ubuntu:~# pppd options in effect:
debug           # (from /etc/ppp/peers/quectel-ppp)
nodetach                # (from /etc/ppp/peers/quectel-ppp)
dump            # (from /etc/ppp/peers/quectel-ppp)
noauth          # (from /etc/ppp/peers/quectel-ppp)
user test               # (from /etc/ppp/peers/quectel-ppp)
password ??????         # (from /etc/ppp/peers/quectel-ppp)
remotename 3gppp                # (from /etc/ppp/peers/quectel-ppp)
/dev/ttyUSB3            # (from /etc/ppp/peers/quectel-ppp)
115200          # (from /etc/ppp/peers/quectel-ppp)
lock            # (from /etc/ppp/peers/quectel-ppp)
connect chat -s -v -f /etc/ppp/peers/quectel-chat-connect               # (from /etc/ppp/peers/quectel-ppp)
disconnect chat -s -v -f /etc/ppp/peers/quectel-chat-disconnect        # (from /etc/ppp/peers/quectel-ppp)
nocrtscts               # (from /etc/ppp/peers/quectel-ppp)
modem           # (from /etc/ppp/peers/quectel-ppp)
asyncmap 0              # (from /etc/ppp/options)
lcp-echo-failure 4              # (from /etc/ppp/options)
lcp-echo-interval 30            # (from /etc/ppp/options)
hide-password           # (from /etc/ppp/peers/quectel-ppp)
novj            # (from /etc/ppp/peers/quectel-ppp)
novjccomp               # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-local               # (from /etc/ppp/peers/quectel-ppp)
ipcp-accept-remote              # (from /etc/ppp/peers/quectel-ppp)
ipparam 3gppp           # (from /etc/ppp/peers/quectel-ppp)
noipdefault             # (from /etc/ppp/peers/quectel-ppp)
ipcp-max-failure 30             # (from /etc/ppp/peers/quectel-ppp)
defaultroute            # (from /etc/ppp/peers/quectel-ppp)
usepeerdns              # (from /etc/ppp/peers/quectel-ppp)
noccp           # (from /etc/ppp/peers/quectel-ppp)
noipx           # (from /etc/ppp/options)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
AT^M^M
OK
 -- got it
send (ATI;+CSUB;+CSQ;+CPIN?;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel^M
EC25^M
Revision: EC25EUXGAR08A17M1G^M
^M
SubEdition: V01^M
^M
+CSQ: 29,99^M
^M
+CPIN: READY^M
^M
+COPS: 0,0,"CHINA MOBILE",7^M
^M
+CGREG: 0,1^M
^M
OK
 -- got it

send (AT+CGDCONT=1,"IP","3gnet",,0,0^M)
expect (OK)
send (AT+CGDCONT=1,"IP","3gnet",,0,0^M)
expect (OK)
^M
^M
OK
 -- got it
send (ATD*99#^M)
expect (CONNECT)
^M
^M
CONNECT

-- got it

Script chat -s -v -f /etc/ppp/peers/quectel-chat-connect finished (pid 2382), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB3
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x125dec24> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xdf5e9b21> <pcomp> <accomp>]
sent [LCP ConfAck id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0xdf5e9b21> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x125dec24> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x125dec24]
rcvd [LCP DiscReq id=0x1 magic=0xdf5e9b21]
rcvd [CHAP Challenge id=0x1 <1b7f90bd6ac1c2807fef343604d7ad39>, name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 <c31e5f6819023fad3d4f3478059aeba1>, name = "test"]
rcvd [LCP EchoRep id=0x0 magic=0xdf5e9b21 12 5d ec 24]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>]

❺ Test network.

1ifconfig ppp0                       //Check network status
2ping -I ppp0 www.armdesigner.com
#Serial terminal output
root@rk3588s-ubuntu:~# ifconfig ppp0
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
      inet 10.35.23.70  netmask 255.255.255.255  destination 10.64.64.64
      ppp  txqueuelen 3  (Point-to-Point Protocol)
      RX packets 4  bytes 52 (52.0 B)
      RX errors 0  dropped 0  overruns 0  frame 0
      TX packets 4  bytes 58 (58.0 B)
      TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
root@rk3588s-ubuntu:~# ping -I ppp0 www.armdesigner.com
PING www.armdesigner.com (67.222.54.196) from 10.35.23.70 ppp0: 56(84) bytes of data.
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=4 ttl=43 time=246 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=5 ttl=43 time=240 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=8 ttl=43 time=255 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=9 ttl=43 time=248 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=10 ttl=43 time=252 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=15 ttl=43 time=257 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=16 ttl=43 time=254 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=17 ttl=43 time=253 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=18 ttl=43 time=250 ms
64 bytes from 67-222-54-196.unifiedlayer.com (67.222.54.196): icmp_seq=19 ttl=43 time=263 ms
--- www.armdesigner.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 24185ms
rtt min/avg/max/mdev = 240.370/249.729/262.824/6.192 ms

5.8.2 GPS

❶ Plug the EC20 module to mPCIe socket.

❷ Connect GPS antenna.

❸ Power on.

❹ Verify whether /dev/ttyUSB2 is currently in use. If it is, please terminate the associated process.

1lsof /dev/ttyUSB2
2kill -9 2381          // 2381 is PID
#Serial terminal output
root@rk3588s-ubuntu:~# lsof /dev/ttyUSB3
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pppd    2381 root    8u   CHR  188,2      0t0  623 /dev/ttyUSB3
root@rk3588s-ubuntu:~#
root@rk3588s-ubuntu:~# kill -9 2381
[1]+  Killed                  pppd call quectel-ppp
root@rk3588s-ubuntu:~#

❺ Enable GPS functionality and read GPS data.

1echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2
2cat /dev/ttyUSB1
#Serial terminal output
root@rk3588s-ubuntu:~# echo -e "AT+QGPS=1\r\n" > /dev/ttyUSB2
root@rk3588s-ubuntu:~# cat /dev/ttyUSB1
$GPVTG,,T,,M,,N,,K,N*2C

$GPGSA,A,1,,,,,,,,,,,,,,,,*32

$GPGGA,,,,,,0,,,,,,,,*66

$GPRMC,,V,,,,,,,,,,N,V*29

$GPVTG,,T,,M,,N,,K,N*2C

$GPGSA,A,1,,,,,,,,,,,,,,,,*32

$GPGGA,,,,,,0,,,,,,,,*66

$GPRMC,,V,,,,,,,,,,N,V*29

$GPVTG,,T,,M,,N,,K,N*2C

$GPGSA,A,1,,,,,,,,,,,,,,,,*32

$GPGGA,,,,,,0,,,,,,,,*66

$GPRMC,,V,,,,,,,,,,N,V*29

$GPVTG,,T,,M,,N,,K,N*2C

$GPGSA,A,1,,,,,,,,,,,,,,,,*32

$GPGGA,,,,,,0,,,,,,,,*66

$GPRMC,,V,,,,,,,,,,N,V*29

5.9 SD Card

SD

After inserting the SD card, the system will automatically mount it. If the mount is successful, an icon will appear on the desktop, allowing users to access the SD card by double-clicking on it.

ubuntu_test_SD

Mounted SD card

5.10 RS485

RS485 connect

❶ Connect PC and board with USB-to-RS485 adapter.

CAN connection

RS485 connection

❷ Open the Serial Terminal and set baud rate for the board and RS485 adapter respectively.

Baud rate: board - 1500000; RS485 adapter - 115200

❸ Execute command on the terminal serial port of board.

1com /dev/ttyS8 115200 8 0 1

❹ Input character to test RS485 communication.

5.11 CAN

CAN

❶ Connect PC and board with USB-to-CAN adapter.

CAN connection

CAN connection

❷ Open the CAN_Adapter application and set the baudrate to 500000 on PC.

CAN setting

❸ Execute commands on Serial Terminal to configure CAN.

1ip link set can0 down
2ip link set can0 type can bitrate 500000
3ip link set can0 up
CAN setting

❹ Configure CAN as receiver.

1candump can0
CAN setting

❺ set CAN as Transmitter.

1cansend can0 123#DEADBEEF
CAN setting

5.12 UART

UART connect

❶ Connect RX and TX of UART.

❷ Execute command and input character to test

1com /dev/ttyS0 115200 8 0 1    //UART0
#Serial terminal output
root@rk3588s-ubuntu:~# com /dev/ttyS0 115200 8 0 1
port = /dev/ttyS0
baudrate = 115200
cs = 8
parity = 0
stopb = 1
66666666
RECV: 66666666
UUUUUUU
RECV: UUUUUUU

Tests for UART1 and UART2 are similar to UART0.

com /dev/ttyS7 115200 8 0 1    //UART1
com /dev/ttyS4 115200 8 0 1    //UART2

The UART loopback test is for reference only.

5.13 IR

IR

❶ Turn on IR debugging log.

1echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print

❷ Change log print level

1echo 8 > /proc/sys/kernel/printk

❸ Press the Infrared controller, you can view the received datas on the terminal.

#Serial terminal output
root@rk3588s-ubuntu:~# echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print
root@rk3588s-ubuntu:~# echo 8 > /proc/sys/kernel/printk
[ 2008.240103] USERCODE=0x1818
[ 2008.267235] RMC_GETDATA=9b
[ 2011.195527] USERCODE=0x1818
[ 2011.222654] RMC_GETDATA=99
[ 2012.231769] USERCODE=0x1818
[ 2012.258908] RMC_GETDATA=98
[ 2013.331833] USERCODE=0x1818
[ 2013.359013] RMC_GETDATA=9a
[ 2014.596373] USERCODE=0x1818
[ 2014.623418] RMC_GETDATA=e4
[ 2015.635899] USERCODE=0x1818
[ 2015.663078] RMC_GETDATA=e6

5.14 RTC

RTC

❶ Insert a CR1220 battery before test. It keeps the time running when the main power is off.

❷ Set date and time manually.

1date "2024-10-22 10:07:30"              //set system date
2hwclock -w                              //set the hardware clock to current system time
3hwclock                                 //display date and time
#Serial terminal output
root@rk3588s-ubuntu:~# date -s "2024-10-22 10:07:30"
Tue Oct 22 10:07:30 CST 2024
root@rk3588s-ubuntu:~# hwclock -w
root@rk3588s-ubuntu:~# hwclock
2024-10-22 10:07:40.038025+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 10:08:25.749964+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 10:08:42.359302+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 10:09:06.181951+08:00
root@rk3588s-ubuntu:~#

❸ Power off the development board, and turn on after a period of time to check whether the time is saved.

#Serial terminal output
root@rk3588s-ubuntu:~# hwclock
2024-10-22 15:52:35.547911+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 15:52:41.540191+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 15:53:00.005444+08:00
root@rk3588s-ubuntu:~# hwclock
2024-10-22 15:53:19.934307+08:00

5.15 FAN

_images/FAN.jpg

Connect FAN (12V, 2-pin/2.0mm pitch connector) to the board. Boardcon firmware has preset that the fan works when the CPU temperature exceeds 50° C.

Execute the command to check the temperature of the CPU. If the output value equals 50000, it indicates that the temperature has reached 50 degrees.

1cat /sys/class/thermal/thermal_zone0/temp

5.16 Camera

_images/Idea3588S_Camera_IMX415_camera1.jpg

5.16.1 Camera1

❶ Connect the camera module (DC-IM415-1214V1) to the development board before power on. Idea3588S Camera0 and Camera1 share the signal I2C2, Boardcon Ubuntu20.04 system firmware default camera1 is enabled.

❷ View the device channel

1grep "" /sys/class/video4linux/v*/name | grep mainpath
2grep "" /sys/class/video4linux/v*/name | grep selfpath
#Serial terminal output
root@rk3588s-ubuntu:~# grep "" /sys/class/video4linux/v*/name | grep mainpath
/sys/class/video4linux/video11/name:rkisp_mainpath
root@rk3588s-ubuntu:~# grep "" /sys/class/video4linux/v*/name | grep selfpath
/sys/class/video4linux/video12/name:rkisp_selfpath

❸ Optimize the image quality through the 3A algorithm.

1sh /etc/init.d/rkaiq_3A.sh start

❹ Execute the command or script to preview camera1

1gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=1920,height=1080, framerate=30/1 ! xvimagesink
1/rockchip-test/camera/camera_rkaiq_test.sh

5.16.2 Camera0

Switching to camera0 requires to modify the device tree and recompile the kernel.

❶ Change to device tree directory

1cd idea3588s_Linux_SDK_20241025/kernel/arch/arm64/boot/dts/rockchip

❷ Open device tree file

1vim rk3588s-evb4-lp4x.dtsi

❸ Annotate camera1, and open the camera0.

#include "rk3588s-evb4-imx415-dphy0.dtsi"
//#include "rk3588s-evb4-imx415-dcphy1.dtsi"

❹ Recompile the kernel and reflash the development board. Please refer to the relevant chapters.

5.17 Video Playback

❶ Switch to performance mode

1echo performance | tee $(find /sys/ -name *governor)

❷ Built-in playback, sound output via HDMI

1gst-play-1.0 --videosink=xvimagesink /usr/local/test.mp4 --audiosink="alsasink device=hw:3"