I own a brick... Yes, the Openmoko FreeRunner...
A brick? you might think.
Yes, to me it might be functional as a door stopper, but is still useless as a phone, and why? Simply because you cannot easily change the phone volume when calling. This leads to me having two choices, either call with the GTA02, sharing the conversation with the rest of the world while making sure the person at the other end remembers what he/she is saying due to the sound getting echoed back through the microphone, or continue to use my old Nokia N80i, thats crappy but will do the job nicely.
During my 3 months of ownership, I haven't been able to make one simple fully functional phone call except for one occasion where I first had to tune the phone using the alsamixer in a terminal window and where, amongst a couple of dozen levers and buttons, I finally figured out the two that actually changed the microphone and speaker volume.
Everybody seems to eager making sure you can use the GPS, Wireless or play games or making the phone be an iPhone lookalike, totally missing the very reason why one uses a phone in the first place.
I don't care if bluetooth, GPS or Wireless works as long as I cannot use it as a normal phone.
(As more and more interesting information is put into this page that is slightly of topic from the original text, I have removed my earlier comments regarding different distributions and their current functionality in favour of the more resent Debian input)
The phone is a product in development thus one cannot expect things to work flawlessly compared to an ordinary phone. But then again, after more than one year of development I believe one should at least be able to expect a few things to work by now:
- Make calls
- Receive calls
- Have a good enough audio quality
- Receive SMS messages
- Send SMS messages
- Be able to connect with ssh through USB
- Be able to change the volume
Debian Even though this one looks promising, I am still struggling with the simplest of things which is to get the pointer aligned with the screen after having done an apt-get upgrade of the basic installation. People are giving lots of nice hints about what values should be in the /dev/etc/pointercal file, but no matter what I put in there, only a portion of the screen is needed to access the phole display. Most people are refering to the touch screen events being received through /dev/input/event1, but no such device exists in my Debian installation.
Your feedback about Debian sounds strange. Did you follow this procedure? My FreeRunner has been running Debian for three weeks and I never experienced such pointer related problems.
Reply: About Debian
thank you for your very quick reply. Yes, I have used that page to be able to install Debian on it. It took me quite a while to find any working kernel to go with it though. At the moment, the OS itself works fine through USB. The problem lays solidely with the touch screen and xfce. The funny thing is that the /dev/input/event1 device xorg.conf is refering to doesn't exist under /dev/input. Only event0,2,3,4 and mice... Even so the touch screen works, but only uses a portion of the screen to address the whole display making the screen useless. :-(
As of writing I am starting to suspect /dev/input/mice might actually be the disguised /dev/input/event1, giving a bit of light in this dark matter...
Did you do an apt-get upgrade of your unit? Because that's when the screen problem started. --
Part two: About Debian
I have sent this to the smartphone-userland forum, but nobody has replied
I have the same kind of problem that can be read about on the internet, that only a small portion of the touch screen is used to point all over the display. This weird behaviour started after doing an apt-get upgrade.
Most people recommend to use ts_calibrate to fix the issue, after setting the parameter TSLIB_TSDEVICE="/dev/input/event1" But when looking into /dev/input/ there is no such thing as event1, there is event0,2,3,4 and if using them ts_calibrate will not recognize it as the touch screen. I have also seen recommendations such as /dev/input/touchscreen1 (or similar) but it doesn't exist as well. This means I have no clue where the xserver listens to the touch screen input.
Trying to configure the screen by using all kinds of different pointercal values recommended all over the Internet hasn't made things work any better, nor has trying to tamper with ts.conf. I notice that it pointercal is actually read as different parameters change its behaviour slightly, but nothing works. These ones I have used so far:
poinercal -132 19425 -2039232 -25919 -218 23835853 33070 pointercal_current -67 38667 -4954632 -51172 121 46965312 65536 pointercal-fso 557 38667 -4654632 -51172 121 46965312 65536
pointercal -132 19425 -2039232 -25919 -218 23835853 65535 calibrated-qtopia -158 19425 -2071883 -25955 -290 24063475 33118 calibration_tip 0 80000 -8000000 -80500 0 74500000 65536
I have also tried to copy the old libts* files as some person did recommend that as well to solve the issue, but no success.
Reply: About Debian
Well... I issued my last apt-get update && apt-get upgrade yesterday morning (Paris time) and didn't notice any change about the pointer behavior. I have since rebooted my FR several times. Some more details about my config:
- FSO3 kernel using theses instructions
Linux debian-gta02 2.6.24 #1 PREEMPT Thu Sep 11 09:16:38 UTC 2008 armv4tl GNU/Linux
- pointercal parameters: 557 38667 -4654632 -51172 121 46965312 65536
ii xserver-xorg-input-tslib 0.0.5-1 tslib touchscreen driver for X.Org/XFree86 s ii fso-frameworkd 0.2.0-git20080909-2 freemsmartphone.org Framework Daemon ii fso-frameworkd-wireless-glue 0.2.0-git20080805-4 Free Smartphone Framework Daemon - wireless ii fso-gpsd 0.5-1 gpsd compatibility daemon for the FSO framew ii fso-utils 0.git20080812.2 Useful tools for the freesmartphone.org syst
- ts.conf: module_raw input
- bits from dmesg:
input: Neo1973 Buttons as /devices/platform/neo1973-button.0/input/input0 wake enabled for irq 48 s3c2440-ts s3c2440-ts: successfully loaded input: s3c2410 TouchScreen as /devices/virtual/input/input1 input: lis302-1 (top) as /devices/virtual/input/input2 lis302dl spi0.0: Found lis302-1 (top) input: lis302-2 (bottom) as /devices/virtual/input/input3 lis302dl spi0.1: Found lis302-2 (bottom) i2c /dev entries driver s3c2440-i2c s3c2440-i2c: slave address 0x10 s3c2440-i2c s3c2440-i2c: bus frequency set to 390 KHz s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter input: GTA02 PMU events as /devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/input/input4
- The touchscreen device in /sys:
debian-gta02:~# cat /sys/devices/virtual/input/input1/name s3c2410 TouchScreen
Hope this helps.
The quest for a good Debian config
Everything is the same except for the kernel being:
Linux fic-gta01 2.6.24 #1 PREEMPT Wed Aug 27 14:17:59 CEST 2008 armv4tl GNU/Linux
(as this one was the only one I got working nicely) and I do not have the fso packages installed.
This raises a few inconsistencies:
- You said your Neo is a GTA02 but you're using a GTA01 kernel. You may want to give a try to the FSO3 kernel for GTA02
- BTW, the fso-* packages should have been installed by the Debian installation script. Theses packages are required for the GSM usage.
Just in case, here are the /etc/apt/sources.list entries to use:
deb http://ftp.debian.org/debian unstable main # pick a mirror near you at http://www.debian.org/mirror/list deb http://ftp.debian.org/debian experimental main # idem deb http://pkg-fso.alioth.debian.org/debian unstable main
(Gosh your quick, I was just to add these lines)
I have now updated the kernel to:
Linux fic-gta01 2.6.24 #1 PREEMPT Wed Sep 3 19:01:18 CST 2008 armv4tl GNU/Linux
But still the screen is behaving like earlier described, and still no /dev/input/event1 to be found. I knew you where to pin point gta01, but thats just the name of the unit at the moment. It came with the rootfs system. The guy preparing it probably had a gta01 or something... I think I downloaded the first debian version from
before finding the correct kernel to use for the gta02.
Please have a look at the model name stated under the battery. Mine says clearly Model: GTA02 as on this picture:
Just to be be sure...
In case it's a GTA01 I can't help you further. But if it's a GTA02 please consider reinstalling Debian this way (the wiki page Manual_Debian is now obsoleted).
It is a GTA02, mine is even from 2008-07-21. the name just got inherited when getting the root filesystem for Debian from that site. But to make things more coherrent I am at the moment reinstalling it all to your recommendations.
Ok, so I reinstalled Debian and I am trying to get xfce4 up and running. At the moment I only have the console. I now do have /dev/input/event1 and thats an improvement. But there is no /var/log/messages and if one tries to install a package that doesn't exist with apt-get you get an error and that ssh session totally hangs.
I can also see an error at boot
.udev/ already exists on the static /dev! (warning)
Ok, the apt-get problem was solved by doing dpkg-reconfigure apt (or by installing aptitude, I did both at the same time), thus the exitement increases will this unit come alive... or not...
(II) Loading extension XFree86-DRI xf86PciVideoInfo is not set Could not get primary PCI info Backtrace: 0: /usr/bin/X(xf86SigHandler+0x70) [0x80aa8] Fatal server error: Caught signal 11. Server aborting
The Debian installation script normally installs the matchbox window manager. Did your FR successfully reboot with a working graphic session just after the Debian installation? It should have: my FR is from 2008-07-25 => probably the same hardware revision than yours.
I've had a look at my /tmp/Xorg.0.log. Here is the DRI loading part:
(II) LoadModule: "dri" (II) Loading /usr/lib/xorg/modules/extensions//libdri.so (II) Module dri: vendor="X.Org Foundation" compiled for 1.4.2, module version = 1.0.0 ABI class: X.Org Server Extension, version 0.3 (II) Loading extension XFree86-DRI (II) LoadModule: "fbdev" (II) Loading /usr/lib/xorg/modules/drivers//fbdev_drv.so (II) Module fbdev: vendor="X.Org Foundation" compiled for 188.8.131.52, module version = 0.4.0 ABI class: X.Org Video Driver, version 2.0
Did you change your xorg.conf? The one provided by the Debian installation should have worked out of the box. Sorry if I can't be of more help.
One step beyond
You have been of great help already. Just to have a reference installation to check against is of great help.
I have surpassed that message now, and I have succeeded to get the graphic display up and running again. But after installing xfce4 the good old weird display behaviour is back again, one third of the screen representing the whole screen. Its like something tripples the value output from /dev/input/event1.
At the moment I have ts_calibrate etc giving a Segmentation Fault and the xserver returning:
Backtrace: 0: /usr/bin/X11/X(xf86SigHandler+0x70) [0x80aa8] 1: /lib/libc.so.6 [0x4021a374] 2: /usr/lib/libts-0.0.so.0 [0x404f8de4] Fatal server error: Caught signal 11. Server aborting waiting for X server to begin accepting connections giving up. xinit: Connection reset by peer (errno 104): unable to connect to X server xinit: No such process (errno 3): Server error.
Ok that problem clearly has to do with putting:
Section "InputDevice" Identifier "Configured tslib" Driver "tslib" Option "CorePointer" Option "TslibDevice" "/dev/input/event1" Option "Protocol" "Auto" EndSection
in /etc/xorg.conf. Changing back to use /dev/input/mouse makes xfce4 run, but one cannot move the mouse pointer (which is quite obvious).
I have now removed and reinstalled X and xfce4 a second time to get the touch screen to work, but I seem to be stuck with this error if trying to use the above lines in /etc/xorg.conf
(II) Loading sub module "GLcore" (II) LoadModule: "GLcore" (II) Loading /usr/lib/xorg/modules/extensions//libGLcore.so (II) Module GLcore: vendor="X.Org Foundation" compiled for 1.4.2, module version = 1.0.0 ABI class: X.Org Server Extension, version 0.3 (II) GLX: Initialized MESA-PROXY GL provider for screen 0 (**) Option "CorePointer" (**) Configured tslib: always reports core events (**) Option "TslibDevice" "/dev/input/event1" Backtrace: 0: /usr/bin/X11/X(xf86SigHandler+0x70) [0x80aa8] 1: /lib/libc.so.6 [0x4021a374] 2: /usr/lib/libts-0.0.so.0 [0x404f8de4] Fatal server error: Caught signal 11. Server aborting
Section "InputDevice" Identifier "Configured Touchscreen" Driver "tslib" Option "CorePointer" "true" Option "SendCoreEvents" "true" Option "TslibDevice" "/dev/input/event1" Option "Protocol" "Auto" Option "Width" "480" Option "Height" "640" EndSection Section "Device" Identifier "Configured Video Device" Driver "fbdev" EndSection
I haven't tried xfce4 yet: my 512MB microSDHC card is currently full and I'm waiting for a 8GB one.
Debian installation, mission accomplished :)
The last error was due to some bad character accidentally put into in the ts.config file. Finally the screen seems to be fairly aligned with the touch screen display. Before this i totally removed everything regarding Xwindows and reinstalled xfce4, xserver-xorg and whatever extra packages they did need, a third time. I also used your touch screen parameters in /etc/X11/xorg.conf.
Thank you Gilles for your patience and creative input. Next step will be to make the unit jump into Xwindows from boot and make. Please continue to check this page for a while as I might need a bit more help on my way to a perfect unit. A good question is how to use the GSM functions in the xfce environment.
The X session automated start - and BTW the GSM functions - are handled by the zhone-session package:
# apt-get install zhone-session
It installs the /etc/init.d/zhone-session startup script. You can then customize the set of X apps launched at the beginning of the X session by editing the /usr/bin/zhone-session file.
My idea is to run the xfce desktop to be able to use the alsa mixer etc, and from there use the GSM functions when needed, but maybe I am looking upon things from the wrong track. As far as I understand the zhone desktop is only a demo, and there are no more softwares to install for zhone beyond the ones provided, right?
I have zhone as a program on the xfce desktop at the moment, it seems to work nicely (I haven't tried calling with it yet).
You're right. I've finally managed to have a supported 8 GB microSDHC card so I've installed xfce4. I too have zhone running as a program on the xfce4 desktop. I've automated the zhone launching using the xfce4 default session file /etc/xdg/xfce4-session/xfce4-session.rc:
[Failsafe Session] Count=5 ... Client4_Command=zhone Client4_PerScreen=True
Have you been able to call yet? I tried but no sound or anything. I also installed the xfce4-mixer and the amount of levers and toggle buttons are quite overwhelming. It looks like doing any changes enters the risk of screwing things up rather than solving it.
When it comes to web browsers I have tried Konqueror, Iceweasel, netsurf, dillo and Midori stands out to be the fast, light and able to represent the web pages correctly.
What window manager are you running at the moment xfwm?
I've been able to call and being called: my FreeRunner is my main phone. No need to tune anything, no need for xfce4-mixer. Zhone default settings are ok. If you want to tune the FreeRunner audio, have a look at the Neo Freerunner audio subsystem.
And I use the matchbox window manager.
How did you get the matchbox window manager to work? As soon as i kick out xfwm it also throws away xfce4...
No need to apt-get remove xfwm4. Just create the file /root/.config/xfce4/xinitrc with:
#!/bin/sh matchbox-keyboard-toggle & exec matchbox-window-manager -use_titlebar yes -use_cursor no & xfce4-session
I use matchbox with the titlebar option set to yes to be able to close applications.
This file must be executable.
Then edit /etc/xdg/xfce4-session/xfce4-session.rc as stated above to start zhone automatically.
I did the above, but when after rebooting, it was still not using matchbox...
Have you succeeded to install the xserver-xglamo? I removed xserver-xorg, and installed xserver-xglamo, but I haven't got it up and running yet.
I haven't tried it yet. Stay tuned ;o)
Got it running, but you have to create this link
ln -s /usr/bin/X11/Xglamo /usr/bin/X11/X
to make it work. The package creates the link in
looks like this
#!/bin/sh # $Id: xserverrc 189 2005-06-11 00:04:27Z branden $ exec /usr/bin/X11/X -nolisten tcp
I've just given a try to xserver-xglamo. It worked "out of the box". No need for manual symlink.
- The fonts for the matchbox-keyboard are so tiny that I can't read them. This is fixed by changing the X_OPTIONS variable in /etc/init.d/zhone-session to force 96 dpi:
X_OPTIONS="vt4 -nolisten tcp -dpi 96"
- Right click doesn't work
Xglamo doesn't seem to respond to any screen rotation configuration in xorg.conf.
- Get the patched xorg tslib input driver: http://www.ohli.de/download/xserver-xorg-input-tslib_0.0.5-1+fso1_armel.deb
- Add this option into the InputDevice section of /etc/X11/xorg.conf:
Option "EmulateRightButton" "1"
Then you can trigger a right click with tap+hold (about 0.5 sec).
See http://kerneltrap.org/mailarchive/openmoko-community/2008/8/17/2966634 for further information.