RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
RDK-C Build Instruction for RPI-3
Dunfell:
RDK-C rdk-next Yocto 3.1 dunfell build for Raspberrypi
...
Code Block | ||||
---|---|---|---|---|
| ||||
ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 network={ ssid="XXXX" psk="YYYYYYYYY" } |
STEP 2:
Reboot the Target
After Reboot don't do step 1 and 2.
Note : Step 1 & 2 is only applicable for fresh target boot-up with new image.
STEP 3:
Modify needed resolution in rms configuration file
Supported Resolution:
SD:
Width - 640 , Height - 480
Width - 720 , Height - 576
HD:
Width - 1280 , Height - 720
FULL HD :
...
Add below configuration in end of the /boot/config.txt file
dtoverlay=imx219
core_freq_min=250
Code Block | ||||
---|---|---|---|---|
| ||||
vi /boot/config.txt
dtoverlay=imx219
core_freq_min=250 |
STEP 3:
Disable dtoverlay and minimum freq configuration in config.txt file
Modify resolution in below configuration file
cd /usr/local/rms/bin
vi rms.conf
Code Block | ||||
---|---|---|---|---|
| ||||
RRSIP=XXX.XXX.XXX.XXX
RRSPORT=81
ROOMID=rpi0
RRSSSL=0
WIDTH=1280
HEIGHT=72 |
After resolution modification need to reboot the target.
Note: This step is not necessary,it is depends on your resolution validation.
STEP 4:
WiFi connection is must needed for RMS validation.
Check WiFi connection by using below command.
ifconfig
vi /boot/config.txt
#dtoverlay=imx219
#core_freq_min=250 |
Run mediastreamer binary with v4l2src configuration.
Code Block | ||||
---|---|---|---|---|
| ||||
vi /lib/rdk/startMST.sh
#Run mediastreamer binary in background
# 1. To validate streaming with v4l2 need to give "mediastreamer v4l2src &"
# 2. To validate streaming with libcamera need to give "mediastreamer libcamerasrc &"
# If we change 1 and 2, need to reboot the target and validate streaming.
mediastreamer v4l2src & |
2. RMS with RTSP validation using libcamera
Enable dtoverlay and minimum freq configuration in config.txt file
Code Block | ||||
---|---|---|---|---|
| ||||
vi /boot/config.txt
dtoverlay=imx219
core_freq_min=250 |
Run mediastreamer binary with libcamerasrc configuration.
Code Block | ||||
---|---|---|---|---|
| ||||
vi /lib/rdk/startMST.sh
#Run mediastreamer binary in background
# 1. To validate streaming with v4l2 need to give "mediastreamer v4l2src &"
# 2. To validate streaming with libcamera need to give "mediastreamer libcamerasrc &"
# If we change 1 and 2, need to reboot the target and validate streaming.
mediastreamer libcamerasrc & |
STEP 4:
Reboot the Target
After Reboot don't do step 1 and 2.
Note : Step 1 & 2 is only applicable for fresh target boot-up with new image.
STEP 5:
Modify needed resolution in rms configuration file
Supported Resolution:
SD:
Width - 640 , Height - 480
Width - 720 , Height - 576
HD:
Width - 1280 , Height - 720
FULL HD :
Width - 1920 , Height - 1080
Modify resolution in below configuration file
cd /usr/local/rms/bin
vi rms.conf
Code Block | ||||
---|---|---|---|---|
| ||||
RRSIP=XXX.XXX.XXX.XXX
RRSPORT=81
ROOMID=rpi0
RRSSSL=0
WIDTH=1280
HEIGHT=72 |
After resolution modification need to reboot the target.
Note: This step is not necessary,it is depends on your resolution validation.
STEP 6:
WiFi connection is must needed for RMS validation.
Check WiFi connection by using below command.
ifconfig
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi3-rdk-camera:~# ifconfig
eth0 Link encap:Ethernet HWaddr B8:27:EB:87:67:91
UP BROADCAST MULTICAST MTU:1500 Metric:1 | ||||
Code Block | ||||
| ||||
root@raspberrypi3-rdk-camera:~# ifconfig eth0 Link encap:Ethernet HWaddr B8:27:EB:87:67:91 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:89842 errors:0 dropped:0 overruns:0 frame:0 TX packets:89842 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:25639748 (24.4 MiB) TX bytes:25639748 (24.4 MiB) wlan0 Link encap:Ethernet HWaddr B8:27:EB:D2:32:C4 inetRX addr:192.168.43.146 Bcast:192.168.43.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1packets:0 errors:0 dropped:0 overruns:0 frame:0 RXTX packets:440 errors:0 dropped:0 overruns:0 framecarrier:0 TXcollisions:0 packets:103 errorstxqueuelen:1000 RX bytes:0 dropped:0 overruns(0.0 B) TX bytes:0 carrier:0 (0.0 B) lo Link collisions:0 txqueuelen:1000encap:Local Loopback RXinet bytes:4484 (4.3 KiB) TX bytes:10216 (9.9 KiB) |
STEP 5:
check loaded module by using below command
lsmod
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi3-rdk-camera:~# lsmod Moduleaddr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:89842 errors:0 dropped:0 overruns:0 frame:0 Size Used by bcm2835_v4l2 TX packets:89842 errors:0 dropped:0 overruns:0 carrier:0 40563 collisions:0 v4l2_common txqueuelen:1000 RX bytes:25639748 4809(24.4 MiB) 1 bcm2835_v4l2 videobuf2_vmalloc TX bytes:25639748 (24.4 MiB) wlan0 6264Link encap:Ethernet 1 bcm2835_v4l2 videobuf2_memops HWaddr B8:27:EB:D2:32:C4 1528 1 videobuf2_vmalloc videobuf2_v4l2 inet addr:192.168.43.146 12640 1 bcm2835_v4l2 videobuf2_coreBcast:192.168.43.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST 27389 MTU:1500 2 bcm2835_v4l2,videobuf2_v4l2 videodev Metric:1 RX packets:44 errors:0 154457 4 v4l2_common,videobuf2_core,bcm2835_v4l2,videobuf2_v4l2 mediadropped:0 overruns:0 frame:0 TX packets:103 errors:0 dropped:0 overruns:0 carrier:0 23307 1 videodev brcmfmac collisions:0 txqueuelen:1000 258239RX 0 brcmutil bytes:4484 (4.3 KiB) TX bytes:10216 (9.9 KiB) |
STEP 7:
check loaded module by using below command
lsmod
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi3-rdk-camera:~# lsmod Module 7590 1 brcmfmac snd_bcm2835 Size Used by bcm2835_v4l2 21405 0 cfg80211 40563 0 v4l2_common 492836 1 brcmfmac snd_pcm 4809 1 bcm2835_v4l2 videobuf2_vmalloc 798726264 1 sndbcm2835_bcm2835v4l2 rfkillvideobuf2_memops 1528 1 videobuf2_vmalloc videobuf2_v4l2 19936 12640 3 cfg80211 snd_timer 1 bcm2835_v4l2 videobuf2_core 27389 20294 1 snd_pcm snd2 bcm2835_v4l2,videobuf2_v4l2 videodev 154457 52949 3 snd_timer,snd_bcm2835,snd_pcm lirc_rpi4 v4l2_common,videobuf2_core,bcm2835_v4l2,videobuf2_v4l2 media 6840 0 lirc_dev23307 1 videodev brcmfmac 258239 0 brcmutil 75337590 1 lirc_rpibrcmfmac uio_pdrv_genirqsnd_bcm2835 346921405 0 uiocfg80211 492836 1 brcmfmac snd_pcm 8703 1 uio_pdrv_genirq fixed 2876 0 sch_fq_codel 9662 2 ipv6 384101 18 |
STEP 6:
check camera device there or not by using below command
79872 1 snd_bcm2835
rfkill 19936 3 cfg80211
snd_timer 20294 1 snd_pcm
snd 52949 3 snd_timer,snd_bcm2835,snd_pcm
lirc_rpi 6840 0
lirc_dev 7533 1 lirc_rpi
uio_pdrv_genirq 3469 0
uio 8703 1 uio_pdrv_genirq
fixed 2876 0
sch_fq_codel 9662 2
ipv6 384101 18
|
STEP 8:
check camera device there or not by using below command
ls /dev/video0
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi0-rdk-camera:~# ls /dev/video0
/dev/video0 |
STEP 9:
Need to stop below service file to validate gstreamer based live streaming
systemctl stop rms-launcher.service
systemctl stop pipewire-launcher.service
systemctl stop mst-launcher.service
Need to do below changes in config.lua file
vi /usr/local/rms/config/config.lua
Code Block | ||||
---|---|---|---|---|
| ||||
-
+ ]]--
-- RTSP
{
- ip="127.0.0.1",
+ ip="0.0.0.0",
port=5544,
protocol="inboundRtsp",
},
-
+ --[[ |
After stoping those service file, then we need to start/trigger below service and binaries.
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi3-rdk-camera:~# systemctl start mst-launcher |
To start RMS binary , We need to go cd /usr/local/rms/bin directoryls /dev/video0
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi0root@raspberrypi3-rdk-camera:~# lscd /dev/video0 /dev/video0 |
STEP 7:
Check mediastreamer and rms binaries are running or not before RTSP streaming validation.
/usr/local/rms/bin/
root@raspberrypi3-rdk-camera:/usr/local/rms/bin# ./rdkcmediaserver ../config/config.lua & |
Need to check mediastreamer and RMS running status with below commandps -Af | grep media
Code Block | ||||
---|---|---|---|---|
| ||||
root@raspberrypi3-rdk-camera:~# ps -Af | grep media root 2396 197 1 1 13 1015:5730 ? 00:0400:4000 mediastreamer v4l2src root 10072555 1613 1 3 10:57 ? 30 15:31 pts/0 00:00:01:05 ./rdkcmediaserver ../config/config.lua root 109592574 19431613 0 1115:3231 ttyS0pts/0 00:00:00 grep media |
STEP 810:
Enter into the Telnet console with telnet command
...
Code Block | ||||
---|---|---|---|---|
| ||||
listconfig Command entered successfully! Run-time configuration dash: [] hds: [] hls: [] metalistener: [] mss: [] process: [] pull: -- configId: 1 localStreamName: stream2 status: current: description: Streaming uniqueStreamId: 1 uri: sercom://0 push: [] record: [] webrtc: [] |
STEP 911:
At that same telnet console,need to give the below command for RTSP streaming
pushStream uri=rtsp:
//camera_ip
:5544 localStreamName=stream2
Example:
pushStream uri=rtsp:
//192
.168.43.146:5544 localStreamName=stream2
Code Block | ||||
---|---|---|---|---|
| ||||
pushStream uri=rtsp://192.168.43.146:5544 localStreamName=stream2 Command entered successfully! Local stream stream2 enqueued for pushing to rtsp://192.168.43.146:5544 as stream2 configId: 4 forceTcp: false keepAlive: true localStreamName: stream2 targetStreamName: stream2 targetStreamType: live targetUri: fullUri: rtsp://192.168.43.146:5544 port: 5544 scheme: rtsp |
STEP 1012:
On VLC player, for RTSP streaming
...
Note: VLC player available PC and RPI target should run in same network.