Getting the MIPI DBI screen for the Sipeed M1S dock to work on Linux

Image
Background What started out as an activity to clear out unused stuff from my cupboard led on to a small project to get Linux working with the MIPI DBI screen for the Sipeed M1S dock. I first got hold of the Sipeed M1S dock back in December 2022. What tempted me was the rich set of features it supports, all in a really small package -- NPU, WiFi/BT/Zigbee, 3 RISCV cores courtesy of the BL808 SoC from Bouffalo Labs. It was also touted as being able to run Linux owing to one of its RISCV cores having an MMU. Beyond playing around with the SDK and a few examples, I didn't venture further due to poor documentation. Quickly, it went back to a box I've conveniently dedicated for dev boards which were marketed to support all kinds of features but disappointingly lack good documentation and were thus chucked aside until I had more time to mess around. That time finally came, in a period when work has gotten mundane and I needed some mental stimulation. In the process of declutter

PPA for radeon vdpau gallium drivers (Ubuntu 13.04)

Update (Recommended): If you want, you can use Oibaf's ppa as mesa 9.2+ comes with numerous performance gains for the open-source radeon drivers. Just remember to install libg3dvl-mesa for hardware accelerated video playback instead of libvdpau1-gallium-drivers.

Seeing that no one has created deb packages addressing the latest patches with regards to support of VDPAU on the open-source radeon drivers, I have built mesa-9.1.3-6 with these patches and uploaded them to my PPA. This should make is easy for anyone interested in enabling hardware-accelerated video playback without the usual compiling and installing from source which would otherwise mess with files referenced by the default mesa packages on Ubuntu. The following instructions assume you have at least Linux 3.10 installed. Otherwise, download and install them from here.

First off, you would need the latest radeon microcode. Copy all the downloaded bins to /lib/firmware/radeon/.
sudo mv /lib/firmware/{radeon,radeon_bak} # Backup
sudo mkdir /lib/firmware/radeon
sudo cp <path to bins>/*.bin /lib/firmware/radeon/

Once you have done that, enabling hardware-accelerated playback is as simple as typing and executing the following on the command line:
sudo add-apt-repository ppa:mysticalzero/radeon-vdpau-gallium # Add ppa
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install libvdpau1-gallium-drivers vdpauinfo

If everything is installed properly, you should see the following under "Decoder capabilities" upon executing vdpauinfo.
Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                16  9216  2048  1152
MPEG2_SIMPLE         16  9216  2048  1152
MPEG2_MAIN           16  9216  2048  1152
H264_BASELINE        16  9216  2048  1152
H264_MAIN            16  9216  2048  1152
H264_HIGH            16  9216  2048  1152
VC1_SIMPLE           16  9216  2048  1152
VC1_MAIN             16  9216  2048  1152
VC1_ADVANCED         16  9216  2048  1152


Now, try playing back some h264 content on any VDPAU-compatible player (e.g. mplayer -vo vdpau -vc ffh264vdpau <filename>).

Comments

  1. hi,, what about ubuntu 12.04? can i use this way?

    ReplyDelete
    Replies
    1. For 12.04, everything's the same. But you HAVE to use Oibaf's PPA instead of mine.

      Delete
  2. $ dpkg --list | grep vdpau
    ii libvdpau1:amd64 0.4.1-8 amd64 Video Decode and Presentation API for Unix (libraries)
    ii libvdpau1-gallium-drivers:amd64 9.1.3-7ubuntu0.3ppa1~raring1 amd64 VDPAU Gallium3D video acceleration drivers
    ii vdpauinfo 0.0.6-1 amd64 Video Decode and Presentation API for Unix (vdpauinfo utility)

    $ uname -a; cat /etc/lsb-release
    Linux phong 3.10.10-031010-generic #201308291422 SMP Thu Aug 29 18:24:39 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=13.04
    DISTRIB_CODENAME=raring
    DISTRIB_DESCRIPTION="Ubuntu 13.04"

    $ dmesg|grep VERDE
    [ 14.727922] [drm] initializing kernel modesetting (VERDE 0x1002:0x683F 0x1043:0x0459).
    [ 15.149522] [drm] Loading VERDE Microcode

    $ vdpauinfo
    display: :0 screen: 0
    Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
    Error creating VDPAU device: 1

    What am I getting wrong here?

    ReplyDelete
    Replies
    1. The backend selection for the radeonsi vdpau drivers in mesa 9.1.3.x is most likely not implemented properly. I recommend using packages from Oibaf's PPA.

      Delete

Post a Comment