Hello everyone – I acquired a fine Asus UX305C “ultrabook” but I was somewhat disappointed to find that its touchpad, the ELAN1000, doesn’t work under Ubuntu.
A bit of Googling taught me that this is a widespread problem. It seems to come down to a bug in the i2c driver, and relating to some timing delay not being respected. It’s likely also to get fixed in the major next Linux kernel (4.5), but I don’t know when that one will come along. Anyway, as you can hear from the way I talk about it I have no clue what the actual problem is, but I found Kevin Fenzi’s fix here (and thanks to Benjamin Tissoires for pointing me to it):
The problem is at the above link it’s only explained how to do this for Fedora. Here I’ll show how to do this under Ubuntu.
This is a workaround – it’s not a real fix. The problem is expected to be actually solved in the 4.5 kernel but for the time being, you can use the instructions here as a workaround.
First, get ready to download, build and install a custom kernel. This is nowhere near as scary as it sounds. Follow the instructions here:
It may be a wise idea to test that you can get this custom kernel compiled, installed and running using the instructions above. It won’t actually solve your problem but once you manage to, you’re almost there.
Now in the kernel sources that you downloaded in the above tutorial, open the file
In this file, find the following section:
static int dw_i2c_acpi_configure(struct platform_device *pdev) dw_i2c_acpi_params(pdev, "SSCN", &dev->ss_hcnt, &dev->ss_lcnt, NULL); dw_i2c_acpi_params(pdev, "FMCN", &dev->fs_hcnt, &dev->fs_lcnt, &dev->sda_hold_time); return 0; }
Depending on the source you downloaded, there may be some extra lines before the return statement, but that’s irrelevant. Now after the two lines that start with dw_i2c_acpi_params, add the following line:
dev->sda_hold_time = 30;
When this is done, save the file. Now you just need to recompile the kernel sources and install them as explained in the kernel building tutorial, and then boot into the new kernel, and voilà, your touchpad should work. Booting into the new kernel is fairly easy: if you followed the steps in the tutorial then it should appear in your boot menu.
Confirmed to work for XUbuntu 15.10 on UX305.