Computex 2009 was host today to the newest member of the EEE PC family, powered by the Qualcomm SnapDragon system-on-a-chip and Google's Android OS for mobile devices. The Qualcomm Snapdragon SoC incoroporates an ARM11 core operating ag 1 GHz (future models will be running at 1.3 GHz), an integrated 600 MHz DSP (a coprocessor for math, audio, and 3D acceleration), as well as embedded hardware video codecs, enabling this processor to support HD video of 720p (later models with 1080p). This netbook also offers always-up connectivity with an integrated internationally-compatible 3G modem, as well as the standard 802.11g wireless connectivity. The full spec list is available here. However, the kicker in favour of ARM-based netbooks is their power efficiency. The Qualcomm-powered EEE PC is expected to boast a battery life of 8 to 10 hours on a single charge!
ARM based processors are what power 99% of today's cellular phones and mobile electronics, such as the iPhone. As one might expect, there is no room for a heat sink or fan in a mobile phone. Therefore, ARM engineers and their licensees have taken power efficiency to a whole new level with this technology. Aside from the impressive multimedia and gaming capabilities, and like most ARM-based SoCs, all of the transistor logic for the CPU, co-processor, and peripheral devices is integrated onto a single wafer of silicon, hence the term 'system-on-a-chip'. Its as if the video, sound, network, PCIe controller, memory controllers, etc, etc, etc, were crammed onto a single package. For comparison, a similar netbook platform, based on the Intel architecture, would occupy at least three, but more commonly four or more chips, resulting in a drastically larger amount of power dissipated as heat.
The 1GHz barrier for ARM chips was first traversed commercially by Marvell, with their Shiva-Plug. Texas Instruments had reached milestones even earlier with their OMAP line of chips which power devices such as the BeagleBoard development board and the OpenPandora mobile gaming platform. The Qualcomm-powered EEE PC is not the first ARM-powered netbook though; some people may still have their eyes on the Always Innovating TouchBook, which is also powered by the familiar OMAP processor. However, if ASUS blesses this marriage of ARM and Android in their cathedrals of manufacturing, then the new Qualcomm-powered ASUS EEE PC might be the first ARM-powered netbook that hits the mass market.
Showing posts with label eee pc. Show all posts
Showing posts with label eee pc. Show all posts
20090103
Android on the EEE PC


Now, as it turns out, a couple of people have actually run Android on the EEE PC 701 !!
Personally, I probably wouldn't put this on my own EEE, which currently runs a heavily tweaked version of Gentoo Linux, but maybe on Erin's :)
A couple of things will definitely need to happen first though - one is full browser integration, with a flash player, adobe pdf reader, etc, and the other is an office suite. On an x86, like the EEE PC, the best bet for the office suite would be OpenOffice.org but it's very unlikely that Google will port OOo to their framebuffer-driven UI, especially considering that they have their own network-based office productivity suite. If Google's office suite was available as a stand-alone app, or a Dalvik appication, then I could see Android on the EEE and potentially other MIDs.
The people responsible receive an A+ for novelty though :)
20081111
EEE and Firefox Full Screen


#navigator-toolbox:hover > #PersonalToolbar,
#navigator-toolbox:hover > #toolbar-menubar
{
visibility: visible !important;
}
Many thanks to sewpafly for the above chrome fragment!
There is one shortcoming of this that I've already noticed. Namely, when I move the mouse up to the top of the screen, and then above a tab to close it, all of the toolbars autohide before I can close the tab. Normally, this is no problem for closing a tab (Ctrl+w), but for closing other tabs, no shortcut key exists yet, so it's only possible to do by mouse :P
This reminds me of two shortcut key proposals that I had way back when:
1) Ctrl+Shift+w - close all other tabs
2) Ctrl+Shift+PgUp/PgDown - move tab right / left
Those are both 'borrowed' from the Gnome Terminal, but I think they apply quite well to Firefox too.
20081103
SPSS 16 on the EEE PC


I'll start from the beginning, because this isn't the only part of the installation where I encountered errors.
A friend of mine asked me to install her copy of SPSS 16 for Linux on her EEE PC. She met all of the system requirements (aside from the screen resolution and minimum CPU speed), but still could not get the installation to work.
First I just tried to run the installer file, 'setup.bin', and the installer exited almost immediately. I scrolled up to find out that it could not find 'bc', the arbitrary precision calculator. So I followed the instructions here and installed bc with 'apt-get update; apt-get install bc'.
Then setup.bin failed with the message, "The directory /tmp does not contain enough space to extract temporary files. Please specify a temporary directory using the -is:tempdir option. Use the -is:help option for more information." So, I ended up using her 2 GB USB memory stick for the temporary directory (I reformatted it to use ext2). At this point, I was using './setup.bin -is:tempdir /media/D\:/tmp' for the setup command.
That failed as well, but this time with the message, "No Java Runtime Environment (JRE) was found on this system". I thought that was odd, so I ran './setup.bin -is:help' again and noticed that there was an '-is:javahome' option. So, I ran 'ls -la `which java`', and found that java was a symbolic link which pointed to /etc/alternatives/java, which was also a symbolic link pointing to /usr/lib/jvm/java-1.5.0-sun/jre/bin/java. Then I ran the installer again, and it failed with the same message. At this point, my setup command was './setup.bin -is:tempdir /media/D\:/tmp -is:javahome /usr/lib/jvm/java-1.5.0-sun/jre'.
I ran './setup.bin -is:help' again to see if somehow it could point me in the right direction, because the installation instructions were pretty horrible. I noticed the '-is:log' option, so I ran the setup again with the command './setup.bin -is:tempdir /media/D\:/tmp -is:javahome /usr/lib/jvm/java-1.5.0-sun/jre -is:log /media/D:\:/tmp/spss.log'. That gave me the hint at what was really happening. The log file ended with, "installing bundled JRE... Verifying... /media/D:/tmp/istemp2346224982367/_bundledJRE_/bin/java -cp /media/D:/tmp/istemp2346224982367/Verify.jar Verify java.vendor java.version Verification failed for /media/D:/tmp/istemp2346224982367/_bundledJRE_ using the JVM file /media/D:/tmp/istemp2346224982367/_bundledJRE_/jvm".
Sure enough, if I said '/media/D:/tmp/istemp2346224982367/_bundledJRE_/bin/java -cp /media/D:/tmp/istemp2346224982367/Verify.jar Verify java.vendor java.version', I would get the error message, "Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object".
I knew that this was a serious boo-boo on the part of whoever designed this installer (very poor quality control), so instead of hacking the jvm file during runtime, I thought I would try a different trick so that the various paths and environment variables where not messed up.
mount -o bind /media/D\:/tmp /tmp
This effectively gives me the storage space for -is:tempdir in /media/D\:/tmp, but allows programs to access /media/D\:/tmp from /tmp instead (the default place for -is:tempdir). Using only './setup.bin' this time, the setup proceeded past extracting the bundled JRE, verifying it, and extracting the installation archive, but then setup exited with the error, "The installer is unable to run in graphical mode. Try running the installer with the -console or -silent flag."
I knew that loss of X was pretty typical to using 'sudo', so I changed /etc/sudoers with the command 'visudo', and added "XAUTHORITY DISPLAY" to env_keep in the Defaults declaration. At that point, I had to end my sudo session and start a new one. I verified that XAUTHORITY and DISPLAY were preserved after I started my sudo session with 'sudo -s', 'env | grep "XAUTHORITY\|DISPLAY"'. At that point, all I had to do was close the terminal application, reopen it with Ctrl+Alt+t, start a sudo session with sudo -s, and run './setup.bin'. Then the installer worked perfectly. There are also a few patches to SPSS 16 for Linux as well, located here.
I haven't tried installing them yet, but hopefully they will work 'out of the box'.
I know that this wasn't a very short and sweet how-to, but ... well... I didn't write the installer script, and I didn't really feel like modifying it (which would probably be some kind of copyright violation if I redistributed it), so I thought I would just describe the fix for anyone to read. Hopefully the SPSS people will read this and fix this installation bug for their next release.
Install BC - The Arbitrary Precision Calculator
Format a USB memory stick with Ext2, use as tempdir
Mount tempdir (bind) at /tmp
Edit /etc/sudoers to preserve XAUTHORITY DISPLAY
20081006
Linux-2.6.27-rc8 on the EEE 702

First of all, I was actually planning on using the 2.6.26-gentoo sources, which implemented the changes upstream that I had made for the 2.6.24-eee-r1 sources, because it already had the eeepc-laptop module sources included, and (limited) ath5k support.
However, when I tried to 'modprobe ath5k' with the 2.6.26-gentoo kernel, I encountered a nasty error message saying that the AR2425 chip is still under development (boo-urns!), and that support for the AR2425 chip would be included in the 2.6.27 sources. That made me revert back to my 2.6.24-eee-r1 linux kernel, but not for long!
Having never been the type to accept defeat so easily, I decided to use the vanilla-sources-2.6.27-rc8. The main difference between the vanilla and Gentoo sources are, that the Gentoo kernel sources (and subsequently the eee sources) are patched versions of the vanilla kernel, which include security fixes as well as various other features (SquashFS for example).
Now, I do need SquashFS for my squashed portage, but the security patches I could do without for the time being, until Kernel.org, and Gentoo, release their respective 2.6.27 kernel sources. Aside from that, I would need to compile external modules for the EEE pc, such as uvcvideo (webcam), eeepc-linux (Fan / CPU / FSB control).
Thanks to the inclusion of the eeepc-laptop sources, providing ACPI interfaces for all of the EEE PC Fn buttons, I could now omit the external asus-acpi module, as well as the quasi-proprietary ath_hal module provided with net-wireless/madwifi-ng.
Yes, that's right! Now the Atheros chipset on the EEE PC will work with the standard 'wext' wireless interface, allowing the unpatched version of NetworkManager to run seamlessly!!! Although I have switched to WICD since the last time I tried to use NetworkManager, but I thought I'd mention the changes anyway.
Here are a few patches that might be of interest:
eeepc-linux-2.6.27-rc8.patch
linux-2.6.27-rc8-squashfs3.4.patch
atl2-2.6.27-rc8.patch
All of these will work with sys-kernel/vanilla-sources-2.6.27_rc8.
Enjoy!
20080919
EEE 702 Has Poor Graphics Performance
I've owned my EEE 8G for quite a long time and also fully customized the software on it as a binary Gentoo distribution. However, one thing that I've found noticeably lacking is the performance of full-screen video. The video device on the EEE is an Intel 915 Mobile Graphics chip, which I believe uses shared memory.
If you know of a way to improve the video framerate of the EEE, then please post your Xorg.conf and related mesa / intel driver versions.
If you know of a way to improve the video framerate of the EEE, then please post your Xorg.conf and related mesa / intel driver versions.
20080721
Gentoo / EEE PC - Black Screen on Resume

Using the ACPI S3 sleep state is actually not an uncommon problem with Linux end users, particularly the non-Ubuntu brand. I have to hand it to Ubuntu in that almost every machine I've ever owned has been properly detected and configured automatically. Getting a bug fixed is a bit more difficult, but whatever.
As many of you know, I use Gentoo almost exclusively on my EEE and Gentoo is historically one of the most difficult platforms to tweak. Gentoo has started offering only stage3 tarballs to get users off to a start, but when I began with Gentoo, they offered stage1 and stage2 tarballs, where building the compiler and baselayout from scratch was part of the installation routine.
The next generation of Gentoo-based distros sometimes offer what is called a stage4 tarball. A stage4 tarball is an entire pre-compiled root image and desktop environment, plus all of the tweaks and additional software necessary to exploit all of the capabilities of the hardware.
In my opinion, the stage4 scene is really lacking with Gentoo. Likewise with binary packaging. If there was a stage4 tarball publicly available for the EEE PC, then there would be thousands more users converted over, I'm sure. The same goes for the Maemo devices. The entire ultra-portable market is full of hardware that has unique specifications and tweaks. If Linux distributions don't start packaging the tweaks, then they'll find themselves falling behind the competition.
So far, I've found a few sites that have clearly explained things relating to building software for the EEE PC - one is by Nathan Coulson, and the other two are slightly outdated.
So the EEE PC model 702 (8GB SSD) has an intel 915 mobile graphics controller on the PCI bus. I would assume that this is the root of the issue when it comes to restoring the black screen after suspend / resume.
I've tried vbetool and saving / restoring /proc/bus/pci/00/02.0 to /tmp/video_state, but neither of those approaches has fixed the problem. Some Gentoo users have reported that the hibernate script works by default so that is my next option to try that out.
I thought I'd post the issue here - if you have any suggestions, please feel free to comment.
In the mean time, I wanted to post my eee overlay. Note that many things with linux-2.6.26 already obselete what is in the overlay, such as the atheros driver, atl2, all of the EEE PC platform-specific fixups, etc. Here is a pretty comprehensive 2.6.26 changelog.
If you feel like using my eee overlay, then you can either directly download the tarball or use layman with
The overlay contains:layman -o http://virtb.visibleassets.com:2080/layman.conf -a eee
- sys-kernel
- asus-acpi (asus acpi module for /proc/acpi/asus)
- eee-sources (The same patches for 2.6.23 brought forward to 2.6.24)
- eeepc-linux (the eee module which allows users to overclock their FSB)
- net-wireless
- madwifi-ng (atheros madwifi driver)
- madwifi-ng-tools (tools specifically for the driver)
- app-laptop
- eee-acpi (a collection of scripts for acpi events - currently only eee-suspend and eee-video are disabled)
- x11-apps
- asusosd (ASUS On-Screen-Display for hotkey events)
export ACCEPT_KEYWORDS="**"
export EMERGE_DEFAULT_OPTS="-K"
export PORTAGE_BINHOST="http://virtb.visibleassets.com:2080/geeentoo/packages/All"
export FEATURES="getbinpkg"
emerge -av1 asusosd
Please help fix my Black-Screen-Of-Death !!
20080708
Prebootmisc for the EEE

So here they are!
In order to minimize writes to flash I would advise adding this line to your /etc/fstab:
tmpfs /tmp tmpfs nodev,nosuid,noexec 0 0Accordingly, to utilize the ram-based filesystem in /tmp, you can also make some adjustments to portage in /etc/make.conf:
PKGDIR="/tmp/binpkgs"Now, in order to prevent certain daemons and applications from vomiting all over you on boot, it's necessary to build a bit of structure in /tmp that such apps expect to find. For that we'll need an init.d entry that starts right after the local filesystems are mounted, but before anything else!
PORTAGE_TMPDIR="/tmp"
DISTDIR="/tmp/distdir"
/etc/init.d/prebootmisc:
#!/sbin/runscript/etc/conf.d/prebootmisc.start:
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
need localmount
before logger
before bootmisc
}
start() {
ebegin "Starting prebootmisc"
if [[ -e /etc/conf.d/prebootmisc.start ]] ; then
source /etc/conf.d/prebootmisc.start
fi
eend $? "Failed to start prebootmisc"
}
stop() {
ebegin "Stopping prebootmisc"
if [[ -e /etc/conf.d/prebootmisc.stop ]] ; then
source /etc/conf.d/prebootmisc.stop
fi
eend $? "Failed to stop prebootmisc"
}
# vim:ts=4
if [ ! -h /var/cache/edb ]; thenNow just run the following commands to add prebootmisc to the boot runlevel
rm -Rf /var/cache/edb && cd /var/cache && ln -sf ../../tmp/cache/edb edb
fi
mkdir -p /tmp/cache/edb
mkdir -p /tmp/{portage,binpkgs,distdir}
if [ ! -h /var/log ]; then
rm -Rf /var/log && cd /var && ln -sf ../tmp/log log
fi
mkdir -p /tmp/log/{gdm,samba,sandbox,news,cups}
chmod +x /etc/init.d/prebootmiscThere is 1 catch that I've found after months of use - if your bootmisc is set to WIPE_TMP (wipe_tmp for openrc users), then it will destroy the directory structure that prebootmisc created. My suggestions are 1) disable wipe_tmp which is useless anyway if /tmp is a ram filesystem, 2) rename the service postbootmisc and change depends to have after bootmisc, if you really want /tmp to be wiped before it is mounted tmpfs.
rc-update add prebootmisc boot
After rebooting the machine you should find that many applications run faster and do much fewer write cycles to flash, preserving the longevity of your flash root filesystem.
To get Firefox to utilize /tmp as your cache (you will lose your cache after /tmp is unmounted), open firefox, navigate to about:config, and set this line:
browser.cache.disk.parent_directory /tmpIf you're a gnome user, you might also find it helpful to add the System Monitor applet to your panel and activate the disk monitor utility. I've changed my read indicator to a safe green colour and my write indicator to red. That way, whenever I'm using an application that is abusing my flash filesystem I'll see a red spike in the System monitor and I'll I know that I'll have to adjust the preferences for that app to use /tmp.
I hope this has helped speed up applications and spare the life of your flash and speed up your EEE!
Geeentoo Binary Package Repository

I'm going to try my best to put together some documentation about how I arrange my EEE PC, providing /etc/portage/{package,savedconfig}*, /etc/make.conf, /etc/init.d/portage_squashfs, etc. Although right now the documentation will probably consist of a static html page with links to the Gentoo Wiki and other places.
My eventual plans for the EEE are to get a full-blown GRP (Gentoo Reference Platform) set up on it, to create a stage4 for Geeentoo, and then of course to do hardware modifications :)
Planned modifications include:
- 2 Accelerometers (probably the same kind in the FreeRunner)
- a bluetooth transceiver (I'm using a Linksys USB model)
- a touchscreen to go underneath the LCD (a la iVancouver.com)
- 2GB of Ram (a la iVancouver.com)
- An internal USB Rubee RFID Tag reader (from Visible Assets Ltd.)
In any event - stay posted!!
Labels:
eee pc,
geeentoo,
gentoo,
gentoo-wiki,
hardware hacks,
kiel,
visible assets
20080611
How-To: The Full Portage Tree on the EEE PC


Gentoo is often considered to be 'bloated' because the Portage tree takes up at least 500 MB on disk. Depending on the filesystem, that could mean that the usage can be sometimes up to 750 MB!
On a UMPC such as the EEE, with only very limited hard-disk space, 750 MB is far over the limit of acceptibility.
My first solution was simply to use a binary Gentoo system. The portage tree was not necessary as long as an internet connection was available and a suitable binary package repository was configured. That has actually been working incredibly well and I have no complaints yet whatsoever. However, I do occasionally like to look into the portage tree for examples on creating ebuilds when I'm doing custom software packaging, so i thought it would be nice to have it wherever I can take my EEE.
Then someone on EEE-User mentioned using SquashFS for the Portage tree. This made absolute sense, because the Portage tree did not need to be updated frequently at all, and could easily be made read only. SquashFS enabled me to have the benefits of a source-based Gentoo distribution on my EEE but compressed the Portage tree from 700 MB to 42 MB !!!
The following 5 steps will demonstrate how easy it is to use Gentoo - even with it's "bloated" Portage tree - on the EEE PC.
Note: I performed these steps on a modified EEE PC with 2GB of physical RAM, which explains how I could mount 768MB of RAM as tmpfs. If you have less than 2GB of physical RAM, then I would suggest making the SquashFS Portage image on a regular desktop computer running Gentoo Linux.
Step 1: Find a portage mirror
You can find all of the Gentoo mirrors on the official Gentoo mirror list. I use
MIRROR="http://gentoo.mirrors.tera-byte.com"
Step 2: Install squashfs-tools
emerge -av1 squashfs-tools
Step 3: Download and Extract the Latest Portage Snapshot
mkdir -p /tmp/tmp2
mount -o size=768m -t tmpfs none /tmp/tmp2
wget -O - "${MIRROR}"/snapshots/portage-latest.tar.bz2 | tar xpvjf - -C /tmp/tmp2
Step 4: Create the SquashFS Image
mksquashfs /tmp/tmp2/portage /tmp/tmp2/portage.sqfs
mv /tmp/tmp2/portage.sqfs /usr
umount /tmp/tmp2
rmdir /tmp/tmp2
Step 5: Create init.d and conf.d entries to simplify or automate mounting
/etc/init.d/portage-squashfs:
#!/sbin/runscript
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
need localmount
}
checkopts() {
for var in "${MTPNT}"x "${PSQFS}"x; do
if [ "${var}" = "x" ]; then
eerror "one of the necessary variables was not defined"
return 1
fi
done
if [ "$(grep "squashfs" /proc/filesystems)" = "" ]; then
eerror "SquashFS is not supported by your kernel"
return 1
fi
if [ ! -e "${PSQFS}" ]; then
eerror "${PSQFS}: No such file or directory"
return 1
fi
if [ ! -d "${MTPNT}" ]; then
eerror "${MTPNT}: No such file or directory"
return 1
fi
}
start() {
local mtopts="-t squashfs -o loop,ro"
einfo "mounting ${PSQFS} at ${MTPNT}"
checkopts || ( eend 1; return 1 )
mount ${mtopts} ${PSQFS} ${MTPNT}
eend $?
}
stop() {
einfo "unmounting ${MTPNT}"
umount ${MTPNT}
}
# vim:ts=4
/etc/conf.d/portage-squashfs:
MTPNT=/usr/portageLastly, don't forget to make the init script runnable:
PSQFS=/usr/portage.sqfs
chmod +x /etc/init.d/portage-squashfs
Notes:
Extracting the portage tree and creating the SquashFS image in /tmp will work only if you have >= 1GB of RAM, approximately. I was using the EEE PC 8G, which comes with 1GB of RAM and there were no problems at all. Alternatively, if you have >= 800MB on your root device, then you could perform the operation there, but it would be much slower. If another desktop or laptop PC is available, a better alternative is to build the portage.sqfs file on the other machine and then copy it on to your EEE.
Also, it should go without saying that you will need to have root permissions to do this - use 'sudo -s'
You should also be aware, that this will make /usr/portage read-only. Therefore, in /etc/make.conf, set DISTDIR="/tmp/distdir" and PKGDIR="/tmp/binpkgs", or something similar.
20080510
TS7260 Powered via USB


I recently picked up a USB serial-converter and a DB9 F-F gender changer from The Source (the store formerly known as Radio Shack) but to my dismay, this combination was ineffective. As I suspected, the wires in the gender bender were straight through and not crossed - which is very typical of DB9 F-F converters. Crossed send / receive wires are necessary for NULL modem cables. That is, the pin input -> output mapping should resemble
- 5 -> 5
- 2 -> 3
- 3 -> 2
- 4 -> 6
- 6 -> 4
Ta-Da!


In both cases, the atheros 802.11 b/g wireless ethernet device can easily be configured to masquerade IP traffic for both the EEE as well as the 7260, forwarding requests between eth0 and ath0 as necessary. It might be useful to run a dhcp server on the ethernet port of the EEE so that the 7260 receives its IP address, hostname, and DNS information automatically. An example script for iptables is below:
#!/bin/sh
EXTIF=ath0
INTIF=eth0
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

Labels:
atheros,
db9,
eee pc,
gender bender,
hardware hacks,
iptables,
null modem cable,
pl2303,
ts72xx,
umpc,
usb
20080421
Subscribe to:
Posts (Atom)