Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Rockpi4/Ubuntu

< Rockpi4
Revision as of 03:15, 7 June 2022 by Stephen (Talk | contribs)

    ROCK Pi 4 >  Ubuntu

Work with Rock Pi 4 Ubuntu Server

Introduction

The Ubuntu server image for Rock Pi 4 target for minimal, fast and customization.

Create Image

Linux as root or use Etcher in Windows

  gunzip -c rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img.gz | dd of=/dev/mmcblk0

Default username/password

   default username: rock
   default password: rock

rock is sudo user and switch to root can be done with the following command as user rock:

   sudo su

Access from the Host PC/Laptop

Option 1: Serial console

Check Serial Console

Option 2: SSH

SSH server is enabled on port 22 of ROCK Pi 4 default image.

Please use angryip to find your board IP address.

$ ping ip-of-device
$ ssh rock@ip-of-device

Add Radxa APT

Follow the Guide of Radxa APT to add Radxa APT.

We suggest that you add bionic-testing APT Source to get the newest packages.

Network Connection

There are two methods for network connection. One is Ethernet and the other is WIFI.

Ethernet Connection

You can use a network cable (one end connected to the external network port or route) to connect your ROCK Pi 4 to the network. The ROCK Pi 4 will automatically configure the network for your surfing on the Internet.

To test the Ethernet, we need to follow the steps:

  • Switch to super user mode by command
 $ sudo su
  • Check whether the Ethernet is normal by command, ifconfig, which would show us a network card, eth0, and the Ethernet IP address. Also, use tool, ping, to connect to a normal domain.
 $ ifconfig
 $ ping www.baidu.com

WIFI Connection

When there is not a network cable for your ROCK Pi 4 the WIFI connection is another good choice. ROCK Pi 4 supports 2.4G/5G WIFI wireless network.

To test the WIFI performance, we need to follow the steps:
  • Switch to super user mode
 $ sudo su
  • Open the WIFI
 $ nmcli r wifi on
  • Scan WIFI
 $ nmcli dev wifi
  • Connect to WIFI network
 $ nmcli dev wifi connect "wifi_name" password "wifi_password"
  • Test WIFI perpormance by tool iperf.

Bluetooth

Update necessary packages

 $ sudo apt-get update
 $ sudo apt-get install -y rockchip-overlay
 $ sudo apt-get install -y linux-4.4-latest # kernel version(>=4.4.154.100)
 $ sudo apt-get install -y broadcom-wifibt-firmware(>=0.6)

Check bluetooth service

 $ systemctl status bluetooth

Run bluetooth service

 $ systemctl start bluetooth

Check bluetooth device

 $ hciconfig
 hci0:   Type: Primary  Bus: UART
         BD Address: AD:B8:A0:DA:A3:27  ACL MTU: 1021:8  SCO MTU: 64:1
         UP RUNNING 
         RX bytes:7900 acl:35 sco:0 events:387 errors:0
         TX bytes:217746 acl:380 sco:0 commands:102 errors:0

Example: Connect to Bluetooth Speaker

Install pulseaudio packages

 $ sudo apt-get install -y pulseaudio-module-bluetooth pulseaudio

Run pulseaudio, otherwise ROCK Pi 4 will not be able to connect to device.

 $ pulseaudio --start

Connect using bluetoothctl

 $ bluetoothctl
 
 [bluetooth]# default-agent 
 Default agent request successful
 
 [bluetooth]# power on
 Changing power on succeeded
 
 [bluetooth]# scan on
 Discovery started
  
[bluetooth]# trust 77:EC:79:4F:6B:AC
 [CHG] Device 77:EC:79:4F:6B:AC Trusted: yes
 Changing 77:EC:79:4F:6B:AC trust succeeded
 
 [bluetooth]# pair 77:EC:79:4F:6B:AC
 Attempting to pair with 77:EC:79:4F:6B:AC
 [CHG] Device 77:EC:79:4F:6B:AC Connected: yes
 [CHG] Device 77:EC:79:4F:6B:AC UUIDs: 00001101-0000-1000-8000-00805f9b34fb
 [CHG] Device 77:EC:79:4F:6B:AC UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
 [CHG] Device 77:EC:79:4F:6B:AC UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
 [CHG] Device 77:EC:79:4F:6B:AC UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
 [CHG] Device 77:EC:79:4F:6B:AC UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
 [CHG] Device 77:EC:79:4F:6B:AC ServicesResolved: yes
 [CHG] Device 77:EC:79:4F:6B:AC Paired: yes
 Pairing successful
 
 [bluetooth]# connect 77:EC:79:4F:6B:AC
 Attempting to connect to 77:EC:79:4F:6B:AC
 [CHG] Device 77:EC:79:4F:6B:AC Connected: yes
 Connection successful
 [CHG] Device 77:EC:79:4F:6B:AC ServicesResolved: yes

Play songs and enjoy it.

General purpose input-output (GPIO)

Common Hardware Interfaces, I2C, PWM, SPI, UART, etc

The ROCK Pi 4 system images use hw_intfc.conf, provided by the package rockpi4-dtbo, to configure interfaces.

For more details about device tree overlays, see ROCK Pi 4 Device Tree Overlays.

Install essential package

 sudo apt-get install -y rockpi4-dtbo

I2C

Modify file /boot/hw_intfc.conf. Set "on" to enable the optional hardware interfaces while set "off" to disable.

 intfc:i2c2=on
 intfc:i2c6=on
 intfc:i2c7=on

PWM

Modify file /boot/hw_intfc.conf. Set "on" to enable the optional hardware interfaces while set "off" to disable.

 intfc:pwm0=on
 intfc:pwm1=on

SPI

Modify file /boot/hw_intfc.conf. Set "on" to enable the optional hardware interfaces while set "off" to disable.

 intfc:spi1=on
 intfc:spi2=on
 intfc:dtoverlay=devspi1
 intfc:dtoverlay=devspi2

UART

Modify file /boot/hw_intfc.conf. Set "on" to enable the optional hardware interfaces while set "off" to disable.

intfc:uart2=on
intfc:uart4=on

And add "#" to line "intfc:dtoverlay=console-on-ttyS2"

#intfc:dtoverlay=console-on-ttyS2
#intfc:dtoverlay=console-on-ttyS4

Please note that when ROCK Pi 4 uart2 is connected with your devices like Raspberry Pi CAN/RS485 hat sending some data to uart2 on ROCK Pi 4. Please do the following step.

Check the file /boot/extlinux/extlinux.conf. And delete the following line.

menu title select kernel

Debug console

Modify file /boot/hw_intfc.conf. Set ttyS2 as debug console.

Disable UART2

 intfc:uart2=off

And uncomment the following line.

 intfc:dtoverlay=console-on-ttyS2

Use SPI Flash on board

Modify file /boot/hw_intfc.conf. Disable UART4 and enable SPI1. Besides, need to load spi1-flash overlay.

 intfc:uart4=off
 intfc:spi1=on
 intfc:dtoverlay=spi1-flash

Additional software

OpenCV

There are two ways to get OpenCV. One is building OpenCV by yourself (Option one) and the other is installing opencv4.0 package (Option two).

Option 1: Manually build

Build OpenCV by yourself. See Install OpenCV.

Option 2: Install pre-built binaries
Install Ubuntu desktop

To use OpenCV, an OS desktop is necessary. If your ROCK Pi 4 is running Ubuntu but without desktop, you can install Ubuntu mate desktop.

   $ sudo apt install ubuntu-mate-core && sudo apt install ubuntu-mate-desktop
Install all the recommended packages

Required:

   $ sudo apt-get update && sudo apt-get upgrade
   $ sudo apt-get install build-essential
   $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

Recommended optional packages:

   $ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
   $ sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libavresample-dev
   $ sudo apt install tesseract-ocr cmake-data liblept5

Install OpenCV package:

   $ sudo apt-get install opencv4.0
Step 3: Test OpenCV

To check the version of your installed OpenCV, try this:

   rock@linux:~$ python
   Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) 
   [GCC 7.3.0] on linux2
   Type "help", "copyright", "credits" or "license" for more information.
   >>> import cv2
   >>> cv2.__version__
   '4.0.1'
   >>>

Obtain OpenCV sample:

   $ cd ~
   $ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.1.zip
   $ unzip opencv.zip
   
   $ cd ~/opencv-4.0.1/samples/python
   $ python watershed.py

OpenGL ES

Install glmark2
 $ sudo apt update
 $ sudo apt install -y git gcc g++ libpng-dev libjpeg-dev pkg-config libx11-dev libdrm-dev libgbm-dev libgbm1 libudev-dev
 $ mkdir -p /home/rock/work
 $ cd /home/rock/work
 $ git clone https://github.com/glmark2/glmark2.git
 $ ./waf configure --with-flavors=drm-glesv2
 $ ./waf build -j 4
 $ ./waf install
Install mali packages
 $ sudo apt install -y rockchip-mali-midgard14=1.6-2
 $ sudo apt install -y rockchip-mali-midgard-dev=1.6-2
Test OpenGL via glmark2-es2-drm
 $ glmark2-es2-drm
 =======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-T860
    GL_VERSION:    OpenGL ES 3.2 v1.r14p0-01rel0-git(966ed26).f44c85cb3d2ceb87e8be88e7592755c3
=======================================================
[build] use-vbo=false: FPS: 59 FrameTime: 16.949 ms                             
[build] use-vbo=true: FPS: 60 FrameTime: 16.667 ms                              
[texture] texture-filter=nearest: FPS: 60 FrameTime: 16.667 ms                  
[texture] texture-filter=linear: FPS: 60 FrameTime: 16.667 ms                   
[texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.667 ms                   
[shading] shading=gouraud: FPS: 60 FrameTime: 16.667 ms                         
[shading] shading=blinn-phong-inf: FPS: 60 FrameTime: 16.667 ms                 
[shading] shading=phong: FPS: 60 FrameTime: 16.667 ms                           
[shading] shading=cel:^C^V FPS: 60 FrameTime: 16.667 ms
=======================================================
                                  glmark2 Score: 59 
=======================================================

Networking

Since bionic networking has moved to netplan /etc/netplan netplan

Changelogs

2019.11.27

rockpi4b-ubuntu-bionic-minimal-20191127_1942-gpt.img.gz

  • Kernel version updated to linux-4.4.154-95-rockchip-gd2ab1f26e1b3
  • U-Boot version updated to 2017.09-00013-g6d910b7
  • systemd version: 237
  • Support SSH

2019.01.04

rockpi4b-ubuntu-bionic-minimal-20190104_2101-gpt.img.gz

  • Add radxa apt repository in the release image
  • Rockchip hardware overylay are now managed by deb package
  • New DRM hotplug management script fix screen resolution change issue
  • Kernel version updated to linux-4.4.154-59-rockchip-g5e70f14
    • Kernel modules support AppArmor, Docker, WireGuard and UFW
    • Support USB gadget network, see USB Net
    • Support TP-Link UE300 ethernet adapter
    • A lot of kernel features are enabled as modules
  • Uboot version updated to 2017.09-02085-g5a6aeld
    • Support kernel boot menu selection(serial console only)
    • Support device tree directory boot
    • Support manually flash uboot in running system
  • Fix ethernet is not managed by Network Manager issue
  • Kernel package installation automatically adds to the boot menu