FatdogArm on OLPC XO laptop
In my previous post I said:In case you are wondering, I already have another target system for FatdogArm - all will be revealed in due time .
Well the cat is out of the bag: FatdogArm has been "adopted" by the Puppy_on_OLPC project to run on One Laptop Per Child - OLPC's XO laptop .
I have been working with mavrothal (forum member from Puppy Linux Forum). mavrothal is the key person and project lead for PuppyLinux XO (XOpup for short) project. XOpup is a modified version of Puppy Linux specially created to run on XO laptop.
When XO transitioned their laptops hardware from x86 (AMD Geode and VIA7-based) to ARM, the XOpup project went into slow-down because there were no Puppy Linux for the ARM platform (well, there was Puppy Lui for Mele and Puppy Sap6 but both were not updated for a long while); thus there was no base for build XOpup for ARM-based XO.
FatdogArm (and Fatdog) is a fork of Puppy Linux which still maintains the spirit and ideals of Puppy Linux; plus it tries to be SoC-agnostic as much as possible; thus it is a natural conclusion to use FatdogArm a base to continue XOpup - and the collaboration is born.
I am still waiting (and looking forward to!) the arrival of my XO-1.75 laptop, meanwhile mavrothal has gone forward and made FatdogArm to run on XO-4 laptop, here with a picture: http://murga-linux.com/puppy/viewtopic.php?p=721450#721450
Exciting days afoot!
No comments - Edit - Delete
FatdogArm - the last hurdle
The last few days were hard work in choosing and deciding package manager to use (spoiler: I've finally decided on Slackware's pkgtools and slapt-get/gslapt); and then converting packages from paco's format into pkgtools, adding descriptions and dependency information, etc.The choosing of the package manager is especially important. In case one wonder why a lowly package manager is important, please consider what its job is, here. You may be surprised.
Along with that, I have reduced the size of the basesfs from 450MB to a more manageable 280MB by uninstalling less-used packages (they are in the repository in case you need them) and getting rid of the /usr/share/locale (that's a 130MB worth of stuff in itself), and removing all the static libraries except those required by gcc (saves 30MB). I could go lower by taking out the docs and using xz compression instead of gzip - in fact I can easily go down to less than 200MB, but that can wait (and I like having all the docs available locally too).
All in all, FatdogArm is now nearing completion. I just need to tie some loose ends; some other articles I plan to write, etc. The alpha release of FatdogArm image is imminent. It only work on Mele but due to the way it is built; it is easy to adopt it for other systems too. In fact, now that I think about it, I may write an article of how exactly to do that. (In case you are wondering, I already have another target system for FatdogArm - all will be revealed in due time ).
No comments - Edit - Delete
Touchscreen input for FatdogArm
The tablet provide to be a distraction I am supposed to start doing something about the package management, but instead I was tinkering with the touchscreen to try to get it working.I was rather lucky, the touchscreen was supported by the kernel I built, so it was a matter of modprobing the correct driver, followed by building tslib and xf64-input-tslib (touchscreen driver for Xorg). With this, the touchscreen then works like a touchpad: I can move the pointer, tap-to-click, and tap-to-drag.
When added with xvkbd (virtual keyboard), one gets a rather complete input system on the tablet: mouse and keyboard entry. However I can tell you that using mouse idioms on a touchscreen is very inefficient indeed, unless large adjustments are made.
The main toolkit on FatdogArm currently is GTK2 which isn't touch-aware. I tried reading a document with evince - it works, but to scroll I need to tap the scrollbar and the scrollbar is tiny. It could be made better if I use a larger scrollbar, but still.
GTK3 is rumoured to support touch gestures. I suppose I should try that - when the tablet returns.
Ref: Touchscreen Input article.
No comments - Edit - Delete
FatdogArm on Tablet
Fatdog Arm reaches another milestone today - it is now capable of booting straight to desktop. Booting to command line only takes 5 seconds (that includes the 3 second wait for SD card media to be recognised), booting to full desktop takes about 25 seconds (may be because of slow SD card, gzip decompression, etc). Once in the desktop, the applications are zippy (they are a bit sluggish to start but once running, works fast). We're talking the entire build here - nothing cutdown yet, all the 450MB gzip-compressed SFS goodness with all the toolchains, headers, static libraries, and what have you.As a bonus, I put the same stuff on the micro SD card for the ARM tablet I mentioned in the previous post, and here is the picture of that tablet running Fatdog Arm.
Unfortunately, I am going to lose that tablet soon (my mum is going on a trip and she will take that tablet with her).
But yes, apart from that, I am excited !!
No comments - Edit - Delete
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.
No 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.
No comments - Edit - Delete
Building localised Seamonkey web browser
I spent 3 days building Seamonkey on the ARM platform. Each build took between 15 to 18 hours. The first build was actually successful, but I wanted to try making a localised build (en-GB instead of the default en-US) and while doing that I forgot to test the Lightning calendar add-on. When I finally did the test I found that it didn't work, but I reasoned that could be because I had files mixed up between the old and new half-baked compile.So I wiped off and started again; this time with localised build from the beginning. Well, whaddayaknow, this second build failed halfway many times - firstly, it was missing localisation files (but ... but I thought it was part of the source tarball like many other packages!); and then bad localisation files (the web is littered with wrong advice on which localisation tarball to use). The one that seems most accurate is to pull directly from Mercurial repository; this will include the tool to automatically check-out the locale files too --- except that I don't want to build bleeding edge, I want to build a release-build version!
I almost abandoned my localised build when I finally tied up the all the clues and managed to find the location of the correct tarball. So the third build went on smooth, another 18 hours clocked on my little poor ARM box. This one finally built cleanly, I've got the en-GB binary tarball at the end.
The calendar, however, still didn't work. It always said that it isn't compatible with this version of seamonkey, which is odd for the fact it is built together with the rest. For a note, a similar built on x86_64 a while ago worked perfectly. It is definitely not the version numbering as the numbering is correct. Anyway, after spending 3 consecutive days on that stuff the ARM (and myself) is getting tired actually so I'll let that go for the moment - at least I get my en-GB built done!
To make sure that others don't have to spend 3 days building their localised Seamonkeys, I've written the detailed steps of how to do so on my wiki, here. While the instruction is meant for Seamonkey, it is trivial to adapt it to build localised Firefox too.
Enjoy.
No 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.
No comments - Edit - Delete
FatdogArm now runs Fatdog desktop!
Which consist of openbox, lxpanel, and ROX Filer. We are getting there! RoadMapNo 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 startOn 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)
No comments - Edit - Delete