Archive for the ‘Hacking’ Category

MSI Wind U110 BIOS nuisance

Wednesday, June 24th, 2009

Well, most BIOSes are not perfect, but i wish i never started the vicious circle of updating it. But i’ll return to the beginning:

009: My Wind U110 was delivered with this version and all that was wrong was that i noticec that BIOS reported false possible CPU C-States when on battery power (just C2 instead of C6 that cpu supports). But rebooting without AC adapter “solved” it.

10D: This version i downloaded as update from MSIs homepage and after some struggles to update it (finally FirmwareUpdateKit made it real easy … fuk –image /dev/sdb /tmp/biosfiles/*) i had it on my machine… and guess what… it was really disappointing. Eventhough msi fixed the C-State problem, the netbook now refused to suspend!!! :-(

Eventhough all /sys/devices/*/power/wakeup were disabled it now wakes up immediatelly or hangs hard. Before (with version 009) it suspended fine (with just “s2ram -f”) and even had wlan (via rt2860sta module) working still fine afterwards. But now it was impossible to suspend anymore… which makes daily use of netbook really horrible imho.

So i contacted msi and after the first bothering tips if i really updated correctly they provided me the older BIOS version

10C: But this one behaved exactly like 10D in regard to suspend. So after some more mails with msi they sent me the “very” old 009 plus the version 109 and that one is interesting.

109: Here suspend works again and also C-States are reported correctly.. so all could be fine… BUT it wasn’t in all detail: Now WLAN/rt2860sta doesn’t work anymore after suspend and resume. And simply un- and reloading the module sadfully also didn’t help. There were just countless lines like this in the kernel log:

ERROR!!! BBP(viaMCU=1) read R0 fail

After some search in the net i found that this again seems to be BIOS bug happening when the wlan-module is powered off. But there is a ugly workaround for this problem on my machine.

1. make sure pciehp module is loaded with options pciehp_force=1 (which again points to a buggy bios) and also pciehp_poll_mode=1  (without this second parameter the system didn’t seem to be stable after suspend for me)

2. configure pm-utils to stop network on suspend and restart it on resume (otherwise the module cannot be unloaded) and also to unload and reload the module rt2860sta. I further changed the /etc/init.d/network script to also kill wpa_supplicant on stop action so really nobody anymore accesses the device.

If you need help for those steps feel free to contact me.

My new MSI Wind U110 Netbook or how to get headaches from Intel Poulsbo

Friday, June 12th, 2009

Yes, I now got one of those nice new netbooks with a Z-Series Atom CPU (2 GB Ram, 160 GB HDD, Draft N Wlan (needs rt2860sta)). Eventhough the machine is really great the linux support for the Intel graphicscard – Intel Poulsbo/GMA500/PSB – really is a mess (to stay polite). Framebuffer only supports 800×600 which gives you a blury display (with native resolution of 1024×600) and usual intel x driver does not work here. Well, there is a partly opensource driver (which needs several binary blobs), but its nearly unsupported and far far from really usable. But Alexander Graf did a great job packaging it for openSUSE 11.1 (here). Eventhoug this driver originally was made for Ubuntu (they delivere it for Dell Mini 12 with same gfxcard) i never got it working there.

Nearly everything else works great. LAN support is a bit funny. The ethernetcard sits on the usb bus and only activates itself as soon as a cable got plugged in. Then a usb asix device pops up and works great (with the asix module).
Sound needed “options snd_hda_intel model=5stack-digout” in /etc/modprobe.d/sound to work under 11.1.
WLAN is a Ralink RT2860 which works with the module rt2860sta. For 11.1 there are kmps in the buildservice, but they never worked for me. I compiled the sources from the ralink homepage and noticed that the driver works well until udev renames the device from (originally) ra0 to wlan0. Afterwards it does not respond anymore.
The fix that worked best for me was to compile the rt2860sta version from kernel 2.6.30 (in staging tree) for openSUSE 11.1. To make it easier to use this i put it here (yes, i’m too lazy to build a kmp ;-) .

P.S.: Actually to make wlan work with the packages from above repository from alex you have to blacklist rt2800pci.

P.P.S.: I also recommend to update this machine to the latest BIOS version available from MSI (currently Version 1.0D). As only with this i get fully low-power C-States correctly. To install it i used the package UpdateFirmwareKit and a normal USB-Stick.
P.P.P.S: No, you better don’t update your BIOS to Version 1.0D. It seems this version totally breaks suspend on this machine. I couldn’t find a s2ram parameter combination still working (before just -f worked). Not even with current 2.6.30 it works. I contacted MSI about this and hope they provide a solution for this problem. … Meanwhile as a first response they sent me BIOS Version 1.0C, but that also has the suspend problem. Hopefully they either fixup their BIOS or provide me the working 0.9 Version.

Setup for 3G/UMTS flatrate of german 1und1/1&1

Friday, May 8th, 2009

I finally now got a 3G/UMTS (HSDPA) internet flatrate at the german provider 1und1/1&1. There seem to be two setups that work for the connection and that are accounted correctly (as flatrate use). The first one is a 1und1 special setup that only gives you limited internet access (e.g. you cannot ping any machine in the internet). The second one – which i preferr – is the usual setup for german D2/Vodafone network:

APN: web.vodafone.de
Username: vodafone
Password: vodafone

Just for completeness the 1und1 special configs are:

APN: mail.partner.de
Username: D2
Password: Web

You can also find all those data on the providers homepages, but you have to dig quite deep until you find them. So hopefully this is of use for some future users.

Enable Option GE 0201 and GT 0201 with UMTSmon

Sunday, April 6th, 2008

Some UMTS/G3 cards currently still have a problem with umtsmon as it has a usage pattern of the ttyUSB ports of those cards that makes them act very strange or even don’t work at all with them. While there is a simple workaround to let umtsmon only use their first port via the ‘-s’ parameter this is very annoying as it won’t allow umtsmon to update the signal strength display while its connected.
Klaas (the author of umtsmon) is already working on a “good” fix, but this patch at least for now can give you a working Option GE/GT 0201 card with also a updated status/signal strength display.

Currently umtsmon (in usual two port mode) uses the 2nd port (usually ttyUSB2) to send AT-commands to the card while the first one (usually ttyUSB0) is used for the ppp connection. So the second one can still be used to query the signal strength for example. But it seems some cards like the Option GE or GT 0201 can only do the ppp connection on the port where the final ATD(T) command was issued.
So the one port workaround also will make this happen, but the attached patch will do so with still using the second one later on while connected.

Once this is fixed by Klaas neither the one port workaround nor this quick dirty hack is needed, but for now i thought perhaps maybe someone might also find it useful.

newportusage3.patch

MMC cards on Ricoh internal cardreader RL5c476

Sunday, April 6th, 2008

If your notebook has a Ricoh RL5c476 controller which also provides the MMC host adapter R5C843 you got quite some trouble getting access to real MMC memorycards with the internel cardreader. But already since upstream kernel 2.6.25-rc1 there is patch from me included that’ll solve this problem for you by extending the ricoh_mmc driver accordingly.
Should you still encounter problems with mmc cards on this controller i’ll be very happy to get some feedback from you.

Nozomi (UMTS/3G) driver improved

Sunday, April 6th, 2008

The nozomi driver in the upstream kernel in the meantime got some nice improvements. Especially a patch from me (available since 2.6.25-rc6) fixed a stability problem when accessing the card extremely early after insertion (e.g. when doing constant polling on /dev/noz* devices). The driver now contains a simple state management allowing access not until the card is really ready for it.
Since this change i consider the driver to be extremely stable. I wasn’t able to trigger any problems with it on a lot of very cruel tests. If any of you still sees problems with your nozomi card, please let me know it!

Kobil patch still is of use for some

Friday, February 1st, 2008

Today morning i stumbled over this nice (german) page (http://www.tuxevara.de/categories/5-Linux) about my backport patch for the kobil_sct driver to kernel 2.6.22. In openSuSE 10.3 (where i first saw the problem that those Kobil USB cardreaders don’t work anymore) i fixed this, but in some other distributions this still seems to be missing. That page describes how to fix it for Ubuntu Gutsy Gibbon using my patch and i was very pleased by the nice words about me :-) Thanks!

Nozomi driver finally made it

Tuesday, January 29th, 2008

The nozomi driver, needed for many Option UMTS/3G(+) datacards, now finally made it to become part of Linus official Linux kernel (git-) tree.
Since Gregs commit on last friday the driver can now be used when you compile your kernel with CONFIG_NOZOMI set.
Due to my care of the nozomi driver (btw: this is japanese for hope) i also have the honour to be listed as its author :)

To check whether your card is one of those supported by it, lspci of your card should report to have the Option Qualcom MSM6275 UMTS chip (PCI ID 1931:000C).

Thanks a lot to Greg Kroah-Hartman, who made this possible :-)

For those of you who wonder how to use this card: even with this driver you need some userspace bits to really make use of your datacard. But thanks to e.g. utmsmon this is really easy.

Geocaching with Garmin eTrex H and Linux

Thursday, January 24th, 2008

Since my wife gave me a Garmin eTrex H (small but really nice) gps unit on last christmas, we both enjoy making use of this thing whenever there is time (which sadfully wasn’t that much the last weeks). For her its mostly the geocaching that makes fun, doing some intersting puzzles while taking walks in the nature or nice parts of the city. For me it became additionally interesting since my RS232-Cable for this unit arrived :-)

Thankfully there are already a lot of nice Linux applications for it (geocaching and my garmin), but the best of it – QLandkarte, a Qt4 application – didn’t have a driver for my eTrex H back then. Of course this gave me the nice chance to step in and write one for it :-) .. which i did immediately. In the meantime the support for my unit is one of the best in QLandkarte. I added support for waypoint up- and downloading, track-downloading, route-uploading and Display/Screenshot-downloading, which is already all available via the upstream svn .. while the last feature (screencapturing) isn’t even supported by garmins windows tool, i’m still working on the last possible feature to add: realtime-logging support. Fortunately QLandkarte has a really nice and open community. I also made sure QLandkarte is now also available in openSuSE Factory (although not with the latest and greatest features from svn, but I’ll definitely update it for 11.0). Until then i’ll probably also have the realtime-logging feature ready. Additionally i did quite some rework of QLandkartes “serial-access-layer” (its CSerial class) which now greatly improved and speeded up the access to all units using a serial interface.
To make best use of QLandkarte you’ll also need a Garmin Map File (*.img), but there are a lot of free ones available and of course you can make use of OSM and convert it (with Mkgmap) to one.

Screenshot of QLandkarte

(Screenshot of QLandkarte showing my way from home to the office with activated track info)

On the commandline there is gpsbabel which is kind of a “swiss army knife” in this area. The openSuSE Buildservice of course also has a prebuilt package for it in the Application:Geo project. E.g. a simple “gpsbabel -w -i garmin -f /dev/ttyUSB0 -o gpx -F waypoints.gpx” transfers all saved waypoints (from the garmin gps unit connected to ttyUSB0) to the waypoints.gpx file (a very common fileformat for a lot of geo usecases).

To organize your geocaches (you already did or plan to do) there is e.g. CacheWolf (eventhough its a java app its quite ok).

Digital Picture Frame with Linux

Thursday, May 31st, 2007

One of my very little side-projects – a digital picture frame out of old disused hardware – is getting really interesting. I was able to setup a complete self-contained system.. ranging from automatic gathering of pictures as soon as one inserts a CD into it .. to a very extreme powermanagement setup where i took special care of the harddisk (that is really really loud). Now i came up with a special harddisk monitoring that refreshes the caches quite intelligently and shuts the disk off again. So theres nearly no harddisk activity at all while the system is up.. its really amazing.

Hopefully i can present more on this topic soon here. Perhaps even with pictures of the finished device.