Touchpad não detectado

3

Alguns dias atrás eu recebi um notebook LDLC Iris FB2-I5-8-S2 e instalei o Linux nele (Linux Mint 16 Cinnamon 32bit, Kernel 3.11.0-12-generic).

Tudo, exceto o TouchPad, funciona fora da caixa (até mesmo na tela sensível ao toque).

Pesquisei muito mas não encontrei nenhuma solução. Não é um problema de ter desativado o dispositivo usando Fn + F *

Aqui estão alguns resultados de vários comandos:

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

A saída de xinput pode ser encontrada em um Pastebin .

Você tem uma ideia de como ativar o touchpad?

    
por eldkylot 16.12.2013 / 16:40

3 respostas

2

Eu escrevi um driver de Linux para este dispositivo de baixa qualidade, que pode ser encontrado aqui: link

Eu também enviei para revisão e mesclagem.

Da próxima vez que eu comprar um laptop do LDLC sem o SO (se isso acontecer), vou pensar duas vezes ...

EDITAR:

Existem apenas eventos para:

  • clique (ou toque duas vezes com um dedo, o mesmo evento é gerado);
  • clique com o botão direito do mouse;
  • roda horizontal;
  • roda vertical.

Não há evento para um toque com dois dedos (geralmente para simular um clique direito).

    
por 15.02.2015 / 17:19
2

Eu comecei a escrever um script python para usar o TouchPad (antes de tentar escrever um driver de kernel C).

Há o começo do meu trabalho (mova e clique direito / esquerdo, eu farei os dois dedos se moverem depois). Meu único problema é que sem o plug-in de um mouse USB o cursor do mouse não é visível na tela ... (se alguém tiver uma ideia porque não consigo encontrar nada). O código não é perfeito e muito feio, mas eu não sou um programador; 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)

Você precisa ter python, pyUsb e xdotool.

Editar: Depois de muito tempo eu encontrei uma solução (para mim) para a visibilidade do cursor. Eu tenho canela e existe uma chave para a visibilidade do cursor.

Um simples

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

e isso é ok para mim, então eu adiciono este comando no meu script py com

os.system("")

Espero que isso possa ajudar!

    
por 12.01.2014 / 14:31
1

Eu tenho o mesmo computador e o mesmo problema com o Debian (teste necessário por causa do wifi). Se puder ajudar, o CNTouch não é um dispositivo pci, mas sim um dispositivo usb. Executando lsusb antes de pressionar Fn + F1 (para desativar) e depois mostrar uma linha diferente: Barramento 001 Dispositivo 008: ID 294e: 1001
No meu caso.

Que computador maravilhoso, podemos ter que esperar um pouco para ter um driver touchpad. Este touchpad é interessante, pois não possui um botão mecânico, está embutido na caixa, toda a largura e altura da caixa, abaixo do teclado, é sensível, incluindo a localização dos botões.

Más notícias, eu escrevi para a Foxconn, sem qualquer resposta, eu escrevi para a LDLC, eles responderam que projetaram este computador IRIS apenas para Windows, eles apenas fornecem drivers para windows, eles nunca escreveram que suportam linux (mesmo que o computador é vendido sem sistema operacional, eles fingem que é para pessoas que já possuem uma licença do Windows). Eles explicitamente não fornecerão nenhum outro material (doc de API, especificações, ... essa foi sua resposta oficial). Como o touchpad do CNTouch foi parcialmente projetado pelo LDLC para o LDLC, as chances são muito baixas de ter suporte de linux da comunidade. Usuários de Linux, sejam muito competentes em relação ao computador LDLC 'sem SO'.

    
por 17.12.2013 / 09:20