Como obter um Dell XPS DE para reconhecer o touchpad Cypress no Ubuntu 13.10?

1

Comprei recentemente um Dell XPS 13 Developer Edition (também conhecido como Sputnik), fornecido com o Ubuntu 12.04. Eu limpei isso e instalei 13.10 do zero. Acredito que todas as melhorias de código feitas pela Dell agora foram incorporadas ao kernel da linha principal, portanto, em teoria, tudo deve funcionar sem PPAs adicionais.

No entanto, o touchpad funciona como um dispositivo de entrada semelhante a mouse (tenho um ponteiro, posso clicar com o botão esquerdo do mouse e tocar para clicar), mas não há suporte a gestos. Estou particularmente procurando por um pergaminho de dois dedos. Além disso, o cursor de digitação geralmente salta, e pelo que eu li na web, a sensibilidade do trackpad pode ser responsável.

Se um dispositivo adequado estiver disponível, o Ubuntu deve mostrar opções extras do trackpad nas Configurações do sistema - > Mouse & Touchpad, mas eu apenas obtenho os habituais (botão primário, clique duplo [velocidade] e velocidade do mouse).

Aqui está um trecho de cat /proc/bus/input/devices :

I: Bus=0018 Vendor=06cb Product=2734 Version=0100
N: Name="DLL060A:00 06CB:2734"
P: Phys=
S: Sysfs=/devices/pci0000:00/INT33C3:00/i2c-8/8-002c/input/input12
U: Uniq=
H: Handlers=mouse1 event12 
B: PROP=0
B: EV=17
B: KEY=30000 0 0 0 0
B: REL=3
B: MSC=10

E de xinput :

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYNAPTICS Synaptics Large Touch Screen    id=9    [slave  pointer  (2)]
⎜   ↳ DLL060A:00 06CB:2734                      id=11   [slave  pointer  (2)]
⎜   ↳ PS/2 Synaptics TouchPad                   id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=14   [slave  keyboard (3)]

E um trecho de X logs (/var/log/Xorg.0.log):

[    25.877] (II) config/udev: Adding input device DLL060A:00 06CB:2734 (/dev/input/event12)
[    25.877] (**) DLL060A:00 06CB:2734: Applying InputClass "evdev pointer catchall"
[    25.877] (II) Using input driver 'evdev' for 'DLL060A:00 06CB:2734'
[    25.877] (**) DLL060A:00 06CB:2734: always reports core events
[    25.877] (**) evdev: DLL060A:00 06CB:2734: Device: "/dev/input/event12"
[    25.888] (--) evdev: DLL060A:00 06CB:2734: Vendor 0x6cb Product 0x2734
[    25.888] (--) evdev: DLL060A:00 06CB:2734: Found 3 mouse buttons
[    25.888] (--) evdev: DLL060A:00 06CB:2734: Found relative axes
[    25.888] (--) evdev: DLL060A:00 06CB:2734: Found x and y relative axes
[    25.888] (II) evdev: DLL060A:00 06CB:2734: Configuring as mouse
[    25.888] (**) evdev: DLL060A:00 06CB:2734: YAxisMapping: buttons 4 and 5
[    25.888] (**) evdev: DLL060A:00 06CB:2734: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    25.888] (**) Option "config_info" "udev:/sys/devices/pci0000:00/INT33C3:00/i2c-8/8-002c/input/input12/event12"
[    25.888] (II) XINPUT: Adding extended input device "DLL060A:00 06CB:2734" (type: MOUSE, id 11)
[    25.889] (II) evdev: DLL060A:00 06CB:2734: initialized for relative axes.
[    25.889] (**) DLL060A:00 06CB:2734: (accel) keeping acceleration scheme 1
[    25.889] (**) DLL060A:00 06CB:2734: (accel) acceleration profile 0
[    25.889] (**) DLL060A:00 06CB:2734: (accel) acceleration factor: 2.000
[    25.889] (**) DLL060A:00 06CB:2734: (accel) acceleration threshold: 4
[    25.889] (II) config/udev: Adding input device DLL060A:00 06CB:2734 (/dev/input/mouse1)
[    25.889] (II) No input driver specified, ignoring this device.

Parece que está fazendo alguma coisa , mas o "ignorar este dispositivo" acena uma bandeira vermelha para mim. Além disso, o dispositivo aparece como uma string hexadecimal, em vez de ser visto como um bloco "Cypress" - parece que deve ser mostra como este em gpointing-device-settings.

Eu pesquisei algumas strings possíveis em dmesg e as encontrei:

jon@jon-XPS13-9333:~$ dmesg | grep synap
[ 1412.350563] psmouse serio1: synaptics: device claims to have extended capabilities, but I'm not able to read them.
[ 1412.550727] psmouse serio1: synaptics: device claims to have extended capability 0x0c, but I'm not able to read it.
[ 1412.951089] psmouse serio1: synaptics: Unable to initialize device.
[15884.370843] psmouse serio1: synaptics: Unable to query device.
[17513.516033] psmouse serio1: synaptics: Unable to query device.
[41102.794436] psmouse serio1: synaptics: Unable to query device.
jon@jon-XPS13-9333:~$ dmesg | grep trackpad
jon@jon-XPS13-9333:~$ dmesg | grep cypr

Além disso, notei que aparentemente tenho dois dispositivos touchpad detectados erroneamente. No começo eu confundi um com o touchscreen sendo reportado erroneamente, mas na verdade isso é relatado bem. A saída de xinput acima revela o problema, assim como o gpointing-device-settings:

Eu percebi que tinha feito a suposição de que eu tenho um touchpad Cypress apenas olhando na web, então eu pensei em testar o aplicativo Synaptiks também. Isso informa um erro e não será iniciado:

No touchpad found

No touchpad was found in this system. If the system has a touchpad, please make sure that the synaptics driver is properly installed and configured.

Então, por enquanto, vou continuar supondo que eu tenho um Cypress pad que requer um driver Cypress.

    
por halfer 28.02.2014 / 15:33

1 resposta

2

Isso é corrigido usando estas instruções , encontradas em esta postagem . Embora o pôster no primeiro link tenha encontrado que a correção não funcionou totalmente em seu caso, resolveu completamente para mim.

A correção é simplesmente adicionar essa linha no final de /etc/modprobe.d/blacklist.conf :

blacklist i2c-hid

Isso resulta em apenas um driver sendo reconhecido, que agora fornece os switches esperados do trackpad nas Configurações do Ubuntu. Agora, a rolagem de dois dedos funciona bem.

Curiosamente, parece que estou realmente rodando um touchpad Synaptics - ele ainda é detectado assim:

SynPS/2 Synaptics TouchPad

e não há menção de um dispositivo Cypress em tudo.

g-pointer-settings e Synaptiks agora parecem funcionar (embora eu já não precise deles). Eu não notei nenhum comportamento espúrio de cursor, mas continuarei a monitorar.

    
por halfer 02.03.2014 / 12:25