BD-Blog-Graphic-Ubuntu

Ubuntu Jammy Jellyfish 22.04 LTS Weston/Wayland Compositor Ubuntu Jammy Jellyfish 22.04 LTS Weston/Wayland Compositor

Boundary Devices is proud to release our new Ubuntu Jammy image for our Tungsten700 SMARC board!

This image uses Weston which is the reference Wayland compositor.

This image boots up the Weston compositor at start. This can be changed by disabling the service autostart, as described later in this post.

This system contains MediaTek licensed content, so you will need to register on our website and log in before you can accept the license agreement and download the Ubuntu Jammy images for Tungsten700 SMARC from here:

Programming the image

The downloaded .zip archive includes all the files to be flashed using fastboot.

You can extract it in the following way:

~$ cd && unzip 20240111-tungsten700-v23.1-jammy-en_US-console-weston_aarch64.zip && cd flash-images

First you need to enter fastboot mode from U-Boot prompt on the Tungsten700 SMARC board:

=> fastboot 0

If you are unable to get into fastboot mode from U-Boot, you can follow this blog to recover your Tungsten700 SMARC.

The next step is flash bl2.img to mmc0boot0 partition.

Type this on your Linux PC:

~/flash-images$ fastboot flash mmc0boot0 bl2.img

Then flash the wic.img to mmc0 partition:

~/flash-images$ fastboot flash mmc0 20240111-tungsten700-v23.1-jammy-en_US-console-weston_aarch64.rootfs.wic.img

Usernames and passwords

We predefined two users for use on the system: ubuntu and root. The password for each is Boundary (capital B). The user ubuntu has administrator rights, but you don’t need to enter password at sudo command.

We wanted to make your life easier at the cost of some security, but if you want to change that please type:

ubuntu@jammy-g700-v23.1:~$ sudo visudo

Then comment out or delete the last line with “ubuntu” and “NOPASSWD:”

An ssh server is running on the system, though it does not allow password-based authentication for user root.

User ubuntu has sudo privileges, so you can place your ssh public key (normally $HOME/.ssh/id_rsa.pub) to the system like so :

ubuntu@jammy-g700-v23.1:~$ sudo mkdir /root/.ssh
ubuntu@jammy-g700-v23.1:~$ sudo nano /root/.ssh/authorized_keys
... paste content of $HOME/.ssh/id_rsa.pub here
ubuntu@jammy-g700-v23.1:~$ sudo chmod 600 /root/.ssh/auth*
ubuntu@jammy-g700-v23.1:~$ sudo chmod 600 /root/.ssh/

What’s Supported?

Since the images above include our stable 5.15.x kernel, essentially everything is supported, including:

  • Mali G-57 GPU accelerations for Wayland
  • The Video Processing Unit supports the following decoders:
    • video/x-h265
    • video/x-vp9
    • video/x-h264
    • video/x-vp8
    • video/mpeg
    • image/jpeg (for mjpeg)
    • video/x-raw
  • Sona MT320 WiFi/BT module
  • All kind of storage devices , eMMC, SATA hdd (via USB3-SATA adapter), USB3.0/2.0 pen drives, mini PCIe devices, cell modems
  • All of our supported touch panels

The packaging (including kernel) is done in the normal ubuntu way, so apt-get update/dist-upgrade will keep your image up and running as the latest as patches come out.

What are the main components in this release?

The Linux kernel is 5.15.42 ( meta-package name: linux-boundary-23j1 ).

GPU driver is mali-gpu-driver 43p0.genio23.1.2.

The distribution is Ubuntu Jammy 22.04.3 LTS . Here are some main component versions of these Ubuntu Jammy images for Tungsten700 SMARC:

  • gstreamer1.0 1.20.3
  • bluez 5.64-0ubuntu1
  • Qt 5.15.3+dfsg-2
  • apt 2.4.11
  • dpkg 1.21.1ubuntu2.1
  • gcc/g++ 11.2.0
  • libwayland 1.20.0-1
  • weston 11.0.0-1

Network Manager

This Ubuntu Jammy image comes with Network Manager by default in order to ease the Wi-Fi setup.

ubuntu@jammy-g700-v23.1:~$ nmcli radio wifi on
ubuntu@jammy-g700-v23.1:~$ nmcli d wifi list
IN-USE  BSSID              SSID             MODE   CHAN  RATE        SIGNAL  BA>
        A4:3E:51:08:54:F5  Jabu             Infra  1     130 Mbit/s  62      ▂▄>
        A4:3E:51:08:54:F6  Jabu_5GHz        Infra  36    405 Mbit/s  57      ▂▄>

ubuntu@jammy-g700-v23.1:~$ sudo nmcli d wifi connect Jabu_5GHz password XXXXXX
Device 'wlan0' successfully activated with '4ed596ea-9f8c-48ea-8e0e-5e190e2fecc9'.
ubuntu@jammy-g700-v23.1:~$ ifconfig wlan0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.61  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::2ae4:f7d2:3cc1:486d  prefixlen 64  scopeid 0x20
        inet6 2a01:cb00:f55:7f00:3122:4891:67c4:faa7  prefixlen 64  scopeid 0x0
        inet6 2a01:cb00:f55:7f00:6c92:60ad:c2ad:68cc  prefixlen 64  scopeid 0x0
        ether 08:3a:88:20:78:cc  txqueuelen 3000  (Ethernet)
        RX packets 67  bytes 7854 (7.8 KB)
        RX errors 0  dropped 9  overruns 0  frame 0
        TX packets 69  bytes 7666 (7.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

This allows you to use Wi-Fi right out of the box without any extra setup required.

Playing Hobbit Trailer from internet Playing Hobbit Trailer from internet

Playing Panasonic UHD Demo fullscreen 4k60p Playing Panasonic UHD Demo fullscreen 4k60p

Playing LG OLED UHD Demo 4k60p from internet Playing LG OLED UHD Demo 4k60p from internet

Running NeuroPilot engine benchmark Running NeuroPilot engine benchmark

Streaming Zaitochi vs. Predator video from Youtube Streaming Zaitochi vs. Predator video from Youtube

Running Genio700 Linux Test Running Genio700 Linux Test

Running Machine Learning Test Running Machine Learning Test

As mentioned before, the system boots to Weston Compositor.

If you don’t want to start Weston at boot automatically, you have to disable the service, you have to type the following:

ubuntu@jammy-g700-v23.1:~$ sudo systemctl disable weston.service
ubuntu@jammy-g700-v23.1:~$ sudo systemctl mask weston.service

If you want to enable the autostart again you need to type:

ubuntu@jammy-g700-v23.1:~$ sudo systemctl unmask weston.service
ubuntu@jammy-g700-v23.1:~$ sudo systemctl enable weston.service

You can find the weston.ini file in the /home/ubuntu/weston directory. Please type:

ubuntu@jammy-g700-v23.1:~$ man weston.ini

Check the options and feel free to modify it to suit your needs.

If you disabled Weston Service, you’ll boot to the Bash Shell. Still you can start Weston manually anytime with the following command:

ubuntu@jammy-g700-v23.1:~$ wl

… where the wl alias is defined as follows:

ubuntu@jammy-g700-v23.1:~$ alias | grep wl
alias wl='if [ "x$(ps h -C weston)" != "x" ] ; then echo "weston is already running."; else sudo rm -f /run/seatd.sock && seatd-launch -- weston --log=${HOME}/weston/weston.log --config=${HOME}/weston/weston.ini; fi '

You can run weston from the virtual terminal or an SSH terminal as well. The weston-launch command was deprecated and removed, you can use seatd-launch instead.

Weston keyboard bindings

The Weston desktop shell has a number of keyboard shortcuts. They are listed here.

Almost all keyboard shortcuts for Weston include a specified modifier mod key which is determined in the file weston.ini (5): [shell] binding-modifier={none | ctrl | alt | super}

The mod key is the same as the super key by default.

The super key is in between ‹Left Ctrl› and ‹Left Alt›, usually a ‹Windows› key.

mod + Shift + F

Make active window fullscreen

mod + K

Kill active window

mod + Shift + M

Maximize active window

mod + PageUp, mod + PageDown

Zoom desktop in (or out)

mod + Tab

Switch active window

mod + Up, mod + Down

Increment/decrement active workspace number, if there are multiple

mod + Shift + Up, mod + Shift + Down

Move active window to the succeeding/preceding workspace, if possible

mod + F1/F2/F3/F4/F5/F6

Jump to the numbered workspace, if it exists

Ctrl + Alt + Backspace

If supported, terminate Weston. (Note this combination often is used to hard restart Xorg.)

Ctrl + Alt + F

Toggle if Weston is fullscreen; only works when nested under a Wayland compositor

Ctrl + Alt + S

Share output screen, if possible

Ctrl + Alt + F1/F2/F3/F4/F5/F6/F7/F8

Switch virtual terminal, if possible

super + S

Make a screenshot of the desktop

super + R

Start or stop recording video of the desktop

Weston touch / mouse bindings

There are also a number of bindings involving a mouse:

‹Touch›, ‹Left button›, ‹Right button›

Activate clicked window

super + Alt + ‹Vertical scroll›

Change the opacity of a window

mod + ‹Vertical scroll›

Zoom/magnify the visible desktop

mod + ‹Left button›

Click and drag to move a window

mod + Shift + ‹Left button›, mod + ‹Right button›, mod + ‹Touch›

Click and drag to resize a window

mod + ‹Middle button›

Rotate the window (if supported)