2008年12月23日 星期二

PenMount 6000 Touchscreen Driver for kdrive/Xvesa

Standard
目前,無論是 Linux Kernel 內的 PenMount Touchscreen Module 或是 Xorg 下的 Driver,都無法支援新版的 PenMount 6000,在官方網站上也只有提供 Xorg 的 binary driver,而且並未開放原始碼。日前因某些案子需要在 kdrive 上驅動 PenMount 6000,就自行 Hack 並寫了一支粗糙的 Driver。由於在 kdrive 上的 touchscreen solution 都是藉由 tslib 來實作,所以這支 driver 是一個 tslib 的 plugin。

一個意外發現,kdrive 底下的 Xvesa 並未支援 tslib,所以就算在 configure 下 enable tslib,雖然相關的 function 會被編進去,但卻不會真正被註冊在 driver list 上。對此,也在這寫了一個小 patch 以解決這問題。

驅動程式原始碼和 Xvesa patch 可在這取得:

http://people.linux.org.tw/~fred/drivers/pm6000_tslib.tgz

將編好的 pm6000.so 放到 plugin 指定目錄後,然後再將 tslib config file 的 module_raw 設定成 pm6000,就可直接用下列方法使 Xvesa 驅動 PenMount 6000 Touchscreen:
Xvesa -mouse tslib,,device=/dev/input/eventX