Обновить

Как я «размораживал» тачпад ноутбука Acer Aspire ES1-521

Был у меня ноутбук Acer Aspire ES1-521. У ноутбука имелась возможность отключить тачпад, чтобы не мешался во время работы с клавиатурой. Делалось это по Fn + F7. Вот только тачпад после такого действа зависал намертво: повторное нажатие не помогало. Даже перезагрузка оказывалась бессильной! Единственный способ выйти из затруднительной ситуации — выключить ноутбук, подождать пару часов и включить снова.

По всей видимости, проблема в железе. Возвращать Windows я не собирался. И поэтому в ней не проверял. Обновлять BIOS (с версии 1.07) не хотелось, дабы не испортить столь ценный аппарат окончательно. Ещё надо было бы попробовать имитацию извлечения батареи (делается она продолжительным нажатием скрытой кнопочки на донышке, совсем как кнопка сброса роутера к заводским настройкам). Но что-то мне подсказывало, что без толку... Да и непрактично это.

В итоге я уверил себя в том, что временное отключение тачпада — функция полезная и заманчивая, но не жизненно необходимая.

Кроме большой проблемы, была и маленькая. Вот сидишь себе спокойно в Kali Linux с Xfce (например, в версии 2026.3), никаких сочетаний Fn + не нажимаешь. Закрываешь крышку ноутбука, открываешь, снова закрываешь и снова открываешь (по сути закрываешь крышку на экране ввода имени пользователя и пароля). А тачпад после таких манипуляций не отзывается.

Чисто интуитивно я решил глянуть на загруженные драйверы. Просматривая выданный командой lsmod | sort список сверху донизу, я заприметил модуль ядра psmouse. Выгрузил его, загрузил... О, чудо! Тачпад заработал как ни в чем не бывало. Оставалось только приурочить перезагрузку модуля к открытию крышки ноутбука.

На этом шаге мне пришлось-таки залезть в Сеть. Пришёл к такому решению, ибо асинхронное ожидание в Python я не осилил:

def listen_for_lid_open_event():
    process = subprocess.Popen(
        ['upower', '--monitor-detail'],
        stdin=subprocess.DEVNULL,
        stderr=sys.stderr,
        stdout=subprocess.PIPE)
    while not process.poll():
        raw_line = process.stdout.readline()
        decoded_line = str(raw_line, DEFAULT_ENCODING)
        lid_open = 'lid-is-closed:   no' in decoded_line
        if lid_open:
            reload_psmouse_module()

Это, собственно, перезагрузка модуля:

def reload_psmouse_module():
    exec_command(['modprobe', 
                  '--remove', 
                  '--verbose', 
                  'psmouse'])
    exec_command(['modprobe', 
                  '--verbose', 
                  'psmouse'])

Плюс вспомогательная процедурка:

def exec_command(command):
    subprocess.check_call(
        command,
        stdin=subprocess.DEVNULL,
        stdout=sys.stdout,
        stderr=sys.stderr)

Ещё один модуль. На этот раз — systemd:

[Unit]
Description=touchpad-antifreeze: Fixes glitch with non-working touchpad on some Acer laptops
After=upower.service
StartLimitBurst=2
StartLimitIntervalSec=10

[Service]
Type=simple
User=root
WorkingDirectory=/opt/touchpad-antifreeze/
ExecStart=/usr/bin/env python3 /opt/touchpad-antifreeze/touchpad-antifreeze.py

[Install]
WantedBy=multi-user.target

Сделал сборку Debian-пакета с помощью Makefile. Выложил на GitHub.

Спасибо за внимание.

P.S. Мой ноутбук работает и радует меня до сих пор :)

Теги:
Всего голосов 8: ↑8 и ↓0+11
Комментарии2

125 токенов в секунду на RTX 4070 Ti SUPER: как я заставил локальную LLM работать полноценным кодинг-агентом

По статистике, среди рядовых пользователей настольных компов самая распространенная видеокарта имеет 16 ГБ видеопамяти. По опросам GaugeDB, такие карты занимают 27,21% рынка. У меня как раз видеокарта NVIDIA GeForce RTX 4070 Ti SUPER с 16 ГБ видеопамяти GDDR6X, которая на текущий момент стоит 900$. До сего момента главной проблемой было то, что на видеокарте такого класса невозможно было запустить LLM-агента, который будет достаточно умным и достаточно быстрым. Если запускаешь умную модель типа Qwen 3.8 27B (Dense архитектура), то на выходе получаешь 10-20 токенов в секунду. А для комфортной работы кодинг-агента надо 100-150 токенов в секунду.

125 токенов в секунду на RTX 4070 Ti SUPER: как я заставил локальную LLM работать полноценным кодинг-агентом

Публикации