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

Difference between revisions of "Rockpi4/Ubuntu"

(2019.01.04)
(Common Hardware Interfaces, I2C, PWM, SPI, UART, etc)
 
(19 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
{{Languages|rockpi4/Ubuntu}}
 
{{Languages|rockpi4/Ubuntu}}
  
 +
    [[rockpi4 | ROCK Pi 4]] > [[rockpi4/Ubuntu | Ubuntu]]
  
 +
__TOC__
  
 +
== Work with Rock Pi 4 Ubuntu Server ==
  
== Work with ROCKPI 4 Ubuntu Server ==
+
=== Introduction ===
 +
The Ubuntu server image for Rock Pi 4 target for minimal, fast and customization.
  
=== Introduction to ROCKPI 4 Ubuntu ===
+
=== Create Image ===
The Ubuntu server image for ROCK Pi 4 target for minimal, fast and customization.
+
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
 +
 +
=== Add Radxa APT ===
 +
 +
Follow the [https://wiki.radxa.com/Rockpi4/radxa-apt#Introduction Guide of Radxa APT] to add Radxa APT.
 +
 +
We suggest that you add '''bionic-testing''' APT Source to get the newest packages.
 +
 +
=== Unminimize the system ===
 +
 +
  sudo unminimize
 +
 +
=== 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
 +
  $ sudp apt-get install -y rockchip-fstab 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.
 +
 +
=== <span id="common_hardware_interface">Common Hardware Interfaces, I2C, PWM, SPI, UART, etc</span> ===
 +
 +
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 [[rockpi4/hardware/devtree_overlays | 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
 +
 +
==== 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
 +
 +
==== 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  [[rockpi4/dev/install-opencv | 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
 +
 +
=== Networking ===
 +
Since bionic networking has moved to [https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-configure-network-settings-in-ubuntu-18-04-bionic-beaver/ netplan] /etc/netplan netplan
  
 
== Changelogs ==
 
== 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====
 
====2019.01.04====

Latest revision as of 04:39, 26 September 2020

    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

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.

Unminimize the system

 sudo unminimize

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
 $ sudp apt-get install -y rockchip-fstab 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.

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

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

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

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