Sunday 11 November 2012

Hackberry A10 - XBMC

I spent some time creating a working XBMC image for the Hackberry because of the increased interest generated on the xbmc forum. Firstly a big thanks to numerous contributors (empatzero,rellla,shivansps,gimli) on the xbmc forum for getting the cedar libaries integrated and getting a build-able xbmc for the A10 soc.

The latest compiled version of xbmc is towards the end of this post if just want to download it works on hackberry and should work on any distro with fb support (for non hackberry deployment).

Standard disclaimer at this point, its an unsupported release as there are many untested/non-working features but hopefully gives you a taste of progress or starting point for further improvements. Furthermore there's nothing stopping you getting this running on other A10 devices, at minimum you will need to replace script.bin, uboot and if no ethernet remove this from /etc/network/interfaces otherwise there will be a long delay before you see a command prompt on the screen. Lastly you may also need to replace the kernel.

To start with I took guillaume ubuntu 12.10 (armhf) build and reworked it so that it boots for the Hackberry from an SD card using a 3.0.42+ kernel (revision cbf3d41b7ed513a743854fde1ca0b5c4d0f11610 + my wemac patch). Again thanks to guillaume for such a useful headless build. One of the highlights of this build is that it presents an on screen command console, meaning there is no longer a reliance on ssh for a command shell. The main issue with the build seems to be graphical tearing while editing at the command line, something I can live for now. The build still starts an ssh daemon if you need access through Ethernet (host name is hackberry, try ssh root@hackberry). There's nothing stopping you using the image without xbmc, although it currently it assumes a default resolution of 1280 x 720 which is required by xbmc.

I created an armhf build of xbmc which was compiled on the Hackberry (taking numerous hour to complete, something to leave overnight). I mainly followed the instructions here.

Download the image (its quite large 722Mb) and dd (or equivalent in Windows) to an SD card, the image expands to 4GB but only takes around 2GB and should easily fit on a 4GB card. Repartition the ext3/ext4 partition to make use of the remaining space on your SD card. Instructions to dd the image:

    gunzip
    dd if=xbmc_hackberry.img of=/dev/<device> bs=1M
    sudo sync

You should alter script.bin (on the FAT partition) to contain a different mac address if you intend to use ethernet, more instruction here.

Boot the Hackberry with the newly created SD card and hopefully the command console should appear on your display:

    Ubuntu 12.10 hackberry tty1

    hackberry login :

To logon user/password is root and to start xbmc

    cd /allwinner/xbmc-pvr-binhf/lib 
    xbmc/xbmc.bin

Fingers crossed the xbmc log should appear followed by the main screen. Plug-in a keyboard/mouse to navigate.



Short video to demonstrate how well it runs (unfortunately no sound as I was using a hdmi to vga adapter).



I tried a 1080p video (.mov) which it played without any problems.

To enable audio,  go to setting and cycle through audio adapters and until sound is heard. For me thiss worked for hdmi and also through the hackberry AV port (the socket nearest to the usb ports).

I couldn't exit xmbc using the menu options, 'Power off System' occasionally worked but dropped to the command line. In the end I resorted to ssh'ing and powering down (shutdown -Ph now).

I compiled a new xbmc version based on commits as of  01-12-2012 from empatzero's repo. Main change as per commit log is:

FIXED MPEG4 CODECS: FLV1, WMV2, DIVX4, DIVX4, DIVX5, XVID.

Download xbmc_01_12_2012.tar.gz, which  contains the contents of the allwinner directory and replace with the existing one on the image. Beware the allwinner directory is owned by root on the image. Copy the downloaded tar file to the hackberry and then untar, example below.

    cd /
    tar xvf xbmc_01_12_2012.tar,gz

For those looking to make modifications or build from source, the repository I used is git://github.com/empatzero/xbmca10 along with following the instructions here to a greater extent.

71 comments:

  1. looks almost usable.. how does 1080p files play?

    I want to use i for mele a2000. I am using guillaume image in it.. please can you share youre .deb file?

    best regards,
    Chandan

    ReplyDelete
    Replies
    1. The default GUI resolution is 1280 x 720p and I only tested 720p files. I'll try 1080p. The .deb file currently doesn't contain the contain correct config for armhf and therefore fails to install. For now I suggest to download the image, unpack and take the allwinner directory.

      Delete
    2. Tried a 1080p file (.mov) and plays it without any problems :).

      Delete
    3. http://translate.google.ru/translate?sl=ru&tl=en&js=n&prev=_t&hl=ru&ie=UTF-8&eotf=1&u=http%3A%2F%2F4pda.ru%2Fforum%2Findex.php%3Fshowtopic%3D342683%26view%3Dfindpost%26p%3D18635067

      Delete
  2. Would you add an autostart for xmbc?

    My device only has wifi, so i cant launch xmbc :S

    Thanks, and sorry for my english

    ReplyDelete
    Replies
    1. After booting it displays a normal command console on the screen after which you will need to logon to launch it. There no need for ssh. I'll look into auto starting.

      Delete
    2. Thanks!

      Its working, needs a lot of work, but the ui is faster than other ports that i have tested (amlogic from pivos dev group).

      Delete
    3. Yes, I'm surprised how well it run!.

      Delete
  3. Hi Jas,
    did you leave the source code on the image?
    why not cross-compile on faster ubuntu pc?
    i did build myself xbmc on linaro 12.08
    w/ same env and libs from rellla but playback of some 1080p videos sometimes was sloppy (perhaps related to DTS audio and profiles of video codecs)
    there were pink artifacts all over the screen and macro-blocks.
    Anyways, which codecs run accelerated w/ your version?
    many thanks
    St0rm

    ReplyDelete
    Replies
    1. Initially I attempted to create an image with the source included however the compressed version was 1.9GB too large to upload.

      I ran a quick test with a 1080p MPEG-4 file which played without problems (no pink artefacts yet). Haven't had time to test further yet. If you suggest some files(links) for me to test with then I can try them out.

      Delete
  4. Hi Jas,
    I used your image on my MK802 and it booting without any changed files ( script.bin, uboot). But i have problem with network. In file /etc/network/interfaces i changed eth0 to wlan0 but network does not connect. Can you please advise me what settings i need for my MK802 with wifi adpater working and, next i have usb hub with cable network but when i connect it also it not connect. Sorry for my bad english. Aleš

    ReplyDelete
    Replies
    1. Hi,

      I suggest you first replace script.bin with one for the MK802 this will help ensure the usb ports are correctly configured becuase MK802 only has 1.

      Regarding wifi config that's not too difficult page 4 on this post should help https://www.miniand.com/forums/forums/development--3/topics/headless-ubuntu-llmp-server-image-guide?page=4.

      If the usb hub has a usb-ethernet adapter then its most likely that the kernel module (driver) is not loaded or included in the image.

      Delete
  5. Hi.. I am trying to use your image for mele a2000. I followed your instructions to replace script.bin from guillaume image, but nothing happens.. i don't see any prompt in monitor screen which is connected using vga and i don't see any ip address assigned by my router. any help on how to proceed.
    /Chandan

    ReplyDelete
    Replies
    1. Hi, Mostly likely the uboot needs to be replaced with one for the mele. The other point is that the for xbmc the default resolution is 1280x720 not sure if this is supported in VGA mode. If you have serial port access the console output will show how far booting progressed.

      Delete
  6. I connected the serial port using usb to serial adapter.. i got the following message

    U-Boot SPL 2012.10-04251-g0c38834-dirty (Oct 20 2012 - 15:51:30)
    SUNXI SD/MMC: 0
    spl: mmc blk read err - 0
    ### ERROR ### Please RESET the board ###

    ReplyDelete
  7. finally managed to run your image.. it was problem with the sd card.
    when i try to run xbmc i get kernel panic http://pastebin.com/J69UUBhp

    what does it means?

    ReplyDelete
    Replies
    1. You haven't replaced the uboot correctly, pastebin shows:

      CPU: SUNXI Family
      Board: Hackberry
      I2C: ready
      DRAM: 1 GiB
      MMC: SUNXI SD/MMC: 0

      Its booting for Hackberry with 1GB, which will fail for Mele 512Mb.

      Delete
    2. This comment has been removed by the author.

      Delete
  8. Hi!
    help me please.
    I don't enable network connection. Tell me please how i can change script.bin in windows.
    And i can't see other mounted USB flash with music
    Sorry my english. i know it's bad.

    ReplyDelete
    Replies
    1. To change script.bin in windows look at this link http://www.cnx-software.com/2012/05/06/editing-allwinner-a10-board-configuration-files-script-bin/.

      There seems to be some problems with auto mount in Ubuntu 12.10, you can manually mount the drive in linux 'mount' command.

      Delete
  9. Hi,
    i tried your image and it's so impressive xbmc run so fast in that device; thank you.
    But i have 2 problems:
    - hdmi audio out doesn't work, it seems to not recognize driver
    - x264 movies made myself don't run, it give segmentation fault error
    Something to suggest?

    ReplyDelete
    Replies
    1. You should be able to enable hdmi audio by going to setting and cycle through audio adapters.

      This link may help you out regarding what formats are working or not http://linux-sunxi.org/CedarXVideoRenderingChart. Please update if file formats are not working.

      I'll try to post new builds once new fixes come through.

      Delete
  10. Hi,
    first off all thanks for the fantastic job for all hackbeery users so far. The manual how to start is very easy.
    As my predecessor said the only problem for me is the HDMI audio out. Thnak you :)

    ReplyDelete
    Replies
    1. As previously stated this should work by enabling hdmi audio, go to setting and cycle through audio adapters and sound is heard.

      Delete
  11. I have problem with Mele A2000 V1.7
    LOGS:

    UMP: UMP device driver loaded
    <6>mali: use config clk_div 3
    <6>mali: clk_div 3
    Mali: mali clock set completed, clock is 320000000 Mhz
    <6>mali: use config clk_div 3
    <6>mali: clk_div 3
    Mali: mali clock set completed, clock is 320000000 Mhz

    And hangs, nothing shows, thats all.


    ReplyDelete
  12. Hi Jas
    How to work with pvr.hts addon ,we already try with pre-complied from http://www.dotnetdevelopers.net/XBMC/xbmcpvr.html ,please help Thanks

    ReplyDelete
    Replies
    1. Hi, those pre-compiled addon's won't work as they are not for armhf. You would need to compile yourself or time pending I might try.

      Delete
    2. Thanks Jasbie one more question is possible to compile only pvr addon from https://github.com/opdenkamp/xbmc-pvr-addons/tree/master/addons

      Delete
    3. Hi Jas any update this issue ? Thanks

      Delete
    4. Sorry haven't had time to look at compiling those add ons.

      Delete
    5. Hi Jas Do you have any idea or guide to compile those addons with your image ,we would like to try by our-self if possible ,what do you think ? many Thanks

      Delete
  13. I want to install mali400 but i don't know how to compile a kernel...
    Can I follow this http://linux-sunxi.org/Mali400 without compile any kernel?

    ReplyDelete
    Replies
    1. You should be able to use the instructions on the link. But this is not for XBMC.

      Delete
    2. :/ if I install Linaro it's ok, but I can't compile a Kernel... there is a guide to do that?

      Delete
    3. Compiling a kernel is covered here http://jas-hacks.blogspot.co.uk/2012/10/hackberry-a10-compiling-kernel-armhfs.html

      Delete
  14. Hi,
    first off all thanks for the fantastic job. Have you tried to use XBMC for Android in Hackberry?

    ReplyDelete
    Replies
    1. Hi, haven't had time to try the Android version, too busy trying to get an android image booting from an sdcard ;),

      Delete
  15. This comment has been removed by the author.

    ReplyDelete
  16. Hi Jasbir,

    Thanks for this image, it works well on a MK802 device. But there is only one thing. If I flash the image to the nand with the program PIMP_MY_MELE http://guillaumeplayground.net/pimp-my-mele/ (that you also compile and include in your img file.
    It won't work and the device is not reachable when you restart them after flashing. With the normal original ubuntu source, there is no problem at all.

    Can you explain what i do wrong?

    ReplyDelete
    Replies
    1. I think you possibly may have the wrong uboot, the one in my image expects to boot from SD card. You would need to create a uboot that loads the kernel of the nand partition. I think this is included in guillaume image.

      Delete
    2. Mmmm it won't work. The U-boot is the same from the orginal and xmbc hackberry version (located in /usr/local/pimpmymele/). With the flash command you add the same uboot to the mele nand. Is there anybody who can see with serial connection (on a a10 model with flash memory) what is going wrong?

      Delete
    3. The boot.scr for compiled for uboot with have:

      setenv root '/dev/mmcblk0p2'


      This needs to be changed for nand.

      Delete
  17. Absolutely great job, it's so far the best and most usable and complete image I found !!! it's light for all it gives, it already sees wi-fi and uses nicely the video.
    easy to work with and expand, apt-get is the only thing we need to use.

    Please update this image and keep it new !
    In general I care of ubuntu desktop (kde possibly), and this is a start.

    You're helping so many people, thank you on behalf of all of us.

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. This comment has been removed by the author.

    ReplyDelete
  20. Hello
    A10 hackberry 1g development board is used.
    The product was purchase in May 2012 to 12, jas hack version of this
    Hackberry A10 porting of XBMC for the inquiries will hang up occurs.

    - LOGS -
    <6> mali: use config clk_div 3
    <6> mali: clk_div 3
    Mali: mali clock set completed, clock is 320000000 Mhz
    - Logs -

    Output above, since the kernel hang (hang up) occurring.
    Even if the clock is set to clk_div = 4 mali400 of the same phenomenon and I was wondering if you
    Occurs.

    Tried the 3.0.52 and 3.0.42 + kernel.
    You need a patch, kernel modifications or do I??

    ReplyDelete
  21. Hy Jas. When I try to dd the image on my 32gb sdhc it disappear and I can't use it. Gparted show me unknown file system and I can't extend or modify any partition, so I have to format it anytime. Do you know why? Thanks in advance and sorry for my bad english.

    ReplyDelete
  22. Hi !
    I have GV-17 Android Media Player . I wanted to use XBMC on this device but the mouse and the keyboard is not working and I can't type login / pass .
    It's just not powered up.
    Can you help me ?

    ReplyDelete
  23. I used another script.bin and now it's working . But only one USB and not both of them . Do I have to make any changes in script.bin?

    ReplyDelete
    Replies
    1. Hi there, if you use the script.bin/evb.bin from your GV-17 Android Media Player it should be on the nanda partition, then device should work correctly. If evb.bin then rename to script.bin.

      Delete
  24. Hi jas,
    at first, your image is a great job!!
    Yesterday the hackberry board was deliverd. I tested your image and it works fine.
    But do know why the proc workload is between 80-100% without doing anything? It´s possible to change to screen size of xbmc to 1920X1080? And last but not least! Is the board goot for a DVB-S2 USB Card....?
    Regars. Patrik

    ReplyDelete
    Replies
    1. CPU load is high because we lack graphics H/W acceleration, so currently this is done in software.

      Delete
  25. Hello,
    thanks for your work.
    I'm not a pro on linux, but i could make it work very easy.
    Now I have a problem. Nothing is detected when i conect my usb with movies and music. Do you now what is going on?

    Thanks

    ReplyDelete
    Replies
    1. Hi, your usb device is not detected because there is not auto mount in this build. You can manually mount the drive is fstab or through the command line.

      Delete
  26. I'm unable to decompile image. Script doesn't work on windows without any messages.
    On linux I have:
    tools/split_bootimg.pl xbmc_hackberry.img
    Android Magic not found in xbmc_hackberry.img. Giving up.

    ReplyDelete
    Replies
    1. This is NOT an android image therefore cannot be unpacked. It is a linux build.

      Delete
    2. OK, understand.
      But how to enable internet connection?
      I just try to follow instruction you give but I failed.
      The best sollution for me would be wi-fi connection.

      I'm not pro on linux. But with more details instruction I should gain success ;-).

      Delete
  27. Thanks for the awesome build. Works great except one thing. The resolution is wrong and Im not sure how to change it. The image seems larger than my monitor, it cuts the edges off.

    Ideas?

    ReplyDelete
  28. Hi, fist of all thanks for the great job! Just one question: I'm trying to set up a vpn connection but it says it's missing a kernel module which seems it's not present in the kernel nor in the system to be loaded.
    How's possible to connect via vpn using this image?

    Thanks a lot!

    ReplyDelete
    Replies
    1. First Jas thanks for sharing with as all this.
      I can't understand very well the way to do this.
      In my laptop i running Crunchbang linux from usb stick.
      I insert 16gb sd card and os found it as /dev/mmcblk0p1.
      On terminal if i run gunzip i take
      :~$ gunzip
      gzip: compressed data not read from a terminal. Use -f to force decompression.
      For help, type: gzip -h (????????/)
      Then i run dd if=xbmc_hackberry.img of=/dev/mmcblk0p1 bs=1M
      (this complete ok)
      and then i run sudo sync (ok and here).
      After all that my linux can't see the sd card. And my main os Win7 not recognize the sd any more.
      If insert this sd on hackberry and power up the device is start again with android from nand.
      Inside on android can't see anywhere the sd card.
      Maybe someone explain to my what am doing wrong?
      Thanks...

      Delete
  29. Hi, fist of all thanks for your awesome work. I have an issue with xbmc when I try to play a video (SD and HD). The movie display to too fast, it's like xbmc fastforward the video (2x or 4x).
    I didn't found any simular issues online that's why I'm writting you, maybe you know why it's happen and you can help me.

    Thanks a lot

    ReplyDelete
  30. Hi!
    Thanks for the image. I got this problem, after a while the screen turns black even if nothing is running!
    Is someone experiencing the same issue?
    Thanks!

    ReplyDelete
  31. Installed. It takes a long time to boot (about 2-3 minutes).
    Started XBMC. External hard disk, connected via a powered usb hub, is not visible.
    Angelo

    ReplyDelete
    Replies
    1. Hi, there is no auto mount feature in the ubuntu release therefore you need to add an entry to fstab to mount the drive.

      Delete
  32. Hi,

    I bought one of these http://dx.com/p/mini-android-4-0-google-tv-player-w-wi-fi-lan-512mb-ram-4gb-rom-hdmi-av-white-158472 and I'd like to replace it with XBMC. Do you whether that's possible? If yes, how?

    Thanks!

    ReplyDelete
    Replies
    1. Forgot to mention: I opened it up and it looked like a lot the hackberry.

      Delete
  33. Hi. Does any one have suggestions for the best codecs to use on hackberry? I got audio cutting problems.

    Thanks

    ReplyDelete
  34. Hi I have a question. When I want to boot on your image, linux ask me to enter your password and login, but I can't because my keybord through USB does not work... Is someone got this issue ?
    Thank you a lot for your reply

    ReplyDelete
  35. Where is sudo or su- commands???

    ReplyDelete
  36. Does anyone still have the tar.gz file that they could post somewhere else, please? Miniand's site seems to be down, perhaps permanantly. Thanks!

    ReplyDelete