Banana Pi / Arch Linux / Customized Distribution

I was kindly asked if I could build a LXDE distribution based on Arch Linux in the forums. So I built a customized Arch Linux image which is based on the latest ArchLinux for BananaPi image version 1412 (kernel 3.4.103).
The feedback was overwhelming: I received a lot of suggestions, constructive criticism and acknowledgement.

If you are interested in my work, buying my Banana Pi Cookbook using this Amazon Affiliate Link is a great way to support me. Thank you!

Customizations

Beside some minor tools, following software is included in the image:

  • sunxi-tools (fex2bin, bin2fex, etc.)
  • fbturbo
  • lxde
  • yaourt
  • vlc
  • mplayer and smplayer as graphical frontend
  • xbmc (writes direct to frame buffer, no hardware accelerated video)
  • kodi (uses smplayer as external player, hardware accelerated video)
  • firefox
  • chromium
  • w_scan

Moreover I compiled a custom kernel [1][2] based on version 3.4.103 with following modifications:

  • built in support for XFS and experimental btrfs
  • support for DVB-T USB devices with chipset RTL2832U (module rtl2830)
  • set CONFIG_FHANDLE=y in kernel configuration to ensure flawless auto-mounting of external devices on boot

Download

For traffic reasons, I uploaded the images to external hosters.

Release version Release date File size (MB) MD5 Mirrors
5 2015-03-09 1249.47 16169f9078a68ce3a3ee0a1a1ac669e2 Google Drive
4 2015-03-02 1203.13 9b1f5a2ca6d8469bbf895d7e30fedd73 Google Drive
3 2015-02-08 1287.63 36136489167599a740c0943bf56fe23d Google Drive
2 2015-02-06 862.62 45a302bf809b0ef276938f4ec9b934d8 Google Drive
1 2015-01-04 673.08 5e0df3ef4d80dbd53a1d1fb7876f5eeb Google Drive

Installation

After downloading the image, you want to unpack the image on your machine:

tar -xJvf ArchLinux_For_BananaPi_v1412_eldajani.img.tar.xz

Then you flash the image to your SD card. The SD card will be overwritten completely, so please backup the content previously! I assume, your SD card device is /dev/mmcblk0.

sudo umount /dev/mmcblk0*
dd bs=1M if=ArchLinux_For_BananaPi_v1412_eldajani.img of=/dev/mmcblk0

This will take some time. After the writing progress, your SD card is ready to be plugged into the Banana Pi.

Usernames and passwords

I didn’t change the default usernames and passwords from the LeMaker Arch image:

Description Username Password
default user bananapi bananapi
super user root bananapi

Banana Pro


To enable the wifi device on the release version 5, do the following:

sudo cp /media/0CEA-A8B5/devices/script.bin.bananapro /media/0CEA-A8B5/script.bin
sudo systemctl reboot

To configure a wireless connection, please refer to netctl - ArchWiki.

Hardware accelerated video

You should be able to play 1080p videos flawlessly using (s)mplayer and vlc, as both are hardware accelerated using VDPAU.
Since image release 3 kodi 14.1 "helix" is included. As there are still a few problems with the drivers and software, it's not possible to have a flawless experience using the native player from kodi/xbmc for 1080p content.
However I included a configuration, that uses smplayer as the video player for kodi, so that videos up to 1080p are playable from kodi. It's not the best solution, as smplayer is not seamlessly integrateable into kodi, but it's better than native A10 compiled xbmc (which is still included).
So xbmc should also work, but without hardware acceleration. An external player is not usable, as the A10 xbmc version writes directly to the frame buffer. Therefore you might also get problems when exiting xbmc. Then you have to restart the display manager "slim" (sudo systemctl restart slim).

The LEDs

Since release 2 I added the disabling of the green user LED and ethernet LEDs.

You can revert the "heartbeat" of the green LED by editing the fex file [3] using the following configuration in the [leds_para] section:

leds_default_1 = 1
leds_trigger_1 = "heartbeat"

To revert the default behaviour of the ethernet LEDs, just stop and disable my "bpi-ledset" systemd unit:

sudo systemctl stop bpi-ledset
sudo systemctl disable bpi-ledset

Please also note

The desktop environment is LXDE. For file size reasons, I removed xfce4 from the image. However, of course you're free to install and use any desktop environment.

The image is configured to use HDMI as video and audio output. If you want to change the audio output to analog, change the card values from 1 to 0 in /etc/asound.conf.

Please also note that I used the original image size of 4 GB. I recommend using a larger SD card and enlarge the root partition using gparted or the like.

Disclaimer

Although I have compiled this software with utmost care, you will use this software at your own risk. I am not liable for any damage.

Changelog

  • Release 6: 1 June 2015 (latest) TEMPORARY DISABLED!:
    • overall software update
    • add a script "banana-device" to easily activate the Banana Pi/Pro configuration
    • add the chromium browser
    • add wpa_gui for easy wifi configuration on the Banana Pro
    • disable Slim as it has been abandoned, using automatic login to virtual console and shell profile instead
  • Release 5: 9 March 2015:
    • add support for Banana Pro
    • updated and re-compiled kernel including Banana Pro components (using lemaker-3.4-dev branch as upstream)
    • overall software update
    • re-enabled USB OTG as host only (USB powering will be disabled, use the dedicated USB power in instead)
  • Release 4: 2 March 2015:
    • overall software update (including recompiling of fbturbo due to a Xorg server update)
    • slightly overclock from 912 MHz to 1008 MHz
    • disable screen blanking
    • disable USB OTG to lower average sysload
    • add a script cpuinfo, which shows you the current frequency, govenor and temperature (you can see track information using watch cpuinfo)
    • add firefox
    • add GStreamer (including gst-plugins-good, gst-plugins-bad, gst-plugins-ugly and gst-libav)

    Special thanks to "G" for his valuable feedback and improvement suggestions!

  • Release 3: 8 February 2015:
    • overall software update
    • compiled kodi (v14.1 "helix") from source [4] and set smplayer as external player
    • uninstalled xfce4 for file size reasons
  • Release 2: 6 February 2015:
    • overall software update
    • add smplayer (smplayer-qt4) as graphical frontend for mplayer
    • add vlc media player
    • disable green LED via script.fex/script.bin
    • disable ethernet LEDs via bpi_ledset from sqr82 and egamorena
    • disabling DPMS to avoid turning off the display after some idle time, which is reversible via reboot or reset of resolution only
    • enable udisks daemon to auto-mount USB drives conveniently
    • kernel modifications for LeMaker kernel 3.4.103:
      • added built in support for XFS and experimental btrfs
      • added support for DVB-T devices with chipset RTL2832U (module rtl2830)
      • set CONFIG_FHANDLE to "yes" to avoid problems, if auto-mounting SATA device on boot
  • Release 1: 4 January 2015: initial release

References

339 comments:

    1. Add Kodi to LXDE’s autostart using a text editor of your choice. I just use nano.

      “nano /etc/xdg/lxsession/LXDE/autostart”

      Add a line at the bottom that says “@kodi”

      Save and exit. Next time you boot it should autostart.

  1. Dear Ryad,

    I have tried to write the image (release 5) to a sd, which succeeded.
    When I try to power my Banana Pro with the written SD I get no output on the hdmi, the green and red led are signaling on and off.

    Am I forgetting something?

    Greetz,
    Frank

  2. Good afternoon Ryad,

    I’am using a Touchscreen monitor for a navigation system. It is running well on a Raspberry Pi 2 with Raspian. But with my Banana Pi it is not possible to install the drivers because of the Uinput en Evdev are missing in the kernel of Bananian.

    Perhaps I can change to Arch Linux, but I’am not sure if Uinput etc. are available in the Arch version. Recompiling the Bananian kernel seems rather complicated because of all the missing dependencies. Tried make menuconfig, but that does not work.

    Regards,

    Bram

  3. Dear Ryad,

    let me first thank you for this distribution, I think is a great starting point to begin playing with BPI and Arch Linux.

    Could you kindly consider giving me a hand on the following issue?. I’m trying to setup a NFS server, but when starting RPCBIND service, I get the error below:

    From journalctl

    lemaker systemd[1]: Starting RPC bind service…
    lemaker rpcbind[318]: /usr/bin/rpcbind: error while loading shared libraries: libtirpc.so.3: cannot open shared object file: No such file or
    lemaker systemd[1]: rpcbind.service: control process exited, code=exited status=127
    lemaker systemd[1]: Failed to start RPC bind service.
    lemaker systemd[1]: Unit rpcbind.service entered failed state.
    lemaker systemd[1]: rpcbind.service failed.

    From systemctl status

    * rpcbind.service – RPC bind service
    Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: disabled)
    Active: failed (Result: exit-code)
    Process: 318 ExecStart=/usr/bin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=127)

    lemaker rpcbind[318]: /usr/bin/rpcbind: error while loading shared libraries: libtirpc.so.3: cannot open shared object file: No such file or directory
    lemaker systemd[1]: rpcbind.service: control process exited, code=exited status=127
    lemaker systemd[1]: Failed to start RPC bind service.
    lemaker systemd[1]: Unit rpcbind.service entered failed state.
    lemaker systemd[1]: rpcbind.service failed.

    Unfortunately, I’ve found not too much information regarding that issue… Any idea?.

    Many thanks in advance,
    Antiel.

  4. Tried out your v5 image. Some programs won’t start, like Kodi, gparted, monodevelop. Also, when I do pacman -Syu I’m not getting onto the desktop anymore, xinit throws me a “no screens” error

  5. Hi Ryad,

    Thank you very much for your effort, this Arch image plays HD videos out of the box and very smoothly on my Banana Pro.

    The problem I have been having is installing Chromium, I can’t find a package build with GLIBCXX_3.4.20 that is present on the image, every package of chromium I tried (from v. 40 to 47) uses GLIBCXX_3.4.21 and if I try to update it with pacman -Syu other things brake.

    Manual install of pacman -U gcc-libs-4.9.2.-4-armv7h.pkg.tar.xz fails with error (could not satisfy dependencies) :: gcc: requires gcc-libs=4.9.2.-2

    Error chromium gives after I satisfy other dependencies is always
    /usr/lib/libstdc++.so.6: version ‘GLIBCXX_3.4.21’ not found

    Do you have any suggestions how to get chromium working on this Arch image? I need it for a plugin that is not present in Firefox…

    1. Hi,

      I managed to upgrade gcc without messing everything up, though playing videos doesn’t work anymore ๐Ÿ™ I did it with:
      pacman -Syu –ignore filesystem, glibc
      which produced some ssh errors, after that I did
      pacman -Sd binutils gcc gcc-libs )
      and there were still some dependencies to fix, but at least I can start chromium without dependency errors this time – but it doesn’t start for real, it just shows an icon on the taskbar and in console I have the following:

      MESA-LOADER: malformed or no PCI ID
      libgl error: unable to load driver: mali_drm_dri.so
      libgl error: driver pointer missing
      libgl error: failed to load driver: mali_drm

      lsmod shows them loaded..

      Seems to be a rocket science to install chromium on arm ๐Ÿ˜€

      I fixed the ssh error mentioned above and am doing pacman -Syu –ignore filesystem, glibc update again, just have to wait for 321 packets to upgrade, before I can see I failed again ๐Ÿ™‚

      Have a good time and a happy new year!

  6. Hey Ryad,
    Thanks for the awesome customized arch distribution. I use Arch on my laptop and am insanely happy with it, so when I installed the arm arch barebones and couldnt get the wifi to work I was saddened. Luckily I came across your custom distro and without hesitation tried to install the release 5, once again I couldnt get the wifi to work. I then tried out your release number 6, got the wifi up and running and couldn’t be happier. Thanks a ton!

    1. Hi Mickey,

      I’m glad that you’re happy with the image. However, in release 6 the video acceleration is broken. So if you’re using your BPi to watch 1080p content, I can’t fully recommend using this release.

      Kind regards,
      Ryad

  7. Hi Ryad, first I would like to thank you for the Banana Pi Cookbook, I purchased as a Kindle ebook. Great job! And for me, very useful, as I am not a Linux expert!

    I tried your image with Archlinux. Everything is working fine, except KODI! I dont know why! It opens, beut then nothing at all. By the way, I use your release 5. Do you think, there is something wrong from my side? Otherwise, do you recommend another image from your side?

    Thanks by anticipation.

    Best regards.

    Dr Loรฏc KUHLMANN

  8. hi Reyad,
    great awesome work.
    i installed arch linux on banana pro and I had few problems.
    screen resolution is so small and it’s fixed on 1920*1080
    also couldn’t get touch screen calibrated xinput_calibrator wouldn’t work.

    Thanks

  9. Hi Ryad,
    Do you think to study the orange Pi Board ? Because i will be interested by a xbmc distro for OPI or OPI + and it seems to be the same Hw architecture ?

    1. Hello s P,

      at the moment I’m afraid. But I know you’re right regarding the architecture. You can try to use the script.bin from an OPi distro and use it with one of my images. That may work, but I can’t guarantee it ๐Ÿ™‚

      Hope that helps,
      Ryad

Leave a Reply

Your email address will not be published. Required fields are marked *