====== Zprovoznění numpadu na Asus Zenbook UX362-FA ====== > **Poznámka:** Tento článek vychází z postupu z 3. 4. 2021. Některé kroky, ovladače nebo chování projektu už nemusí odpovídat aktuálnímu stavu. Ber ho jako dobový zápisek a praktickou zkušenost, ne jako garantovaný aktuální návod. [[https://github.com/mohamed-badaoui/ux433-touchpad-numpad|ux433-touchpad-numpad]] je komunitní projekt pro zprovoznění numerické klávesnice integrované do touchpadu na některých noteboocích Asus. Na modelu ASUS Zenbook UX362-FA jsem musel udělat drobnější úpravu, ale tehdy byl postup použitelný. K datu aktualizace 13. 2. 2023 jsem používal ovladače z projektu [[https://github.com/mohamed-badaoui/ux433-touchpad-numpad|ux433-touchpad-numpad]]. Další projekt, který se zabývá ovladači, je [[https://github.com/asus-linux-drivers/asus-touchpad-numpad-driver|asus-touchpad-numpad-driver]], ale pro můj konkrétní numpad jsem v něm tehdy nenašel podporu, takže jsem ho nepoužíval. ===== Instalace potřebných balíčků ===== Prvním krokem je instalace nástrojů pro posílání zpráv přes i2c sběrnici. Je dobré počítat s tím, že většina příkazů musí běžet s právy roota. sudo aptitude install i2c-tools sudo modprobe i2c-dev sudo i2cdetect -l Následně je potřeba zjistit, na kterém čísle sběrnice se nachází numpad: sudo i2cdetect -l V mém případě to byla sběrnice číslo 2: i2c-3 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-10 i2c AUX C/port C I2C adapter i2c-1 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-8 i2c AUX A/port A I2C adapter i2c-6 i2c i915 gmbus misc I2C adapter i2c-4 i2c i915 gmbus dpb I2C adapter i2c-2 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-0 smbus SMBus I801 adapter at efa0 SMBus adapter i2c-9 i2c AUX B/port B I2C adapter i2c-7 i2c i915 gmbus dpd I2C adapter i2c-5 i2c i915 gmbus dpc I2C adapter Pak už bylo možné otestovat příkazy pro zapnutí a vypnutí LED podsvícení numpadu. Zapnutí podsvícení: sudo i2ctransfer -f -y 2 w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 0x01 0xad Vypnutí podsvícení: sudo i2ctransfer -f -y 2 w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 0x00 0xad Když to fungovalo, doinstaloval jsem ještě balíček pro Python: sudo pip3 install libevdev ===== Instalace skriptu ===== Skript původně vznikl pro model ASUS UX433, ale fungoval i pro UX362-FA. Je dostupný na GitHubu: [[https://github.com/mohamed-badaoui/ux433-touchpad-numpad|ux433-touchpad-numpad]]. Pokud by byl touchpad na jiné sběrnici než 2, je potřeba upravit skript tak, aby počítal s jiným číslem sběrnice. Na jiném počítači běžel touchpad na sběrnici číslo 9, takže bylo potřeba v souboru ''ux433_touchpad_numpad.py'' upravit řádky 8 a 9: onCmd = "i2ctransfer -f -y 9 w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 0x01 0xad" offCmd = "i2ctransfer -f -y 9 w13@0x15 0x05 0x00 0x3d 0x03 0x06 0x00 0x07 0x00 0x0d 0x14 0x03 0x00 0xad" Samotná instalace pak vypadala takto: chmod +x install.sh ./install.sh Numpad bylo možné zapnout klávesou **F8** a to byl v tu chvíli doporučený postup. ===== Drobné úpravy pro model UX362-FA ===== Při publikaci původního článku jsem musel udělat drobnou úpravu ve skriptu. Později už byla oprava zahrnuta v repozitáři, ale pro jistotu ji dokumentuji. Ve skriptu jsem musel změnit řádek 24 na: if touchpad_detected == 0 and "Name=\"ELAN" in line and "Touchpad" in line: Docházelo totiž ke špatné identifikaci touchpadu. Můj touchpad posílal data do zařízení ''/dev/input/event10''. Ověřit se to dalo takto: sudo cat /dev/input/event10 Pokud se po dotyku touchpadu začnou zobrazovat data, jde o správné zařízení. ===== Závěr ===== Skript měl v té době ještě drobné chyby. Šlo například zapínat numpad i tlačítkem na touchpadu, ale zlobila klávesa backspace a při přejetí do pravého rohu se mohl numpad omylem zapnout. Přesto už byl workaround použitelný a vývoj projektu tehdy pokračoval poměrně rychle. ===== Zdroje ===== * [[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1810183|Launchpad – problém s ASUS NumberPad v Linuxu]] * [[https://github.com/mohamed-badaoui/ux433-touchpad-numpad|GitHub – ux433-touchpad-numpad]] * [[https://github.com/asus-linux-drivers/asus-touchpad-numpad-driver|GitHub – asus-touchpad-numpad-driver]]