FatdogArm Alpha2 Release Notes
FatdogArm Alpha was released on 12 September 2013.
FatdogArm is a port of Fatdog64 to the ARM platform (the original porting process is documented here), targeted for desktop-style operation.
This is the second public release of FatdogArm, and it supersedes and obsoletes the original alpha release. It brings the following updates, bugfixes, and enhancements over the initial Alpha release, in no particular order:
- Add missing sb2dir.sh to extract files from sandbox
- Remove lib64 references from /etc/profile
- System SFS Loader should now work (rename util-linux's losetup to losetup-FULL, and losetup now links to busybox)
- Add missing static libraries needed for compilations (libiberty.a and libcrmf.a)
- Add a changelog (in /usr/share/doc/Changelog)
- Xorgwizard tweaks
- Add these small helper programs: ifplugstatus, evtest
- Add wired network eth0 auto-dhcp, and add barebone's wireless configuration using wifi.sh adapted from TinyCore Linux. Note that for advanced stuff like static IP etc, one still needs to edit /etc/rc.d/rc.network
- Remove /etc/asound.conf to ease porting to other platforms. If you use HDMI output of Mele, then please run the soundcard wizard (in Control Panel) to re-create the settings previously set by default in /etc/asound.conf
- A10-kernel: 8192cu is now built-in instead of module.
- lxpanel: network status display is turned on, default to wlan0
- Simplified pupzip (needs xarchiver from the package repository)
- Remove non-working Rox right-clicks
- Add Trash icon to the desktop
- Seamonkey is updated to 2.20, now with working Calendar function.
- Features a bootmenu manager, this is useful for systems whose firmware does not do boot management (e.g. Mele). Please see the example in bootmenu.cfg. It can be activated by adding "rdinit=/sbin/bootmenu" to the end of the "extras" line in uEnv.txt. Documentation here.
WARNING: ALPHA-QUALITY SOFTWARE: READ EVERYTHING IN THIS DOCUMENT IN FULL FIRST BEFORE ATTEMPTING TO BOOT.
FatdogArm features
- All of Fatdog64 versatile boot options except LVM and encrypted savefile.
- Complete desktop for day-to-day usage:
- Web browser: Seamonkey
- Email client: Seamonkey Mail
- Secure Email client: Sylpheed (gpg-enabled)
- Word processor: Abiword
- Spreadsheet: Gnumeric
- PDF Viewer: Evince
- Image editor: mtpaint
- Image viewer: Viewnior
- Media player: Xine
- Printing system: CUPS with Ghostscript and Gutenprint drivers
- Remote connection: VNC, SSH
- IDE / Text Editor: Geany
- HTML Editor: Seamonkey composer
- Development tools (headers, libraries, gcc compiler, make, binutils)
- Full version of the utilities (core-utils, util-linux, findutils, diffutils, etc)
- More packages from its own repository (still small at the moment, but growing).
- Small (less than 300MB)
Target system
FatdogArm has been built and tested on Mele A1000 device but you may want to adopt FatdogArm to run on your favorite device as long as they are ARMv7-A compliant and have VFPv3 FPU and NEON.
After since the alpha release, FatdogArm has been adapted to run on:
- Qemu, see AdoptingFatdogArmForQemu.
- Pandora, 01micko' adaptation, work in progress, no binaries available yet.
- OLPC XO-4, mavrothal's adaption, work in progress, binaries here.
- OLPC XO-1.75, early porting efforts, no binaries yet.
- A13-based tablet, early porting efforts, no binaries yet.
How to use the image
Unlike many other distributions out there, which provide compressed disk images which needs to be expanded and then written to a specific-sized SD Card, FatdogArm image is provided as uncompressed disk image which you can write (using dd) to your SD Card (fits any size) immediately - no decompression needed.
Once transferred to the SD Card (dd if=fatdog-arm-alpha.img of=/dev/your-SD-Card bs=4M
),
the SD Card is bootable immediately, booting directly to graphical desktop
in about 15-30 seconds (depending on the speed of your SD card).
Before you do so, however, I recommend that you create a second partition on the SD Card (of any filesystem - but ext4 is preferred). Having the second partition enables you to save any changes you do when running FatdogArm. Without this second partition, all your work will vanish as soon as you shutdown the system.
When you shutdown for the first time, you will be asked on "where" to keep your changes. Choose the "mmcblk0p2" - your second SD Card partition - as the location to save to. If you created ext2/3/4 partition, you can use "save directory" feature; otherwise you have to use the "savefile" feature (slower).
WARNING: Don't use any of the "NAND" devices unless you know exactly what you're doing - these are the internal storage of your Mele and it contains Android OS and Data. Writing to them may make the Android unbootable, requiring Android re-flashing (your FatdogArm however will continue to work).
If you choose not to save, your changes in that session is discarded.
Known quirks and problems
- The system is configured to display on HDMI by default. If you want to change this, try to edit uEnv.txt on the FAT partition and change the "video" line. Failing this, you need to modify script.bin (by converting it to a FEX text file and back again); read the guide here. You can use this statically-compiled fex compiler/decompiler here - should work on any 32/64 bit x86 Linux).
- The SD Card (mmc) drive icons sometimes don't show up on the desktop. This happens when the SD Card is slow. To show it, right-click on any of the drive icons and choose "Redraw icons".
- Encrypted savefile is not supported yet, so do not attempt to enable encrypted savefile in the session shutdown dialog.
- Xine sometimes crash if you choose the wrong video driver. If you want to start Xine without playing anyfile, you need to use the SDL driver (start it from terminal like this:
xine -V sdl
). On the other hand, the SDL driver isn't so good when you want to play full screen (it will crash), so you will need to use "xv" or "xshm" driver to do that (set this from inside Xine's preference dialog). Yeah, annoying, I know.
- The sunxifb driver supports G2D acceleration (2D acceleration) but that's all about it. There is no 3D acceleration (Mali GPU) or video acceleration (Cedar VPU) so the most you can play is SD video upscaled to 720p; anything else will stutter.
- By default none of the memory is reserved for Mali an VPU so don't try to enable them (loading the module); this is done to maximise the available memory for applications. If you want to try them, make sure you edit uEnv.txt on the first FAT partition and modify the "extras" line to tell the kernel to do memory reservation.
Q & A
Q: Where is the documentation for FatdogArm?
A: None exist yet, but you can use this
as a reference. Most of it are applicable (major exceptions: FatdogArm doesn't use humongous initrd,
FatdogArm uses Slackware's pkgtool TBZ format instead of PET packages, installation procedures,
etc).
Q: There are so many references to Fatdog64 both in window titles, messages,
etc.
A: Yes, that's because FatdogArm is a port of Fatdog64 and uses many Fatdog64
tools. This will change overtime but don't expect it to happen soon.
Q: Is FatdogArm for 64-bit ARM archictecture (ARMv8) then?
A: No. It is currently built for 32-bit ARMv7 architecture.
Q: Is it softfloat or hardfloat?
A: Hardfloat, with VFPv3 FPU, Neon and Cortex-A8 optimisations.
Q: Will FatdogArm work on my tablets, settop boxes, devboards, etc?
A: While I have managed to get FatdogArm to
run a particular tablet,
do not expect this to be the norm. The reason is simple: every ARM device
is different.
But you may want to
adopt FatdogArm to run on your favorite device
:)
Q: Where is the devx.sfs?
A: There is no devx. The image contains gcc compiler (C and C++), binutils,
make, and all the library headers - thus you can compile applications
straight away. The static libraries have been removed to reduce the size, though.
If you want them you need to re-install the packages from the repository.
Also, if you need autoconf, automake, m4, cmake, flex and bison, they are available
on the repository.
Git is available in the repository (install Tcl/Tk too if you want gitk GUI), but current no others. If you need svn/bazaar/mercurial you have to build them yourself. (I may build them and post them to the repository later).
Q: Is there any hardware acceleration (3D, VPU, etc) ?
A: Planned to, but not yet. Acceleration is very device specific, but FatdogArm
is meant to be general; so any device-specific hardware acceleration will only
be made available through repository and not in the base distribution.
Q: I don't want to boot to graphical desktop, I want to boot to console only.
A: Open uEnv.txt on the first FAT partition of your SD Card, then add "pfix=nox"
to the end of the line that starts with "extras".
Q: I have a savefile but temporarily don't want to use it
A: Open uEnv.txt on the first FAT partition of your SD Card, then add the a new
line that says savefile=savefile=none
Q: I want to save my session but I don't want to create a second partition, because
some stupid operating system doesn't recognise SD Cards with more than one partition.
A: Sure, you can save your session on the first FAT partition too. But make sure you
enlarge it first with your favorite partition tool - as shipped, there is only 2.8MB
left on that partition.
Q: This uEnv.txt editing business is so unlike editing syslinux.cfg or
grub.lst. Can't you use syslinux or Grub or Grub2 instead?
A: Unfortunately, no. Those bootloaders are for x86 (and x86_64) only.
In the ARM world the common bootloader is das U-boot,
which is a versatile bootloader which matches or exceeds syslinux and Grub
in terms of capability; however unless you have serial terminal connected to
the platform, you have very little chance to interact with it.
To that point, I have created a simple boot manager called "BootMenu", which reads a syslinux-like configuration file and provides a user-friendly menu interface for selecting different boot configurations. A sample bootmenu.cfg is provided on the image; documentation here.
Note: Other platforms like OLPC XO and Pandora comes with firmware that provide better manageability for boot management, including choosing run-time boot configuration. These platforms don't need BootMenu nor bootloaders as their firmware is capable of loading the Linux kernel directly.
Q: I have a question not listed here.
A: Drop me a message on my blog or
on the Puppy Linux Forum. FatdogArm threads
are usually located in "Puppy Projects" section.
Previous release notes: arm-alpha.html