SolidRun AMD HAILO Marvell NXP
Renesas TexasInstruments
  • ホーム
  • アーティクル★
  • 製品情報
  • イベント情報
  • Petapico コラム
  • ダイレクトショップ
  • DL
  • 英徳社について
  • 問い合わせ
28日 9月 2014

Cubox-i/HummingBoard (14) CuBox-i にタッチパネルをつなぐ(Android Kitkat)

 


ターゲットにしたマルチタッチディスプレイ

GeChic 15.6型 10点マルチタッチ対応 液晶ディスプレイ ON-LAP 1502

 

Facebookへのコメントで、マルチタッチパネルを使ってAndroidを使うといいという意見を5月ごろにいただきました。マルチタッチ対応モバイル液晶を「必要な時だけ繋ぐ」のが賢そうだ、というものです。またコミュニティの中でもKIOSK型のアプリに最適という意見がありました。それでは、技術的にどうなんだと調べを進め、ようやく実現したのでレポートします。他のUSBものをポーティングする際の参考になれば幸いです。

ドライバの入手

 

GeChic 10点マルチタッチ対応 液晶ディスプレイを購入してみました。ドライバのダウンロードサービスがないため、販売社のテックウインドに問い合わせたところ、ノーサポートの条件でLinux Platform用の開発者向けにAndroid OS用のドライバーソースの提供を受けました。このコラムでは、提供いただいた説明書「How to Install USB Touch Device Driver on」とはバージョンの違い等で対処方法が異なります。

なお、他のタッチパネル機種への対応についてですが、ソースにはすでに入っているという機種も多数あります。そういう場合であれば、ただ単に make menuconfig をして、対応するものにチェックをいれてビルドし直すだけで使えるようになります。

 

 

Android(4.3 Jelly Beans)へのポーティングは失敗

 

最初は、CuBox-iに現在デフォルトで搭載されているAndroid4.3に入れることにトライしました。Bootフォルダに入っているuImageとramdiskに入っているカーネルに変更を加えようということです。以前のコラムにもある、「CuBox-i用のカーネル作成について」で紹介したようにver3.05のカーネルを準備し、ドライバソースを組込み、必要な箇所にパッチを当てmake。できたuImageと、moduleを足して作りなおしたramdiskを戻してやるとできるのではないかと思っていました。しかしながら結果はブートしませんでした。追加して試したところ、もともとのuImageであっても一旦削除して入れ替えるとそれだけでブートしなくなりました。と、いうわけでで、ソースからのフルビルド以外には組み込めないことが判りました。このあたりの仕組みが判明したらまた別途報告します。(AndroidのuImageとramdiskに細工をして、ブートできるようにする方法はあるようです。ネット上の報告を参考にいくつかの方法を試したのですがいずれもうまくできませんでした)

Android4.3のCuBox−i用のソースを探していて、Android4.4(KitKat)のソースビルドができる趣旨の報告がSolidRunのForum(http://www.solid-run.com/community)にありました。なお、イメージも今(2014.08.12 時点)ではオフィシャルのAndroid4.4ベータ版がダウンロードできるようになったようです。(http://server.vijge.net/static/cubox/android/android-4.4.2-1.0.0-ga-aaf118bb78-gapps.img.xz)

 

Githubに挙げられたソースとその説明を頼りにビルドをしてみて、いくつかの問題はあったもののビルドができて、ブートすることも確認できました。それでは、ということでこのソースをもとにマルチタッチディスプレイを組込み、Android4.4ベータ版でGeChicマルチタッチ対応液晶ディスプレイも動作するようにできました。

 

 

ドライバ組込み

 

 元の情報は提供いただいた「How to Install USB Touch Device Driver on」に基づいていますが、driversディレクトリ内のマルチタッチの分類わけが変更されていたりするのでかなり違っています。

"myandroid"に組込むLinuxカーネルがkernel_imx ですが、カーネル部分は他のアプリでも共通です。(「CuBox-i用のカーネル作成について」参照)Android以外に応用する場合にも同様なので参考になります。

 最初は、このカーネルのkernel_imxを操作します。

 

1.“drivers/hid"の3ファイルに変更を加える 

1.1 hid-ids.h  に’>’の1行を追加

  #define USB_VENDOR_ID_ILITEK0x222a 

  #define USB_DEVICE_ID_ILITEK_MULTITOUCH0x0001 

> #define USB_DEVICE_ID_ILITEK_MULTITOUCH_20x001c 

 

1.2  hid-core.c に’>’の行を追加

  { HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, USB_DEVICE_ID_ILITEK_MULTITOUCH) }, 

> { HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, USB_DEVICE_ID_ILITEK_MULTITOUCH_2) }, 

 

1.3  hid-multitouch.c に’>’の3行を追加 

/* Ilitek dual touch panel */ 

{  .driver_data = MT_CLS_DEFAULT, 

HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, 

USB_DEVICE_ID_ILITEK_MULTITOUCH) }, 

>{  .driver_data = MT_CLS_DEFAULT, 

>HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, 

>USB_DEVICE_ID_ILITEK_MULTITOUCH_2) }, 

 

2.  add into “drivers/input/touchscreen” folderに以下の2ファイルをコピーして追加 

   (このファイルは、本サイトのDLのページからダウンロードできます。

ilitek_au2v6.c 

usbhid.h 

 

3.  drivers/input/touchscreen/Makefile” fileに下の1行を入れる 

obj-$(CONFIG_TOUCHSCREEN_ILITEK) += ilitek_au2v6.o 

 

4.  “drivers/Kconfig” fileに下の1行を入れる 

source "drivers/input/touchscreen/Kconfig" 

 

5.  “drivers/input/touchscreen/Kconfig” fileに変更を入れる 

config TOUCHSCREEN_ILITEK  

 tristate “ILITEK USB touch screen driver” 

 

6.  drivers フォルダで make config をする

$ make imx6_cubox-i_hummingboard_defconfig 

$ make menuconfig 

 

7.  < >ILITEK USB touch screen driver 

の項目にチェックを入れて<*> Exitする 

 

UBUNTU等、他のOSで使用する場合には、このままuImage とmodule のビルドをする。Androidの場合には、kernel_imx への作業は終了。9 へ飛びます

 

8.  カーネルのビルド(Android 以外)

 

$ make uImage 

この出来上がったuImage を、BootフォルダにあるuImageと入れ替える 

続いてドライバファイルを生成します。以下のようにコマンドを入力します。 

$ make modules 

$ mkdir ../modules 

$ export INSTALL_MOD_PATH=../modules/ 

$ make modules_install 

$ sudo cp -rf ../modules/lib/* /mnt/lib 

生成したカーネルの設置をします。

 

9. Androidの変更をいれる

system/core/rootdir/init.rc に1行追加

chmod 0777 /dev/ilitek_ctrl

 

10. myandroid へ戻って lunch と make をする

 

一度ビルドをしていると、make clear しない限り必要な部分のコンパイルしかしないのですぐに終わります。

 

マルチタッチディスプレイをHDMI と USD で接続してCuBox-i を立ち上げます。どうでしたでしょうか。画面上のアイコンにタッチして動作したら成功です。

 

 

 

KitKat が立ち上がったところ

HDMIとUSBの2系統で接続する。15インチ版は、電源も別にマイクロUSB入力となる。

アイコンがタッチできた 

tagPlaceholderカテゴリ: Cubox-i, Android, kitkat, タッチパネル, コラム

コメントをお書きください

コメント: 0

お問合わせフォームはこちら

メールはpetapicoshop@petapico.bizまで

適格請求書発行事業者登録番号のお知らせ


英徳社ホームページはこちら


1 日本国内への配送に適用されます。その他の国についてはこちらをご参照ください
概要 | 利用規約 | 返金条件と返品取消申請書 | 配送/支払い条件 | プライバシーポリシー | サイトマップ
ログイン ログアウト | 編集
  • ホーム
    • ショップからのお得情報
    • CuBox-i Seriesの情報
    • MicroSDの作り方
    • HummingBoard Seriesの情報
    • HummingBoard Edge/Gateの情報
    • IntelSoliPCの情報
    • windows10 IOTの情報
    • ClearFogの情報
    • MacchiatoBinの情報
    • fromSolidRunWebsite
  • アーティクル★
  • 製品情報
  • イベント情報
  • Petapico コラム
    • KODI
    • Cobox-i
    • HummingBoard
    • ソフトウェアTips
    • 外付け
    • カメラ
  • ダイレクトショップ
    • ダイレクトショップ iMX SoC
      • CuBox-Mセット
      • iMX8M Plus
      • iMX8M Plus Mate
      • CuBox-i1 OpenELECWiFi model
      • HummingBoard Pulseセット
      • CuBox-i1 OpenELEC セット
    • WAI WAIセール
      • Sheeva
      • D3
      • SMILE Plug
      • 第1世代CuBox|CuBox-PRO
      • CuBox-i1 セット
    • ダイレクトショップ LX2K
      • LX2160Aファミリー
    • ダイレクトショップ Marvell SoC
      • CEx7 CN9132
      • ClearFog
      • ClearFog Base
      • ClearFog Pro
      • MacchiatoBin Double|Single Shot
      • ClearFog GT 8K
      • MACCHIATObin ClearCloud 8K
      • SolidSense スターターセット
    • ダイレクトショップ intel SoC
    • ダイレクトショップ eRemote
      • eRemote
      • eSensor
    • 12V AC アダプター(PSE対応)
    • CuBox-i1 GeeXboXセット
    • CuBox-i1 OpenELEC+plugin
    • HummingBoard-Gate i1セット
    • HummingBoard-i2eX セット
    • HummingBoard-i4pro セット
    • CuBox-i2 セット
    • CuBox-i2 WiFiセット
    • CuBox-i2eX セット
    • CuBox-i2eX WiFiセット
    • CuBox-i4 Pro セット
    • HummingBoard-i2 セット
    • HummingBoard-i1セット
    • Application microSD Card for CuBox-i
    • Android microSD Card for CuBox-i
    • SolidPC
    • SolidPC SSD 32G
  • DL
    • Media Exposure
  • 英徳社について
  • 問い合わせ
閉じる