Wolfmans Howlings

A programmers Blog about Ruby, Rails and a few other issues

OpenMoko Freerunner first impressions

Posted by Jim Morris Fri, 11 Jul 2008 20:53:11 GMT

OK so I just got my shiny new OpenMoko Freerunner GTA02.

This is an Open source GSM cell phone, running Linux and OpenMoko S/W stack.

This phone is really a developer release although it implies on the website it is usable for the masses.

We will see...

Turning it on you see all this Linux boot up tiny tiny text scroll by, ya the average Joe blo is going to love that ;)

So I followed the startup guide and plugged in the usb cable to my Ubuntu desktop. (If you don't have Linux think again, maybe that $400's can go towards a tank of gas).

I followed the usb networking guide, and ssh'd into the phone, and Holy Crap! it just worked!

First off it doesn't come with much, It can make a phone call, but no other apps seem to be loaded.

Oh one gripe is there is nowhere to stow a stylus, it comes with a huge pen/laser pointer/stylus, but who is going to keep that in their pocket, and those with fat fingers are going to have a hard time doing anything.

I actually had to RTFM to figure out how to close an application! BTW this guide seems to be pretty good. (You click the power button to close an app! it really needs a close button somewhere where people expect one).

After loading most of the needed apps via the opkg app, which is slow via USB 1.1 (whats up with that guys? its 2008! USB 2 is REQUIRED) I found that most of them are pretty much unusable. The default 2007.2 UI is unintuitive, and most of the necessary apps simply don't work well. Adding a contact is virtually impossible, try setting the phone number to home instead of work for instance.

The web browser works but you can't input anything into forms, so don't try logging into gmail.

The calendar makes no sense whatsoever.

OK so I am being harsh here, but the damn thing costs $400! and they imply your average user could use it as a phone, so lets get over that issue, and take it that this is a work in progress, very early stages, and open source. It needs a good UI guide, come on we may not have a super UI design guy, but copy the iphone or any other phone on the market to get a clue how to make an intuitive UI. I am not a UI guy, but even I can see this needs some work. BTW I do like the way the scrolling works, that is very cool, you flick up or down and it scrolls with some friction looks great, and works even better.

The platform itself has plenty of potential, built in GPS (which doesn't work without an external antenna), accelerometers, which no one has figured out how to use yet. A really nice VGA display, although its invisible in bright sunlight, wifi which I was totally unable to get to connect to a WPA/PSK station, and bluetooth, with no S/W support for headsets.

Once all these issues are resolved I think it would make a great primary handset.

I'll do my part and write something for it and release it as open source, but I'm disappointed I can't use this as a phone yet.

I'll continue to RTFM if I can find one that describes the current UI (the WIKI describes an obsolete UI). Maybe some of my issues are simply not knowing how to use the UI, but that is a bad sign as I am a developer and can use most UI's without RTFM'ing.

I still think this is a great (if expensive) toy for now, especially for us Linux Geeks, and one day it may actually be a great phone too.

GPRS

UPDATE I got GPRS working, followed the instructions on the WIKI, it is manual but it works. My tmobile chatscript is...

# File: /etc/ppp/chatscripts/tmobile
TIMEOUT 20
ABORT BUSY
ABORT "NO ANSWER"
ABORT "NO DIALTONE"
ABORT VOICE
ABORT ERROR
ABORT RINGING
SAY 'Starting GPRS connect script\n'
"" +++
OK ATZ
OK ATE1
OK AT+CFUN=1
OK AT+COPS
SAY 'Setting APN\n'
OK AT+CGDCONT=1,"IP","wap.voicestream.com"
ABORT 'NO CARRIER'
SAY 'Dialing...\n'
OK ATD*99***1#
CONNECT /n/d

and the script

# File: /etc/ppp/peers/tmobile
#
/dev/ttySAC0
115200
crtscts
lock
hide-password
defaultroute # set the default route
usepeerdns
holdoff 3
ipcp-accept-local
lcp-echo-failure 12
lcp-echo-interval 3
noauth
noipdefault
novj
novjccomp
replacedefaultroute
persist
debug

connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile"
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile-disconnect"

and a script to run it all...

/etc/init.d/gsmd stop
echo "1" > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
chown uucp.uucp /dev/ttySAC0
stty -F /dev/ttySAC0 crtscts
pppd call tmobile

GPS

I did get a fix with the GPS using the internal antenna, however it takes some concerted effort, see this page for hints. NOTE without the sd card I get a fix within 1 minute.

WIFI

UPDATE Got WIFI and WPA/PSK working, again there are two sets of instructions on the WIKI, the first set doesn't work for me, however the second set does... adding

iface eth0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

to /etc/network/interfaces and then do ifdown usb0 and ifup eth0 of course you need to setup /etc/wpa_supplicant/wpa_supplicant.conf appropriately. However when I ssh into the phone via the wifi after disconnecting the USB, it looses its connection regularly and usually within a few minutes. Not sure why that is, my WIFI is generally very stable with my laptop. I wonder if the bluetooth is interfering with it?

Finally I would like to say that I love the idea of an open spurce cell phone. I can see that these issues will probably get fixed pretty quickly as it is open source and there are thousands of eyes on the code, and if there is something you don't like you can fix it. Lets see you do that on your I-Phone ;)

Posted in ,  | Tags ,  | 19 comments | no trackbacks

OpenMoko Freerunner first impressions

Posted by Jim Morris Fri, 11 Jul 2008 20:53:11 GMT

OK so I just got my shiny new OpenMoko Freerunner GTA02.

This is an Open source GSM cell phone, running Linux and OpenMoko S/W stack.

This phone is really a developer release although it implies on the website it is usable for the masses.

We will see...

Turning it on you see all this Linux boot up tiny tiny text scroll by, ya the average Joe blo is going to love that ;)

So I followed the startup guide and plugged in the usb cable to my Ubuntu desktop. (If you don't have Linux think again, maybe that $400's can go towards a tank of gas).

I followed the usb networking guide, and ssh'd into the phone, and Holy Crap! it just worked!

First off it doesn't come with much, It can make a phone call, but no other apps seem to be loaded.

Oh one gripe is there is nowhere to stow a stylus, it comes with a huge pen/laser pointer/stylus, but who is going to keep that in their pocket, and those with fat fingers are going to have a hard time doing anything.

I actually had to RTFM to figure out how to close an application! BTW this guide seems to be pretty good. (You click the power button to close an app! it really needs a close button somewhere where people expect one).

After loading most of the needed apps via the opkg app, which is slow via USB 1.1 (whats up with that guys? its 2008! USB 2 is REQUIRED) I found that most of them are pretty much unusable. The default 2007.2 UI is unintuitive, and most of the necessary apps simply don't work well. Adding a contact is virtually impossible, try setting the phone number to home instead of work for instance.

The web browser works but you can't input anything into forms, so don't try logging into gmail.

The calendar makes no sense whatsoever.

OK so I am being harsh here, but the damn thing costs $400! and they imply your average user could use it as a phone, so lets get over that issue, and take it that this is a work in progress, very early stages, and open source. It needs a good UI guide, come on we may not have a super UI design guy, but copy the iphone or any other phone on the market to get a clue how to make an intuitive UI. I am not a UI guy, but even I can see this needs some work. BTW I do like the way the scrolling works, that is very cool, you flick up or down and it scrolls with some friction looks great, and works even better.

The platform itself has plenty of potential, built in GPS (which doesn't work without an external antenna), accelerometers, which no one has figured out how to use yet. A really nice VGA display, although its invisible in bright sunlight, wifi which I was totally unable to get to connect to a WPA/PSK station, and bluetooth, with no S/W support for headsets.

Once all these issues are resolved I think it would make a great primary handset.

I'll do my part and write something for it and release it as open source, but I'm disappointed I can't use this as a phone yet.

I'll continue to RTFM if I can find one that describes the current UI (the WIKI describes an obsolete UI). Maybe some of my issues are simply not knowing how to use the UI, but that is a bad sign as I am a developer and can use most UI's without RTFM'ing.

I still think this is a great (if expensive) toy for now, especially for us Linux Geeks, and one day it may actually be a great phone too.

GPRS

UPDATE I got GPRS working, followed the instructions on the WIKI, it is manual but it works. My tmobile chatscript is...

# File: /etc/ppp/chatscripts/tmobile
TIMEOUT 20
ABORT BUSY
ABORT "NO ANSWER"
ABORT "NO DIALTONE"
ABORT VOICE
ABORT ERROR
ABORT RINGING
SAY 'Starting GPRS connect script\n'
"" +++
OK ATZ
OK ATE1
OK AT+CFUN=1
OK AT+COPS
SAY 'Setting APN\n'
OK AT+CGDCONT=1,"IP","wap.voicestream.com"
ABORT 'NO CARRIER'
SAY 'Dialing...\n'
OK ATD*99***1#
CONNECT /n/d

and the script

# File: /etc/ppp/peers/tmobile
#
/dev/ttySAC0
115200
crtscts
lock
hide-password
defaultroute # set the default route
usepeerdns
holdoff 3
ipcp-accept-local
lcp-echo-failure 12
lcp-echo-interval 3
noauth
noipdefault
novj
novjccomp
replacedefaultroute
persist
debug

connect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile"
disconnect "/usr/sbin/chat -v -f /etc/ppp/chatscripts/tmobile-disconnect"

and a script to run it all...

/etc/init.d/gsmd stop
echo "1" > /sys/bus/platform/devices/neo1973-pm-gsm.0/power_on
chown uucp.uucp /dev/ttySAC0
stty -F /dev/ttySAC0 crtscts
pppd call tmobile

GPS

I did get a fix with the GPS using the internal antenna, however it takes some concerted effort, see this page for hints. NOTE without the sd card I get a fix within 1 minute.

WIFI

UPDATE Got WIFI and WPA/PSK working, again there are two sets of instructions on the WIKI, the first set doesn't work for me, however the second set does... adding

iface eth0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

to /etc/network/interfaces and then do ifdown usb0 and ifup eth0 of course you need to setup /etc/wpa_supplicant/wpa_supplicant.conf appropriately. However when I ssh into the phone via the wifi after disconnecting the USB, it looses its connection regularly and usually within a few minutes. Not sure why that is, my WIFI is generally very stable with my laptop. I wonder if the bluetooth is interfering with it?

Finally I would like to say that I love the idea of an open spurce cell phone. I can see that these issues will probably get fixed pretty quickly as it is open source and there are thousands of eyes on the code, and if there is something you don't like you can fix it. Lets see you do that on your I-Phone ;)

Posted in ,  | Tags ,  | 19 comments | no trackbacks

Getting beagle compiled on KUbuntu 6.10 edgy

Posted by Jim Morris Sun, 04 Feb 2007 06:32:35 GMT

The version of beagle available as a standard package with Ubuntu Edgy 6.10, is horribly buggy and uses a lot of memory (2Gbytes on my machine).

I wanted to build the latest version of Beagle (0.2.15.1) on my system which is actually KUbuntu, and this required a lot of effort! I had to install a bunch of added support libraries for gtk which do not appear to be installed by default on KUbuntu. I downloaded the latest source from here.

Here is a list of what I installed using sudo aptitude install many are suggested here the rest I discovered by trial and error.

libmono-sharpzip2.84-cil
mono 
mono-devel
libmono-dev
libgdiplus
libxml-parser-perl
libsqlite0
libsqlite0-dev
libexif12
libexif-dev
shared-mime-info
libgmime2
libgmime2-dev
gtk-sharp2
libgmime1
libgmime-2.0-2-dev
libgmime2.2-cil
libbeagle0
libmono-sqlite1.0-cil
mono-gmcs
mono-classlib-2.0
gnome-vfs-extfs
libgnome-vfs-dev
libxml2-dev
libgconf2-dev
libbonobo2-dev
libbz2-dev
fam
libfam-dev
libgnomevfs2-dev
libgnome2-dev
libgtk2.0-dev
librsvg2-dev
python-gtk2-dev
gnome-sharp2 
gtk-sharp

It turned out that the installed version of mono is not high enough to build the latest version of beagle, so I installed the latest version of mono manually into /opt/mono. You can get it here, I got the Generic Mono 1.2.2.1_1 Linux installer from here.

To use this the following exports need to be done, usually in ~/.bashrc

export GTK2_RC_FILES=$HOME/.gtkrc-2.0
export PATH="/opt/mono/mono-1.2.2.1/bin:$PATH"
export PKG_CONFIG_PATH="/opt/mono/mono-1.2.2.1/lib/pkgconfig:$PKG_CONFIG_PATH"
export MANPATH="/opt/mono/mono-1.2.2.1/share/man:$MANPATH"
export LD_LIBRARY_PATH="/opt/mono/mono-1.2.2.1/lib:$LD_LIBRARY_PATH"

Additionally I needed to do this...

export MONO_PATH=/opt/mono/mono-1.2.2.1/lib/:/opt/mono/mono-1.2.2.1/lib/mono/gtk-sharp-2.0:/usr/lib/cli/gmime-sharp-2.2:/usr/lib/cli/gsf-sharp-0.0

when I got a bunch of build errors, and run errors, presumably from mono.

I am not a c sharp programmer, and know nothing about mono, so I am not sure why these search paths are needed, but they are.

After all the above you can use the standard...

./configure
make
sudo make install

to build and install beagle.

I also turned on extended attributes on my ext3 partition as explained here.

Then run beagle (making sure the above export is done first otherwise it uses the wrong version of mono and can't find some of the mono libraries.)

As far as I can see it is now running and indexing my disk, and the memory usage is pretty low, and the cpu usage is tolerable.

If anyone can add good explanations please do so in the comments section.

UPDATE This recipe also works with beagle 0.2.16

Posted in  | Tags , ,  | 1 comment | no trackbacks

Upgrading a Ubuntu 6.06 Dapper Drake system to a Core Duo MoBo

Posted by Jim Morris Sun, 17 Dec 2006 10:57:15 GMT

My current development system is Ubuntu 6.06 using an Athlon 2500+ Barton processor and an Asus A7V8X-X motherboard and 1GB of DRAM. It has been pretty stable, and relatively fast, but it is about 3 years old, and I like to upgrade when I can at least double my perceived performance. (ie I have to notice the difference, not just going on specs).

So I decided the latest hot system seems to be based on the Intel Core 2 Duo 6600, and I like a quiet system so I decided to build one spec'd out by Silent PC Review. The one in particular was SPCR Model One: Modern General Purpose PC.

This is a build based on an Asus P5B-E board, in an Antec Solo case, with the silencer foam etc. I wanted 2 GB memory this time around as I like to use VMware workstation to run winxp.

So I ordered the CPU, Mobo and Memory from NewEgg, and I ordered the Antec Solo case with pre-installed silencer foam from EndPCNoise.com, they have a pre-built version but by buying the components myself I could save about $500, and I enjoy building systems.

The specs are:

  • Intel Core Duo E6600
  • Corsair TWIN2X2048-6400C4 memory
  • Asus P5B-E Motherboard
  • Antec Solo case
  • Scythe Ninja Plus Rev. B CPU Cooler

I already have Seagate Barracuda drives (but had to get a SATA drive see later). I had an Antec 380 Watt PSU, which is not really quiet but I will switch that with a 430 Watt Seasonic S12 later.

I had to get a new Video card, as the newer Motherboards no longer have AGP slots, so I wanted to get as close to what I already have and setup for dual monitor, which meant sticking with ATI Radeon, not the fastest but I don't play games so don't need the fastest out there, but it does need to support dual monitor, Fry's had a special on Diamond Stealth x300e ATI based PCI express cards, so I got one of those. (And as it turns out I may as well have gotten anything, as even though it is a Radeon like my current card, it couldn't use the same driver).

I had already read the horror stories of people trying to get Ubuntu to work on these new C2D Mobos, but it seemed most of the problems related to trying to run off of ATA/IDE disks, and the newer mobos all have SATA. So I got an SIIG UltraATA 133 PCI card, just in case. This was because the on-board JMicron based IDE controller does not work with the version of the Kernel Ubuntu 6.06 comes with and the plan was to try to continue using Dapper Drake and not have to upgrade to Edgy Edge or worse Fiesty. I thought I could just stick my existing drive in the new system and be off and running. (Boy was I wrong!)

I built the system pretty quickly, everything fitted in nicely although the Ninja heatsink is huge, and made it hard to plug in some connectors after I installed it, probably should have plugged them in first. Also replacing the power supply later on is going to be tough without removing the heatsink first.

The first thing I tried was to boot off of my existing IDE drive using the SIIG IDE PCI board, and I was surprised that it booted OK. The first thing I always do is run memtest over night, and as that comes with Ubuntu it was easy to do. I needed to tweak the memory settings in the BIOS first though. I don't overclock as I want stability, but the defaults the BIOS picked up were wrong, so I just changed the latencies to the Corsair specified ones (4,4,4,12). Memtest ran all night with no problems, and the CPU temp was around 50 deg C, which isn't too bad. I really like Corsair RAM it always seems to work for me. So the first step seemed to go ok.

I then discovered I was not able to get the system to boot from an IDE CDROM drive connected to the SIIG controller, whatever I tried.

I also noticed that the HD performance of the ata100 IDE disk drive was not what it should be on the SIIG controller, I'm not sure why, but it was about half the speed I expected, so I popped down to Fry's again (I practically live there ;) as they had a Seagate 300GB SATA drive for just under $100, and hooked that up, and it was nice and fast, at least 3 times as fast as the IDE drive, I suspect the SIIG PCI/IDE adapter was using a slower mode than necessary, but there was no way of fixing it, and given I can't boot from CDROMs either I returned the card (luckily Fry's has a great return policy).

I found I could boot off of a USB CDROM drive though, which I had lying around so I ran Spinrite 6 on the SATA drive, as I like to test all my drives as I've had a few bad ones in the past, this comes on a bootable CD and I left that running for about 14 hours! The disk checked out OK.

Given all these problems, plus the fact that the sound card wasn't recognized and the Ethernet card wasn't either I figured I'd see what happened if I tried to boot off of the Edgy (Ubuntu 6.10) Live CD using the built-in JMicron based IDE, I thought after all the bug reports I read they have fixed it by now.

I stuck it into the IDE CDROM drive plugged into the JMicron slot, and watched it boot, it came up and saw all the drives on the IDE, and the sound worked too. Only the Ethernet was still invisible. So it seems Edgy has fixed most of the compatibility problems, so this was enough incentive for me to upgrade from Dapper to Edgy, which turned out to not be too much of a hassle, and most of the problems I ran into other people have already run into and can be easily fixed with some Googling. (For instance the acpid didn't want to update, it was just a matter of killing off hald).

I plugged my existing Dapper IDE drive into the JMicron slot, booted into the Edgy Live CD, and copied the Dapper system onto the new SATA drive, basically just cp -ax /mnt/old /mnt/new. This meant I could keep that Dapper disk as a backup in case something went terribly wrong down the road. I did some Grub incantations to get the SATA drive to boot, this is best done in the grub boot prompt rather than using grub on a running system...

grub> root (hd0, 0)
grub> setup (hd0)

Figuring out it's hd0 or hd1 takes some effort, but if its the only drive it will be hd0, if you do this from a running system (ie the Live cd)...

> grub
grub> device (hd0) /dev/sda
grub> root (hd0, 0)
grub> setup (hd0)

I then booted off the SATA drive into single user mode of Dapper. (Dapper boots fine from a SATA drive on this MoBo).

I followed the KUbuntu instructions to upgrade from Dapper to Edgy, basically edit the /etc/apt/sources.list and replace all occurrences of dapper to edgy, then...

> apt-get update
> apt-get dist-upgrade
> apt-get install kubuntu-desktop python-qt3 python-kde3 ubuntu-minimal

Then keep doing it until everything downloads ok, that's when I found the hald problem mentioned above which was blocking the upgrade finishing.

I had to do a few apt-get upgrades afterwards, and manually upgrade the list of things that got held back for some reason.

At the end of that I had my existing workstation image upgraded to Edgy on the SATA drive, able to see the IDE drives on the JMicron controller, and the sound worked fine. I had to plug in an old PCI Ethernet card I had lying around as the Gig Ethernet controller is not recognized even in Edgy.

In the process of all this I discovered that even though the JMicron IDE works under Edgy, it thinks all the HDs are UDMA33, ie SLOW, I haven't played around much with that, but I'm not sure why as it says it handles UDMA133. This is ok for my CDROM, but I want my second IDE drive to be a bit faster, even though my primary will now be a genuine SATA. Fry's didn't have anymore SATA to IDE dongles to try (the one from Syba I tried didn't work at all), so I ordered the newer SYBA one from NewEgg, along with the 430 Seasonic S12 PSU. Hopefully this will work and make my second IDE drive fast again. In the meantime I'll live with the slow second drive.

Now I needed to find all the things that broke from my upgrade from Dapper to Edgy (Something I was hoping I would have to avoid).

The first thing was to get dual monitors working again, and as fglrx didn't seem to work anymore (not sure if it was Edgy or the different video card), I had to do some research again and found that the Radeon Xorg driver should work the same way withthe same setup I had before.

I took my existing xorg.conf that I had finally got to work with dual screen a while back using fglrx and changed the driver to radeon, and everything worked OK, except for some problem with the second screen having a huge rectangle instead of a cursor, again Googling discovered others had solved that problem, and I think adding "composite" "false" to my xorg.conf fixed it. (Or rebooting, who knows).

Most everything else seemed to work except...

  • Had to uninstall and reinstall Mysql to get the server to run

  • I had to remove Beagle as it was using 2GB of memory! and no backport in sight of the latest version, which apparently fixes that.

  • lm-sensors no longer worked, and it appears the device drivers needed for my motherboard have not been ported over yet, and probably won't make it into Edgys kernel anyway, so no more CPU temp sitting in GKrellM.

  • Minor mods needed to smarttools (smartd) setup (add -d ata for the SATA drive)

Oh yea, it is really fast, well worth the effort and expense of the upgrade, a very noticeable speed improvement over the Athlon XP 2500+ Barton system. I won't have to upgrade again for years, until there are native quad core chips at 5GHz, at least ;)

This version is quieter than my old system, but not silent yet, I'm hoping replacing the case fan with my Nexus fan, and the PSU with the Seasonic S12, and removing the fan from the heat sink, will make it almost silent.

update I got the new PSU it is a lot quieter. It is still not 100% silent as I can just hear the nexus case fan, but the pc is right next to my right ear, so you could say it is a good as it gets.

The syba silicon image based sata to ide dongle works well, the ide drive now runs about 2-3 times faster, make sure you get the silicon image based one and not the jmicron one. The one I have is in a clear plastic case, available from egghead for about $12.

Posted in  | Tags , , ,  | no comments | no trackbacks

Older posts: 1 2 3 4 5