{{tag>bionic portable}}
----
====== Lenovo Yoga 7i (& Yoga 7) - 14ITL5 & 15ITL5 ======
Le dump du BIOS indique les réferences 14ITL05 & 15ITL05, mais ces références semblent appartenir à d'autres modèles. Peut-être cela peut fonctionner ou vous aider.
===== En un clin d’œil =====
Le tableau suivant récapitule la prise en charge du matériel de portable par les différentes versions d'Ubuntu.
Il utilise les notations suivantes :
* {{:icons:ok_32.png|OK 32 bits}} **Fonctionne immédiatement en 32 bits.**
* {{:icons:ok_64.png|OK 64 bits}} **Fonctionne immédiatement en 64 bits.**
* {{:icons:ok_32_64.png|32 et 64 bits}} **Fonctionne immédiatement en 32 et 64 bits.**
* {{wiki:modeles:laptop_work.png|Fonctionne après config}} **Fonctionne après quelques manipulations**
* {{wiki:modeles:laptop_notok.png|Ne fonctionne pas}} **Ne fonctionne pas**
* {{:laptop_help.png||Pas testé}} **Pas d'informations disponibles**
* {{:icons:edit-clear.png?32|Information obsolète}} **Information de support trop ancienne**, si possible mettez là à jour.
Ce portable est parfois appelé Yoga 7i ou Yoga 7 (ce n'est pas très claire), et a les références 14ITL5 pour le 14 pouces et 15ITL5 pour le 15 pouces.
^ Version ^ Installation ^ Carte graphique ^ Son ^ Wifi ^ Bluetooth ^ Webcam ^ Touchpad ^ Raccourcis multimédia ^ Ecran tactile ^ Lecteurs d’empreintes digitales ^ Ecran tactile multipoints^
| [[:20.04]] avec Kernel 5.11.0 à 5.11.5 | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_work.png|Fonctionne après config}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_notok.png|Ne fonctionne pas}} | {{wiki:modeles:laptop_work.png|Fonctionne après config}} |
| [[:21.04]] | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_work.png|Fonctionne après config}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_notok.png|Ne fonctionne pas}} | {{:icons:ok_64.png|OK 64 bits}} |
| [[:21.10]] | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_work.png|Fonctionne après config}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_notok.png|Ne fonctionne pas}} | {{:icons:ok_64.png|OK 64 bits}} |
| [[:21.10]] Avec kernet 5.13 | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{:icons:ok_64.png|OK 64 bits}} | {{wiki:modeles:laptop_notok.png|Ne fonctionne pas}} | {{:icons:ok_64.png|OK 64 bits}} |
Infos : Les modifications pour le son et le S3 fonctionnent sous la 21.04. Le son fonctionne avec le jack, sans rien modifier. sous la version 21.10 à partir de la version 5.13 du kernel, le son fonctionne normalement.
Infos : sur la 21.10, il est nécessaire de quitter le serveur d'affichage Wayland pour fonctionner sous Xorg afin de faire fonctionner la passage automatique en mode tablette. Voir dernière section
Sous Ubuntu 20.04 avant le kernel 5.11 il était nécessaire de rajouter initcall_blacklist=elants_i2c_driver_init dans /etc/default/grub pour avoir le tactile fonctionnel.
**Utilisateurs du Wiki possédant cet ordinateur, fonctionnel :**
* **[[:utilisateurs:DavidLenovo]]** : [[:20.04]]
* **[[:utilisateurs:franck74]]** : [[:21.10]]
**Cet ordinateur portable n'est à priori pas [[:pc_tatoué|tatoué]].**
Pour problème d'écran qui clignote et clavier non détecté:
soit, au démarrage, dans grub, appuyer sur e et éditez la bonne ligne ;
sinon sudo nano /etc/default/grub
changer la ligne
named GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub
par
GRUB_CMDLINE_LINUX_DEFAULT="i915.enable_psr=0 i8042.direct i8042.dumbkbd"
sauver ctrl-x puis dans la commande sudo update-grub
===== Installation =====
Pour démarrer sur le BIOS, il faut démarrer l'ordinateur et appuyer sur F2, on peut aussi utiliser le boot menu sur F12.\\
Il y a un mini BIOS, on n'a malheureusement pas accès à grand chose.
Il est possible de garder Windows en plus d'Ubuntu.
===== Post-Installation =====
==== Kernel 5.11 (pour 20.04) ====
Il faut installer le kernel 5.11 pour avoir un fonctionnement complet du PC.\\
Les kernels après 5.11.5 ne fonctionnent plus chez moi sur Ubuntu 20.04 (dernier testé 5.11.16).\\
\\
Il faudrait voir pour prendre la mainline kernel d'Ubuntu 21.04 pour ne pas avoir à faire les mise à jour à la main
\\
[[https://ubuntuhandbook.org/index.php/2021/02/linux-kernel-5-11released-install-ubuntu-linux-mint/|Tutoriel]] - [[https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.11.5/|Dépot 5.11.5]]\\
Je recommande de télécharger :
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.11.5/amd64/linux-headers-5.11.5-051105-generic_5.11.5-051105.202103091130_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.11.5/amd64/linux-headers-5.11.5-051105_5.11.5-051105.202103091130_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.11.5/amd64/linux-image-unsigned-5.11.5-051105-generic_5.11.5-051105.202103091130_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.11.5/amd64/linux-modules-5.11.5-051105-generic_5.11.5-051105.202103091130_amd64.deb
Et d'installer :
sudo dpkg -i *.deb
\\
**Il faut désactiver le secure boot**\\
Aller dans le BIOS en appuyant (une ou plusieurs fois) sur F2 au démarrage, tout de suite après l'appui sur power ou le redémarrage.\\
Il y a une option Secure Boot, la mettre sur disable.\\
Ceci à cause de ces noyaux (kernel) qui ne sont pas signés.\\
\\
Rebooter et vérifier :
uname -r
==== Son ====
Depuis le kernel 5.11.0 (jusqu’à 5.11.5) la carte son fonctionne, et n'a pas une sortie fictive ou dummy output.\\
Mais fonctionne qu'avec le jack et un casque ou headphone.
\\
Si vous avez une sortie fictive vérifiez aussi les drivers utilisés, avec la commande : \\
aplay -l
\\
Vous devez avoir quelques chose qui commence par :\\
**** Liste des Périphériques Matériels PLAYBACK ****
carte 0: sofhdadsp [sof-hda-dsp], périphérique 0: HDA Analog (*) []
\\
La commande : \\
sudo dmesg | grep -i audio
Doit afficher des ligne contenant : sof-audio-pci \\
\\
J'ai fait pas mal de modification, et je ne sais plus si sur Ubuntu 20.04, il faut forcer le driver sof-hda-dsp ou si cela est automatique.\\
Sur Ubuntu 21.04 aucune modification à faire pour avoir une sortie réelle et le fonctionnement du jack.\\
=== Haut-parleur (speakers) ===
Beaucoup de portables Lenovo (et d'autres marques aussi) avec le chipset ALC287 n'ont pas de sons sur les haut-parleurs.\\
Sur un pc avec un BIOS non restreint, en modifiant l'option S3 qui est désactivée pour Windows, cela devrait fonctionner facilement. Sur celui-ci il faut faire les modifications à la main.\\
\\
Pour fonctionner avec les haut-parleurs (speakers) il faut :\\
* Activer le mode S3 (voir plus bas)\\
* Vérifier qu'il est bien activé\\
* Lancer une musique sur VLC par exemple, laisser jouer, passer en veille (suspend-to-RAM), sortir de la veille, et le son fonctionne sur les hauts-parleur (speakers).
Si pas de son lu pendant 7 secondes, le son ne fonctionnera plus, il faudra alors remettre en veille.\\
\\
Il y a un script sur la [[https://wiki.archlinux.org/title/Lenovo_Yoga_7i#Speaker_audio|page de tutoriel]], mais nous sommes plusieurs à ne pas avoir un fonctionnement concluant.
-> En édition
==== Gestion d'énergie / Mode S3 / Deep ====
Par défaut, pour l'autre OS, le mode S3 est désactivé dans le BIOS, vu que le BIOS est bridé (on a accès a presque rien), on ne peut pas le réactiver.\\
Il faut le modifier dans Ubuntu.\\
Le mode S3 est bien plus performant pour le passage en veille, que le s2idle activé par défaut.\\
Par exemple environ 10h de veille (dans la ram) consome 6% de batterie et ne chauffe pas contrairement au triple (de mémoire) et à un échauffement important en mode S2.\\
\\
Le mode S3 est obligatoire pour avec le son avec les haut-parleurs.\\
=== Vérifier si le S3 est bien activé ===
Tapez :
cat /sys/power/mem_sleep
"S2idle [deep]" doit apparaitre\\
Si il y a juste "[s2idle]" il est désactivé.\\
\\
Puis :\\
sudo dmesg |grep ACPI|grep supports
\\
Vous devriez avoir :\\
[ 0.195933] ACPI: (supports S0 S3 S4 S5)
\\
Si S3 n’apparaît pas il n'est pas activé.\\
=== Activer le mode S3 ===
Cette procédure est différente pour les autres modèles.\\
Il faut suivre la [[https://wiki.archlinux.org/title/Lenovo_Yoga_7i#Activating_S3_sleep|procédure ici]], la voici en simplifié :\\
1) Installer iasl (Intel's compiler/decompiler for ACPI machine language) and cpio
sudo apt-get install acpica-tools cpio
2) on crée un dossier acpi : mkdir acpi\\
3) on fait un dump de la table ACPI DSDT \\
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.aml
4) On décompile le dump qui va generé un .dsl basé sur le .aml ACPI \\
iasl -d dsdt.aml
5) on crée notre patch pour notre Yoga 7i : (C'est cette étape qui est propre au matériel)\\
nano acpi.patch
On met :
--- dsdt.dsl~
+++ dsdt.dsl
@@ -18,7 +18,7 @@
* Compiler ID "INTL"
* Compiler Version 0x20210105 (539033861)
*/
-DefinitionBlock ("", "DSDT", 2, "LENOVO", "CB-01 ", 0x00000002)
+DefinitionBlock ("", "DSDT", 2, "LENOVO", "CB-01 ", 0x00000003)
{
External (_GPE.AL6F, MethodObj) // 0 Arguments
External (_GPE.P0L6, MethodObj) // 0 Arguments
@@ -516,7 +516,7 @@
Name (SS1, Zero)
Name (SS2, Zero)
- Name (SS3, Zero)
+ Name (SS3, One)
Name (SS4, One)
OperationRegion (GNVS, SystemMemory, 0x45AB8018, 0x0A9B)
Field (GNVS, AnyAcc, Lock, Preserve)
On sauvegarde\\
6) On applique le patch :
patch --verbose < acpi.patch
Il doit y avoir un message "2 Hunk ok", ou quelque chose comme cela. Testé sur Ubuntu 20.04.\\
7) On recompile notre version patché du .dsl
iasl -ve -tc dsdt.dsl
8) On crée une archive CPIO avec la structure correct, qui permetra à GRUB de le démarrer au boot.\\
Nous appelerons l'image finale acpi_override et la copions dans /boot/: \\
mkdir -p kernel/firmware/acpi
cp dsdt.aml kernel/firmware/acpi
find kernel | cpio -H newc --create > acpi_override
sudo cp acpi_override /boot
9) GRUB doit être paramétré :
sudo nano /etc/default/grub
Chercher et remplacer les lignes suivante :\\
GRUB_CMDLINE_LINUX_DEFAULT="mem_sleep_default=deep"
GRUB_EARLY_INITRD_LINUX_CUSTOM="/boot/acpi_override"
Note : il est possible de garder d'autres parametre dans GRUB_CMDLINE_LINUX_DEFAULT il faut mettre un espace entre chaque.\\
10) Il faut regenerer la config de GRUB :\\
sudo update-grub
**Ici 2 options : soit GRUB genere la config avec initrd /boot/acpi_override (on le vois apparaitre), soit non (ce qui est mon cas sous Ubuntu 20.04)**
Si il est apparu on passe à l'étape 12, sinon la 11\\
11) Il faut que GRUB charge notre nouvelle table DSDT, il faut éditer (en root) /boot/grub/grub.cfg en graphique ou :\\
sudo nano /boot/grub/grub.cfg
Il faut modifier chaque ligne initrd pour avoir /boot/acpi_override avant l'image noyau, donc pour chaque version du noyau\\
Exemple :
initrd /boot/initrd.img-5.11.5-051105-generic
Devient :
initrd /boot/acpi_override /boot/initrd.img-5.11.5-051105-generic
\\
Ceci est à perfectionner, puisque a chaque mise à jour de noyau, il faudra refaire la manipulation
12) Redemarer et verifier si cela fonctionne :
sudo dmesg |grep ACPI|grep supports
\\
Vous devriez avoir :\\
[ 0.195933] ACPI: (supports S0 S3 S4 S5)
\\
Si S3 n’apparaît pas il n'est pas activé.\\
\\
Puis : \\
cat /sys/power/mem_sleep
"S2idle [deep]" doit apparaitre\\
Si il y a juste "[s2idle]" il est désactivé.\\
\\
**C'est l'élement qui me semble compliqué, on peut vérifier (si ca ne fonctionne pas) avec :**
sudo dmesg
On doit avoir : [ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.11.5-051105-generic root=(l'emplacement de votre Ubuntu) ro mem_sleep_default=deep
Il doit y avoir aussi une ligne ACPI: DSDT 0x.... ... (v02 LENOVO CB-01 00000003 INTL ...)
Il faut avoir le 3 avant INTL (par défaut c'est à 2 avant la modif que l'on viens de faire)\\
Bien verifier si il y a eu des erreurs, et si on a bien remplacer toutes les lignes initrd.\\
\\
==== Touches raccourcis réglage luminosité (hotkeys brightness) ====
Fonctionnent sous 21.10.
Les touches fonctionnent uniquement après une mise en veille vers la ram (suspend-to-RAM), avec le noyau 5.11.5, cela fonctionnait mal ou pas avec des noyaux précédent (peut être les 5.8).\\
Certains parlent d'options dans /etc/default/grub, j'ai fait quelques test non concluant, peut-être une piste a creuser avec : acpi_backlight=none\\
==== Pavé tactile ====
Vous pouvez consulter la page consacrée au [[:touchpad|pavé tactile]] //(touchpad)// pour savoir comment utiliser toutes ses possibilités (ascenseur vertical, ascenseur horizontal, ...).\\
**Le Touchpad présente souvent le défaut suivant : lorsqu'on tape au clavier, on clique sans le vouloir avec la paume. Consultez [[:touchpad#problemes_de_contact_de_paume|ce paragraphe]] pour corriger ce défaut.**\\
Je n'ai pas constaté ce problème
==== Ecran Tactile ====
=== Multitouch ===
Si le multitouch ne fonctionne pas immédiatement après l'installation, installez ces paquets:
sudo apt-get install xserver-xorg-input-evdev touchegg
Pour tester si cela fonctionne, tapez "touchegg" dans un terminal et essayez de "scroller" avec deux doigts dans une autre application avec un ascenseur.\\
Si ça fonctionne, vous devrez ajouter touchegg dans vos [[tutoriel:application_demarrage|programmes au démarrage de session]].\\
Il est possible de faire des fonctions à 3/4 doigts [[https://askubuntu.com/questions/808214/ubuntu-16-04-lenovo-yoga-2-pro-touchpad-3-4-finger-swipe|voir ici]] (non testé)
=== Avec plusieurs écrans ===
-> A vérifier
Si vous avez un second écran branché, vous vous apercevrez que le touchscreen ne fonctionne pas comme vous l'attendez probablement : toucher un point sur l'écran ne clique pas en ce point : l'écran tactile couvre la surface totale des deux écrans, et pas seulement la sienne.
Essayez la commande suivante:
xinput --map-to-output "ELAN Touchscreen" eDP1
Si ça fonctionne bien pour vous, ajoutez cette commande aux [[tutoriel:application_demarrage|programmes au démarrage de votre session]]
==== Mode tablette : désactiver le clavier et le touchpad ====
Un capteur détecte le passage en mode retourné ou tablette et désactive le touchpad (sur Plasma et Mate).
Sur certains environnement de bureau, l'écran est automatiquement retourné (en plus du touchpad désactivé), c'est le cas de :
* L’environnement de bureau Ubuntu (Xorg)
* L’environnement de bureau Ubuntu sur Wayland (Sauf 21.10)
* L’environnement de bureau Cynamon, par contre le tactile considère que l'écran est dans le même sens.
Grouar propose des scripts dans [[https://doc.ubuntu-fr.org/lenovo_yoga_2_pro#mode_tablettedesactiver_le_clavier_et_le_touchpad|sont tuto pour Yoga 2 Pro]]
-> A tester (pas forcement utile à partir de 21.04
Voici un script bash qui permet de basculer entre le mode tablette (clavier et touchpad désactivés) et le mode laptop :
#!/bin/bash
# you can find touchpad and keyboard labels with the command xinput --list
TOUCHPAD_LABEL="SynPS/2 Synaptics TouchPad"
KEYBOARD_LABEL="AT Translated Set 2 keyboard"
STATUS_ON=1
STATUS_OFF=0
function getStatus {
# first argument is device id or device name
status=$(xinput --list-props "$1" | grep "[^\"]Device Enabled.*" | grep -o "[01]$")
echo $status
}
function setStatus {
xinput set-int-prop "$1" "Device Enabled" 8 $2
}
tp_status=$(getStatus "$TOUCHPAD_LABEL")
kb_status=$(getStatus "$KEYBOARD_LABEL")
if [[ $tp_status == $STATUS_ON ]] && [[ $kb_status == $STATUS_ON ]]
then
#kdialog --passivepopup 'Keyboard and touchpad disabled' 3 # uncomment if you use kde and want notifications
setStatus "$TOUCHPAD_LABEL" $STATUS_OFF
setStatus "$KEYBOARD_LABEL" $STATUS_OFF
else
#kdialog --passivepopup 'Keyboard and touchpad enabled' 3 # uncomment if you use kde and want notifications
setStatus "$TOUCHPAD_LABEL" $STATUS_ON
setStatus "$KEYBOARD_LABEL" $STATUS_ON
fi
Je l'utilise avec un fichier .desktop placé dans ~/.local/share/applications dont le contenu est le suivant :
[Desktop Entry]
Encoding=UTF-8
Name=Toggle Tablet
Comment=Toggle keyboard and touchpad
Exec=~/scripts/toggletablet.sh
Icon=preferences-desktop-display
Type=Application
Ce qui permet de lancer le script via le menu (dans mon cas, Homerun dans KDE)
Dans mon cas, le script toggletablet.sh est placé dans un dossier script dans /home/grou, à vous d'adapter la ligne Exec à votre installation.
==== Mode tablette : retourner l'écran ====
Sur 21.10, le mode tablette ne fonctionne pas sous Wayland (serveur d'affichage de Gnome), il faut alors rebasculer en Xorg. Pour ce faire : déconnectez vous; sur l'écran de connection, choisissez un utilisateur et avant de valider, choisissez "Ubuntu sous Xorg" avec l'icône "paramètres" situé en bas à droite.
Pour retrouver la fonction de zoom à 2 doigts sur Firefox, ajoutez en fin de fichier ~\.profile, la ligne suivante :
export MOZ_USE_XINPUT2=1
-> A tester
Un autre script pour alterner entre trois orientations d'écran :
#!/bin/sh
# Switch between 3 orientations
state=$(xrandr -q|grep eDP1|cut -d' ' -f5)
case $state in
inverted)
xrandr -o normal
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
xinput enable 'SynPS/2 Synaptics TouchPad'
;;
right)
xrandr -o inverted
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' -1 0 1 0 -1 1 0 0 1
xinput disable 'SynPS/2 Synaptics TouchPad'
;;
*)
xrandr --screen 0 -o right
xinput set-prop 'ELAN Touchscreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1
xinput disable 'SynPS/2 Synaptics TouchPad'
;;
esac
===== Sources =====
* (en) [[https://wiki.archlinux.org/title/Lenovo_Yoga_7i#Activating_S3_sleep|Activation S3 Yoga 7i - ArchLinux]]
* (en) [[https://askubuntu.com/questions/367963/ubuntu-on-lenovo-yoga-2-pro|Ask Ubuntu]]
* (en) [[https://wiki.archlinux.org/index.php/Touchscreen#Using_a_touchscreen_in_a_multi-head_setup|Documentation ArchLinux]]
* (fr) [[https://doc.ubuntu-fr.org/lenovo_yoga_2_pro|Tuto sur le Yoga 2 pro]]
* (en) [[https://askubuntu.com/questions/808214/ubuntu-16-04-lenovo-yoga-2-pro-touchpad-3-4-finger-swipe|Lenovo Yoga 2 Pro Touchpad 3/4 finger swipe]]
* (en) [[https://ubuntuhandbook.org/index.php/2021/02/linux-kernel-5-11released-install-ubuntu-linux-mint/|Kernel 5.11]]
----
//Contributeurs : Pour la base issu de lenovo_yoga_2_pro [[:utilisateurs:grouar]], pour le Yoga 7 : [[:utilisateurs:DavidLenovo]]//