You are not logged in.
Yuan Jie, the server currently times out when it tries to scan through a git pack file of 600MB because it has limited RAM (=> swaps a lot => takes a lot of time => timeout).
While I am upgrading this server, you can try cloning the Linus' repo and add mine as remote:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git remote add lkn https://git.lekensteyn.nl/peter/linux.git -t logitech-wtp
git fetch lkn
git checkout logitech-wtp
Alternatively you can try to grab the tarball from the cgit interface.
This is kernel source code. Either you build the whole kernel (see AUR or Arch wiki for examples) or just the module. During development, I usually unload the old drivers and load the new one. This requires the linux-headers package.
# If you decide to build a module instead of a full kernel:
git diff v3.11-rc7..logitech-wtp -- include/ |
sudo patch --posix -p1 -d /usr/src/linux-headers-$(uname -r) --dry-run
# (tested with kernel 3.11.2)
# (Assuming that you are still in the "linux" directory at the "logitech-wtp" branch)
# -j8 means 8 parallel tasks.
make -C /usr/src/linux-`uname -r` M=$PWD/drivers/hid modules -j8 CONFIG_HID_LOGITECH_HIDPP=m CONFIG_HID_LOGITECH_WTP=m
If the compilation completed successfully, you should have at least the following files:
hid-logitech-dj.ko
hid-logitech-wtp.ko
hid-logitech-hidpp.ko
hid.ko
Now, beware that the following commands may require you to reboot your computer because it is not compatible with your kernel. You have the best luck with a 3.11.z kernel (because this code was based on 3.11-rc7). Otherwise, you can try to `git rebase v3.y.z` (where y.z the kernel minor and patchlevel versions). Read everything before proceeding, try to understand what happens. If you do not understand what you are doing, look it up on the Internet or ask it here. Consider this a learning oppurtunity, not a guide to all your problems.
Anyway, that was the disclaimer. To proceed loading, first determine what HID modules are currently loaded:
$ lsmod
hid_logitech_dj 10567 0
usbhid 41466 0
hid 88502 2 usbhid,hid_logitech_dj
As you can see, there are only two dependencies of hid loaded, so unload them (NOTE: do this over SSH or make sure you are using a laptop keyboard or PS/2 keyboard, otherwise you won't be able to enter commands! As an alternative you can create a script to run all the commands.). Then follow up with reloading the modules that you just built.
sudo modprobe -rva hid-logitech-dj usbhid hid
sudo insmod hid.ko
sudo insmod hid-logitech-wtp.ko
sudo insmod hid-logitech-hidpp.ko
sudo insmod hid-logitech-dj.ko
sudo insmod usbhid.ko
After loading the last usbhid.ko driver, the Logitech module gets activated. You may want to unplug the USB receiver before doing so (or before unloading), otherwise you may have a greater chance to hit a bug in which you must disable/enable your HID device.
To make this permanent, you can try putting them in /lib/modules/`uname -r`/extramodules/ I think.
Last edited by Lekensteyn (2013-10-05 14:29:04)
Offline
Hi Lekensteyn, I am really grateful for your detailed help!
Offline
What buttons do you want to remap? You mean the "tap" action? Tap-to-click works for me with the unreleased firmware included by a Logitech engineer.
Can you clone my "fixes" branch of Solaar and paste information about the device in this topic?
git clone https://github.com/Lekensteyn/Solaar -b fixes cd Solaar bin/solaar show
There is work in progress for better touchpad support:
https://code.google.com/p/chromium/issu … ?id=221455
Any chance you have a copy of this firmware? I would love if the tap-to-click worked.
Offline
@peterw The firmware is on the device itself, I haven't figured out yet how to retrieve it.
See the first post on the second page for some instructions on installing experimental patches.
(It's almost if I am responding to myself, my name is also Peter W. )
Offline
Apple magic trackpad seams to work better?
I'm in doubt between those two. Opinions?
Offline
How I got the logitech T650 working on my linux box explained in a nutshell
A brief explanation of how I got the Logitech T650 touchpad working on my Gentoo Linux. Hopefully it may help others. After some false starts this is how it went in an almost chronological order:
1. I'm running a Gentoo 3.10.7 kernel
2. After google-ing, I found this forum thread.
3. I cloned Peter Wu's (Lekensteyn) git repository - thank you Peter
4. I ran a git diff ( git diff master...logitech-wtp ) to get a change set
5. Since I didn't think applying it as a patch would work, I applied it manually, replacing the logitech drivers and manually patching the rest. Wasn't hard, took me 30-60 minutes.
6. Checked my configuration (using make menuconfig) - made sure all the new stuff was compiled as modules so I could double check that they loaded ok.
7. make && make modules_install, etc, etc
8. Rebooted and there the drivers were.
9. Discovered that the X11 synaptics driver is a misnomer and is really general touchpad driver. Installed it.
10. Booted my machine (kde) and there was not much difference from the very beginning when mouse movement happened but not much else.
11. Ran xinput list-props and saw a host of synaptics properties.
12. Read the man page for synaptics
12 Read http://wiki.gentoo.org/wiki/Synaptics and installed synaptiks which probably saved me some time trying to figure out which driver properties to set. Set my tap clicks, scrolling, etc and after a couple of days using it, I'm happy - although as soon as I got it working, one of my coworkers plunked down on my desk an Apple magic trackpad they were not using, so maybe when I get some time...
Don't know if Gnome has a trackpad configuration ui or not, if not there is always synclient.
Offline
I just want to know, when this patch will be add in official kernal?
Web Developer.
Offline
I tried Lekensteyn's patch on my box but can't find it working.
My Linux box is running kernel 3.11.10 and here is my current state of loaded modules
$ lsmod |grep hid
usbhid 52965 0
hid_logitech_wtp 17987 0
hid_logitech_dj 18721 0
hid_logitech_hidpp 14545 2 hid_logitech_wtp,hid_logitech_dj
hidp 24240 1
bluetooth 391564 27 bnep,hidp,btusb,rfcomm
mac_hid 13253 0
hid_generic 12548 0
hid 106004 6 hidp,hid_logitech_wtp,hid_generic,usbhid,hid_logitech_dj,hid_logitech_hidpp
Something weird on my kernel messages which definitely indicating some failure on my device control.
Here is my kernel log
[ 643.958363] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 643.966354] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 643.974353] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 643.982352] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 643.990352] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 643.998358] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 644.006358] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 644.014349] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 644.021608] usb 1-1.5.2: USB disconnect, device number 13
[ 644.022235] logitech-djreceiver 0003:046D:C52B.0015: can't reset device, 0000:00:1a.0-1.5.2/input2, status -71
[ 646.028208] usb 1-1.5.2: new full-speed USB device number 14 using ehci-pci
[ 646.140684] usb 1-1.5.2: New USB device found, idVendor=046d, idProduct=c52b
[ 646.140691] usb 1-1.5.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 646.140696] usb 1-1.5.2: Product: USB Receiver
[ 646.140699] usb 1-1.5.2: Manufacturer: Logitech
[ 646.152094] logitech-djreceiver 0003:046D:C52B.0019: hiddev0,hidraw3: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1a.0-1.5.2/input2
[ 646.978528] input: Logitech Unifying Device. Wireless PID:4101 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.5/1-1.5.2/1-1.5.2:1.2/0003:046D:C52B.0019/input/input25
[ 646.979080] hid-generic 001D:046D:4101.001A: input,hidraw4: <UNKNOWN> HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:4101] on usb-0000:00:1a.0-1.5.2:1
So, any idea on what is wrong with it?
Offline
Have you tried a different USB port? I certainly haven't seen this error before.
Offline
Have you tried a different USB port? I certainly haven't seen this error before.
Yep you are right I tried a different port and the error message gone away.
[73026.496899] usb 2-1.4: USB disconnect, device number 12
[73031.815814] usb 2-1.4: new full-speed USB device number 13 using ehci-pci
[73031.912555] usb 2-1.4: New USB device found, idVendor=046d, idProduct=c52b
[73031.912562] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[73031.912567] usb 2-1.4: Product: USB Receiver
[73031.912570] usb 2-1.4: Manufacturer: Logitech
[73031.924013] logitech-djreceiver 0003:046D:C52B.002D: hiddev0,hidraw3: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1.4/input2
[73037.012998] input: Logitech Unifying Device. Wireless PID:4101 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.2/0003:046D:C52B.002D/input/input33
[73037.015323] hid-generic 001D:046D:4101.002E: input,hidraw4: <UNKNOWN> HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:4101] on usb-0000:00:1d.0-1.4:1
But still can't tap-click.
Do I need any extra userspace program to make it work?
Offline
Perhaps you can find some hints on https://lekensteyn.nl/logitech-dev/, tap-to-click was working when I used the default xf86-input-synaptics driver.
Offline
Hello the output of the solaar tool shows this:
1: Wireless Rechargeable Touchpad T650
Codename : T650
Kind : touchpad
Wireless PID : 4101
Protocol : HID++ 2.0
Polling rate : 8 ms (125Hz)
Serial number: 8C6FCF67
Firmware: RQM 41.00.B0033
Bootloader: BL 03.00
Hardware: 72
Other:
The power switch is located on the base.
Supports 23 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: FEATURE INFO {0002}
3: DEVICE FW VERSION {0003}
4: DEVICE NAME {0005}
5: BATTERY STATUS {1000}
6: WIRELESS DEVICE STATUS {1D4B}
7: unknown:1DF3 {1DF3} internal, hidden
8: REPROG CONTROLS {1B00}
9: unknown:1F03 {1F03} internal, hidden
10: VERTICAL SCROLLING {2100}
11: HI RES SCROLLING {2120}
12: MOUSE POINTER {2200}
13: DFUCONTROL {00C0}
14: unknown:1E80 {1E80} internal, hidden
15: TOUCHPAD RAW XY {6100}
16: unknown:1860 {1860} internal, hidden
17: unknown:1E00 {1E00} hidden
18: REPROG CONTROLS V2 {1B01}
19: unknown:1890 {1890} internal, hidden
20: unknown:18E5 {18E5} internal, hidden
21: unknown:18A0 {18A0} internal, hidden
22: unknown:1830 {1830} internal, hidden
Has 2 reprogrammable keys:
0: LEFT CLICK => LeftClick mse, reprogrammable
1: RIGHT CLICK => RightClick mse, reprogrammable
Battery: 90%, discharging.
My firmware if 41.00.B0033 and when I run ./read-dev-usbmon /dev/usbmon2 I get nothing during tapping.
Do I understand it correctly: "Im screwed until I get new firmware no matter what modules/drivers I install"?
Last edited by gill_za (2013-12-21 02:26:08)
Offline
Use `lsusb -d 0464:` to find out which USB bus to use (usbmon2 is bus 2). With the correct driver, whether you use the old or the experimental firmware is irrelevant. The driver activates "raw mode" in which all touches are registered to the driver.
Offline
Hello,
Thank you for your reply. While trying to build the module I ran into a little issue:
igor@igor-asus ~/logitech/linux $ git diff v3.11-rc7..logitech-wtp -- include/ | sudo patch --posix -p1 -d /usr/src/linux-headers-3.11.0-12-generic/ --dry-run
File include/linux/hid.h is not a regular file -- refusing to patch
1 out of 1 hunk ignored
checking file include/uapi/linux/input.h
I am running Mint 16 / Ubuntu 13.10 x64
What am I doing wrong?
Thank you,
Igor
Offline
Lekensteyn, could you give clarification on exactly what you mean when you say "Since I didn't think applying it as a patch would work, I applied it manually, replacing the logitech drivers and manually patching the rest.". What exact files did you put in what exact locations, I assume it is something simple I am missing.
Offline
@gill_za Have you installed the linux-headers-generic package?
@shmaleb Not my post, but he meant that he opened the files and manually editing the changes from the patches. See https://en.wikipedia.org/wiki/Diff#Unified_format
Offline
Lekensteyn,
I thought I did, but apparently I did not. I have installed it, repeated the steps and still got the same error
Thank you for help.
Offline
@gill_za Right now I am not working on the patches, can you try to apply it manually?
Offline
@gill_za Right now I am not working on the patches, can you try to apply it manually?
Hi, never done that myself. Will try in the next few days. In the meantime will look up how its done.
Thank you
Offline
Here is how I got this working under 3.12.9-2-ARCH
install kernel headers then two edits are needed to add some new defines
add
#define BUS_DJ 0x1D
in /usr/src/linux-3.12.9-2-ARCH/include/uapi/linux/input.h
at line 941
and
at line 575 of
/usr/src/linux-3.12.9-2-ARCH/include/linux/hid.h
add
#define HID_DJ_DEVICE(ven, prod) \
.bus = BUS_DJ, .vendor = (ven), .product = (prod)
Now grab Lekensteyn code (you need hid-logitech-hidpp.c hid-logitech-hidpp.h hid-logitech-wtp.c hid-ids.h hid-logitech-hidpp.h)
I made the following Makefile
obj-m += hid-logitech-wtp.o hid-logitech-hidpp.o hid-logitech-dj.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
then type make to create the needed modules,then gzip *.ko
backup /lib/modules/3.12.9-2-ARCH/kernel/drivers/hid/hid-logitech-dj.ko.gz somewhere safe as you will be overwriting it
cp *gz /lib/modules/3.12.9-2-ARCH/kernel/drivers/hid
depmod -a
then reboot and enjoy
YMMV
If you want to install it without copying then first rmmod hid-logitech_bj usbhid
then
insmod ./hid-logitech-hidpp.ko
insmod ./hid-logitech-dj.ko
insmod ./hid-logitech-wtp.ko
modprobe usbhid
I had to unplug and replug the receiver to get it to work under solaar
the double tap works now but I don't think its a right click. I'm still figuring it out. Now my touchpad is the older one that needs AAA batteries. But using kbindkeys -k and then double tapping closes the window down too so I can't see what is returned
1: Wireless Touchpad
Codename : Wireless Touch
Kind : touchpad
Wireless PID : 4011
Protocol : HID++ 2.0
Polling rate : 8 ms
Serial number: 19CE6FA3
Firmware: RQM 32.00.B0012
Bootloader: BL 02.00.B0001
Hardware: 72
The power switch is located on the base.
Supports 20 HID++ 2.0 features:
0: ROOT {0000}
1: FEATURE SET {0001}
2: FEATURE INFO {0002}
3: DEVICE FW VERSION {0003}
4: DEVICE NAME {0005}
5: BATTERY STATUS {1000}
6: WIRELESS DEVICE STATUS {1D4B}
7: unknown:1DF3 {1DF3} hidden
8: REPROG CONTROLS {1B00}
9: unknown:1F03 {1F03} hidden
10: VERTICAL SCROLLING {2100}
11: HI RES SCROLLING {2120}
12: MOUSE POINTER {2200}
13: DFUCONTROL {00C0}
14: unknown:1E80 {1E80} hidden
15: TOUCHPAD RAW XY {6100} hidden
16: TOUCHPAD FW ITEMS {6010}
17: TOUCHPAD SW ITEMS {6011}
18: unknown:1E00 {1E00} hidden
19: REPROG CONTROLS V2 {1B01}
Battery: 90%, discharging,
James
Offline
How to I use the raw data, it seems like I get something from tapping with two fingers but its not picked up as a key in xbindkeys -k
read-dev-usbmon /dev/usbmon3
two finger tap a few times gave (not really like click on right button)
22:19:22.740 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 34 05 F6 43 CE 00 39 10 09 D6 44 07 00 39 22
22:19:22.748 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 3C 05 F6 43 CE 00 39 10 09 D6 44 07 00 39 22
22:19:22.756 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 44 05 F6 43 CE 00 39 10 09 D6 44 07 00 39 22
22:19:22.764 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 4C 05 F6 43 CE 00 39 10 09 D6 44 07 00 39 22
22:19:22.772 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 54 09 E6 44 2E 00 3B 20 00 00 00 00 00 00 01
22:19:22.780 Recv report_id=11 long device=01 DEV1 type=0F params=00 00 5C 00 00 00 00 00 00 00 00 00 00 00 00 00 00
right click (5 times)
22:22:23.728 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=02 00 00 00 00 00 00 00 00 00 00 00
22:22:23.924 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=00 00 00 00 00 00 00 00 00 00 00 00
22:22:24.222 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=02 00 00 00 00 00 00 00 00 00 00 00
22:22:24.396 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=00 00 00 00 00 00 00 00 00 00 00 00
22:22:24.701 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=02 00 00 00 00 00 00 00 00 00 00 00
22:22:24.906 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=00 00 00 00 00 00 00 00 00 00 00 00
22:22:25.196 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=02 00 00 00 00 00 00 00 00 00 00 00
22:22:25.368 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=00 00 00 00 00 00 00 00 00 00 00 00
22:22:25.715 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=02 00 00 00 00 00 00 00 00 00 00 00
22:22:25.848 Recv report_id=20 dj_s device=01 DEV1 type=02 MOUSE params=00 00 00 00 00 00 00 00 00 00 00 00
How do I proceed to use this?
Offline
after rebooting I don't see the device pickup up in Xorg.log.0 anymore by evdev and now nothing shows when tapping two or three fingers all else functions as expected. Not sure what I did. Likewise it isn't shown as an event in /dev/input
Offline
I got it to work...
I use kernel version 3.12.9-2-ARCH
Tap to click works = left click
Two-Finger-Tap does work = middle click
Three-Finger-Tap does work = right click
I used the guide in post #26 but i patched manual (post #45).
then i extended Lekensteyn´s script.
sudo modprobe -rva hid-logitech-dj usbhid hid_generic hid hid-logitech-wtp hid-logitech-hidpp
sudo insmod hid.ko
sudo insmod hid-logitech-wtp.ko
sudo insmod hid-logitech-hidpp.ko
sudo insmod hid-logitech-dj.ko
sudo insmod usbhid/usbhid.ko
After loading all this i needed to replug.
Xorg.log says:
[ 1121.133] (II) config/udev: Adding input device Logitech Unifying Device. Wireless PID:4101 (/dev/input/event13)
[ 1121.133] (**) Logitech Unifying Device. Wireless PID:4101: Applying InputClass "touchpad catchall"
[ 1121.133] (II) Using input driver 'synaptics' for 'Logitech Unifying Device. Wireless PID:4101'
[ 1121.133] (**) Logitech Unifying Device. Wireless PID:4101: always reports core events
[ 1121.133] (**) Option "Device" "/dev/input/event13"
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: x-axis range 0 - 2832 (res 23)
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: y-axis range 0 - 2364 (res 23)
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: pressure range 0 - 255
[ 1121.196] (II) synaptics: Logitech Unifying Device. Wireless PID:4101: device does not report finger width.
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: buttons: left right middle double triple
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: Vendor 0x46d Product 0x4101
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: invalid finger width range. defaulting to 0 - 15
[ 1121.196] (**) Option "TapButton1" "1"
[ 1121.196] (**) Option "TapButton2" "2"
[ 1121.196] (**) Option "TapButton3" "3"
[ 1121.196] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: touchpad found
[ 1121.196] (**) Logitech Unifying Device. Wireless PID:4101: always reports core events
[ 1121.250] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1c.5/0000:07:00.0/usb1/1-2/1-2:1.2/0003:046D:C52B.001E/input/input52/event13"
[ 1121.250] (II) XINPUT: Adding extended input device "Logitech Unifying Device. Wireless PID:4101" (type: TOUCHPAD, id 11)
[ 1121.250] (**) synaptics: Logitech Unifying Device. Wireless PID:4101: (accel) MinSpeed is now constant deceleration 2.5
[ 1121.250] (**) synaptics: Logitech Unifying Device. Wireless PID:4101: (accel) MaxSpeed is now 1.75
[ 1121.250] (**) synaptics: Logitech Unifying Device. Wireless PID:4101: (accel) AccelFactor is now 0.054
[ 1121.250] (**) Logitech Unifying Device. Wireless PID:4101: (accel) keeping acceleration scheme 1
[ 1121.250] (**) Logitech Unifying Device. Wireless PID:4101: (accel) acceleration profile 1
[ 1121.250] (**) Logitech Unifying Device. Wireless PID:4101: (accel) acceleration factor: 2.000
[ 1121.250] (**) Logitech Unifying Device. Wireless PID:4101: (accel) acceleration threshold: 4
[ 1121.250] (--) synaptics: Logitech Unifying Device. Wireless PID:4101: touchpad found
[ 1121.250] (II) config/udev: Adding input device Logitech Unifying Device. Wireless PID:4101 (/dev/input/mouse1)
[ 1121.250] (II) No input driver specified, ignoring this device.
[ 1121.250] (II) This device may have been added with another device file.
The only thing i didnt get to work is make this permanent.
When the driver goes upstream ?
Last edited by Paschty (2014-02-14 11:42:44)
Offline
This has stalled on my todo stack, don't expect it to get upstreamed in the coming month.
To make it permanent, you could write a DKMS configuration for it (see Arch wiki). Alternatively, manually overwrite the files in /lib/modules/`uname -r`/kernel/drivers/hid/... (this must be done after every kernel update).
Offline
Announcement: Logitech has published updated firmware. An updater (Windows...) is available on:
http://www.logitech.com/en-us/support/t … reid=11370
I'll try to write a Linux program for it, hopefully in this weekend.
Last edited by Lekensteyn (2014-02-19 09:21:13)
Offline