Sunday, December 1, 2013

OpenSUSE for Rockchip ARM devices



      Going on with the earlier post on creating your own MicroSD with the Linux RFS of your preference, here is the howto for installing OpenSUSE using the usual kernel and modules+firmware.
      Just in case, whatever your stick/box, you can use these very generic 3.0.36+ kernels for RK3066 or RK3188 (only missing internal Wifi).

       In my case I used the excellent Radxa Rock board, equipped with a quad-core RK3188, for the tests and found no problem booting it:

OpenSUSE on Rockchip RK3188 (Radxa Rock board)



     Of course, this has been made possible by OpenSUSE team's commitment to the ARM architecture, since they are one of the few that have put all the necessary efforts to have their distribution compiled for ARM CPUs.

     OpenSUSE's official wiki has one page dedicated to installing on a RK3066 device (MK808 [1]), though it is outdated since, among other things, it uses the old 3.0.8 kernel. However the guide was useful and I wanted to update it here.


Now the procedure, with the same captions as in the original post (for Linaro Ubuntu), for comparison:



Getting an up-to-date official distribution, for ARM
 
     You can check the latest ARM distribution at OpenSUSE by heading to this url:
http://download.opensuse.org/ports/armv7hl/distribution/openSUSE-current/images/

and downloading the "rootfs" suffixed .tbz file, which at the time of writing (Dec 2013) is this one:
http://download.opensuse.org/ports/armv7hl/distribution/openSUSE-current/images/openSUSE-12.3-ARM-XFCE-rootfs.armv7l-1.12.1-Build49.1.tbz




Getting the RFS into the MicroSD card (or flash)

Exactly the very same procedure as in original post, except that steps 4 and 6 are NOT to be done, and step 3 becomes:

3) Extract the downloaded ARM RFS in it:
tar xjfv /home/username/Downloads/openSUSE-12.3-ARM-XFCE-rootfs.armv7l-1.12.1-Build49.1.tbz 


And this last step is necessary (or else the root file system is mounted as read-only, preventing correct boot), open the /mnt/whatever_folder/etc/fstab in your linuxroot and add the following first line:
/dev/root / ext4 defaults,noatime 0 0



Getting a desktop environment

    You already have it. However I've found a problem: upon opening the "Install/Remove Software" you will likely stumble upon this fatal error:

"UI Syntax error. Couldn't load plug-in gtk-pkg. Check the logfile"
Solution is simple [2], open a terminal and type:
su -c "zypper in libyui-gtk-pkg4"
You'll be asked the root's password and the missing package installed, so now you can open the Install Software app.


Enjoy!




References:
[1] http://en.opensuse.org/HCL:MK808
[2] http://forums.opensuse.org/english/get-technical-help-here/applications/487505-opensuse-samsung-arm-chromebook-almost-works.html#post2561668

6 comments:

  1. Hi, this such a nice tutorial! Thanks for the nice details. Could you please make a tutorial for kali linux on radxa rock? Thanks again!
    I think the instruction should be close to these...
    http://docs.kali.org/development/custom-kali-arm-ss808-image
    But I really can't be sure how do to such a thing.

    ReplyDelete
  2. Hi thanks for your great post. But unfortunately, I could figure out which steps to do when I want to flash opensuse to the internal nand flash (I'm a total beginner regarding UNIX etc). Could you please help me?

    ReplyDelete
  3. I wouldn't recommend it because to me it seemed way slowerd than a Class 10 MicroSD card. However, if you want to do it, it's not easy, but G+ user Ian Morrison explains it all in his posts at G+.

    ReplyDelete
  4. Thanks! I got it working on the SD card! But I have some issues with the audio playback. Opensuse doesn't recognize any audio device. Have you had similar issues?

    ReplyDelete
  5. suse 12.3 is honestly too old, why not use 13.1 instead ?

    http://download.opensuse.org/ports/armv7hl/distribution/13.1/appliances/

    ReplyDelete
    Replies
    1. Thanks for the link, you are right. They should update their "openSUSE-current" link to point to 13.1, which is just a couple of days old.

      Delete