[Atrix 4G General] Gendol:
[size=+1]Introduction[/size]

What is GenTop2?

GenTop2 is a full-fledged Gentoo Linux able to replace the original Motorola Webtop. It is faster, fully-customizable and gives you the power of a complete Linux system on a mobile phone. It is a peek into the future of mobile computing!

Thanks goes to kholk, who did the original GenTop, otherwise I would have long given up.

Why use Gentoo Linux as WebTop?

Programs are fully optimized for the ARMv7a CPU contained in the Atrix.

Thus the whole system is faster and more responsive.

No shackles put around the WebTop by Motorola.

You can install any program (which compiles on ARM).

All software (except X11) is fully up-to-date.

You remember old times with desktop computers having far slower CPUs and less RAM than your phone and you wonder what you can do with this pocket computer.

Why NOT use Gentoo Linux as WebTop?

Gentoo is huge because it must install all development files.

The system and all programs must be compiled on the phone. How crazy is that?

Firefox could not be built. But, there is a smaller replacement.

Why bother using a phone, when you already have a notebook?

Working and Installed Applications

X11 via WebTop or HDMI (with hdmi-hack)

Xfce4 with thunar file manager

midori web browser with Flash player

claws-mail client

audacious

evince (pdf viewer)

ssh daemon

rxvt terminal

aiw Android In-A-Window!

Sound output via Android media system.

All are very light-weight Linux applications perfect for a small system.

Not Working:

webtop-panel (system status bar on top)

non-flash video playback ? :)

Installable as binary packages:

firefox (renamed to Aurora due to trademark stuff), approx 30 MB.

thunderbird (renamed to Earlybird due to trademark stuff), approx 44 MB.

libreoffice, approx 250 MB.

abiword, pidgin, emacs, texlive,

and many more, drop a note for more wishes here. However KDE is just too large.

[size=+1]Installation Instructions[/size]

Prerequisites:

Motorola Atrix

[size=+2][highlight]BACKUP.[/highlight] This will break your device![/size]

Okay hopefully it won't. A full restore will of course overwrite the webtop.

root privileges.

unlocking is not necessary.

adb and Linux knowledge.

webtop2sd is not supported (!)

CM7 is NOT supported

GenTop2 Space Requirements, Disk Speeds and a Note About WebTop2SD

Gentoo is very large because packages contain all development files. This cannot easily be changed, therefore one must work around the space limitation of the /osh partition in some way.

I did some "disk" performance measurements using bonnie++ (see [1] for full info). Here the through-put results in short: /data (ext3) 20,800 KB/s read and 6,200 KB/s write, /sdcard (fat32) 21,500 KB/s read and 8,000 KB/s write, /sdcard-ext (ext3) 12,300 KB/s read and 4,200 KB/s write, /sdcard/loopback.img (ext3) 16,150 KB/s read and 4,400 KB/s write.

One way to go would be to require webtop2sd, however, GenTop2 does not support webtop2sd because the read/write speed of the internal sdcard is much faster than on the external sdcard. Thus I tried to install as much on the /osh partition as possible and move directories onto other partitions as necessary, leaving symlinks behind. WebTop2SD also requires dpkg for some reason, which Gentoo does not have.

Therefore, it's pretty unavoidable that you do some space management yourself.

I have decided to utilize the /preinstall partition for /var. I'm not fully sure that this partition is unused on every Atrix released, but I guess in most cases it contains only provider specific bloatware that people don't want anyhow. On my Atrix it contained some car racing game, which I find hilarious to play on a mobile phone.

Anyway, the /preinstall partition is 300 MB and perfect for /var if reformatted to support many small files. The /var/db/pkg/ directory contains lots and lots of small files describing the installed packages. See the installation instruction for the mkfs line.

I also decided to require some extra ext3 partition for further program, data and portage files. It is needed anyhow to install further programs, which is what most people want to do. The /data partition would be the obvious choice and for that reason the first GenTop2 put files in /data/osh/. However, /home/ is also on /data by default and it gets pretty annoying when your home directory is full.

The only alternative to /data is either a partition on an external sd-card or a loopback mounted file-partition on /sdcard/, both are not as fast as /data (/cache cannot be used as it must be wipeable). So there really isn't much choice left except for external storage.

The main GenTop2 tarball puts 630 MB in /osh (leaving 145 MB free) and 178 MB in /preinstall (with 150 MB free), which must be mkfs formatted.

The portage GenTop2 tarball puts 1460 MB into /mnt/gentoo/ of which 475 MB are data files from /osh/usr/ and 810 MB are the portage tree.

[size=+1]Steps to install GenTop2:[/size]

There are some complications involved when using faux123's kernel, because it only contains ext4 filesystem modules and explicit mounting of ext3 will fail. The ext4 module will however mount ext3 filesystem without problems.

use adb shell and get root:

$ su
# cd /osh
# mv etc etcx
# reboot

Reboot. The above will disable the webtop.

Download http://kristallsturm.de/GenTop2/GenTop2-20120509.tar.gz (275MB) and put it onto /sdcard via USB or adb push.

use adb shell to overwrite the existing WebTop:

(first we delete /osh)
# cd /
# ls bin
bin: No such file or directory
(this tests whether the old webtop is disabled)
# rm -r osh/*
# ls osh
(should be empty)

(next we disable and reformat /preinstall)
# mount -o remount,rw /dev/block/mmcblk0p12 /system
# mv /system/bin/load_pia.sh /system/bin/load_pia.sh.disabled
# umount /preinstall
(depending on your ROM this might fail. ignore this problem if the following format works)
# mke2fs -m 0 -i 2048 -j /dev/block/mmcblk0p17
# mount -t ext3 /dev/block/mmcblk0p17 /preinstall
(for faux kernel: replace ext3 -> ext4 in above line)

(now we unpack the main tarball)
# df
(/osh and /preinstall should be almost empty)
# cd /
# tar xvzf /sdcard/GenTop2-20120509.tar.gz
# sync
(begin extra for faux kernel: we change ext3 -> ext4)
# sed -i s/ext3/ext4/ /osh/ubuntu.sh
(end extra for faux kernel)
# sync
# reboot

Once rebooted you will get an X11 login on the HDMI connection or you can access the phone via ssh.

Account Passwords:

root / atrix

adas / atrix

To make GenTop2 more useful and to compile/install further packages you currently must have an external sd-card (or someone must devise a method to use a loopback device).

I have partitioned my external sdcard using a desktop computer into the following two partitions:

/dev/block/mmcblk1p1 (remainder)

/dev/block/mmcblk1p2 (4.0 GB, formatted ext3)

Advanced: (Actually most of this stuff is advanced.) You can also use the new GenTop to partition the external sd-card. Open a terminal, and use something along the lines of:

# fdisk /dev/block/mmcblk1
(partition it, see further description of fdisk on the net)
# mkfs.ext3 -m0 /dev/block/mmcblk1p2

The boot-up script /osh/ubuntu.sh will mount /dev/block/mmcblk1p2 to /mnt/gentoo. This place is referenced by /usr/portage, /var/tmp and /preinstall/usr and will enable emerge if you install the second GenTop2-portage-20120509.tar.bz2 tarball.

Download http://kristallsturm.de/GenTop2/GenTop2-20120509-portage.tar.bz2 (124MB) to /sdcard/ using any method.

Use adb shell or a terminal on the desktop

$ su
# cd /
# tar xvjf /sdcard/GenTop2-20120509-portage.tar.bz2

Note: If you trust your network connection, you can also download and unpack simultaneously (without saving) it using:

$ su
# cd /
# wget -O - http://kristallsturm.de/GenTop2/GenTop2-20120509-portage.tar.bz2 | tar xvj

[size=+1]Installing further software[/size]

How do I install applications in Gentoo?

- Read http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1

- Read http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3

I have set up a portage overlay "atrix-overlay" which unmasks many packages and includes some custom patches required for compilation on arm. It is included in the main tarball and automatically synced alongside "emerge --sync". Most updates will now be performed via this overlay.

See https://github.com/gendol/atrix-overlay for details.

Furthermore, for large binary packages like firefox, thunderbird and libreoffice I have set up a binary package repository with the same USE flags as the atrix-overlay. These are built using cross-compilation on my desktop computer.

See http://kristallsturm.de/GenTop2/packages/

To force installation from binary packages use emerge -G <package>. See the list of "Installable as binary packages" above.

[size=+1]Miscellaneous Questions[/size]

Why no thumb instructions?

- I did a speed test of cryptography functions and thumb instructions were approximately 10% slower than usual ARM code.

Where was GenTop2 compiled?

- Most of the system was fully compiled on my own Atrix. Larger binary packages are compiled on my desktop using cross-compiling.

Why is X11 not up-to-date?

- The only xorg driver I could get working is the one on the original Webtop, and that requires an older version of X11.

Why is udevd not running?

- If you look at logcat there are lots of the following messages, some of which are due to udevd. Disabling udevd reduces (but does not eliminate) these messages and probably also some unnecessary background process that draws battery.

NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'UDEV_LOG' not found

NetlinkListener: ignoring non-kernel netlink multicast message

NetlinkListener: ignoring non-kernel netlink multicast message

[size=+1]Reinstalling the old WebTop[/size]

Some people on the forums struggled to reinstall the old webtop for some reason. It shouldn't be that difficult and I created a tarball of the original Webtop WT-1.2.0-133_38. These instructions were not tested by me:

Download http://kristallsturm.de/GenTop2/WT-1.2.0-133_38.tar.gz to /sdcard/ using any method.

Use adb shell or a terminal to disable mounting of webtop:

$ su
# cd /osh
# mv etc etcx
# reboot

Use adb shell to unpack original tarball into /osh:

# cd /
# ls bin
bin: No such file or directory
(this tests whether the webtop is disabled)
# rm -r osh/*
# ls osh
(empty)
# cd /
# /sdcard/WT-1.2.0-133_38.tar.gz
# sync
# reboot

[size=+1]Downloads[/size]

http://kristallsturm.de/GenTop2/GenTop2-20120509.tar.gz (275MB main tarball)

http://kristallsturm.de/GenTop2/GenTop2-20120509-filelist.txt (Filelist of tarball for your reference)

http://kristallsturm.de/GenTop2/GenTop2-20120509-portage.tar.bz2 (124MB portage tree for /mnt/gentoo/, see above)

http://kristallsturm.de/GenTop2/GenTop2-20120509-portage-filelist.txt (Filelist of tarball for your reference)

Old Downloads

http://kristallsturm.de/GenTop2/GenTop2-20120428.tar.gz (369MB main tarball)

http://kristallsturm.de/GenTop2/GenTop2-20120428-filelist.txt (Filelist of tarball for your reference)

http://kristallsturm.de/GenTop2/GenTop2-20120428-portage.tar.bz2 (44MB portage tree for /mnt/gentoo/, see above)

http://kristallsturm.de/GenTop2/GenTop2-20120424.tar.gz (364MB main tarball)

http://kristallsturm.de/GenTop2/GenTop2-20120424-filelist.txt (Filelist of tarball for your reference)

http://kristallsturm.de/GenTop2/GenTop2-20120424-portage.tar.bz2 (44MB portage tree for /mnt/gentoo/, see above)

Changelog

From 20120428 to 20120509:

Added atrix-overlay for pulling in updates using layman.

Reorganized /etc/portage/ to symlink into atrix-overlay files.

Removed mplayer from default install.

Added xarchiver, leafpad and some customization for the terminal.

Reorganized directory structure to use /preinstall.

From 20120424 to 20120428:

Readded resolutions to xorg.conf like in original webtop. Nevertheless you can switch using Xfce's settings dialogs.

Installed Flash: copied libflashplayer.so and emerges nss nspr.

Readded lots of the original .desktop files and corresponding icons. These launch Android apps.

[1] http://kristallsturm.de/GenTop2/docs/atrix-bonnie.html