All of our panels come with USB HID multi-touch controllers and are supported by standard “hid-multitouch” driver available in mainline Linux/Android kernel.
If your system already has this “hid-multitouch” driver available as a kernel module, then you can easy add multi-touch support by adding the following commands to your /etc/rc.local file (before “exit” statement):
1 2 | modprobe hid-multitouch echo W X Y Z > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id |
where
If your system has no “hid-multitouch” driver compiled, then the following steps are required to get multi-touch working:
Let’s consider these steps in more details.
Open file hid-multitouch.c, find mt_devices[] struct and insert the following code at the beginning of this structure define:
1 2 3 4 5 6 7 8 9 | static const struct hid_device_id mt_devices[] = { /* Chalkboard Electronics 7" and 10" */ { .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(0x04D8,0xF724) }, /* Chalkboard Electronics 14" */ { .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(0x0EEF,0xA107) }, // here the rest of definitions comes |
1 2 3 4 5 6 7 8 9 | touch.deviceType = touchScreen touch.orientationAware = 1 device.internal = 1 keyboard.layout = qwerty keyboard.characterMap = qwerty2 keyboard.orientationAware = 1 keyboard.builtIn = 1 cursor.mode = navigation cursor.orientationAware = 1 |
The file name must be Vendor_xxxx_Product_yyyy.idc, where xxxx is VID of panel, and yyyy is PID of panel. The filename is case sensitive!In our case, you should use filename Vendor_04d8_Product_f724.idc (7″ and 10″ panels) or Vendor_0eef_Product_a107.idc (14″ panel). Now copy the IDC file to your Android board (Android must be rooted) with the following commands (substitute Vendor_xxxx_Product_yyyy.idc with real file name):
1 2 3 4 5 6 | adb shell su mount -o rw,remount /system [Ctrl-C] adb push Vendor_xxxx_Product_yyyy.idc /system/usr/idc/. adb reboot |
That’s all. Now you should get multi-touch support working.