Created attachment 260615 [details] Asus t100taf touchpad details Hi, On my Asus T100TAF Transformer laptop the touchpad is not fully functional. In Ubuntu Mate 17.10 gsettings shows a toggle to turn "Tap to click" on or off but altering it makes no difference (see http://files.michaelzfreeman.org/Screenshot%20at%202017-11-07%2014-19-15.png ). This is really an essential function as its very easy to knock the touchpad by mistake and/or activate various touch and drag functions while operating the GUI which causes many usability issues. Basically there appears to be no driver for this touchpad and it is detected as a default device. It is not a Synapics device as "sudo egrep -i 'synap|alps|etps|elan' /proc/bus/input/devices" shows nothing. "sudo libinput list-devices" does not show any features such as "Tap to click" as being available (see attachment). It would be nice to have a more functional driver for this device.
That's strange. 57573c541be6c7bca5c27427a5f908d8a22d0b00 should have added full multi-touch support for it, in 4.14. CCing hans which I think should even have access to the right hardware.
(In reply to mirh from comment #1) > That's strange. > 57573c541be6c7bca5c27427a5f908d8a22d0b00 should have added full multi-touch > support for it, in 4.14. > > CCing hans which I think should even have access to the right hardware. That commit is in the code, but all it does is define some quirks, it doesn't actually implement anything. There is a larger patch pending, but it apparently doesn't support the T100TAF. See https://github.com/Asus-T100/kernel/wiki/Compiling-the-kernel-for-T100TAF#multitouch-touchpad (instructions for 4.9 custom kernel using an early version of the multi-touch patch)
Hi, (In reply to jbMacAZ from comment #2) > (In reply to mirh from comment #1) > > That's strange. > > 57573c541be6c7bca5c27427a5f908d8a22d0b00 should have added full multi-touch > > support for it, in 4.14. > > > > CCing hans which I think should even have access to the right hardware. > > That commit is in the code, but all it does is define some quirks, it > doesn't actually implement anything. There is a larger patch pending, but > it apparently doesn't support the T100TAF. See > https://github.com/Asus-T100/kernel/wiki/Compiling-the-kernel-for- > T100TAF#multitouch-touchpad (instructions for 4.9 custom kernel using an > early version of the multi-touch patch) So if I understand: https://github.com/Asus-T100/kernel/commit/d770c0609ca52f7b7ae711c9edb3a703ee00a4d5 Correctly, the proper fix would be something like this: diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c index 1bb7b63b3150..4cdac9857037 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -751,7 +751,10 @@ static const struct hid_device_id asus_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3), QUIRK_G752_KEYBOARD }, { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, - USB_DEVICE_ID_ASUSTEK_T100_KEYBOARD), + USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD), + QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, + USB_DEVICE_ID_ASUSTEK_T100TAF_KEYBOARD), QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES }, { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_ASUS_AK1D) }, { HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_ASUS_MD_5110) }, diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 5da3d6256d25..dc1db8558850 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h @@ -178,7 +178,8 @@ #define USB_VENDOR_ID_ASUSTEK 0x0b05 #define USB_DEVICE_ID_ASUSTEK_LCM 0x1726 #define USB_DEVICE_ID_ASUSTEK_LCM2 0x175b -#define USB_DEVICE_ID_ASUSTEK_T100_KEYBOARD 0x17e0 +#define USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD 0x17e0 +#define USB_DEVICE_ID_ASUSTEK_T100TAF_KEYBOARD 0x1807 #define USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD 0x8502 #define USB_DEVICE_ID_ASUSTEK_T304_KEYBOARD 0x184a #define USB_DEVICE_ID_ASUSTEK_I2C_KEYBOARD 0x8585 Right? IOW the T100TAF keyboard behaves the same as the T100TA keyboard but has a different product id, correct ? Once someone can confirmt his I'll submit the above patch upstream. Regards, Hans
(In reply to Michael Z Freeman from comment #0) > Created attachment 260615 [details] > Asus t100taf touchpad details > > Hi, > > On my Asus T100TAF Transformer laptop the touchpad is not fully functional. I've built the T100-14.4.0 kernel and it is posted at the Ubuntu on T100 group. https://drive.google.com/drive/folders/1Y--S0_xmVopDcoIY8Oie0SRnSvTbRGZh It has the above patch (comment #3) and this addition. --- a/drivers/hid/hid-core.c 2017-11-20 10:10:20.224338014 -0700 +++ b/drivers/hid/hid-core.c 2017-11-20 10:11:22.687337150 -0700 @@ -1979,7 +1979,8 @@ static const struct hid_device_id hid_ha { HID_I2C_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_I2C_TOUCHPAD) }, { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1) }, { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2) }, - { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T100_KEYBOARD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T100TAF_KEYBOARD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD) }, { HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_ASUS_MD_5112) }, { HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_ASUS_MD_5110) }, -- @Hans, Curiously, the T100TAF and T100HA seem to use the same device ID. Would that cause side-effects?
(In reply to jbMacAZ from comment #4) > (In reply to Michael Z Freeman from comment #0) > > Created attachment 260615 [details] > > Asus t100taf touchpad details > > > > Hi, > > > > On my Asus T100TAF Transformer laptop the touchpad is not fully functional. > > I've built the T100-14.4.0 kernel and it is posted at the Ubuntu on T100 > group. > https://drive.google.com/drive/folders/1Y--S0_xmVopDcoIY8Oie0SRnSvTbRGZh > It has the above patch (comment #3) and this addition. Yes I missed that bit, sorry. <snip> > @Hans, Curiously, the T100TAF and T100HA seem to use the same device ID. > Would that cause side-effects? Hmm, interesting I actually own a T100HA now, I just have not had much time to look at it. You're right it uses the same id as the T100TAF, and adding the id as my patch does makes the special keys and the touchpad work as intended, so all is good. I've submitted the patch to add the ID upstream.
Hi again, Ok, so I just realized that only adding the id is not enough, the touchpad has a different resolution then the one on the T100TA, at least my T100HA touchpad has a different resolution. So now I wonder if that the T100TAF and T100HA do not both use the same usb-ids but with different resolution... Michael, can you install jbMacAZ's kernel and if that gives you multi-touch for the touchpad, install evemu, then as root run "evemu-record" select the touchpad event node and move you finger along the top / bottom and left / right edges and write down the maximum x and y coordinates you are seeing ? Also can you please run as root: "sudo dmidecode > dmidecode.log" and attach dmidecode.log here ? Michael, I would also be interested in a picture of the keyboard + touchpad, like this: https://uk.store.asus.com/media/catalog/product/cache/1/image/1800x/6b9ffbf72458f4fd2d3cb995d92e8889/T/1/T100TAF-BING-DK005B-7_1.jpg But then from your actual keyboard-dock instead of a marketing photo :) According to the internet the T100TAF has the same touchpad as the T100TA, where as the T100HA has a slightly bigger touchpad... Regards, Hans
Hi and thanks everyone. I'll get on this as soon as I can.
(In reply to Hans de Goede from comment #6) > Hi again, > > Ok, so I just realized that only adding the id is not enough, the touchpad > has a different resolution then the one on the T100TA, at least my T100HA > touchpad has a different resolution. So now I wonder if that the T100TAF and > T100HA do not both use the same usb-ids but with different resolution... > > Michael, can you install jbMacAZ's kernel and if that gives you multi-touch > for the touchpad, install evemu, then as root run "evemu-record" select the > touchpad event node and move you finger along the top / bottom and left / > right edges and write down the maximum x and y coordinates you are seeing ? > > Also can you please run as root: "sudo dmidecode > dmidecode.log" and attach > dmidecode.log here ? > > Michael, I would also be interested in a picture of the keyboard + touchpad, > like this: > > https://uk.store.asus.com/media/catalog/product/cache/1/image/1800x/ > 6b9ffbf72458f4fd2d3cb995d92e8889/T/1/T100TAF-BING-DK005B-7_1.jpg > > But then from your actual keyboard-dock instead of a marketing photo :) > > According to the internet the T100TAF has the same touchpad as the T100TA, > where as the T100HA has a slightly bigger touchpad... > > Regards, > > Hans Hi. Here is evemu-record output and dmidecode log as requested. I have not got to the photo yet. The tap click is off by default with that new kernel ! No more tap to click and accidental dragging ! Thanks to jbMacAZ for building that. However using right click does not bring up any right click functions. I cannot see anything in "dconf editor" (MATE) that might enable/disable right click. "Menu" key on keyboard (to right of spacebar) that can usually be used to bring up the right click function just opens the MATE menu, but that might be something to do with my MATE keyboard setup.
Created attachment 260817 [details] Evemu record
Created attachment 260819 [details] Dmidecode
Thanks for the dmidecode output. The purpose of the evemu-record output was to try and find the min/max x and y values being reported with that kernel, and the recording does not seem to contain enough info for that, I was sorta expecting you to keep an eye on the x / y values and try to get as high/low a value as possible by going along the edges several time. A better way to get this is to run touchpad-edge-detector, which is part of libevdev-utils (may be called libevdev-tools or some such on other distros) can you run touchpad-edge-detector with the new kernel and post the output here ?
Also if you run evemu-record you should get 3 devices for the keyboard like this: /dev/input/event4: Asus Keyboard /dev/input/event5: Asus Keyboard /dev/input/event6: Asus TouchPad Can you run evemu-record on the second device node (5 in my example) and test that the rfkill (wifi on/off) brightness up and brightness down keys work please?
Clicking in the right bottom of the clickpad should send a right click, if that does not work can you please do: xinput list-props "Asus TouchPad" And copy and paste the output here?
(In reply to Hans de Goede from comment #13) > Clicking in the right bottom of the clickpad should send a right click, if > that does not work can you please do: > > xinput list-props "Asus TouchPad" > > And copy and paste the output here? Cheers. Here's the xinput output. More on the way.
Created attachment 260833 [details] xinput list props
Hi, (In reply to Michael Z Freeman from comment #15) > Created attachment 260833 [details] > xinput list props Ok, so the problem with right click not working is this: libinput Click Method Enabled (296): 0, 1 libinput Click Method Enabled Default (297): 1, 0 Notice how mate has set the click method to something other then the default. There should be some setting in the mate control panel for this somewhere I guess. Mate right now has it configured to click-fingers, which is the Mac OS X way of doing right clicks, this means that if you click the click-pad with 2 fingers on it instead of 1, then it will do a right click. If you cannot find how to change this in mate, you can run: xinput set-prop "Asus TouchPad" "libinput Click Method Enabled" 1 0 to change this. Regards, Hans
(In reply to Hans de Goede from comment #16) > Hi, > > (In reply to Michael Z Freeman from comment #15) > > Created attachment 260833 [details] > > xinput list props > > Ok, so the problem with right click not working is this: > > > libinput Click Method Enabled (296): 0, 1 > libinput Click Method Enabled Default (297): 1, 0 > > Notice how mate has set the click method to something other then the > default. There should be some setting in the mate control panel for this > somewhere I guess. Mate right now has it configured to click-fingers, which > is the Mac OS X way of doing right clicks, this means that if you click the > click-pad with 2 fingers on it instead of 1, then it will do a right click. > > If you cannot find how to change this in mate, you can run: > > xinput set-prop "Asus TouchPad" "libinput Click Method Enabled" 1 0 > > to change this. > > Regards, > > Hans That's what threw me as I've never used that function before. Actually like it so left it on. I checked the MATE mouse settings which I had not done since starting this and now there is a touchpad tab ! See attachment. Ran touchpad-edge-detector and evemu-record tests. Already knew special keys were working but had not actually tested wifi on/off which works as well.
Created attachment 260857 [details] MATE mouse settings touchpad tab
Created attachment 260859 [details] touchpad-edge-detector
Created attachment 260861 [details] evemu-record keyboard
Thank you for all the info, so indeed the T100TAF has the same touchpad as the T100TA, including sending the same coordinate range (as shown by the touchpad-edge-detector the send ranges were a good match to the kernel ranges which come from the T100TA), but my T100HA uses the same usb-id and a different coordinate range. So I've had to fall back to adding a dmi match to set the coordinate range. I've just send a new patch upstream which does this, I will also attach it here. jbMacAZ, you probably will want to replace the patch in your kernels with the one I'm attaching as that one will work better for T100HA owners.
Created attachment 260881 [details] [PATCH v2] HID: asus: Add product-id for the T100TAF and T100HA keyboard docks Note this patch is against the hid branch for kernel 4.16, for 4.14 or 4.15 you will want to keep the changes to the need_special_driver list from the old patch.
(In reply to Hans de Goede from comment #21) > Thank you for all the info, so indeed the T100TAF has the same touchpad as > the T100TA, including sending the same coordinate range (as shown by the > touchpad-edge-detector the send ranges were a good match to the kernel > ranges which come from the T100TA), but my T100HA uses the same usb-id and a > different coordinate range. So I've had to fall back to adding a dmi match > to set the coordinate range. I've just send a new patch upstream which does > this, I will also attach it here. > > jbMacAZ, you probably will want to replace the patch in your kernels with > the one I'm attaching as that one will work better for T100HA owners. Thanks for the patches ! :)
Created attachment 260883 [details] T100HA Bluetooth DevID I've updated the T100TAF/HA keyboard/touchpad patch suitable for 4.14 and 4.15 and will post it at the G+ group after it builds. I can't test it on my CHI (bluetooth keydock!), but it looks like any fails would be limited to the HA. Speaking of bluetooth, was a patch submitted to add the Bluetooth deviceID for the HA? If not I have one against 4.14 (attached). It's been tested at the G+ group by a T100HA owner and is part of the build I posted (comment #4).
Since I've a T100HA myself now, I've posted a patch adding the BCM2E72 id to hci_bcm.c a couple of days ago.
(In reply to Hans de Goede from comment #25) > Since I've a T100HA myself now, I've posted a patch adding the BCM2E72 id to > hci_bcm.c a couple of days ago. Great! Thanks for all your help here and with the T100 issues in general.
(In reply to Hans de Goede from comment #21) > but my T100HA uses the same usb-id The same, down to also revision and collection ids? I'd wonder how windows driver could even differentiate between the two, given it's basically shared among the two/three.
Hi, (In reply to mirh from comment #27) > (In reply to Hans de Goede from comment #21) > > but my T100HA uses the same usb-id > > The same, down to also revision and collection ids? > I'd wonder how windows driver could even differentiate between the two, > given it's basically shared among the two/three. Knowing Asus they simply have 2 different drivers and you need to download the right one. Upstream has the same concerns about my patch, so Michael, can you provide some more info? 1: lsusb -v output 2: install hid-replay, run hid-recorder, select the last "ASUS Tech Inc. ASUS HID Device" and then report the output here, there is no need to move the mouse on the touchpad, it won't record that since a custom report-id is used. Regards, Hans
TA/TAF http://dlcdnet.asus.com/pub/ASUS/nb/Apps_for_Win10/SmartGesture/SmartGesture_Win10_32_VER406.zip THA http://dlcdnet.asus.com/pub/ASUS/nb/Apps_for_Win10/SmartGesture/SmartGesture_Win10_64_VER4012.zip Yes, they are *technically* different links/packages, but the driver inside is "modeled" the same. Down to ideally supported DIDs (at least in infs).
Created attachment 261005 [details] lsusb
(In reply to Hans de Goede from comment #28) > Hi, > > (In reply to mirh from comment #27) > > (In reply to Hans de Goede from comment #21) > > > but my T100HA uses the same usb-id > > > > The same, down to also revision and collection ids? > > I'd wonder how windows driver could even differentiate between the two, > > given it's basically shared among the two/three. > > Knowing Asus they simply have 2 different drivers and you need to download > the right one. Upstream has the same concerns about my patch, so Michael, > can you provide some more info? > > 1: lsusb -v output > 2: install hid-replay, run hid-recorder, select the last "ASUS Tech Inc. > ASUS HID Device" and then report the output here, there is no need to move > the mouse on the touchpad, it won't record that since a custom report-id is > used. > > Regards, > > Hans lsusb attached. But to be sure, what is "hid-replay" ? It's not in my repo but I can see a github page.
Thank you for the lsusb, the kernel Hid maintainer has decided to go with the dmi based patch, so hid-replay output is no longer necessary: https://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git/log/?h=for-4.16/hid-quirks-cleanup/asus So this bug can be closed now. Since the fix was somewhat more then just adding an id it has been queued for addition to the 4.16 kernel.