[LINUX] Utilisation confortable de Magic Trackpad 2 sur le bureau Ubuntu

introduction

J'utilise Magic Trackpad 2 avec Ubuntu 20.04 LTS Parfois, le curseur se fige, comme illustré ci-dessous.

Lorsque la capacité de la batterie du Magic Trackpad 2 diminue, Parce qu'il fonctionnait pour se déconnecter pour réduire la consommation de la batterie, Le curseur était bloqué, n'est-ce pas?

Donc, comme la réponse de cette personne, ne cibler que Magic Trackpad 2 Je vais appliquer un correctif au noyau qui désactive la fonction qui réduit la consommation de la batterie.

1. Préparez un conteneur Docker pour la construction du noyau Ubuntu

Ce sera utile.

Je n'aime pas l'environnement de construction du noyau Ubuntu lorsque l'environnement de bureau est sale. Je vais le construire sur Docker.

docker pull ubuntu:focal
docker run -it --name ubuntu ubuntu:focal bash

Sur le conteneur Docker, installez les packages requis pour la construction du noyau.

apt update && apt upgrade -y
apt install -y git fakeroot build-essential libncurses5 libncurses5-dev libelf-dev binutils-dev devscripts u-boot-tools
sed 's/# deb-src/deb-src/g' -i /etc/apt/sources.list
apt update
apt-get -y build-dep linux

2. Corrigez le noyau Ubuntu

Téléchargez la source du noyau.

cd
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal
cd focal

Puisque la version du noyau du bureau Ubuntu est ci-dessous

uname -a
Linux ryzen 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Découvrez la même version de la source du noyau.

git tag -l Ubuntu-5.4.0-42*
Ubuntu-5.4.0-42.46
git checkout -b focal+mt2patch Ubuntu-5.4.0-42.46

Appliquez le patch.

apt install -y vim
vim drivers/hid/hid-input.c
git diff
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index dea9cc65bf80..194231ffabee 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -310,6 +310,9 @@ static const struct hid_device_id hid_battery_quirks[] = {
        { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
                USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI),
          HID_BATTERY_QUIRK_PERCENT | HID_BATTERY_QUIRK_FEATURE },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE,
+               USB_DEVICE_ID_APPLE_MAGICMOUSE),
+         HID_BATTERY_QUIRK_IGNORE },
        { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM,
                USB_DEVICE_ID_ELECOM_BM084),
          HID_BATTERY_QUIRK_IGNORE },

3. Construisez le noyau Ubuntu

Construisez en vous référant à cet article.

Tout d'abord, copiez le fichier de configuration d'Ubuntu sur l'hôte vers docker.

docker cp /boot/config-5.4.0-42-generic ubuntu:/tmp/

Déplacez le fichier de paramètres copié sur le conteneur Docker pour refléter le paramètre.

mkdir ../build
cp /tmp/config-5.4.0-42-generic ../build/.config
scripts/config --file ../build/.config --disable DEBUG_INFO
make O=../build/ oldconfig

Construisez le noyau et les modules.

time make -j 32 O=../build/ LOCALVERSION=-mt2patch
real    5m32.215s
user    140m10.856s
sys     16m43.152s
time make modules -j 32 O=../build/ LOCALVERSION=-mt2patch
real    0m27.762s
user    1m30.672s
sys     1m41.236s
time make bindeb-pkg -j 32 O=../build/ LOCALVERSION=-mt2patch
real    1m3.661s
user    4m49.134s
sys     2m14.784s

Ryzen 9 3950x est explosif ...

4. Installez le noyau Ubuntu

À la suite de la construction, le package est créé dans le répertoire un niveau supérieur.

ls -l ../*.deb
-rw-r--r-- 1 root root 11424784 Aug 26 17:45 ../linux-headers-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb
-rw-r--r-- 1 root root 61014544 Aug 26 17:45 ../linux-image-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb
-rw-r--r-- 1 root root  1071376 Aug 26 17:45 ../linux-libc-dev_5.4.44-mt2patch-1_amd64.deb

Ici, le nom du fichier est «5.4.44-mt2patch». La version de configuration du noyau est CONFIG_VERSION_SIGNATURE =" Ubuntu 5.4.0-42.46-generic 5.4.44 " Est-ce parce que c'était le cas?

Copiez-les du côté hôte et installez-les.

docker cp ubuntu:/root/linux-headers-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb .
docker cp ubuntu:/root/linux-image-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb .
docker cp ubuntu:/root/linux-libc-dev_5.4.44-mt2patch-1_amd64.deb .
sudo apt install ./linux-headers-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb
sudo apt install ./linux-image-5.4.44-mt2patch_5.4.44-mt2patch-1_amd64.deb
sudo apt install ./linux-libc-dev_5.4.44-mt2patch-1_amd64.deb

accompli. A partir de maintenant, j'espère que le curseur ne se fige pas.

Lorsque vous souhaitez revenir au noyau d'origine

Lorsque le noyau que vous avez construit ne fonctionne pas comme prévu Vous voudrez démarrer avec le noyau d'origine. Dans ce cas, modifiez / etc / default / grub.

sudo vim /etc/default/grub

Le correctif consiste à définir GRUB_TIMEOUT_STYLE = menu pour prolonger le délai d'expiration. Vous pouvez maintenant sélectionner le noyau à utiliser au démarrage.

--- grub.ucf-dist       2020-08-02 19:43:53.512717712 +0900
+++ grub        2020-08-26 17:25:45.283739309 +0900
@@ -4,8 +4,9 @@
 #   info -f grub -n 'Simple configuration'

 GRUB_DEFAULT=0
-GRUB_TIMEOUT_STYLE=hidden
-GRUB_TIMEOUT=0
+#GRUB_TIMEOUT_STYLE=hidden
+GRUB_TIMEOUT_STYLE=menu
+GRUB_TIMEOUT=5
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
 GRUB_CMDLINE_LINUX_DEFAULT=""
 GRUB_CMDLINE_LINUX=""

Mettez à jour grub lorsque le correctif est terminé.

sudo update-grub

Recommended Posts

Utilisation confortable de Magic Trackpad 2 sur le bureau Ubuntu
Utilisez matplotlib sur Ubuntu 12 et Python
SoftwareRAID 0 sur SereneLinux (Ubuntu 18.04 Desktop)
Utiliser Github Desktop sous Linux
Créer un environnement pour "Tello_Video" sur Ubuntu
[Python] Localisation japonaise de matplotlib sur Ubuntu
Au moment de la mise à jour de python avec ubuntu
Changer la résolution d'Ubuntu s'exécutant sur VirtualBox
Shebang sur Ubuntu 20.04
Installez la dernière version de CMake sur Ubuntu 18.04.4 LTS
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version Termux)