Difference between revisions of "R-Car/Boards/Kingfisher/Yocto-Gen3/v3.21.0"

From eLinux.org
Jump to: navigation, search
m (Build SDK)
(How to test some capabilities)
(11 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
{{TOC right}}
 
{{TOC right}}
 
[[Category:R-Car]]
 
[[Category:R-Car]]
 +
[[Category:R-Car Gen3]]
  
 
== Introduction ==
 
== Introduction ==
Line 14: Line 15:
 
Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported. <br/>
 
Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported. <br/>
  
== Preliminary steps ==
+
== Required packages ==
 
# Download evaluation version of proprietary graphics and multimedia drivers from Renesas.
 
# Download evaluation version of proprietary graphics and multimedia drivers from Renesas.
 
#: To download Multimedia and Graphics library and related Linux drivers, please use the following link:
 
#: To download Multimedia and Graphics library and related Linux drivers, please use the following link:
Line 112: Line 113:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
#: If the build completes successfully, all the necessary files are generated in a following directory:
 
#: If the build completes successfully, all the necessary files are generated in a following directory:
#: <syntaxhighlight lang="text">
+
#:: <syntaxhighlight lang="text">
./build/build/tmp/deploy/images/<target_board_name>
+
./<target_board_name>/build/tmp/deploy/images/<target_board_name>
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 247: Line 248:
 
or
 
or
 
KF_PANEL_MODEL = "AA121TD01"
 
KF_PANEL_MODEL = "AA121TD01"
 +
</syntaxhighlight>
 +
 +
==== Build with CN11 ====
 +
{{Note}}CN11 is available on kigfisher board + R-Car Starter Kit Premier(H3) only.<br/>
 +
CN11 and CN29/48(CMOS/CSI) share the same R-Car SoC pins and CN29/CN48 is used by default.<br/>
 +
In order to use CN11 instead CN29/48(CMOS/CSI), add following option to local.conf:
 +
<syntaxhighlight lang=text>
 +
KF_ENABLE_CN11 = "1"
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 255: Line 264:
 
Refer to [[R-Car/Boards/Yocto-Gen3#Running_Yocto_images |Running Yocto images]] on the Yocto-Gen3 page.</br>
 
Refer to [[R-Car/Boards/Yocto-Gen3#Running_Yocto_images |Running Yocto images]] on the Yocto-Gen3 page.</br>
 
'''[NOTE]'''
 
'''[NOTE]'''
: DTB file for Kingfisher:
+
: DTB filename for Kingfisher contains suffix "-kf".
:: Image-r8a7795-h3ulcb-kf.dtb
+
:: Ex.) r8a7795-h3ulcb-kf.dtb
:: Image-r8a7795-h3ulcb-4x2g-kf.dtb(*)
+
: If you want to know the combinatation of the board and dtb file, please refer to [[R-Car/Boards/Yocto-Gen3-CommonFAQ/Which_dtb_file_is_required_to_boot_linux_on_the_R-Car_Starter_Kit_board_%3F | here]].
:: Image-r8a7796-m3ulcb-kf.dtb
 
: (*) The "4x2g" means DDR8GiB SK board. Refer to [[R-Car/Boards/H3SK#H3SK_has_several_kinds_of_boards| H3 SK variation]].
 
  
 
== S/W support status ==
 
== S/W support status ==
Line 450: Line 457:
 
#: <syntaxhighlight lang="bash">
 
#: <syntaxhighlight lang="bash">
 
$ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=dmabuf ! video/x-raw,format=BGRA,width=1280,height=728,framerate=30/1 ! waylandsink
 
$ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=dmabuf ! video/x-raw,format=BGRA,width=1280,height=728,framerate=30/1 ! waylandsink
 +
</syntaxhighlight>
 +
Ex3) 2 cameras
 +
: <syntaxhighlight lang="bash">
 +
$ killall weston
 +
$ capture -D 2 -F -f rgb32 -L 160 -T 0 -W 960 -H 800 -c 1000 -z
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 478: Line 490:
  
 
==== Multichannel Audio ====
 
==== Multichannel Audio ====
* Ex1) CN12/32 on KF
+
* Ex1) CN12/32/33 on KF
 
*: <syntaxhighlight lang="bash">
 
*: <syntaxhighlight lang="bash">
 
$ speaker-test -c 8 -t wav -W /usr/share/sounds/alsa/
 
$ speaker-test -c 8 -t wav -W /usr/share/sounds/alsa/
 +
$ arecord -c 6 -r 48000 -f S32_LE | aplay
 
</syntaxhighlight>
 
</syntaxhighlight>
 
* Ex2)
 
* Ex2)
Line 561: Line 574:
  
 
==== Radio ====
 
==== Radio ====
ex) FM Radio<br>
+
Ex) FM Radio<br>
 
: If radio module is used for the first time, updating radio module firmware is required.
 
: If radio module is used for the first time, updating radio module firmware is required.
 
: Updating firmware is not required after the second time.
 
: Updating firmware is not required after the second time.
Line 569: Line 582:
 
$ si_fm
 
$ si_fm
 
$ si_preset <FM Radio frequency> ( In Tokyo, Japan, 91600 is Nippon Cultural Broadcasting. )
 
$ si_preset <FM Radio frequency> ( In Tokyo, Japan, 91600 is Nippon Cultural Broadcasting. )
 +
</syntaxhighlight>
 +
 +
==== M.2 ====
 +
Ex) Transcend TS128GMTE850<br>
 +
: <syntaxhighlight lang="text">
 +
$ dmesg|grep nvme<br>
 +
[    1.646158] nvme nvme0: pci function 0000:01:00.0<br>
 +
[    1.650890] nvme 0000:01:00.0: enabling device (0000 -> 0002)<br>
 +
[    2.563406]  nvme0n1: p1 p2<br>
 +
$ mount /dev/nvme0n1p1 /mnt/
 +
</syntaxhighlight>
 +
 +
==== mPCI ====
 +
Ex) Intel 512AN-MMW<br>
 +
: <syntaxhighlight lang="text">
 +
1) Enable the following kernel config.
 +
Device Drivers→ Network device support→ Wireless LAN
 +
  <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
 +
  <M>  Intel Wireless WiFi DVM Firmware support
 +
  <M>  Intel Wireless WiFi MVM Firmware support
 +
</syntaxhighlight>
 +
2) bitbake<br>
 +
3) How to run<br>
 +
: <syntaxhighlight lang="bash">
 +
$ ifconfig wlP1p1s0 up
 +
[  274.370095] iwlwifi 0001:01:00.0: Radio type=0x1-0x2-0x0<br>
 +
[  274.503903] iwlwifi 0001:01:00.0: Radio type=0x1-0x2-0x0<br>
 +
[  274.544834] IPv6: ADDRCONF(NETDEV_UP): wlP1p1s0: link is not ready<br>
 +
$ iwlist wlP1p1s0 scan
 +
wlP1p1s0  Scan completed :
 +
  Cell 01 - Address: xx:xx:xx:xx:xx:xx:
 +
    (snip)
 +
</syntaxhighlight>
 +
 +
 +
==== Video Playback (H.264 decoding) ====
 +
Ex1) Video playback
 +
: <syntaxhighlight lang="bash">
 +
$ gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! waylandsink
 +
</syntaxhighlight>
 +
Ex2) Video playback with audio
 +
: <syntaxhighlight lang="bash">
 +
$ gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux name=demux demux.audio_0 ! queue ! omxaaclcdec ! alsasink demux.video_0 ! queue ! h264parse ! omxh264dec ! waylandsink
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revision as of 17:48, 18 October 2020


Introduction

This page contains information on building and running Yocto on:

Yocto versions

Poky-2.4.3 is supported with Yocto v3.21.0.
Specific commit of meta-openembedded is required.

Host PC

Ubuntu 16.04 LTS (64bit) is recommended as OS. 32bit version is not supported.

Required packages

  1. Download evaluation version of proprietary graphics and multimedia drivers from Renesas.
    To download Multimedia and Graphics library and related Linux drivers, please use the following link:
    https://www.renesas.com/us/en/solutions/automotive/rcar-download/rcar-demoboard.html
    Download two files:
    R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
    R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip

    Graphic drivers are required for Wayland. Multimedia drivers are optional.
  2. Install required packages
    Ubuntu and Debian
    sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
         build-essential chrpath socat libsdl1.2-dev xterm python-crypto cpio python python3 \
         python3-pip python3-pexpect xz-utils debianutils iputils-ping libssl-dev
    
    Fedora
    sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \
         diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \
         ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \
         SDL-devel xterm python-crypto cpio python python3 python3-pip python3-pexpect \
         ghc-lzma-conduit iputils openssl
    
    Refer to Yocto Project Quick Start for more information.

Building the BSP for Kingfisher

Build using script

This example is for Kingfisher with H3ULCB board.
If you use other board, you need to modify the script.

  1. Directory Structure
    |--build.sh
    `--proprietary
       |--R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
       `--R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
    
  2. Build script(build.sh)
    #!/bin/bash
    
    #Set the target board
    TARGET_BOARD=h3ulcb
    #TARGET_BOARD=m3ulcb
    
    # Create a directory and switch to it
    mkdir $TARGET_BOARD
    cd $TARGET_BOARD
    WORK=`pwd`
    echo $WORK
    
    # Clone basic Yocto layers in parallel
    git clone git://git.yoctoproject.org/poky &
    git clone git://git.linaro.org/openembedded/meta-linaro.git &
    git clone git://git.openembedded.org/meta-openembedded &
    git clone git://github.com/renesas-rcar/meta-renesas &
    git clone git://github.com/CogentEmbedded/meta-rcar.git & 
    
    # Wait for all clone operations
    wait
    
    # Switch to proper branches/commits
    cd $WORK/poky
    git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc
    cd $WORK/meta-openembedded
    git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23
    cd $WORK/meta-linaro
    git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885
    cd $WORK/meta-renesas
    git checkout -b tmp 59e8d5674348e2b3d14ac4552231809ab10ab84e # <- updated
    cd $WORK/meta-rcar
    git checkout -b v3.21.0 remotes/origin/v3.21.0
    
    # Populate meta-renesas with proprietary software packages
    cd $WORK/meta-renesas
    sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $WORK/../proprietary
    
    cd $WORK
    source poky/oe-init-build-env $WORK/build
    
    #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/bsp/*.conf ./conf/.
    #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/gfx-only/*.conf ./conf/.
    cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/${TARGET_BOARD}/poky-gcc/mmp/*.conf ./conf/
    
    cd $WORK/build
    cp conf/local-wayland.conf conf/local.conf
    echo 'DISTRO_FEATURES_append = " use_eva_pkg"' >> $WORK/build/conf/local.conf
    
    bitbake-layers add-layer ../meta-rcar/meta-rcar-gen3-adas
    bitbake core-image-weston
    
  3. build
    ./build.sh
    
    If the build completes successfully, all the necessary files are generated in a following directory:
    ./<target_board_name>/build/tmp/deploy/images/<target_board_name>
    

Build using manual steps

  1. Create a directory and switch to it
    Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build.
    mkdir build
    cd build
    export WORK=`pwd`
    
  2. Clone basic Yocto layers:
    cd $WORK
    git clone git://git.yoctoproject.org/poky
    git clone git://git.openembedded.org/meta-openembedded
    git clone git://git.linaro.org/openembedded/meta-linaro.git
    git clone git://github.com/renesas-rcar/meta-renesas
    git clone git://github.com/CogentEmbedded/meta-rcar.git
    
  3. Switch to proper branches/commits (2020/02/20 updated)
    cd $WORK/poky
    git checkout -b tmp 7e7ee662f5dea4d090293045f7498093322802cc
    cd $WORK/meta-openembedded
    git checkout -b tmp 352531015014d1957d6444d114f4451e241c4d23
    cd $WORK/meta-linaro
    git checkout -b tmp 75dfb67bbb14a70cd47afda9726e2e1c76731885
    cd $WORK/meta-renesas
    git checkout -b tmp 59e8d5674348e2b3d14ac4552231809ab10ab84e # <= updated
    cd $WORK/meta-rcar
    git checkout -b v3.21.0 remotes/origin/v3.21.0
    
    Another versions are not tested for compatibility.
    Legacy BSP instruction can be found here R-Car Kingfisher Yocto Gen3 legacy
  4. Download proprietary driver modules to $WORK/proprietary folder
    You should see the following files:
    $ ls -1 $WORK/proprietary/*.zip
    R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20190722.zip
    R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20190722.zip
    
  5. Populate meta-renesas with proprietary software packages.
    export PKGS_DIR=$WORK/proprietary
    cd $WORK/meta-renesas
    sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
    unset PKGS_DIR
    
  6. Setup build environment
    cd $WORK
    source poky/oe-init-build-env $WORK/build
    
  7. Prepare default configuration files.
    # [m3ulcb]
    cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/m3ulcb/poky-gcc/mmp/*.conf ./conf/
    # [h3ulcb]
    # cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/mmp/*.conf ./conf/
    cd $WORK/build
    cp conf/local-wayland.conf conf/local.conf
    
    NOTE: extra configuration examples are available in the following directory:
    $WORK/meta-rcar/meta-rcar-gen3-adas/docs/sample/conf/
    
  8. (Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support)
  9. Edit local.conf with evaluation packages requirements:
    DISTRO_FEATURES_append = " use_eva_pkg"
    
  10. Add layer meta-rcar
    bitbake-layers add-layer ../meta-rcar/meta-rcar-gen3-adas
    
  11. Start the build
    bitbake core-image-weston
    
  12. Building image can take up to a few hours depending on your host system performance.
    After the build has been completed successfully, you should see the output similar to:
    NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded.
    
    and the command prompt should return.
  13. Bitbake has generated all the necessary files in ./tmp/deploy/images directory.
    You can verify its content:
    $ ls -1 `find ./tmp/deploy/images/m3ulcb/ -maxdepth 1 -type l -print`
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.cpio.gz
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.ext4
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.manifest
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.tar.bz2
    ./tmp/deploy/images/m3ulcb/Image
    ./tmp/deploy/images/m3ulcb/Image-m3ulcb.bin
    ./tmp/deploy/images/m3ulcb/Image-r8a7796-m3ulcb-kf.dtb
    ./tmp/deploy/images/m3ulcb/modules-m3ulcb.tgz
    ./tmp/deploy/images/m3ulcb/u-boot.bin
    ./tmp/deploy/images/m3ulcb/u-boot-elf-m3ulcb.srec
    ./tmp/deploy/images/m3ulcb/u-boot-elf.srec
    ./tmp/deploy/images/m3ulcb/u-boot-m3ulcb.bin
    
    Image is a Kernel image, *.dtb is a blob file, core-image-weston-m3ulcb.tar.bz2 is the rootfs, modules-m3ulcb.tgz are kernel modules.
  14. You can now proceed with running Yocto images

Build with MOST

MOST and GPS share the same R-Car SoC pins and GPS is used by default.
In order to use MOST one need to perform h/w modifications on KF board:

- M04, M05
move resistor from R661 -> R660
move resistor from R663 -> R662
- M06
Slide SW7 to "MOST" side.

Build with SD3 (CN47)

SD3 and WIFI share the same R-Car SoC resource and WIFI is used by default.
In order to use SD on CN47 instead WIFI add following option to local.conf:

KF_ENABLE_SD3 = "1"

Build with LVDS panel(CN49)

Yocto v3.13.0 or later supports the following LVDS panels.

BD101LCC1 - Boundary Devices BD101LCC1 1280x800 panels [default]
TX31D200VM0BAA - KOE TX31D200VM0BAA 1280x480 panel
AA104XD12 - Mitsubishi AA104XD12 1024x768 panel
AA121TD01 - Mitsubishi AA121TD01 1280x800 panel

How to select:

Add following option to local.conf:
KF_PANEL_MODEL = "TX31D200VM0BAA"
or
KF_PANEL_MODEL = "AA104XD12"
or
KF_PANEL_MODEL = "AA121TD01"

Build with CN11

Note Note: CN11 is available on kigfisher board + R-Car Starter Kit Premier(H3) only.
CN11 and CN29/48(CMOS/CSI) share the same R-Car SoC pins and CN29/CN48 is used by default.
In order to use CN11 instead CN29/48(CMOS/CSI), add following option to local.conf:

KF_ENABLE_CN11 = "1"

Build SDK

Refer to Build SDK on the Yocto-Gen3 page.

Running Yocto images

Refer to Running Yocto images on the Yocto-Gen3 page.
[NOTE]

DTB filename for Kingfisher contains suffix "-kf".
Ex.) r8a7795-h3ulcb-kf.dtb
If you want to know the combinatation of the board and dtb file, please refer to here.

S/W support status

Support list

Functions Status
WiFi ok
Bluetooth ok
Gyro ok
GPS ok
CAN ok
LVDS Camera(CN10/CN11) ok
CMOS Camera ok
Raspberry Pi camera Rev 1.3 ok
Raspberry Pi camera Rev 2 ok
USB2.0(CN13) Host ok
USB2.0(CN13) Func(g_mass_storage) ok
USB3.0(CN2) Host ok (H3 only)
Multichannel Audio ok
HDMI Out ok
LVDS Out ok
Serial(CN4) ok
Mini PCIe ok
M.2 ok
MOST ok

Note:

"ok" - Function succeeded in the simple test as below.
"NT" - Function wasn't tested

How to test some capabilities

WiFi

To check wifi and scan available WAPs run:

$ ifconfig wlan0 up
$ iwlist wlan0 scan

Bluetooth

Ex 1)To check bluetooth and scan available BT devices run:

$ hciconfig hci0 up
$ hcitool -i hci0 scan

Ex 2)BT-Audio

root@h3ulcb:~# bluetoothctl 
[NEW] Controller C8:DF:84:4C:84:98 h3ulcb [default]
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent     
Default agent request successful
[bluetooth]# scan on
Discovery started
..(snip)..  !!! <-- Please look for taget device !!!
[bluetooth]# scan off
..(snip)..
[bluetooth]# pair <MAC address of target device>
..(snip)..
Request confirmation
[agent] Confirm passkey 285311 (yes/no): yes
..(snip)..
Pairing successful
[bluetooth]# connect <MAC address of target device>
..(snip)..
Connection successful
..(snip)..
[Target device name]# quit

Please play music on target device.

Gyro

$ cat /sys/bus/iio/devices/iio\:device0/*_raw (Accelerometer, Magnetometer)
$ cat /sys/bus/iio/devices/iio\:device1/*_raw (Gyroscope)

GPS

$ cat /dev/ttySC2 # (Yocto v3.x)

CAN

Ex) loop back

Connect the following pins of CN17 and CN18:
CN17 1pin - CN18 1pin
CN17 2pin - CN18 2pin
(*)Note: SW2 ON of KF. (defalt:ON)
$ ip link set can0 up type can bitrate 125000
$ ip link set can1 up type can bitrate 125000
$ candump can0&
$ cangen can1
can0  08D   [3]  B5 F4 3C
can0  34E   [3]  7C A1 70
can0  717   [6]  95 C5 67 4A 41 42
can0  7F1   [8]  CA B9 E9 3E AE 71 FC 52

Serial

Ex) loop back

For KF M03: Connect the following pins on CN4:
pin3(RxD) - pin5(TxD)
pin4(RTS) - pin6(CTS)
For KF M04 or later: Connect the following pins on CN4:
pin2(TxD) - pin4(RxD)
pin1(RTS) - pin3(CTS)
$ stty -F /dev/ttySC3 -echo
$ stty -F /dev/ttySC3
speed 9600 baud; line = 0;
-brkint -imaxbel
-echo
$ cat /dev/ttySC3 &
$ echo  123435452345 > /dev/ttySC3
123435452345

LVDS Camera

  • <GMSL>
    Camera board: GMSL02
    Camera: IMI RDACM21-01 <-- This may be out of stock
    Camera: Leopard Imaging LI-OV10635-GMSL
    Camera: Entron S001A190CM0A (How to get) NEW
  • <FPD Link>
    Camera board: FPDL01
    Camera: IMI RDACM24-01 <-- This may be out of stock

[Note]

H3 can use CN10 and CN11
M3 can use CN10
  • When you use a Leopard Imaging camera, add some parameters to bootargs.
Leopard Imagin camera type name bootargs
LI-OV10635-GMSL ov106xx.dvp_order=0
S001A190CM0A max9286.him=1 max9286.vsync=0 max9286.fsync_period=2420000 max9286.crossbar=0x01234567
(IMI) RDACM21

Ex1)

$ killall weston
$ capture -d /dev/video0 -F -f rgb32 -L 0 -T 0 -W 1280 -H 1080 -c 1000 -z

Ex2)

  1. RDACM21-01/RDACM24-1
    $ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=dmabuf ! video/x-raw,format=BGRA,width=1280,height=1080,framerate=30/1 ! waylandsink
    
  2. LI-OV10635-GMSL
    $ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=dmabuf ! video/x-raw,format=BGRA,width=1280,height=800,framerate=30/1 ! waylandsink
    
  3. S001A190CM0A
    $ gst-launch-1.0 v4l2src device=/dev/video0 io-mode=dmabuf ! video/x-raw,format=BGRA,width=1280,height=728,framerate=30/1 ! waylandsink
    

Ex3) 2 cameras

$ killall weston
$ capture -D 2 -F -f rgb32 -L 160 -T 0 -W 960 -H 800 -c 1000 -z

CMOS Camera

Ex)

$ systemctl stop weston
$ capture -d /dev/video0 -F -f rgb32 -L 0 -T 0 -W 1280 -H 720 -c 1000 -t 60 -z

Raspberry Pi camera Rev 1.3(OV5647) / 2(IMX219)

  • In case of v2(IMX219)
    Add the following option to local.conf:
    KF_ENABLE_IMX219 = "1"
    
  • Ex)
    $ systemctl stop weston                                                                
    $ capture -d /dev/video0 -o -f bggr8 -W 2592 -H 1944 -c 1 -t 30 > video.bggr 
    [ 2475.196942] rcar_csi2 fea80000.csi2: Timeout of reading the PHY clock lane
    [ 2475.203851] rcar_csi2 fea80000.csi2: Timeout of reading the PHY data lane
    
    Ubuntu PC$ ./bayer2rgb  -i video.bggr -o video.rgb24 -w 2592 -v 1944 -b 8 -f BGGR
      * https://github.com/jdthomas/bayer2rgb.git
    Ubuntu PC$ rawtoppm -rgb 2592 1944 video.rgb24 > video24.ppm
    Ubuntu PC$ display video24.ppm
    

Multichannel Audio

  • Ex1) CN12/32/33 on KF
    $ speaker-test -c 8 -t wav -W /usr/share/sounds/alsa/
    $ arecord -c 6 -r 48000 -f S32_LE | aplay
    
  • Ex2)
    <KF>
    $ pactl set-default-sink pcm3168a_output
    $ speaker-test -c 8 -t wav -W /usr/share/sounds/alsa/
    <SK>
    $ pactl set-default-sink ak4613_output 
    $ amixer -c 1 sset "DVC Out" 10%
    $ speaker-test -c 2 -t wav -W /usr/share/sounds/alsa/
    
  • Ex3)
    <KF>
    $ paplay -d pcm3168a_output sample.wav
    <SK>
    $ amixer -c 1 sset "DVC Out" 10%
    $ paplay -d ak4613_output sample.wav
    

MOST

Ex)

  1. Connect OS81092 board(Physical+ Interface Board OS81092) and CN22 of KF.
  2. Connect Audio board(OS81092 Audio Demo Board) and OS819092 board with exclusive cable.
  3. Connect Audio board and CN5 of SK with USB cable.
  4. Run the linux kernel
  5. cd /usr/share/most/
  6. ./most_setup.sh
    $./most_setup.sh 
    --Setting up RX channel with MLB[  217.636328] aim_sound: PCM format is 16-bit stereo
     addr 0x03 (0x06)--
    --S[  217.642675] aim_sound: PCM format is 16-bit stereo
    etting up TX channel wit[  217.649647] aim_sound: PCM format is 16-bit stereo
    h MLB addr 0x04 (0x08)--
    --Setting up TX channel with MLB addr 0x06 (0x0C)--
    --Creating char devices--
    --Creating ALSA devices--
    
  7. ../setup-audio-50 &
    $./setup-audio-50 &
    Configuration:
            Timing Slave (Audio Sink)
    ! ET_NS_MSVAL_ERROR a MSVAL Error is reported from the NS: 0x0010 MSVAL_ERR_STARTUP_FAILED
    MSVAL_E_SHUTDOWN
    App reset
    MSVAL_E_SHUTDOWN
    App reset
    ! ET_NS_MSVAL_ERROR a MSVAL Error is reported from the NS: 0x0011 MSVAL_ERR_STARTUP_BUSY
    ! ET_NS_MSVAL_ERROR a MSVAL Error is reported from the NS: 0x0011 MSVAL_ERR_STARTUP_BUSY
    (snip)
    
  8. Push the "Switch" button on the Audio board
    -> MostAllowRemoteAccess(allow)
    -> SourceInfo.Status 1 (Inst_ID: 0x1, FB: 0x24, Adr: 0x400)
    -> SourceInfo.Status 2 (Inst_ID: 0x1, FB: 0x24, Adr: 0x400)
    -> Amplifier.Volume.Set 100
    
  9. Push the "Switch" button on the Audio board again
    <- FB_AuxIn_Allocate_StartResult Node: 0x01, Ifn: 0x02
    
  10. Push the "Switch" button on the Audio board again
    <- FB_AuxIn_Allocate_StartResult Node: 0x01, Ifn: 0x01
    
  11. ./most_play.sh ${PATH}/hoge.mp3 5
    $./most_play.sh /home/root/hoge.mp3 5
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    Redistribute latency...
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstAudioSinkClock
    

Radio

Ex) FM Radio

If radio module is used for the first time, updating radio module firmware is required.
Updating firmware is not required after the second time.
$ si_init
$ si_firmware_update ( Update firmware of radio module.)
$ si_fm
$ si_preset <FM Radio frequency> ( In Tokyo, Japan, 91600 is Nippon Cultural Broadcasting. )

M.2

Ex) Transcend TS128GMTE850

$ dmesg|grep nvme<br>
[    1.646158] nvme nvme0: pci function 0000:01:00.0<br>
[    1.650890] nvme 0000:01:00.0: enabling device (0000 -> 0002)<br>
[    2.563406]  nvme0n1: p1 p2<br>
$ mount /dev/nvme0n1p1 /mnt/

mPCI

Ex) Intel 512AN-MMW

1) Enable the following kernel config.
 Device Drivers→ Network device support→ Wireless LAN
  <M> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)
  <M>   Intel Wireless WiFi DVM Firmware support 
  <M>   Intel Wireless WiFi MVM Firmware support

2) bitbake
3) How to run

$ ifconfig wlP1p1s0 up
[  274.370095] iwlwifi 0001:01:00.0: Radio type=0x1-0x2-0x0<br>
[  274.503903] iwlwifi 0001:01:00.0: Radio type=0x1-0x2-0x0<br>
[  274.544834] IPv6: ADDRCONF(NETDEV_UP): wlP1p1s0: link is not ready<br>
$ iwlist wlP1p1s0 scan
 wlP1p1s0  Scan completed :
   Cell 01 - Address: xx:xx:xx:xx:xx:xx:
     (snip)


Video Playback (H.264 decoding)

Ex1) Video playback

$ gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! waylandsink

Ex2) Video playback with audio

$ gst-launch-1.0 filesrc location=filename.mp4 ! qtdemux name=demux demux.audio_0 ! queue ! omxaaclcdec ! alsasink demux.video_0 ! queue ! h264parse ! omxh264dec ! waylandsink

Q&A site

http://renesasrulz.com/r-car-h3-m3-cockpit/

FAQ page

https://elinux.org/R-Car/Boards/Yocto-Gen3-CommonFAQ

FAQ

Failed to DRAM initialize (-1).

If you face the following error please update(*) IPL and u-boot to the latest version.

NOTICE:  BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.12
NOTICE:  BL2: PRR is R-Car M3 ES1.0
NOTICE:  BL2: Boot device is HyperFlash(80MHz)
NOTICE:  BL2: LCM state is CM
NOTICE:  BL2: AVS setting succeeded. DVFS_SetVID=0x52
NOTICE:  BL2: DDR3200(rev.0.20)[COLD_BOOT]..1
NOTICE:  BL2: Failed to DRAM initialize (-1).
ERROR:   
ERROR:   BL2: System WDT overflow, occurred address is 0xe630d3cc

(*)How to update

http://elinux.org/R-Car/Boards/Kingfisher#How_to_update_of_Sample_Loader_and_MiniMonitor
http://elinux.org/R-Car/Boards/M3SK#Flashing_firmware
http://elinux.org/R-Car/Boards/H3SK#Flashing_firmware

How to get the SA001 Camera

Refer to R-Car/Boards/Kingfisher#How_to_get_the_SA001_Camera.

Known issues and limitations

  1. Refer to R-Car/Boards/Kingfisher#Known_Issues.