Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Some days ago I received a LDLC Iris FB2-I5-8-S2 notebook and installed Linux on it (Linux Mint 16 Cinnamon 32bit, Kernel 3.11.0-12-generic).

Everything except the TouchPad works out of box (even the touch screen).

I searched a lot but not found any solution. Its not a problem of having disabled the device using Fn+F*

Here is some output from various commands:

lsusb:

Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 007: ID 2808:5001  
Bus 002 Device 005: ID 294e:1001  
Bus 002 Device 004: ID 1532:000d Razer USA, Ltd 
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 0489:d616 Foxconn / Hon Hai 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lspci:

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
00:03.0 Audio device: Intel Corporation Device 0a0c (rev 09)
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 1 (rev e4)
00:1c.2 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 4 (rev e4)
00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
02:00.0 Network controller: Intel Corporation Wireless 7260 (rev 73)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)

lsmod

Module                  Size  Used by
parport_pc             31981  0 
ppdev                  17391  0 
arc4                   12536  2 
rfcomm                 53664  0 
x86_pkg_temp_thermal    13810  0 
coretemp               13195  0 
bnep                   18893  2 
kvm                   364766  0 
crc32_pclmul           12967  0 
aesni_intel            18156  1 
aes_i586               16995  1 aesni_intel
xts                    12749  1 aesni_intel
lrw                    13057  1 aesni_intel
gf128mul               14503  2 lrw,xts
ablk_helper            13357  1 aesni_intel
cryptd                 15577  1 ablk_helper
iwlmvm                149128  0 
mac80211              513247  1 iwlmvm
binfmt_misc            13140  1 
microcode              18830  0 
snd_hda_codec_realtek    45473  1 
snd_hda_codec_hdmi     40508  1 
snd_seq_midi           13132  0 
snd_seq_midi_event     14475  1 snd_seq_midi
snd_rawmidi            25094  1 snd_seq_midi
rtsx_pci_ms            17807  0 
iwlwifi               143578  1 iwlmvm
serio_raw              13189  0 
memstick               16008  1 rtsx_pci_ms
snd_hda_intel          42658  5 
snd_seq                55383  2 snd_seq_midi_event,snd_seq_midi
lpc_ich                16864  0 
uvcvideo               71309  0 
cfg80211              401436  3 iwlwifi,mac80211,iwlmvm
snd_hda_codec         164003  3 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel
videobuf2_vmalloc      13048  1 uvcvideo
btusb                  23443  0 
videobuf2_memops       13170  1 videobuf2_vmalloc
snd_hwdep              13272  1 snd_hda_codec
mei_me                 13933  0 
snd_pcm                89488  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
videobuf2_core         39125  1 uvcvideo
bluetooth             323534  12 bnep,btusb,rfcomm
videodev              107508  2 uvcvideo,videobuf2_core
joydev                 17097  0 
hid_multitouch         17191  0 
snd_page_alloc         14230  2 snd_pcm,snd_hda_intel
mei                    66411  1 mei_me
snd_seq_device         14137  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              24447  2 snd_pcm,snd_seq
snd                    60790  21 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_seq_midi
dm_multipath           22402  0 
scsi_dh                14458  1 dm_multipath
soundcore              12600  1 snd
intel_smartconnect     12610  0 
mac_hid                13037  0 
lp                     13299  0 
parport                40795  3 lp,ppdev,parport_pc
dm_mirror              21715  0 
dm_region_hash         15984  1 dm_mirror
dm_log                 18072  2 dm_region_hash,dm_mirror
hid_generic            12492  0 
usbhid                 47361  0 
hid                    87192  3 hid_multitouch,hid_generic,usbhid
i915                  589697  5 
rtsx_pci_sdmmc         22898  0 
i2c_algo_bit           13197  1 i915
drm_kms_helper         46867  1 i915
drm                   242354  4 i915,drm_kms_helper
rtsx_pci               43458  2 rtsx_pci_ms,rtsx_pci_sdmmc
ahci                   25579  2 
libahci                26554  1 ahci
wmi                    18590  0 
video                  18777  1 i915

Output of xinput can be found in a Pastebin.

Do you have an idea how to enable the touchpad?

share|improve this question
    
I have never heard of CNTouch before (and appearently the lsusb database does not know it). I am not sure if there are drivers for this. –  Tim Dec 16 '13 at 16:33
    
Thank's for editing. And yes lsusb doesn't know this touchpad... I don't want to use windows... I hope someone have a solution ! –  eldkylot Dec 16 '13 at 17:22
    
Did anybody contact cntouch.com/Contact/contact.aspx to see if they provide protocol docs? –  w00t Mar 13 at 11:06
    
I had an email exchange with the authors of hid-multitouch (lii-enac.fr/en/architecture/linux-input/multitouch-howto.html) which seems to not support this device correctly. We proceeded to run various tests. The next step is to capture the USB traffic generated by the device under Windows, either inside a virtual machine with Wireshark, or using a real Windows install with USB sniffing. My problem is that I don't have any suitable Windows install. Maybe someone can do that under Windows? If so, I can provide the detailed instructions via email –  Nicolas Huillard Aug 13 at 16:29

2 Answers 2

up vote 1 down vote accepted

I started to write a python script to use the TouchPad (before a try to write a C kernel driver).

There's the start of my work (move and right/left click, I'll do the two fingers move later). My only problem is that without plug-in a USB mouse the mouse cursor is not visible on screen... (if someone have an idea because I can't find anything). The code is not perfect and pretty ugly but I'm not a programmer ;D

#!/usr/bin/python
import sys
import os
import usb.core
import usb.util

#Find the device idVendor 0x294e / idProduct 0x1001
dev = usb.core.find(idVendor=0x294e, idProduct=0x1001)
#Select interface 0 and endpoint 0
interface = 0
endpoint = dev[0][(0,0)][0]
#Detach kernel driver
if dev.is_kernel_driver_active(interface) is True:
    dev.detach_kernel_driver(interface)
    usb.util.claim_interface(dev, interface)

collected = 0 #variable to skip the first two data
testsup = float(100)
testinf = float(127)
deplacement = testsup/testinf
sensibilite = 2.5
x = 0
y = 0
click = ""
mouse_btn_l = 0
mouse_btn_r = 0
#set cursor visibility
os.system("dconf write /org/cinnamon/settings-daemon/plugins/cursor/active false")


#Infinite while
while 1:
    try:
        data = dev.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize)
        collected += 1
        print data
        #The 2 first data are not move data
        if collected > 2:
            #data[1] Right (1) & Left (255) = x
            #data[2] Down (1) & Up (255) = y

            # x
            if (1 <= data[1] <= 127): #Right
                 x = data[1]*deplacement*sensibilite
            elif (128 <= data[1] <= 255): #Left
                 x = -((-data[1]+256)*deplacement*sensibilite)
            else : #No move on x axis
                 x = 0

            # y
            if (1 <= data[2] <= 127): #Down
                y = data[2]*deplacement*sensibilite
            elif (128 <= data[2] <= 255): #Up
                y = -((-data[2]+256)*deplacement*sensibilite)
            else : #No move on y axis
                y = 0

            #wheel is considere as a btn : 4 for up & 5 for down
            if 1 <= data[3] <= 127: #up
                click = "click 4"
            elif 128 <= data[3] <= 255: #down
                click = "click 5"
            else:
                click = " "

            #Left click
            if data[0] == 1 and mouse_btn_l == 0:
                click = "mousedown 1"
                mouse_btn_l = 1
            #Right click
            elif data[0] == 2 and mouse_btn_r == 0:
                click = "mousedown 3"
                mouse_btn_r = 1
            #No click
            elif data[0] == 0:
                if mouse_btn_l == 1:
                    click = "mouseup 1"
                if mouse_btn_r == 1:
                    click = "mouseup 3"
                mouse_btn_l = 0
                mouse_btn_r = 0
            else:
                click = " " 


        os.system("xdotool mousemove_relative -- %d %d %s" % (x, y, click))
        #    if data[0] == 1: #Right click
        #        os.system("xdotool click 1")

    #Error
    except usb.core.USBError as e:
        data = None
        if e.args == ('Operation timed out',):
            continue
usb.util.release_interface(dev, interface)
#dev.attach_kernel_driver(interface)

You need to have python, pyUsb and xdotool.

Edit: After a long time I found a solution (for me) for the cursor visibility. I have cinnamon and a key exist for the cursor visibility.

A simple

dconf write /org/cinnamon/settings-daemon/plugins/cursor/active false

and that's ok for me, so I add this command in my py script with

os.system("")

Hope this could help !

share|improve this answer
    
Wow that's pretty awesome - a python mouse driver! Perhaps you can use the evdev driver for making a virtual mouse? stackoverflow.com/questions/16482260/… Also, have you discovered other events, like 3,4,5 finger taps, drags, zooming, etc? –  w00t Mar 13 at 6:58
    
That's quite incredible. Can anyone with the laptop confirm that this works and makes the touchpad usable? –  a3nm Apr 23 at 2:03

I have the same computer and same issue with Debian (testing needed because of wifi). If it can help, the CNTouch is not a pci device but an usb device. Executing lsusb before pressing Fn+F1 (to disable) and after show a singe different line : Bus 001 Device 008: ID 294e:1001
In my case.

What a wonderful computer, we might have to wait a little bit to have a touchpad driver. This touchpad is interesting as it has no mecanical button, it is embedded in the box, the whole width and height of the box , below the keyboard, is sensitive, including the buttons locattion.

Bad news, I wrote to Foxconn, without any answer, I wrote to LDLC, they answered that they designed this IRIS computer for Windows only, they only provide drivers for windows, they never wrtote that they support linux (even if the computer is sold without OS, they pretend that it is for people who already own a windows license). They explicitely will not provide any other material (API doc, specifications, ... that was their official answer). As the CNTouch touchpad was partially designed by LDLC for LDLC, the chances are very low to have linux support from the community. Linux users, be very mefiant against LDLC 'without OS' computer.

share|improve this answer
    
I know you have the same, I found your com on Nicolargo's blog (I send a answer to your com). I continue to investigate and if I don't find anything I'll try to contact LDLC & CNTouch to have the real description of the device. I hope we can do something ! –  eldkylot Dec 17 '13 at 9:18
    
I already sent an email to foxconn. –  François Cerbelle Dec 19 '13 at 11:07
    
Great, we keep in touch about that. I see what I can find/do about drivers. –  eldkylot Dec 19 '13 at 22:10
    
edited answer : bad news from LDLC –  François Cerbelle Dec 24 '13 at 8:50

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.