Finally a working Linux image for the APC Rock 8950

Bookmark and Share

Linux on APC Rock 8950

For a long time the APC Rock 8950 was a huge disappointment due to no available Linux image for it.
That’s over now – thanks to the nice forum member Hari, who provided a backup of his image and much help in getting it working for me, I’m able to share the image here.

Hari’s blog post about APC Rock: http://www.agocontrol.com/2013/05/very-bad-experience-with-linux-on-via-apc-rock/

———————————————————

Latest version (v2): Debian Wheezy – incl. auto-boot+ethernet fix (2.5 GB): apcrock-4gb.v2.img.zip

This version should auto-boot into Linux, so that no serial connection or modifications of the boot process are necessary. The ethernet problem (occuring in v1 of the image) has been also fixed in this version.

The system will try to get a network IP from your local DHCP server, you can then connect via SSH to it through port 22. Due to missing graphic drivers from Wondermedia, all you will see when plugging in a screen into the boards HDMI or VGA port is the APC logo.

Root password: apc

Known issues: No HDMI+VGA output, possible problems with repartitioning/resizing filesystem

I’m open for suggestions on how to improve the image, so I can repack and reupload improved versions here.

———————————————————

Previous version (v1): Debian Wheezy (2.5 GB): apcrock-4gb.img.bz2
To get this version booting, you’ll need to put this scriptcmd file on the FAT partition of the SD-Card (watch out – some browsers save the file as .txt file instead without extension, as needed). The alternative is to break the auto-boot process by plugging a USB/RS232 3, 3V TTL adapter cable into the debug pins of the board (bottom right). The order I had to use with my cable was black+empty+white+green. You can then connect via tools like e.g. Putty to this serial connection and break the boot process by pressing a key when prompted and then modify the boot options like this:

setenv bootcmd "mmcinit 0; fatload mmc 0:1 0x01000000 uImage 500000; bootm 0x01000000"
setenv bootargs "mem=416M root=/dev/mmcblk0p3 rw rootfstype=ext3 noinitrd mbtotal=76M console=ttyS0,115200n8 rootwait"
saveenv
reset

Should you get problems with the ethernet (Error: “Cannot find device “eth0″ – Bind socket to interface: No such device – Failed to bring up eth0.”), delete the file /etc/udev/rules.d/70-persistent-net.rules and reboot.

Root password: apc

Known issues: No HDMI+VGA output, possible problems with repartitioning/resizing filesystem

Bookmark the permalink.

7 Responses to Finally a working Linux image for the APC Rock 8950

  1. Ajay says:

    I just wish to give a huge thumbs up for the good information you have here on this post. I am also writing blog about daily Linux issues i face. keep well

  2. TK says:

    It doesn’t work for me.. Also – not sure where to look for any logs or error messages to give you a productive feedback. Basically – I copied the img to my SD card using dd command and then booted APC. Can’t see it on my network though.

    Before I’ve tried raspbian from the link here – http://www.raspbian.org/ApricotImages – monitor says “mode not supported”. Unfortunately can’t change resolution because this version doesn’t boot without monitor plugged in…

    anyone had any luck? Really need linux on my apc rock :)

    thanks!
    - TK

    • Dunkel85 says:

      As far as I know there’s no way to have any video support with Linux images on the APC Rock yet.
      Means, you won’t see anything except maybe the APC logo when booting a Linux image.

      What you can still do is
      a) accessing the APC Rock via SSH
      b) accessing the APC Rock via debug terminal (with that USB<>debug cable)

      Both will give you terminal access.

      You mentioned that you can’t see the APC Rock in your network when booting the image from my blog – make sure you have DHCP on your router enabled.
      Possible is also that something went wrong with the flashing process; I’m not an expert with DD, i flashed it on Windows.
      Make sure you flashed it like described in the forum threads, or try flashing it from Windows with w32diskimager if available for you.

      Anyway, if accessing it via SSH refuses to work, you’ll have to connect to your board via debug terminal; then you can manually set the network settings instead of using DHCP.

      Greetings,

      Pete

  3. wbr says:

    Hi, what are the possibilities of building a real-time kernel with Xenomai

    Regards
    wbr

  4. Dawid Rutkowski says:

    Great thanks for this image, it’s a long free ride on the road to Linux on APC Rock:)
    Little remarks:
    1) Please consider changing filename from *.zip to *.gz – it can be quite confusing.
    2) About TK problem – I’ve got the same “no dhcp” issue – it’s because ethernet interface get the name eth1, so you should delete 70-persistent-net.rules from v2 image, too.
    And second thing – to get IPv4 from DHCP you have to boot APC Rock with ethernet cable plugged in. If it’s not plugged in on boot, and you plug it in later, eth0 doesn’t get IPv4 params from dhcp, despite of dhclient running in background.
    3) And second thing related to TK post – dd “flashing” works flawlessly on 4GB SD – even a bit smaller than required.
    Your image is 3965190144B – so it’s still not “whole” 4GB – and my SD is 39048897024B, so the whole image did not fit, but it still boots and works.
    If you prepare v3 image for 4GB SD, please consider one of two wariants:
    - make the whole image a little smaller – eg. 3899999232B (greatest number smaller than 3900000000 and divisible by 1024), so it fits flawlessly on any “4GB” SD
    - change the partition order – put swap partition on the end of disk – it’s much easier to resize swap than ext3.

  5. Dawid Rutkowski says:

    I booted today APC Rock with some sort of mix:
    - original Android kernel from nand flash – Linux 3.0.8, same version as in your debian image
    - filesystem from your debian image
    and it worked – I’ve got access to the framebuffer, display chip also adapts to connected monitor (800*600 in my case).

    Strange thing in kernel from your image is that it has as few drivers as original Android kernel – is this kernel from APC/VIA ?

    And one more thing, maybe someone knows – u-boot on APC Rock has a mysterious command:
    nandrw boot arg1 arg2 arg3 ret
    which seems to be some kid of function which three arguments (arg1, arg2, arg3) and returns value (ret).
    You can find it in printenv, e.g. in boot-nand-ota-normal.
    When this command is put on command line, it returns error.
    But when you put it in variable var1 with setenv and then execute:
    run var1
    it works and loads Linux kernel the way the arguments specify – and it sets variable ret.

    So – what is this command, when can one learn about it ?
    There is no sign of it in help or google :(

  6. Dawid Rutkowski says:

    I hope someone is reading this ;>
    Anyway, I think it’s worth writing for google robots ;)

    APC posted new kernel source – that includes compiled image – on github.com/apc-io.
    This kernel includes graphic driver for console – and at last:
    mplayer -vo fbdev2 tv://
    works on VGA port.
    Booting is simple – just exchange uImage from partition 1 with uzImage.bin from distribution.
    This is exactly the same kernel image as supplied in 1.01.02 rock firmware upgrade.

    So maybe it’s time for v3 image – with new kernel and ethernet and 4GB SD bugs fixed ?

    Ah, and about ‘nandrw boot’ u-boot command – in the package there is albo u-boot source, so I could learn about this command.

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>