0

Two days ago my Chuwi Lapbook Air 14" arrived with Windows 10 pre-installed on it. I installed elementaryOS 5 (based on Ubuntu 18.04 LTS) and it works perfectly: recognizes the eMMC drive (the notebook does not have hdd it uses eMMC), all Fn keys work as supposed to, keyboard's illumination also works, except for the touch-pad. I read a lot of articles on the subject and I see there are some people who made it work and almost everyone states that this is a kernel problem and is fixed in the more recent versions (after 4.15 versions). However, I tried updating the kernel to 4.18, even to 4.19, tried compiling a raw kernel on the particular machine, but unfortunately I get no results in any of these ways. The touchpad is recognized by the system as ALPS:0001, tap to click and two-finger click both work as respectively left click and right click, but the cursor doesn't move. What may cause the problem and do you have any idea how to solve this issue?

When pressing F2 key (enable/disable touchpad) It starts working for about 20-30 seconds. and then stops again. Can be reactivated with F2 key again, but the result is the same. When is deactivated the last dmesg message states: [ 3955:030432] i2c_hid i2c-ALPS0001:00: i2c_hid_get_input: incomplete report (32/10763)

It can stay active for even longer if I constantly am using it. The moment I lift my finger up for more than 5 seconds it dies and I have to reactivate it again.

Edit: After a system update, the touchpad is now working (as a pointing device and not the buttons, but tap-to-click is fine). The only problem is that it works ONLY while charging, if I remove the charger and try to use it in an "On-Battery" mode, the touchpad turns off. Which doesn't make much sense, as I could use an external mouse if I'm situated (charging), but need the touchpad exactly when the charger is unplugged :)

  • Does adding to GRUB_CMDLINE_LINUX_DEFAULT i8042.reset work? – Rui F Ribeiro Apr 13 at 17:00
  • No, nor other i8042 parameters or acpi=on or acpi=off. What do you think, is the problem related to the boot process or is it some post-boot procedure, that causes this mess? – Emil Avramov Apr 13 at 17:06
  • Many of those touchpads need that extra nudge. There are also something about libinput I cannot remember. Finally, that laptop is a travesty of a tablet chipset dressed as notebook, with known problems supporting Linux, and when I bought my el cheapo notebook for tests and travelling, I avoided it in favour of a Lenovo IBR 14'' ideapad. – Rui F Ribeiro Apr 13 at 17:15
1

Thanks to @Hu Al the touchpad is now working with some additional tweaking.

Here is what I did:

  1. Created a file touchpadBatteryFix in /usr/local/bin.
  2. Put the following content inside it:

    while [ 1 ]; do
    
        if [ $(cat /sys/devices/pci0000\:00/0000\:00\:17.0/power/control) != "on" ]; then
    
            $(echo "on" > /sys/devices/pci0000\:00/0000\:00\:17.0/power/control)
    
        fi
    
        sleep 5
    
    done
    

    This file starts an infinite loop that constantly checks the contents of /sys/devices/pci0000\:00/0000\:00\:17.0/power/control and if the result differs from "on" it replaces it. For performance purposes it sleeps for 5 seconds after every cycle.

  3. Made it executable with sudo chmod +x /usr/local/bin/touchpadBatteryFix

  4. Created another file inside /etc/systemd/system with the name touchpadBatteryFix.service with the following content:

    [Unit]
    Description=Detect when the laptop falls into 'On Battery' mode and execute a command to fix the power setting needed for the touchpad to work properly.
    
    [Service]
    ExecStart=/usr/local/bin/touchpadBatteryFix
    RemainAfterExit=yes
    User=root
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    This file is more like a config file for the service. Exec points to the file to be executed by the service, User assigns the user to execute the script (that is why it's important for the script to be in /usr/LOCAL/bin, so it could be accessible by all users), Restart tells the service to always run again if something fails and the script exits, etc...

  5. Added a rule to systemd to execute this service on boot with sudo systemctl enable touchpadBatteryFix.service

And now it works! Thank you, everyone for your contribution, for me the problem is [SOLVED].

0

There is in issue with the power managment. Writing 'on' in the power managment file done the trick for me, you need to look the exact path in your system:

sudo sh -c 'echo on > /sys/devices/pci0000\:00/0000\:00\:17.0/power/control'

A long term solution requires building the kernel with some options, here is the tutorial http://sebanderson.com/blog/installing-linux-chuwi-lapbook-air-14-touchpad-broken-not-working-fix/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.