Ubuntu 12.04 Server ARMHF Image for Mele A1000/A2000

I’ve seen quite a few people who want to use the Mele A1000 – or its brother the Mele A2000 – media player as a server (Sacrilege!). Since recent ARM servers are running Ubuntu 12.04, and Tom Gall has (conveniently) posted the live-build config necessary to generate Ubuntu 12.04 Server image this week, I thought I’d give it a try on Mele A1000.

The image generated is a headless system running Apache 2 and sshd (openssh_server). I’ll detail the steps I followed to generate this image first, so if you just want to try the SD card image, scroll down at the end of the post.

The first step is to generate Ubuntu Linaro Server rootfs, by following the Live-Build instructions on Linaro website together with Tom’s live build config. I’ve followed those steps in a machine running Ubuntu 12.04.

Let’s install the required packages:

Configure the build and start the build:

After a while, you’ll get the rootfs with the file name binary-tar.tar.gz which I renamed to ubuntu-server-12.06-armhf.tar.gz . If you want to skip that step, you can download ubuntu-server-12.06-armhf.tar.gz (180 MB).

Now we want to build the hardware packs for Mele A1000 using the server config in order to get as much as memory as possible for Linux. For this purpose, I’ve created a new config (mele-a1000-server) that disables video output in order to increase the memory available for Linux.

First install the scripts:

Then build the hardware packs:

You just find the hardware pack in a patch similar to bld_a10_hwpack_2012.06.21/mele-a1000-server_hwpack_2012.06.21.7z. Here’s the binary which you can also use for another server distribution.

Now you can create an SD card running Ubuntu Server as follows:

At this stage, you’ll need to a serial terminal to use the image, because eth0 is not enabled by default and sshd keys are missing. Let’s complete a few more step so that it can be used with the serial adapter.
Insert the SD card in Mele A1000, connect to the terminal via Putty / Minicom and once you get to the prompt, edit /etc/network/interfaces and add:

The other “issue” is that although sshd is running, it can’t be accessed because the keys haven’t been generated. Running those commands will generate the keys:

or simply run:

That’s all. We now have a (fully?) functional Ubuntu precise server running in Mele A1000 with 435 MB total memory, 106 MB used and 328 MB free:

[Update: It is possible to get the full 512MB memory for Linuxby adding “mem=512M” to extraargs in u-boot. The changes have been committed to github. Here’s the hardware pack for 512MB memory]

As promised at the beginning of the post, here’s the server SD card image (Nearly 1GB 121 MB*) that you can copy to an SD card using dd or Win32DiskImager. As long as you have a DHCP server running on your LAN, you should be able to login to the Mele A1000 via ssh using linaro user with the password linaro.

* After using the command

on the ext4 partition of the SD card, I managed to reduce the compressed size of the SD card image from ~1 GB to ~120 MB!

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus

141 Replies to “Ubuntu 12.04 Server ARMHF Image for Mele A1000/A2000”

  1. hey if the wifi, and gpu can be switched off in the kernel/fex it will make a great low power low cost replacement for my little plugs … hopefully running debian wheezy .. come on A1000 boards arrive at my house soon soon !!!

    As i understand it as it stands the A1000 is pretty useless for anything meaty linux video wise until decent drivers are available .. prob. months away …

  2. Is this platform really practical for a server? What kind of Iperf performance have you seen using ethernet?

  3. It’s amazing no one has yet made a image that burns into the main device memory. A stage that will need to be crossed to gain speed increases.

  4. @ Mark

    The big pitfull is 32bit. No mainstream ARM chip yet 64bit.

    A server running say PHP is nice to have 64bit integers for speed, constants and other computation reasons.

    ARM wont be big in server fields until they are 64bit.

  5. “To use this image, you’ll need to a serial terminal, because eth0 is not enabled by default.”

    Other words you need a device connected to the USB? A UART Dongle some have made or been supplied by Mele reseller.

    Others words if you don’t have an UART Dongle then don’t download this.

  6. @e8hffff

    you can get these for $20 incl shipping from the guy on Aliexpress) from ebay … comes via HK post so far better than china post .. so in my case I paid GBP 1.78 (uk ebay) for the item plus cables incl shipping and it works perfectly (i ordered a couple extra at this price as spares 😉

  7. @ mac me
    The GPU and video output are already disabled in this image, but I kept Wi-Fi. My wild guess is that if you don’t load the WiFi drivers (I load the module at boot time automatically now), WiFi would not use power.

    A more brutal approach would be to unsolder the Wi-Fi module on the board (Close to the IR sensor and LEDs).

  8. @ e8hffff
    For now, I only have one Mele A1000, and I also use Android. So I won’t try that personally yet.
    The image I provide now have a few error messages at boot time. Ubuntu seems to use things like initrd / initramfs and upstart which I’ve never used in other systems I worked on. So the image does not have an initrd right now, and for example ureadahead (use to reduce boot time) fails, as fail as some others process. But after boot, everything seems alright. Still more work is needed.

  9. @ e8hffff
    As I mentioned, at the end of the post, you don’t need the USB to TTL to use the SD card image provided because I enabled networking (eth0) and ssh already. So you just need to find Mele IP address either with Wireshark or your router client list. I’ll update the post to make that more clear.

    On another note, I’ve seen Calxeda processor has 2 UART ports, so I suppose one of those might be used for configuration in the server.

  10. @ Mark

    I’ve done 2 quick tests. a virtual machine (VirtualBox) running Ubuntu and is the Mele.

    iperf -c
    Client connecting to, TCP port 5001
    TCP window size: 16.0 KByte (default)
    [ 3] local port 55037 connected with port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-10.0 sec 63.4 MBytes 53.1 Mbits/sec

    iperf -c
    Client connecting to, TCP port 5001
    TCP window size: 21.0 KByte (default)
    [ 3] local port 58340 connected with port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0-10.0 sec 73.2 MBytes 61.3 Mbits/sec

    There are apparently performance issues with the ethernet driver (Wemac), see https://github.com/amery/linux-allwinner/pull/39.

    Once this is fixed, we could be closer to the 100 Mbits/sec limit.

  11. @ cnxsoft
    Thanks for running those iperf benchmarks. It’s about what I expected. I briefly tested a gigabit USB->ethernet adapter on an A10 tablet and got even lower @ ~25 Mbit/sec.

    How was the CPU usage during your tests? Was it maxed out?

  12. @ Vayu
    Do you mean you added mem=512M in the boot command line and now you have 512MB for Linux?
    There is some reserved memory, so I would be surprised if that works, and the system is stable with that trick. But if it really works reliably that an easy hack, and I’ll add that to github.

  13. @ cnxsoft
    Yes, I did it in kernel config, since I don’t know how to change cmdline in bootloader.


    AFAIK the upper 64M are reserved for MALI GPU, if it is disabled there should be no problem in using them. Still have to test it more extensively.

  14. I found a way with sudo -su passwd to change the root password.

    And now my next question. Is it possible that there no drivers for usb and/or sata in the Image?

    I can’t see my Stick on the usb port and also not my FAT32 formatted Sata-HD in the doc.

    I tried to install samba. It works but no drives where found.

    Thanks in advance

  15. Youre right i use a 2.5 ” Sata drive 160 GB.

    The other mention i can only check later because I am at work now (still for 3h)

  16. Sorry. In the moment is no time for the mele. I watch the European Championchip Germany against Italy

    It don’t loks good for germany.

    We will see us tomorrow

  17. @ Vayu
    I’ve added mem=512M to u-boot and it seems to work fine.
    I’ve run “memtester 512” to check the memory and all tests passed:

    memtester version 4.2.2 (32-bit)
    Copyright (C) 2010 Charles Cazabon.
    Licensed under the GNU General Public License version 2 (only).

    pagesize is 4096
    pagesizemask is 0xfffff000
    want 512MB (536870912 bytes)
    got 466MB (488951808 bytes), trying mlock …locked.
    Loop 1:
    Stuck Address : ok
    Random Value : ok
    Compare XOR : ok
    Compare SUB : ok
    Compare MUL : ok
    Compare DIV : ok
    Compare OR : ok
    Compare AND : ok
    Sequential Increment: ok
    Solid Bits : ok
    Block Sequential : ok
    Checkerboard : ok
    Bit Spread : ok
    Bit Flip : ok
    Walking Ones : ok
    Walking Zeroes : ok
    8-bit Writes : ok
    16-bit Writes : ok

    I’m now at the sixth loop without failure, so I’ve committed the changes to github.

  18. @ cnxsoft
    I have similar experience (I waited 46 iterations).

    It might be useful to completely disable drivers which need reserved memory (and related). Because now Mali reserves memory only implicitly (in boot parameter) and loading the driver is likely to crash the system. G2D seems to be quite broken, because it does not reserve memory at all, while it should take about 16M.


    and all video-output related (maybe I missed some)

  19. @ cnxsoft
    Ah, sorry I missed the custom kernel commit.

    I didn’t have a chance to try it. Though suspect it wont work…

  20. It also might be a good idea to disable some android modules. I disabled these in my config (which is based on yours)
    # CONFIG_ANDROID_LOGGER is not set

    Especially ANDROID_LOW_MEMORY_KILLER is not something anyone would like to see on a server machine.

  21. Hello, I am back again,

    in the interim I have intensely tried my SATA-Hd to run.

    Unfortunately, without success 🙁

    Can somebody maybe help me??

  22. @ GermanNorbert
    Module sw_ahci_platform.ko not loading automatically,
    If you want the module SATA loading automatically then edit /etc/modules and at the sw_ahci_platform in a line.
    But in this case does not always happen automount, and build a new kernel with built-in SATA module, now all ok.
    Sorry for my english.

  23. @ Yury

    I have integrated the module like you have described.
    Also testet libahci and libata.
    Unfortunately, it does not function, nevertheless.

    lsmod indicates the module sw_ahci_platform as loaded, but the harddisk is to be found nowhere.

    fdisk -l dosent show the disk and no entry in /dev

    Has tested 2 harddisks.

    I can not make a new Kernel (Newbe).
    Can this maybe do someone else for me?

    Here is a part from dmesg
    [ 130.610000] ata1: exception Emask 0x10 SAct 0x0 SErr 0x4000000 action 0xe frozen
    [ 130.630000] ata1: irq_stat 0x00000040, connection status changed
    [ 130.640000] ata1: SError: { DevExch }
    [ 130.650000] ata1: limiting SATA link speed to 1.5 Gbps
    [ 130.660000] ata1: hard resetting link
    [ 132.900000] ata1: SATA link down (SStatus 1 SControl 310)
    [ 132.900000] ata1: EH complete

    (This part repeats endless in the syslog)

  24. Hi there

    I’m compiling myself a debian root kernel / fs and it works well. The only problem I have is that I can’t get the 512 MB ram (or maybe less) but I just end up with about 320 MB ram available.

    Could you point out what exactely is needed to change?

  25. hi,

    i have a stable headless (not tested sata yet) debian wheezy armhf running now which i compiled from scratch and have only about 360MB total mem .. i have used my own armhf kernel/rootfs and boot.scr/script.bin

    what do i need to modify to get 512MB RAM or as close to it as possible .. presumably i need to change whats selected/settings in the compilation process ?



  26. @ mac me
    The instructions are above, but if you want to try it, a quick way is to use the hardware pack above as follows:
    ./a1x-media-create.sh /dev/sdb mele-a1000-server_hwpack_2012.06.29.7z norootfs

    The “norootfs” option will not change your existing rootfs (except /etc/modules), on the FAT partition and u-boot.

    Or if you need to customize your kernel config: https://github.com/cnxsoft/a10-config/blob/master/kernel/mele-a1000-server.config

    + https://github.com/cnxsoft/a10-config/blob/master/script.fex/mele-a1000-server.fex

  27. Hi,

    I have the same question as mac me. Yet I would like to run X. Do you have a mele-a1000 config where 512MB are available? I tried to find the correct file yesterday but could not grep to the correct spot. Now I read you edited the server.config. HDMI would be a sweet thing. 🙂

    Greetings, Frank

  28. .. i read from the comments here where there was too’ing and fro’ing over kernel config changes and I wondered if there was a final kernel config fully optimised for the 512mb .. hence my qu.

    .. i did try just just for fun adding the extra mem512MB uboot change but as expected it made no diff

    .. i’ll have a try next at using the mele deb arm hf as a build machine to setup and build hopefully a 512 lean headless setup with the kernel config as guide


  29. I am back again.
    In the interim I have explained a lot of test. But everything without success.
    I need help!!!!!
    By the way, I have several SATA-HDs: Fujitsu, WD, Hitachi and none of them functions.
    In Android they all run!?

  30. @ GermanNorbert
    If so many HDDs fail that’s probably a bug in the kernel then. It could also be a power supply issue, but the 5V/2A power supply provided with the Mele should be enough. Sorry I can’t help as I don’t have a 2.5″ hard drive.

  31. I give up first !!!!!!

    The harddisk is moved back into the cover and connected to the Mele over the USB port.
    So I can share via Samba.

    When something new happens, I’ll try again.

    The next challenge is now, of course, install the SD-Card image on the internal NAND.

    Has there been anyone have experience? Or where there is a tutorial for it?

    Thanks to all

  32. Can you explain better how do I create write the image to a SD card?
    The file you provided is a .bin, when I try to burn it using Win32DiskImager, it doesn’t do anything..
    Do I need to do anything to the .bin file 1st? BTW, I only have Windows to work with..


  33. @CZ
    Hmm.. I extracted the .bin file and I see a .img file there.
    Going to use Win32DiskImager and see if that .img is good!

  34. @CZ Hmm.. I extracted the .bin file and I see a .img file there.
    Going to use Win32DiskImager and see if that .img is good!

    Nope… still can’t write the .img found in the .bin file…

  35. @ CZ
    After you decompress ubuntu-precise-server-linaro-mele-a1000.bin.7z (https://dl.dropbox.com/u/45842273/ubuntu-precise-server-linaro-mele-a1000.bin.7z), you should get a 4 GB image. You should then be able to use that image with Win32DiskImager on a 4GB SD card or larger. Does the Win32DiskImager part succeed? Win32DiskImager should just be a “dumb” tool, in the sense that it does not check the data, it just takes whatever data you provide and writes it to the SD card. The only reason is may fail if if your SD card is too small or is not writable.

  36. @cnxsoft
    Yes, I can decompress the .7z file and I get a .bin file. I can force Win32DiskImager to write the .bin file to a SD card (I’m using a 32GB card), and it finishes OK with no errors. However, I don’t see any files or anything being written into the SDCard (maybe because it’s in EXT and not FAT or NTFS?)
    Then when I try to boot the MeleA2000 with the card, I get no display, and I don’t see any IP in my DHCP server. It seems that the MeleA2000 is just sitting there, not booting up at all..
    Any ideas? Thanks for replying so fast!

  37. @ CZ
    There are 2 partitions: FAT32 and EXT-4, so I think you should be the FAT32 on in Windows. It’s normal, you don’t get any display with that image, since video output is disabled. You could use Wireshark to see if you receive any messages.
    If you had a USB to TTL debug board it would help, but I have the feeling you don’t.

  38. @CZ

    CZ :@cnxsoft
    Well, let me try again soon. I just got my Rasberry Pi, so going to be playing with it for now
    Thanks for your help!

    BTW, I finally got it to work! My MeleA2000 is now an Ubuntu server! Woohoo!

    Thanks for all your help!

  39. I tried the scenario on a freshly installed Ubuntu 12.04 server, 64-bit Athlon…

    first, these packages were missing:
    sudo apt-get install python-software-properties bzr

    but then the “sudo lb build” was running for about an hour, and ended up with:

    Hit http://ports.ubuntu.com precise-security/universe Translation-en
    Hit http://ports.ubuntu.com precise-updates/main Translation-en
    Hit http://ports.ubuntu.com precise-updates/universe Translation-en
    Fetched 1238 kB in 7s (174 kB/s)
    Reading package lists… Done
    P: Installing diversions
    Leaving ‘diversion of /bin/sh to /bin/sh.distrib by dash’
    Leaving ‘diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.1.gz.distrib by dash’
    Reading package lists… Done
    qemu: uncaught target signal 11 (Segmentation fault) – core dumped
    Segmentation fault (core dumped)
    P: Begin unmounting filesystems…
    P: Saving caches…

    the final filesystem was not built…

  40. hi,

    was there a resolution to the sata drive bug ? .. i have the same issue with an old 60GM toshiba 2.5″ that ive been using to test with … unless the mobo limits the power the drive gets (this drive is pretty low power) i cant see it being a power issue (usually if theres a power issue anyway the 2.5 inch drive no longer spins at full speed) .. ive swapped out the sata cable in the mele with 2 different known working ones and still the same error issues .. so maybe a driver issue ?

  41. well, looks like it’s not only my machine that makes the problem.

    every time I start from “mkdir dirforbld”, then “sudo lb build” is stuck in a forefer loop, with the last messages as follows:

    All runlevel operations denied by policy
    invoke-rc.d: policy-rc.d denied execution of stop.

    then I do “sudo lb clean; sudo lb build”, and the procedure finishes successfully.

    So, something is wrong with the scripts.

  42. Hi, it’s me again 🙂
    I got the Server Image working on my A2000 and I updated to the latest Hardware packs using the A1-mediare-create.sh

    Now, I’m trying to create the rootfs myself (I got a Ubuntu 12.04 lts system now). After executing all the steps (including the sudo lb clean), the process finishes, with many warnings, but I don’t see any .tar.gz file. All I see is a chroot directory in the dirforbld folder.

    The last lines of the build process were:
    P: Begin copying chroot…
    P: This may take a while.
    cp: cannot create regular file ‘chroot/usr/bin/./qemu-arm-startic’: Text file busy
    P: Begin unmounting filesystems…
    P: Savings caches..

    Then it ends..

    Any ideas? Thanks !

  43. @CZ

    Hmm.. Never mind, I just re-run again: sudo lb clean, then sudo lb build and this time, no errors.
    I see the binary-tar-tar.gz !!!

  44. @cnxsoft

    Thanks a lot for all your work! I’ll be building my own image soon, once the USB to UART adapter & cables come in.
    I’ve learned a lot so far… not bad for someone who knew very little Linux just a week ago 🙂

  45. @cnxsoft
    thanks, got it working

    the only problem is that when system load is too high, I can t reach the server anymore (sometimes I can still access via samba) and I have to manualky reset the Mele to get it working again

    so I m back with the wired connection now

  46. hi,

    i tried to follow the steps described above.
    i used
    bzr branch lp:~tom-gall/linaro/live-helper.config.precise.server
    cp live-helper.config.precise.server/conf_create.sh .
    sed -i -e “s/bootstrap debootstrap/bootstrap multistrap/” conf_create.sh

    but if i run
    sh ./conf_create.sh
    i get this:

    P: Updating config tree for a ubuntu system
    ./conf_create.sh: 58: ./conf_create.sh: cannot create config/includes/precise/common/boot/filesystem.dir/etc/hostname: Directory nonexistent
    sed: can’t read config/includes/precise/common/boot/filesystem.dir/etc/hosts: No such file or directory

    acutally config/includes is empty!? what’s wrong here? did i miss something?


  47. is it possible to use your a1x-media-create.sh script to create an image file (that can be used with dd later) instead of writing to SD card?

  48. @cnxsoft
    thx, i will give this a try later.

    today i received my a2000 and thanks to your nice work i got it running as server!
    hd works fine as well, however it seems that sata and sd are using the same hardware-interface, IO subsystem or whatever.
    unfortunately there is not much difference between sata and sd speed 🙁
    i used hdparm -tT for testing. this is very sad – if sata is as slow as SD it sort of usesless 🙁 and the nand seems to be even slower.
    well, however you did a nice job! 😉
    you used android kernel for the server – is this correct? is it possible to build normal linux kernel 3.4 or 3.5 for mele or are there any issues (hardware not working because of lack of drivers?) – are there any instructions (links) howto build your own linux kernel for mele?

    again thanks – great work so far!

  49. this may be the reason why SATA works for some people and not for others … would love to get SATA working on my mele so fingers crossed something like this is the reason



    done some testing and quite a trial and error elimination on kernel config and eliminated it as an issue (with my newbie knowledge of kernel config) other than the allwinner sata driver having to be activated ..

    googled quite a bit and interestingly libata/etc had an issue at around kernel 2.6 where hot plug was brought in and caused the same errors with certain drives (WD an example) .. coincidently I have tried a hotplug WD 640MB 2.5 SATA as well and saw the same errors as the old toshiba sata drive ive been using for testing … these issues were dealt with i think on the iMX53 for example by patching libata .. and they state an emergency workaround of depending on which article you read adding libata.force=norst, libata.force=noncq, libata.noacpi=1 to kernel options … I tried to add these to boot.cmd/convert to boot.scr .. but i think probably my lack of knowledge on the format of these commands screwed it up :
    setenv bootargs console=ttyS0 root=/dev/mmcblk0p1 extra ‘rootfstype=ext4 rootwait mem=512M libata.force=norst’
    ext2load mmc 0 0x43000000 boot/script.bin
    ext2load mmc 0 0x48000000 boot/uImage
    bootm 0x48000000

    heres an excerpt of a Mx53 post

    — don’t ask how many times I re-compiled the kernel.

    I did trace the problems I having to the ahci code in the kernel not properly handling an ahci CONINIT event generated by my WD5000BEVT drive. Seems this drive has extra SATA features implemented so that it can be used in hot-plug arrays and these features aren’t recognized by the kernel driver so it just seems to shut down the drive and ignore it. The other SATA drive that I do have working with the kernel doesn’t implement the extra features so the kernel is happy. Presumably these problems were fixed in later kernels and the patches didn’t make it into Freescales branch. On the other hand, the kernel might be fine and the firmware in the drive isn’t conforming to the ahci specs, but I think that wold cause problems with the drive on other systems. I’m going to keep looking into this as I do want to get my 500GB SATA drive working with the iMX53 Quick Start.

    So, if you add the following kernel option during installation and afterwards for every boot, the disk seems to work quite well libata.force=norst

    So here I am .. ive come to the conclusion that its either a duff sata board connection on my mele (i should really see if it works in a stock old mele android to eliminate this) or a libata and/or allwinner sata driver which needs updating to cope with common sata drive commandsets

  50. @me here
    I’m using the default branch of https://github.com/amery/linux-allwinner which is 3.0.39 right now, but they also have a branch for Kernel 3.4 (incomplete) – https://github.com/amery/linux-allwinner/tree/linux-sunxi-3.4.
    Everything is built with scripts: https://github.com/cnxsoft/a10-tools. The one to build the hardware packs (inc kernel and u-boot is: https://github.com/cnxsoft/a10-tools/blob/master/a10-hwpack-bld.sh

    This is now built nightly: http://www.cnx-software.com/2012/07/20/nightly-builds-for-allwinner-a10-u-boot-linux-kernel-and-hardware-packs/

  51. @cnxsoft

    i will try to build my own linux 3.4 kernel soon.
    i think android kernel is a bad choice if you want to run mele as server – it can cause several misc issues running software that is written for linux kernel (i dont remember exactly why, but i read this somewhere)
    what does “incomplete” mean? i read “incomplete/dev” on github as well, but i am new to this stuff. is there any documentation about features that work/do not work with kernel 3.4? how can i check this in advance? or is there only the “issues” section on git?
    i have another stupid question. i know you cannot mix armhf and armel libs/binaries. do i have to build a special armhf kernel or is the kernel independent from this?

  52. @me here
    Kernel 3.0 source code was the one used in Android, but the way it’s build now is just for Linux, and it would not be able to run Android (unless you re-enable the Android stuff in the config and rebuild it.).

    I don’t know what is missing in Kernel 3.4, you could get the issue tracker, ask on the arm-netbook mailist list or IRC.

    I found that it was possible to mix armel kernel / modules with armhf rootfs. But now everything is built using the arm-linux-gnueabihf- toolchain, at least in the nightly build.

  53. @cnxsoft
    android kernel causes issues.
    i just tried to run vlc to test streaming, but vlc thinks i am root even i am not logged in as root and it is not allowed to run vlc as root…
    thus i had to compile a patched version of vlc in order to run it “as root” … i think this is issue is caused by android kernel, never had this issue before. (btw: streaming works nice, but for transcoding the cpu is not strong enough… i wish i could do this with gpu, but i think you can do this only with mali 6xx)

    now i have setup a system do compile my own kernel, but what do i have todo to build an armhf kernel?
    i used this command, but i think it builds armel kernel:
    “make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j3 uImage”
    so i replaced CROSS_COMPILE=arm-linux-gnueabi- with CROSS_COMPILE=arm-linux-gnueabihf-
    but this command does not exists on the squeeze system i have setup in order to compile kernel
    (i followed kernel compile guide @rhombus)
    any help?

  54. I’m trying to get audio working on the server (trying to build a music player for the family room using mpd with a web interface). The server image is working beautifully, but there don’t appear to be any audio drivers. I’ve read through these instructions & taken a look at the config files on github & it looks to me like the audio drivers are disabled in the build – is that correct?

  55. @Dave
    You’re correct audio is disabled in the config. You’d have to enable audio, but not HDMI, if you want to play audio and still keep 512 MB for Linux.

    If you can do with 320 MB Linux memory, use the default Mele A1000 hardware packs in the nightly builds instead of the server one.

  56. @cnxsoft

    Thanks for your feedback. Can you let me know if I’m on the right track with this?

    I used bin2fex to convert the script.bin on my SD card to a .fex file. I changed the “audio_used” value to 1 and used fex2bin to rebuild the script.bin file. I placed that on my SD card and rebooted my Mele. Next, I did an “apt-get –purge remove linux-sound-base alsa-base alsa-utils alsa-tools” and reinstalled the linux-sound-base, alsa-base, and alsa-utils packages.

    I’m still getting an error “no soundcard found” when I try “aplay -l”.

    I’m comfortable administering linux servers, but I’m new to the world of linux audio. I’m sure there’s a step I’m missing somewhere.


  57. Sorry, I posted that before I read your whole reply. I have tried the VGA hardware pack linked to in this post, but with no luck. I used the same process as in my earlier reply (purge old packages & reinstall). Do I need to use a different kernel as well? This is going to be a headless system, so I’m hesitant to use the desktop ubuntu image.

  58. @Dave
    Sorry, I don’t know enough about the audio system. You could try Ubuntu Desktop and see if that works, then see what’s needed to make it work on your headless system.

    If audio does not work on your Mele with Ubuntu desktop, I recommend you ask on arm-netbook, you are more likely to get a useful answer.

  59. @cnxsoft
    hi again,

    first of all using the gpu for transcoding would be really nice, but we need a software that supports it 🙁

    now im am almost ready to build my own kernel and filesystem, but i still have a question concerning the hardware-pack.
    as far as i understand the hardware pack contains the closed source drivers.

    1) where did you download the binaries (i know you have stored them on github, but where is the original source?)
    2) it seems only openGL drivers for mele are close source – am i right?
    3) as i will build my own kernel (linux kernel 3.4 and not android kernel) i wonder if the binaries work at all with linux3.4?
    afaik linux modules must match kernel version – does this apply to the closed source libraries as well or should they work with any kernel?
    4) i assume the closed source binaries are armel and not armhf – right?

    5) for plain server we don’t need a hardware pack at all – unless we could use mali for transcoding – right? 😉

    thanks again for your support – now i just have to wait for my usb adapter to get console

  60. @cnxsoft
    thx again…

    i have already played around with my own kernel (3.4) and it works nice (building wifi modules fails, but at the moment eth0 is ok for me) – i use your filesystem (still waiting for my usb-device to get console.)

    now i have another question:
    your fat partition contains


    i understand that the script.bin is the configuration file for mele device
    and i understand that mele-a1000-server.scr is uboot configuration file

    but in mele-a1000-server.cmd (on git) and in .scr you use this command

    setenv boot.scr ‘if fatload mmc 0 0x44000000 boot.scr || ext2load mmc 0 0x44000000 boot.scr || ext2load mmc 0 0x44000000 boot/boot.scr; then source 0x44000000; fi; true’

    shouldn’t be the file mele-a1000-server.scr renamed to boot.scr in order to get loaded?

  61. @cnxsoft
    well, as i am still waiting for my usb adapter to get console i changed script.bin to get vga:

    screen0_output_type = 4
    screen0_output_mode = 0

    this should give me 1680×1050 vga output, but all i get is a black screen!?
    it seems my tft gets a vga signal, but no visible console…
    switching to vga works with original mele rom – so this is no hardware issue

    any ideas? did i miss something?

  62. @cnxsoft
    first i used my own kernel
    now i used your nightly vga_hwpack (kernel 3.0.39+)

    same issue: my monitor does an autosync, but that’s it – the screen remains black
    i can connect via ssh, so the system is running

  63. @cnxsoft
    hmm, thats bad news
    i tried it with initramfs, other resolutions (as my monitor gets a signal i hoped this would fix the problem)
    is it possible that something may be missing in the kernel or is this more likely a driver issue?

  64. @cnxsoft
    well i have no HDMI port on my monitor, so i have just tested VGA. if you say HDMI works, than it seems that the VGA driver (disp.ko?) is somehow broken or not proper initialized. as is said my monitor gets a VGA signal, but the screen remains black, so maybe it just gets the wrong resolution. i tried to pass vga= argument to kernel with serveral resolutions, but this did not help at all.

    now i am quite familar with building my own kernel filesystem, configs etc. and i found ways around the need of console (mounting+copying required files), but i would really like to get a vga-console output, but i don’t know what else i can do or how to debug this. any ideas are welcome.

  65. First thank you for this great build. It’s exactly that I was looking for.

    I can’t get it to work on the Mele A2000. I put the SD card on the A2000, power on, and it don’t seem to work, at least it’s not making dhcp requests to the router. As I have no console access, I can’t do more. Is it possible that the Ethernet hardware is different on the A2000 than the A1000? I tried an ubuntu desktop build with VGA (made for the A1000), and it starts but says no ethernet.

    Thanks in advance for any help.

  66. @pamplina
    AFAIK the hardware on Mele A1000 & Mele A2000 is the same. So it should work. It’s difficult to know what’s going on without serial interface.

    Just to make sure, you did decompress the image after download before dumping it to the SD card, right?

  67. @cnxsoft
    Yes, I got a big file “ubuntu-precise-server-linaro-mele-a1000.bin” with 3.7 GB, transferred it to the 4 GB SD card with Win32DiskImager, and then tried to boot the A2000 with that card. The device don’t do anything, even the ethernet lights don’t blink, nor the router receives request.
    This night I will try to redo the card with the makeSD script, that seems to be more precise than the disk imager.
    Thanks for your help.

  68. I found in a forum (http://forum.doozan.com/read.php?6,9527) that there’s a 1.7 version of the A2000 that can’t be boot with the regular uboot. It seems that mine is 1.7.
    I got from there the sun4i-spl.bin and u-boot.bin for the 1.7, but now I have a long road until I could rebuild it all. It seems so much tricky

  69. @cnxsoft
    I was thinking the same, but I don’t know what the offsets are. I tried to dd the new .bin files with the same offsets as stated in the a1x-media-create.sh script, that are:

    sudo dd if=sun4i-spl.bin bs=1024 of=/dev/sdb seek=8
    sudo dd if=u-boot.bin bs=1024 of=/dev/sdb seek=32

    The result is that the device ignore the SD and boot on Android.

    By the way, what serial cable/software do you recommend to obtain a terminal window on the PC? Is it RS-232 or USB?

  70. @pamplina
    Even when I have a correct SD card, Mele will sometimes boot to Android, I just touch the SD card a bit, and can restart in Linux. I’m not sure if this is a timing issue in the bootROM of the CPU, or bad contacts. I suspect the former because the SD always works in Android.

    I’m using this serial cable: http://goo.gl/EAfZz. (Which is not available in this shop anymore, but there are plenty on the Internet). In Windows, I use Putty which I find much better than Hyperterminal.

  71. I tried different .bin files from several hwpacks sets, but still don’t work. I’ve ordered the serial cable, I hope it will help when I have it.

  72. I finally managed to boot with the Ubuntu Lucid image from this page:


    This system boots perfect, except some details:
    – It uses the HDMI output, and I would prefer the VGA (as my HDMI port is usually busy with the PS3 🙂
    – The screen size is bigger than my TV, so I can’t see the menus on the desktop
    – The network don’t work (not ethernet nor wifi) (major problem!!)

    Any tips to hack the image and change this settings?

  73. @pamplina
    The solution for networking and VGA (ugly hack) is here:

    For VGA, you could also try to change script.bin or mele.bin (whatever it is called in the image) to enable VGA. Make sure to backup the original script file. See: https://github.com/cnxsoft/a10-config/blob/master/script.fex/mele-a1000-vga.fex for config for Mele with VGA.

    Short “tutorial” to use the tools to convert fex to bin: http://www.cnx-software.com/2012/05/06/editing-allwinner-a10-board-configuration-files-script-bin/

    The problem with the screen size is due to overscan. You’d have to adjust your TV settings (if possible). Otherwise some videomodes file may need to be changed. You won’t have this problem with VGA.

    Have fun.

  74. Thank you for the info.
    My primary goal is still to use the server system described in this page. The VGA, screen size, etc. is secondary for me. The networking is the major issue.
    I will try to merge both images, i.e. the boot section from the lucid image and the rest from the precise server image.
    At least I will try it, before I receive the serial cable and proceed to the ugly hacks. 🙂

  75. Finally I managed to boot this ubuntu server! Yeah!
    I keep the image untouched and at some point it decided to boot and get IP. I don’t know why. I think that all the issue was that the system works only one of every 5 or 6 tries, so is some sort of random problem. It was confusing me.
    I’ve done several reboots and it works (or doesn’t work) eventually.
    I will do more tests when I have the serial cable.
    Thanks for all the support.

  76. This server changes etherhet’s MAC address every reboot. My router changes the assigned IP and it’s a mess for me. How can I set up a static MAC?

  77. @pamplina
    You can use a spoof MAC in /etc/network/interfaces like you did, but normally you’d just edit script.bin to set the MAC. It’s set to “00:00:00:00:00:00” now it’s just just automatic/random at boot time.

  78. @cnxsoft
    by adding several config files i managed to run linaro 13.02 (as i am running a headless server i did not installed the hardware pack), however the old way to build the base system was imho better as it was possible to select packages. using the prebuild system requires to uninstall stuff you dont want (like apache and mysql – running those apps on single core is no good idea…) and installing ssh-server (so serial connection is required)
    – i did not try the usual way to upgrade ubuntu to a higher version – does work as well with linaro?
    (did not found any howtos to upgrade linaro)

  79. @cnxsoft
    ok, i will check the nano images next time

    with upgrading i do not mean upgrading packages (apt-get upgrade) – i mean ‘do-release-upgrade’ – if this works with linaro it would be much easier instead of reinstalling. i have not tested this as i did not want to break my running system so it would be interesting if anybody tried this with this image or any other linaro systemn and performed a successful release upgrade

  80. Hi, guys. I have Mele A2000G – it’s mele A2000 with 1024Mb RAM. Involved only 512 MB 🙁 How to use the entire RAM

  81. Hi. I’m planning to install a new Mele A2000 firmware to update android system. My question is: Installing a new firmware can break the loading of the Ubuntu system from SD?

  82. @cnxsoft
    Many thanks. I was almost sure that it won’t break, but is good to confirm.
    I have so many services running in the ubuntu server that I can’t live without it. The Mele A2000 is a rock and it’s running for years 24×7 without a faint. Wow!

Leave a Reply

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

Khadas VIM4 SBC
Khadas VIM4 SBC