CM9 on Marvel (HTC Wildfire S)

After Qualcom released new graphic blobs for ARMv6 I was able to get CyanogenMod 9 working on my HTC Wildfire S pretty well. There are still some problem which need to be fixed. GPS isn’t working, if you have GSM/3G turned on the battery drains pretty fast. I’m currently trying to get the camera working. There is also a wakelock bug with bluetooth in the kernel right now.

If you’re a developer working on a msm7x27 device and are interested to work together join #cyanogenmod-msm7x27 @ freenode.

You can find my work at

Logitech Linux Mouse Support

Maybe you ask: Why is there still no new version of lomoco to support the latest Logitech Mice?

The answer is that I still don’t know how they detect a mouse connected to a receiver. Maybe they just have a table which defines which mice come with which receiver and then try some commands. If it fails it is mouse X and if not it must be mouse Y.

I already wrote some proof of concept for the new protocol and sometimes people contact me and the proof of concept is enough for them. So here is a list of small proof of concept utils:


This is a tool to change the resolution on some gaming mice like the G5, G7 and G9.


Battery information for a lot of cordless mice like MX, VX and VX Nano.


This allows you to reconnect your cordless mouse to the receiver. This is for MX, VX or VX Nano.

Geocaching, Garmin and Linux

I’m a Geocacher and I’ve bought a new toy, the Garmin Vista HCx. This device has a special function for Geocaching. You have to upload these files directly to the device. It isn’t possible to store them on the microSD.
On the you have an option to send the coordinates directly to the GPS. It downloads a web browser plugin from Garmin. To send the files (.loc or .gps) to the device on Linux there is a nice tool called gpsbabel. You can use it to send your files to the GPS. However the device supports only traditional caches 🙁

So a simple script named “sendCache” is:

# sendCache
gpsbabel -i gpx -f $1 -o garmin -F usb:

You have to remove the kernel module which is loaded automatically:

rmmod garmin_gps

Or blacklist it in /etc/modprobe.d/blacklist. Simply add ‘blacklist garmin_gps’.

To get the permissions to work with gpsbabel as a user, you have to install a hal fdi file. Copy 80-gps.fdi to ‘/usr/share/hal/fdi/information/20thirdparty’. This will set acl rules for write access to the user if you attach it.

Hackweek3: Logitech hacking

I planning to rewrite lomoco since a long time now. The problem is that Logitech has introduced a new protocol to talk to the devices. For the main features of these new mice we have already proof of concept code but some features aren’t suppport.

I still don’t know how they identify a cordless mouse connected to a receiver. The MX Revolution and the G7 share the same receiver. Yesterday I’ve discovered how to read the battery status from the MX and VX Revolution. I can display the battery status in percent and if the mouse is charging or is fully charged.

I’ve put together a proof-of-concept code here. Now it is time to think about a library, liblomoco. If someone is interested in hacking, feel free to contact me 😉

If you have a VX Nano or G7 please send me the output of the vx_hack. If you own a G7 please send me the output of the ‘lsusb’ command.

lomoco – next generation

I’ve finished my diploma thesis (more about this later) and started to work on lomoco again. lomoco can configure vendor-specific options on Logitech USB mice (or dual-personality mice plugged into the USB port).
Since there are some places where you can find code to control Logitech mice, I decided to write a shared library. We will provide a command line client to configure your mouse. The shared library makes it possible to use it for example in KDE’s kcontrol which has his own code for Logitech mice at the moment.

Some days ago Peter Feuerer (piie) was able to sniff the commands which have to be send to the G5 to change the resolution. With some already existing hiddev code, he was able to set the different resolution modes. The G5 has only 4 resolutions: 400, 800, 1600, 2000. The rest of the resolution you can select with the windows server is just interpolated! You can find the hack here. There is existing code for the MX610 and MX Revolution too.

You can find the lomoco homepage here.

Bricked Linksys WRT54G repair instructions

What you need:

1 bricked Linksys WRT54G router with boot_wait=off
1 corkscrew

1 bottle of wine

If you have to take courage first, the bottle of wine could help!

What to do:

Unscrew the antennas and open the router and look for the Intel flash chip. The chip has 48 pins. You can find the numbers on the edges of the chip 1 .. 24 .. 25 .. 48. Time for a big slug of wine! Now use the corkscrew to shorten pin 16 and 17.

I have the Linksys WRT54G v2.2, on some older routers you have to shorten pin 15 & 16.

Now plug in the power cable and your Linksys should be ping-able now. You can send the firmware using tftp:

rexmt 1
timeout 60
tftp> put firmwarefile.bin