Media player done

I've built the media player - Xine - for Fatdog Arm, along with all the usual codecs etc. It plays SD video nicely upscaled to 720p, though I do notice some hesitation and a little stuttering on the more complex scenes. HD video not so good, the lag and frame drop is very noticeable. Please note that this is purely software rendering (using hardfloat and in some cases NEON optimisation); the A10 video acceleration is not used at all. All in all - not so bad for something that uses only 2 watts.

This is the final software package I planned for Fatdog Arm, after this I'm going to look at package management and Fatdog system scripts.

And one more thing - I bought a tablet for my mum which happens to use A10. I managed to boot that tablet - linux console and all - from the same boot image that I've been using for Mele (only changing the script.bin!). How exciting! I should attach a photo of that here.

Posted on 13 Aug 2013, 23:41 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

FatdogArm progress

Fatdog Arm reaches another milestone today, with most of the applications planned for it ready: abiword, gnumeric, web browser (seamonkey en-GB), osmo, evince, calcoo, gftp, and openssh. The only major thing left is the media player and package management (and may be a few others while I'm at it).

I've also updated another relatively minor article about building applications in case you are interested.

Posted on 11 Aug 2013, 5:48 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

Building the toolchain article

While waiting for the Seamonkey browser to finish its compilation (a process that takes about 15 hours), I've decided to write the article about building your own toolchain from scratch - not using Aboriginal's or Linaro', and it is now online here.

The entire NativeCompiler build on ARM took me more than 2 days. The entire build of that my own cross-and-native compiler build takes a tad more than 2 hours. Which makes Aboriginal's qemu+ditscc method becomes more and more appealing everyday.

Posted on 6 Aug 2013, 17:06 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

FatdogArm now runs Fatdog desktop!

Which consist of openbox, lxpanel, and ROX Filer. We are getting there! RoadMap

Posted on 4 Aug 2013, 6:58 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

FatdogArm now runs Xorg!

FatdogArm reaches its first milestone - it is now running X desktop! Sure the only apps available is xterm and xclock, but that's a good start

On the down side, kernel 3.11 is now in rc3; but linux-next still shows no sign that XFS will be compatible with user namespace anytime soon (the UIDGID_CONVERTED still makes XFS = n)

Posted on 2 Aug 2013, 15:17 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

Native compiler article is up

Chapter 6 of LFS is done, I now have a usable command-line root filesystem; and that's the end of LFS for me (I don't need the rest of the chapters on booting and initscripts because I can already boot the system and I already have initscripts from Fatdog).

I'm now on the first item on my (revised) roadmap - building Xorg packages.

Meanwhile, I have written the article on preparing the hard-float native compiler here.

Posted on 1 Aug 2013, 20:36 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

FatdogArm initrd article is up

I'm now at the middle of LFS Chapter 6. I have completed the final distribution-ready hardfloat native compiler (with the proper name this time - arm-unknown-linux-gnueabihf) and am using it to build the rest of the packages in Chapter 6.

While waiting for them to build, I managed to write the next article about using initrd with the ARM build here.

Posted on 31 Jul 2013, 3:43 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

Native compiler working

I have completed Chapter 5 of LFS and have a working hard-float native compiler. I am now at early steps of Chapter 6, working my way towards getting distribution version of the toolchain. Looking good!

And 1Hz of ARM cycle is definitely not worth 1Hz of x86 cycle. My 1GHz A10 feels like 600 MHz Celeron Took me 3.5 hours to build gcc and I had to do it a couple of times since LFS is well, not exactly targeted towards ARM - plus I changed direction from the default soft-float to hard-float in the middle of the compile --- and I had to do that 5 times

This is looking more and more attractive now, but I'm a little tight with the budget right now so that'll have to wait.

I'm logging the final installs with paco. I'm still considering what package management to use, since paco doesn't support pulling packages from remote location (paco and gpaco is for managing local packages only). I have slapt-get and gslapt in mind, but I will have to think further.

Posted on 30 Jul 2013, 5:51 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

ARM First Boot

Following my post here, I have published the first article of my experiments in porting Fatdog to the ARM platform. It is a work in progress, which means contents are not stable and will be modified / re-arranged / re-organised as the result reveals itself in time.

Boy, it took longer to write the article than to actually did the experiment! It is one thing to write rants on blog but it is another thing to write proper documentation on the wiki! I may need to encourage myself to continue to write!

Posted on 25 Jul 2013, 23:50 - Categories: FatdogArm Linux Arm
Comments - Edit - Delete

The beginning of Fatdog ARM

A year ago, most of the people on Puppy Linux forums were taken over by the hype of ARM-based systems. (Some still do). It all started when Barry Kauler, the father of Puppy Linux, got hold of a cheap ARM-based "smart media player" (Mele A1000) which was in fact more powerful that many PCs of yesteryears. Equipped with 512MB RAM and 1GHz ARMv7 CPU, it came with Android and was advertised as a media player, but its wealth of ports and its flexibility (ability to boot directly from SD card - practically unheard of in ARM/embedded world before this) made it ideal for a possible "desktop replacement". By the time we heard about it, somebody has already managed to run Ubuntu ARM on it. Imagine, a standard Linux distribution running on a ARM media player! That was in fact very exciting.

Barry started an ARM port of Puppy Linux for Mele, his first release was Puppy "Lui" (see, Everyone was on ARM-frenzy for a (long) while. Not long after that, Raspberry Pi (Raspi for short) came, and the folks got even more excited. Barry built another ARM port for Raspi (the Mele one didn't because Mele's CPU is ARMv7 while Raspi's one is ARMv6), called "sap6" (short for (Debian) Squeeze Puppy for ARMv6 - see He released a few versions of sap6 (Raspi being more popular than Mele despite its obvious shortcomings), but that was that - Barry moved on to other things (he is planning to return to it, though, he got a quad-core Odroid board late last year).

I was caught in the frenzy too, for I can see the possibilities of where this can go, provided that ARM can fulfill the promise of being the low-power, low-cost, ubiquitous computers. For example, it can easily replace traditional desktops for those who can't afford it. We are yet to see the promise fulfilled, but it is still going in that direction so I'm happy. The tablet market (where most of these ARM cpus are going) has been going strong, and despite many misgivings about tablets, if one can add a keyboard and mouse to it, many tablet users can actually become productive. All in all, it is about alternative computing platform for the masses.

To start with, I experimented with Qemu. I documented the process of running sap6 under Qemu, for those who wanted to play/test sap6 but haven't got Raspi on their hand:

That little experiment quickly followed with my attempt to cross-build a minimal system from scratch, still targetting Qemu. There was one system that aimed to do so, called "bootstrap linux", that uses musl C library (then brand-new). After a few hurdles and many helpful advices from musl mailing list, I got it up and running (see That experiment taught me about complications of building compilers (gcc) by hand and that small, unforeseen interactions between host tools and compiler build scripts can result in hard to find, hard to debug crashes on the target system (see
Of course, along the way I got to learn to do some cross-debugging and reviewed ARM assembly language on cross-gdb. That brought some good memories of the days I spent writing 386 assembly language for a bare-metal protected mode 386 debugger myself, for a certain 32-bit DOS extender :)

Qemu was nice but in the end I knew I needed a real hardware: compiling gtkdialog which took less than 10 seconds on my laptop took more than 10 minutes on Qemu on the same laptop. To that end, I decided to go for Mele A1000 too. That was mid last year, and apart from booting Puppy Lui on it, that Mele didn't do much for months on end.

Until now.

In the last few days I have built a new kernel and a minimal busybox-based system for it, I've got it running with framebuffer console on my TV. I used Fatdog64's initrd (busybox is suitably replaced with its ARM version) and it felt good to finally see "Fatdog" booting on an ARM cpu.

In the next few posts I will write more about these, the steps, the information I have collected (linux-sunxi has grown from useless to extremely helpful in a year) as well as future roadmaps.

Posted on 21 Jul 2013, 22:39 - Categories: Linux General Arm FatdogArm
Comments - Edit - Delete

Pages: ... [4] [5]