GPS driver for FIC GTA01 in beta

During night some selected people got link to page on one of OpenMoko servers. After accepting EULA they got gllin package.

What is in package? Gllin binary itself, starter script and set of libraries from OM2007.1 release (OABI). They used “–library-path” option of dynamic linker to use old libraries on OM2007.2 system:

lib/ --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -low 5
lib/ --library-path /home/root/gllin/lib:/home/root/gllin/usr/lib /home/root/gllin/gllin.real -periodic 1

What I do not like is location where those files are stored – $HOME should not be touched by packages… But they will probably change it later.

Now who first will share informations how good it works for him/her?

Audio routing in mobile phones

I do not know how it is in other mobile phones but there is one annoying thing in my Sony Ericsson k750i phone. It is how it handle audio…

As phone has FM radio integrated I use it very often. When I go somewhere I usually plug headset (which was provided with phone) and turn on radio. The problem is when someone calls me… The phone starts ringing but it does not use headset for output 🙁 Yes — ring tone is played on internal loudspeaker instead of headset. Good part is that radio playing is interrupted so I have occasion to hear ring and press headset button to receive call. Bad part is that radio is interrupted from time to time sometimes even without calls so it is hard to find out sometimes is it radio problem or incoming call.

If there will be a day that I will switch to Neo1973 (and I hope that it will be GTA02 version) then at least that problem will be solved. Or it will be solvable due to openness of platform.

Converting ringtones (WMA -> MP3)

Yesterday I had occasion to play with HTC Touch Dual smartphone. Nice phone, comfortable formfactor, a bit crappy keypad. No WiFi or GPS but HSDPA/UMTS/EDGE present so it can be used for browsing net.

And it has nice ringtones 🙂 I grabbed few of them to use with my SE k750i phone but they were in WMA format and my phone handle only MIDI or MP3 ringtones. So converting is required…

How to convert WMA to MP3 then? There are many ways.

First method require use of Mplayer and Lame:

mplayer -ao pcm:waveheader ringtone.wma
lame -h audiodump.wav -o ringtone.mp3

Second way require GStreamer and lame plugin:

gst-launch filesrc location=ringtone.wma ! decodebin ! lame ! filesink location=ringtone.mp3

As a result I got ringtones in format accepted by my phone.

2.6.23 on Tosa

Thanks to work done by Dmitry Baryshkov we have 2.6.23 kernel working properly on Zaurus SL-6000 (Tosa). Ångström images are already present so users can test how does it works for them.

Today I reflashed Tosa with fresh build and did some testing. We still have problem with framebuffer (famous yellow lines) but otherwise it looks quite good. USB host is working very nice — I connected few devices:

root@tosa:~$ lsusb
Bus 1 Device 9: ID 1457:5122
Bus 1 Device 8: ID 046d:c70a Logitech, Inc.
Bus 1 Device 7: ID 046d:c70e Logitech, Inc.
Bus 1 Device 6: ID 046d:0b02 Logitech, Inc.
Bus 1 Device 5: ID 0a46:9601 Davicom Semiconductor, Inc.
Bus 1 Device 4: ID 05e3:0606 Genesys Logic, Inc.
Bus 1 Device 2: ID 0bb2:0302 Ambit Microsystems Corp.
Bus 1 Device 1: ID 0000:0000

Detailed checking as to wait until I charge this device to 100% because now it shutdown after few minutes.

GIT and I do not match

For both of my desktop machines I use git kernels and from time to time I add some additional patches to get something experimental to test. By default I use “quilt” to manage patches so my usual kernel session looks like:

quilt pop -a
git pull
quilt push -a

And as a result I have updated kernel with all my patches applied. If one of them do not apply I usually do updating by hand and call quilt refresh or search for newer version of patch.

Today I decided to do another attempt to use just GIT for managing my patched kernel tree instead of using GIT + quilt. And I failed 🙁

I cannot understand why GIT developers say that they hate CVS but follow its way when it comes to merging stuff… If any operation ends in merge conflicts all you get is file with CVS conflict markers inside. You need to call merge tool by hand, resolve problem, add files back to repository (do not ask me why adding files already known to SCM is needed) and tell that you resolved conflict. Even CVS or Subversion does not works that way…

I like the way it works with monotone — if there is conflict during update (so git pull like) merge tool is called (kdiff3 on my system) and user has to resolve all conflicts before monotone will go into next step. Whole merging stuff is then stored as another revision (with git it can be then remove during git rebase).

Maybe one day I will find a way to get familiar with git but it is not today…

VoIP: headset, USB phone or BT headset?

During Wednesday I will have conference call to discuss some things with few developers. Before I used cheap VoIP headphones with microphone but one of cables broke so mic works or not.

So it looks like I will have to buy something again. During OEDEM Stelios used USB phone to make calls and it looked more handy then ‘VoIP headset’. But there are many of them on market so what if I will end with something which works only under MS Windows?

Other choice is Bluetooth headset. This one will be also usefull with my cellphone or Neo1973 or even with Nokia 770. Configuring headset to work with Linux was disaster but I googled a bit and found that with bluez-utils 3.16 or newer it is no problem (or at least it looks like that).

Which one to choose… Have to sleep with this and take decision tomorrow.

Zaurus machines starts to be obsolete…

Time passed since last Zaurus (SL-C3200 ‘terrier’) was released. Many new interesting devices appeared on market: Nokia N800, FIC Neo1973 and now Nokia N810. Each of them has something extra compared to Zaurus machines — Bluetooth or Wifi or GSM. And each is supported by vendor — thing which cannot be told about Sharp.

Recently few OpenEmbedded developers (Koen, XorA, Mickeyl) wrote that they got developer discount1 for Nokia N810. What does it mean for Zaurus owners?

When developers gets new toys they usually look at pile of palmtops and decide which one go to drawer or eBay and which one will be used. For example I have 8 palmtops2 now and most of time do not use any of them. I will probably use Neo1973 as main PDA when it will reach usable state and rest of devices will be used from time to time to test something. XorA wrote that he will sell own Zaurus machines and give OE devices to someone who wants to maintain them. Koen already do not use his c700 at all, same probably with Mickeyl. As result Zaurus machines will get less and less maintained and will bitrot in next year or two 🙁

  1. There was developer program for Nokia 770, then for N800 and recently for N810. I tried with first one and ignored others as they support only developers from few selected countries

  2. Those 8 palmtops are: PalmPilot 5000, Palm M105, Sharp Zaurus SL-5500/c760/SL-6000L (OE project device), Nokia 770, 2 FIC Neo1973. 

USB scanner and udev

USB scanners are quite popular today, many ‘all-in-one’ devices contains them. But if you use distribution where permissions are done ‘per group’ like it is in Debian you can get hit by lack of access to your scanner.

Solution is: write own udev rule. It may sounds scary but in reality it is quite simple.

  • Run udevmonitor (it needs root access so sudo udevmonitor).
  • Unplug and plug scanner. You will get lot of output from udev monitor — only one line is needed:
UDEV  [1194523774.343853] add      /devices/pci0000:00/0000:00:13.0/usb1/1-1/usb_endpoint/usbdev1.7_ep00 (usb_endpoint)
  • Now it is time to gather more information about our device. Run udevinfo -a -p LINE_FROM_PREVIOUS_POINT and look at output. For my Epson Stylus DX4000 it shows:
  looking at parent device '/devices/pci0000:00/0000:00:13.0/usb1/1-1':
    ATTRS{product}=="USB MFP"
  • Edit (as root) one of files in /etc/udev/rules.d/ directory (best way is creating own one — scanner.rules for example) and add there something like that (of course set “manufacturer” and “product” to value shown in previous step)
SUBSYSTEMS=="usb", ATTRS{manufacturer}=="EPSON", ATTRS{product}=="USB MFP", GROUP="scanner"
  • Add youself into “scanner” group: sudo addgroup YOURACCOUNTNAME scanner.
  • Unplug and plug scanner — now it should be in proper group.
  • Logout and login so system will notice that you are now also in “scanner” group.
  • Launch your favourite scanning utility — I use Kooka from KDE.

As you see whole procedure can be done in few minutes without problems.

CPU cooler upgrade

As you probably noticed I upgraded CPU in my desktop machine. But cpu cooler was same as before — stock Athlon64 BOX one which was included with previous A64 3200+ processor.

Akasa AK-876 CPU Cooler

During idle cpu was running on 1GHz speed (thanks to cpufreq governor “ondemand”) and had 37-39°C temperature. Under load (such as OE/Poky builds) it was up to 65°C and after some time overheating check switched frequency to 1GHz…

Now with Akasa AK-876 heatsink this machine has 30-32°C when idle and 46-50°C under load. And fan speed is much lower — keeps under 2000 RPM under load (previous one goes up to 4000 RPM) so machine is usable without listening music.

There was some problems with fitting such big heatsink into case but it sits properly in place and air flow is in proper way — from CPU fan -> CPU heatsink -> case fan -> out. It also shows that my next machine will get new case — Codegen 9002 which I use now starts to be too small to keep all drives, fans and cables in good order.