読者です 読者をやめる 読者になる 読者になる

ONKYO TW-317にTizen Mobile (handset-pinetrail)のタッチ入力問題を直した

@TNarutoさんが大活躍でやることがなくなったので、Tabletの不具合対応でもやってみる。

取りあえず、タッチパネルのキャリブレーション問題。
Xorgの設定を弄るのが先だと思いつつ、興味があるのでkernelから見ます(ぉ

ソースのファイルは⇓

https://download.tizen.org/snapshots/trunk/common/tizen_20120905.3/repos/main/source/kernel-adaptation-pc-3.2.5-2.5.src.rpm

パッチだけかと思ったら、サイズ的に全部含む見たい。。
落ちてきたら、

$ rpm -i kernel-adaptation-pc-3.2.5-2.5.src.rpm

で、homeディレクトリのrpmbuildに展開されます(多分)

はて

  • 0001-Enable-proc-fs-to-print-more-than-32-groups-entries.patch
  • 0001-tmpfs-security-xattr-setting-on-inode-creation.patch
  • COPYING.modules
  • config
  • fix-l2cap-conn-failures-for-ssp-devices.patch
  • kernel-adaptation-pc.manifest
  • launchpad-preload.service
  • linux-2.6.35-fatal-signals.patch
  • linux-3.2.1-android-logger.patch
  • linux-3.2.tar.bz2
  • patch-3.2.5.bz2
  • series

こんなにあるのか、、、

コンフィグファイルは config で、見る限り

CONFIG_INPUT_TOUCHSCREEN=y

まあ、認識してるし操作は出来るので当たり前か。。。

というわけで、xorg.confを追いかける。

 40 #Section "InputClass"
 41 #   Identifier "evdev keyboard catchall"
 42 #   MatchIsKeyboard "on"
 43 #   MatchDevicePath "/dev/input/event*"
 44 #   Driver "evdev"
 45 #EndSection

上記はkeyboard設定。ハードキーはないのでコメントアウト。
これで、ソフトキーが出るようにはなったみたい。
取りあえずなんか入力出来る!

 33 Section "InputClass"
 34     Identifier "evdev pointer catchall"
 35     MatchIsPointer "on"
 36     MatchDevicePath "/dev/input/event*"
 37     Driver "evdev"
 38 EndSection

マウス設定。多分コレは要る。それとは別に、/etc/X11/xorg.conf.d/に
92-exopc-mtev.confがあって、こっちを見ている(はず)

      1 Section "InputClass"
      2     Identifier          "eGalax Touchscreen"
      3     MatchVendor         "eGalax"
      4     MatchDevicePath     "/dev/input/event*"
      5     Driver              "mtev"
      6     Option              "SwapAxes"      "True"
      7     Option              "InvertX"       "True"
      8 EndSection

6と7が怪しいので、両方を"False"にした所、余計に挙動がおかしくなった ... orz
というわけで、7だけ無効にすると大分マシになるものの、やっぱり期待した
点にポイントすることが出来ない。

考えれば簡単な話なんですが、縦横が逆(タブレットを縦置きしているので)に
なっているので、Invert"X"ではなくてInvert"Y"にしなければいけないみたい。

      1 Section "InputClass"
      2     Identifier          "eGalax Touchscreen"
      3     MatchVendor         "eGalax"
      4     MatchDevicePath     "/dev/input/event*"
      5     Driver              "mtev"
      6     Option              "SwapAxes"      "True"
      7     Option              "InvertY"       "True"
      8 EndSection

とすれば、問題なく入力出来るようになります。

。。。人に説明しないで、何やってんだか。。。