Friday, August 29, 2008

TabletPCs: new machines and fixes for SaX2

I decided to put the TabletPC related stuff I did the last days into a openSUSE Hackweek project. You can find the whole description of the idea/project at

So what did I on the last day of Hackweek?
  • Fixed the x11-input-evtouch package to install also the udev rules, which create for the touchscreen devices /dev/input/evtouch_event. Added another machine (IDEACO IDC 6680) to the list of rules (see patch).
  • Fixed SaX2 to handle also the ports/device paths of touchscreens correctly. Now SaX2 can also set /dev/ttyS{2,3} correctly and accepts /dev/input/{elo,evtouch_event,touchscreen} as paths.
  • Moved some existing TabletPC with touchscreens from the Tablet section to the Touchscreen section of SaX2.
  • Changed SaX2 to set now for all Wacom based TabletPCs the option "Button 2" "3". This enable the right mouse button for the Pen/Stylus button, which is much more practical than the default setting of the wacom driver.
And I added again some more machines:
  • Clevo TN120R (a.k.a Nexoc Osiris S621) (evtouch)
  • Gateway C-120X (should be identical to E-155C)
  • Gateway C-140X/E-295C
  • Gateway C210X (should be identical to M280E)
  • HP Compaq 2710p (which should also work for the upcoming 2730p)
  • Samsung Q1-Ultra (evtouch)
You can find the updated packages (evtouch and SaX2) in my Build Service repo and the patches here.

Thursday, August 28, 2008

TabletPCs: more machines in SaX2

Today I added again some more TabletPCs to SaX2. With my patches SaX2 and openSUSE now supports also these machines:
  • Gateway E-155C (thanks Ping Cheng for the data)
  • HP TC4400
  • LG C1
  • LG LT20 Tablet PC
  • Panasonic Toughbook CF-18
  • Toshiba Portégé M series Tablet PC
  • Toshiba Satellite R15/R20
  • Toshiba Tecra M series Tablet PC
You can get the update SaX2 package as always from here. Let me know if you have a machine which isn't listed yet (send your xorg.conf, lshal output and if needed also calibration data/info) and I add your device to the database.

Wednesday, August 27, 2008

TabletPCs: HP Pavilion tx2000/tx2100/tx2500 support

Today I've extended SaX2 to support also the Touch devices of the Wacom USB TabletPCs since the touch input devices have now persistent /dev/input/by-id links (see my last post). My SaX2 version supports now these new machines:
  • HP Pavilion tx2000 series [2]
  • HP Pavilion tx2100 series [2]
  • HP Pavilion tx2500 series [1]
  • generic Wacom USB TabletPC (added touch device to existing entry) [3]
You can get my SaX2 package for openSUSE 10.2/10.3/11.0/Factory from my Build Service repo (be sure that you also update udev from my repo). As soon as the patches for udev are gone upstream also the SaX2 patches go into the upstream repo.

Let me know if you have any problems with the new entries on these machines. If you e.g. still need to calibrate the input devices manually tell me the BottomX/Y and TopX/Y values and I update SaX2.

Tuesday, August 26, 2008

Wacom USB TabletPCs: persistent by-id links

Since the linuxwacom package supports TabletPCs with USB tablets we have the problem to find the correct devices under /dev/input/* for the xorg.conf settings. While the input device of the stylus was easy to find (/dev/input/by-id/usb-Tablet_ISD-V4-event-mouse) but strange named, the input device file for the touch device needed to be searched by the user since there was no persistent link under /dev/input/by-id/ that would allow to use the same link for all USB based Wacom TabletPCs.

Now I've found a way to change udev to set also a persistent by-id link for the touch device. I also change the naming of the link to the stylus device. With my patch you get now these links under /dev/input/by-id/ :
tux@linux:/ # ls /dev/input/by-id/
The input devices you needed for you xorg.conf are the *-event-* links.

If you use openSUSE you can get patched udev versions from my buildservice repo. I've patched also SaX2 to handle the new link names (packages see here). Note: you need SaX2/udev to get everything working correctly and you may need to run SaX2 to update your actual X configuration.

Friday, August 22, 2008

How to activate your HP UMTS card

After starting last week (only) one time Windows on my HP Compaq 2710p the internal UMTS card (HP HS2300 HSDPA Broadband Wireless module) stopped working under Linux again. And as Seife already pointed out: there is no way to activate the card from Linux (at least with kernel version 2.6.26) or the bios. I found today some time to search for a solution since several people asked me how to reactivate the card and since there are also bugreports with this problem.

Seife gave me the hint that may the hp-wmi kernel module, which will be part of 2.6.27, could provide a way to enable/disable the card. And it does. Currently the module don't get loaded automatically, you have to load it manually (modprobe hp-wmi). As soon as you load the module the UMTS card gets enabled, also if deactivated under windows before. Since the module handle the card as WWAN I assume also CDMA cards from HP would be handled the same way.

With hp-wmi the killswitch now enable/disable the WLAN, Bluetooth and the WWAN module automatically. But the user can switch the state also via sysfs. To disable for example the WWAN device you have to do this:
  1. go to /sys/class/rf-kill
  2. find the rfkill device of the WWAN module (grep wwan */name)
  3. use 'echo 1 > rfkill3/state' to activate or 'echo 0 > rfkill3/state' to deactivate the device
I've added a kmp package (hp-wmi-kmp) for openSUSE 11.0 to my buildservice repo. Currently there is no kmp for factory but I guess a 2.6.27 kernel will be available soon (or use the kernel from here).
Tech Tags:

Monday, August 18, 2008

Akademy 2008 ended

Last Friday (15.08.2008) the Akademy 2008 officially ended. Thursday was the day of the 'Boat Trip on the rivers Dijle, Ruppel and Schelde'. It was a really nice trip with drinks, finger food and a delicious barbecue. The right event/place to discuss KDE and opensource topics with different people.

The conference was really a great event. Many interesting talks, discussions and new information. Thanks to all attendees and the organization team.

What I really missed (again) was a list of all attendees. With some of the information we filled out on registration as e.g. Name, E-mail address, IRC nickname. But also information about: how long (and on which days) a person will be at the conference, what a attendee contributes to KDE or on what he/she is working and maybe also the 'Remaining information' field if there are usefull information. All this would make it much easier to find and contact the correct people. There were so many new attendees this year that it was really hard to find what they do and if it would be important do speak to one of them. There is room for improvement.

Next year the Akademy is planed on the same place as the GUADEC: Gran Canaria. The content of both conferences will be independently, but there will be a number of cross-over sessions for all attendees.
Tech Tags:

Tuesday, August 12, 2008

HAL: fixed device locking

Some days ago I had a discussion with Matthias Kretz at the Akademy 2008 about HAL, the handling of audio devices in HAL and the needs/requirements from the perspective of phonon.

One aspect was that phonon needs to find out of some other tool already uses a audio device. The HAL device locking would be a solution to detect this. I took a look at the HAL code for device locking and while playing around with the interfaces I wondered why it didn't work as it should. The lock information (info.locked* keys) where never removed if the lock owner died or exited without unlock the interface again. The handling was also broken if someone requested more than one lock (e.g. two or more different devices).

I really wonder why there was only one bugreport about problems with device locking (if the lock owner dies). Did nobody ever used these interfaces?

I've wrote a quik patch to solve these problems. As first I changed the hashtable which contains the lock info from key={lockowner}/value={device} to key={lockowner}/value={list of devices} so that locking multiple devices is now possible. And the other part of this patch is to remove the lock based on the old_service_name (and not the new_service_name) on NameOwnerChanged events from DBus to solve the 'lock owner died' problem.
Tech Tags:

Monday, August 11, 2008

Akademy 2008: Literacy Bridge

Yesterday the 'KDE Contributors Conference' of the Akademy 2008 ended. And there where of course again several really interesting talks as e.g. 'Location-aware applications with GeoClue' or 'Gallium3D - Graphics Done Right'. But for me the most interesting and impressive talk was the keynote from Cliff Schmidt: 'Digital Audio to Reduce Illiteracy, Poverty and Disease'.

He spoken about the Literacy Bridge, a nonprofit organization which try to fight against illiteracy, poverty and disease by empowering people in the developing world with affordable tools for knowledge sharing and literacy learning. The goal is advancing education, health, economic development, democracy, and human rights.

Currently they are building the 'Talking Book Device', a robust/rugged low cost audio player and recorder. The plan is to produce the device for 5 Dollar, so that the people can buy the device themselves. It would allow local organizations and users to produce the content themselves as e.g. to help people to learn reading. An other example: it would enable a doctor to speak instructions on the device for taking pharmaceutical to prevent misusage.

The really impressing on the project and the organization is that they really understand the audience.They cooperate with local groups e.g. in Africa, they understand the people and their needs. And this is in my opinion why the project will success. Compared to the OLPC project this device fits into the existing infrastructure of wide parts of the developing world, it's no high-tech tool, it's easy and intuitively to use and it's really affordable.

You can find more information on the website and the blog of the organization.

Saturday, August 09, 2008

aKademy 2008 started

I (or we, since there are 8 SUSE developer here) arrived yesterday at Mechelen (Belgium) for the Akademy 2008 (from 9. to 15. August in Sint-Katelijne-Waver). Today the Akademy was opened and there where already some really interesting talks as the keynote ('KDE Community websites: The past, the present and a vision for the future'), 'Future of the KDE Development Model', 'Akonadi Unleashed', 'Deepening KDE and Qt collaboration' or 'Qt on Maemo'.

Thuesday is the 'Embedded and Mobile Day' with interesting talks about QT and KDE on Maemo. I have to ask there the Nokia/maemo people about the handwrite recongnition (HWR) on the N810. I couldn't find yet any usefull information about the backend which do the recognition. Currently there is no good free HWR for Linux TabletPCs available (except maybe Cellwriter, which support grid-entry based input, but no natural writing). It would be really cool if Nokia would share the HWR so that TabletPCs under Linux could get more usable than currently.
Tech Tags:

Friday, August 01, 2008

TabletPC: ASUS R1E/R1F support

I added support for two USB Wacom based TabletPCs from ASUS, the R1E and the R1F, to SaX2 ([1]). Unfortunately SaX2 wasn't able to handle the "Device" correctly, neither /dev/input/wacom nor /dev/input/by-{id,path}/* was excepted by SaX2 also if it was correctly set in the config database entry. The input device path was always set back to /dev/input/event0 and not only TabletPC where affected. I fixed it with a patch ([2]) to extend the existing path checks.

While fixing the USB device paths I also discovered a problem with the serial (/dev/ttyS*) device paths while testing the existing entry for the HP tc4200 which needs to use COM-3 (/dev/ttyS2). The device was always set to /dev/ttyS1. Fixed also this problem with a patch ([3]) for SaX2.

Additionally I've extended the existing generic 'Wacom ISDV4 TABLET PC (SERIAL)' entry to support also Touch devices and added a new generic entry for TabletPCs with USB Wacom devices [4].

You can find an updated SaX2 version (including all patches) for openSUSE 10.2-Factory in my repo.
Tech Tags: