
In this article, we will discuss a common issue faced by many users of the Lenovo IdeaPad 5 15are05 laptop running Ubuntu 20.04 – the Elan touchpad not working. This can be a frustrating problem, but don’t worry. We have a solution for you. We will guide you through a step-by-step process to fix this issue by creating a SystemD unit.
To fix the Elan touchpad not working on the Lenovo IdeaPad 5 15are05 running Ubuntu 20.04, you can create a SystemD unit that binds the correct driver for the touchpad. This involves creating a service and a script to fix the issue. Follow the step-by-step instructions in this article to resolve the problem.
Understanding the Problem
The Elan touchpad on Lenovo IdeaPad 5 15are05 may not work when running Ubuntu 20.04 or 18.04, and even Debian 10. However, it’s observed to work fine on Windows. This suggests that the issue lies with the binding of the correct driver for the touchpad in Ubuntu.
The Solution: Creating a SystemD Unit
The proposed solution is to create a SystemD unit that will bind the correct driver for the touchpad. This involves creating a service that will execute a script to fix the touchpad issue.
Step 1: Creating the SystemD Unit File
Open a terminal and run the following command:
sudo mousepad /etc/systemd/system/touchpadfix.service
This command opens a text editor (mousepad) with root permissions (sudo) and creates a new file at the specified path (/etc/systemd/system/touchpadfix.service).
In the text editor, paste the following content:
[Unit]
Description=Fix touchpad issue by binding correct driver
[Service]
ExecStart=/usr/local/bin/touchpadfix
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Here’s what this content does:
[Unit]
section contains the metadata and dependencies of the unit.Description
is used to provide a meaningful description of the unit.[Service]
section contains the configuration specific to the service.ExecStart
specifies the command to execute when the service starts.Type=oneshot
means that the process is expected to exit before systemd starts follow-up units.RemainAfterExit=yes
instructs systemd to consider the service as active even after the process has exited.[Install]
section contains information about the installation of the unit.WantedBy=multi-user.target
creates a symbolic link to the service file in the multi-user.target.wants directory, enabling the service to start at boot.
After pasting the content, save the file and exit the text editor.
Step 2: Creating the touchpadfix Script
Run the following command to create the touchpadfix script:
sudo mousepad /usr/local/bin/touchpadfix
This command opens a text editor (mousepad) with root permissions (sudo) and creates a new file at the specified path (/usr/local/bin/touchpadfix).
In the text editor, paste the following content:
#!/bin/bash
modprobe i2c_hid
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/elants_i2c/unbind
echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/i2c_hid/bind
This script does the following:
#!/bin/bash
specifies that the script should be run using the bash shell.modprobe i2c_hid
loads the i2c_hid module, which is required for the touchpad to work.echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/elants_i2c/unbind
unbinds the elants_i2c driver from the touchpad.echo "i2c-ELAN0001:00" > /sys/bus/i2c/drivers/i2c_hid/bind
binds the i2c_hid driver to the touchpad.
After pasting the content, save the file and exit the text editor.
Step 3: Making the Script Executable
Make the touchpadfix script executable by running the following command:
sudo chmod +x /usr/local/bin/touchpadfix
This command changes the permissions of the file at the specified path (/usr/local/bin/touchpadfix) to make it executable (+x).
Step 4: Enabling and Starting the Service
Finally, run the following commands to enable and start the touchpadfix service:
sudo systemctl daemon-reload
sudo systemctl enable --now touchpadfix.service
The systemctl daemon-reload
command reloads the systemd manager configuration. This is necessary because we’ve created a new service.
The systemctl enable --now touchpadfix.service
command enables the touchpadfix service to start at boot and starts the service immediately.
Conclusion
After completing these steps, your touchpad should start working immediately. This solution has been reported to work on various Lenovo IdeaPad models. However, please keep in mind that it may not work for all cases. Always remember to back up your data and proceed with caution when modifying system files. If you encounter any issues, don’t hesitate to seek help from the Ubuntu community.
While this solution has been reported to work on various Lenovo IdeaPad models, it may not work for all cases. It is recommended to search for specific solutions tailored to your laptop model if you are facing touchpad issues.
Creating a SystemD unit is one of the recommended solutions for fixing the touchpad issue on Lenovo IdeaPad 5 15are05 running Ubuntu 20.04. However, there might be alternative solutions available. It is always a good idea to explore different options and choose the one that works best for your specific situation.
No, applying this solution should not void the warranty of your Lenovo laptop. It involves creating a SystemD unit and running a script to fix the touchpad issue, which is a software-related solution. However, it is always a good practice to consult with the manufacturer or check the warranty terms to be certain.
Yes, you can undo the changes made by this solution. Simply remove the SystemD unit and the script created in the steps mentioned above. You can also disable the touchpadfix service by running the following command: sudo systemctl disable touchpadfix.service
. Always remember to back up your important data before making any changes to your system.