A simple workaround would be to execute the script which toggles the touchpad on / off at a system runlevel low enough before X is up and running, to make sure that the touchpad is working before a GUI is even started. So /etc/rc.local
should be ok, but unfortunately I can't say a definitive word on this since I don't have my Ubuntu machine handy right now, and I can't actually test this. It should be fine tough.
- Run
acpi_listen
and hit the fn+F7 keystroke; the output should be similiar to this one:
hotkey ATKD NNNNNNNN 00000000
Where NNNNNNNN
is the fn+F7 keystroke's ACPI code;
Run grep NNNNNNNN /etc/acpi/events/*
; the filename in the output should be the filename of the file in which the fn+F7 keystroke's ACPI code is handled;
Open the file with a text editor;
Look for a section like this one:
# ...
event=hotkey (ATKD|HOTK) NNNNNNNN
action=/etc/acpi/actions/action.sh
# ...
Where /etc/acpi/actions/action.sh
is the script that is executed each time the fn+F7 keystroke is hit;
Now it's just a matter of executing the script in /etc/rc.local
:
# ...
/etc/acpi/actions/action.sh
# ...
That should be it. Reboot and see if the touchpad is enabled upon reboot;
In any case, if not needed, I'd suggest to remove the set -e
command at the top of /etc/rc.local
, or to modify the way the script is called calling e.g. a wrapper which calls the script itself and which always returns 0
, to avoid the script breaking the execution of rc.local
due to return values different from 0
.
less /etc/modprobe.d/blacklist.conf
/etc/modprobe.d/blacklist.conf
, so if the touchpad's driver is listed in/etc/modprobe.d/blacklist.conf
it's not going to be loaded at startup (and, on the other hand, it would load by other means such as runninginsmod [driver]
or such as using an fn+FX combo)acpi_listen
an hit fn+F7; note the number in the third column (for example for an output such ashotkey ATKD 00000055 00000000
the number would be55
); rungrep X /etc/acpi/events/*
, whereX
is the number you noted, and see which file (script) is processing the ACPI event; then just run the script at a system runlevel high enough to have the ACPI services running already (not sure if/etc/rc.local
would be enough).