ATÉLILI

ATELIERS D'INFORMATIQUE LIBRE À LILLE

User Tools

Site Tools


documentation:installer-linux-sur-asus-t100ha-fu040t-uefi-verrouille-mot-de-passe

Installer Linux sur un Asus T100H verouillé par mot de passe avec UEFI

Situation de départ :

Il s'agit d'une tablette avec clavier détachable, vendue sous Windows 10. Actuellement verouillé par un mot de passe demandé au démarrage via une fenêtre qui se présente comme une fenêtre Windows.

Le menu d'UEFI reste accessible (F2), et il est possible de démarrer sur clé USB (que celle-ci gère UEFI, ou pas).

Windows 10 étant intriqué avec l'UEFI, on devra jongler avec ses menus pour accéder aux options de démarrage qui nous intéressent.

Situation finale :

  • Pas réussi à faire sauter le mot de passe Windows sans tout faire sauter avec
  • Installation de Linux Mint 18.1 menée à terme. Redimensionnement des partitions possible. Conservation des partitions NTFS.
  • Les données perso ont pu être copiées depuis Mint.
  • Sous Mint et divers noyaux, erreurs de système de fichiers récurrentes sur la partition racine, nécessitant de faire les opérations avec la console en mode recovery.
  • Installation de Debian Stretch (Testing) fonctionne pas trop mal, mais n'a pas réussi à installer grub-efi-amd64 (manquant).
  • Démarrages via rEFInd sur clé USB sans problèmes.
  • Échec d'installation de rEFInd sur la partition boot
  • Installation de grub-efi-amd64 (succès)

Essais initiaux peu fructueux

Démarrer sur un ISO de Debian Jessie, et consulter les partitions NTFS existantes depuis l'installeur. Le montage des partitions NTFS semblait poser problème. Ces partitions étaient identifiées sous /dev/mm* (et non pas /dev/sda).

Mot de passe de démarrage

La fenêtre est identique à celle montrée en photo dans cet article : http://www.pcastuces.com/pratique/windows/proteger_demarrage_windows/page3.htm

Cela confirme qu'il s'agit donc d'un mot de passe Windows, et non d'un mot de passe UEFI.

Il doit y avoir des outils pour les faire sauter. Testons celui-ci qui est libre : https://pogostick.net/~pnh/ntpasswd/

chntpw

On peut chopper une version pour clé USB. Il faut copier les fichiers, et rendre la clé bootable avec syslinux.

On installe donc syslinux. Documentation : http://www.syslinux.org/wiki/index.php?title=HowTos

syslinux -i /dev/sdX1

… ne fonctionne pas car ma partition de clé USB est en EXT4.

Plutôt que de chercher une autre solution, je la change en NTFS/exFAT (type 7) avec fdisk.

Puis j'installe dosfstools.

mkfs.vfat /dev/sdX1

Je recopie les fichiers de chntpw, puis je relance syslinux. Cette fois-ci ça fonctionne.

Démarrer sur une clé USB

Quand Windows nous demande le mot de passe, on choisit “Redémarrer”. Il nous présente ensuite :

Préparation de la réparation automatique (fond noir). Diagnostic de votre ordinateur (fond noir).

Réparation automatique (fond bleu) : Redémarrer / Options avancées.

  1. Continuer / Quitter et passer à Windows 10
  2. Utiliser un périphérique
  3. Dépannage
  4. Éteindre votre PC.

On choisit 2.

Il me liste ma clé USB, en indiquant qu'il s'agit d'une clé UEFI. Un peu bizarre mais OK.

Le démarrage sur la clé USB ne fonctionne pas, je retombe sur la demande de mot de passe.

Redémarrer.

Je retombe sur les options sur fond bleu.

Je refais la même chose (option 2), cette fois-ci il me trouve bien ma clé USB et indique le modèle (KingstonTrucBidule). Toujours avec UEFI.

Il ne démarre pas sous la clé USB. C'est qu'il y a un problème dans la structure de boot de la clé-même. Peut-être le flag du secteur d'amorçage mal ajusté : il faut le changer avec fdisk.

Retour à l'écran à fond bleu.

Cette fois-ci il me propose d'autres options :

  1. Continuer
  2. Dépannage
  3. Éteindre votre PC.

Je choisis 2. Il me propose :

  1. Réinitialiser ce PC
  2. Options avancées

Je choisis 2. Il me propose :

  1. Restauration du système
  2. Récupération de l'image système
  3. Outil de redémarrage système
  4. Invité de commandes
  5. Changer les paramètres du microprogramme UEFI
  6. Paramètres (changer le comportement de windows au démarrage)
  7. Retrograder vers la version précédente

Je ne le souhaitais pas, mais j'ai choisi 3. Il me lance des “Tentatives de réparation” (fond noir), c'est long. Trop long (> 10 mins ?). J'éteinds l'ordi.

Je change le flag d'amorçage de ma clé USB (fdisk semble valider le changement même si on ne fait pas 'w' pour réécrire la table de partitions).

Essais avec l'invite de commande

Il y a quelques articles qui parlent de réinitialiser le mot de passe d'un utilisateur, mais pas le mot de passe général (maître).

Petite exploration avec les commandes net.

net user ne recense aucun utilisateur.

net user fab /add dit qu'il ajoute le compte, mais pas aux groupes utilisateurs.

net localgroup administrators fab2 /add dit que le groupe localgroup n'existe pas.

Il ne semble pas avoir beaucoup de services démarrés. Un net start préalable semble démarrer des trucs mais ne résout rien.

Accès à UEFI (BIOS)

Il se fait avec la touche F2 au démarrage.

Les options de l'UEFI sont assez légères, on peut apporter des précisions.

  • Il y a des options grisées. On lit sur le web qu'il faut ajuster les mots de passe (administrateur/utilisateur du BIOS) pour pouvoir accéder ensuite à ces options. Ici, ça n'a rien changé, donc mieux vaut laisser ces mots de passe vides (ainsi il ne les demande plus).
  • Y'a des trucs qui font peur dans Secure Boot (les identifiants de clés). On peut les virer, car il peut les remettre par des paramètres d'usine, mais ce n'est pas utile. Le fait de supprimer les clés met la puce à l'oreille à UEFI qui se dit “ce n'est pas un utilisateur, c'est un assembleur”, mais au final il ne propose pas plus d'options. Aussi, la présence de ces clés n'empêche pas qu'on puisse désactiver Secure Boot. On laisse Secure Boot désactivé.
  • Il y a un shell EFI normalement accessible depuis UEFI… Sauf si comme moi vous avez viré la partition. Je n'ai pas eu usage de ce shell et, chose rassurante, on peut retrouver ce type de shell via rEFInd si on en a besoin.

Essai avec Linux Mint Debian Edition 64 bits

En fait, réinitialiser le mot de passe, c'est amusant mais on peut faire sans.

Donc tentons de démarrer depuis un ISO qui ne posera pas de problème pour l'accès des partitions NTFS.

La sauvegarde des fichiers utilisateurs pourra se faire par le réseau.

Préparation de la clé USB :

# dd if=lmde-2-201701-cinnamon-64bit.iso of=/dev/sdX bs=4M; sync

Cette fois-ci, il démarre bien sur la clé USB, même si l'intitulé est vague (UEFI: Removable Device).

Au démarrage de Mint, Cinammon passe en mode fallback, sinon il dit qu'il plante.

En plus, il est pas gentil : pas de menu pour régler l'écran dans les paramètres. Il y a quand même une icône “Display” dans le menu de Mint. Sauf que : pas possible de régler la rotation de l'écran.

xrandr --output default --rotate left

… me sort un : output default cannot use rotation “left” reflection “none”.

Voyons pour le réseau : un lspci ne me recense aucune interface réseau… donc pas évident de voir s'il faut un firmware.

Pas de choix de la langue du clavier, qui reste en anglais. Les autres langues semblent installables, mais ce petit rigolo reste en Qwerty même si on vire anglais de la liste et qu'on applique le “Français”. Faute de connexion internet disponible ? Il ne dit rien.

Un peu galère. Optons pour la version de Mint basée sur Ubuntu.

Essai avec Linux Mint 18.1 cinnamon 64 bits

  • Toujours pas de wifi
  • La rotation de l'écran est possible.

Collecte d'infos sur le net

Cette dernière page dit que le wifi est cassé sur les noyaux 4.4.x et < 4.4.4. Ce qui est le cas de l'installeur de Linux Mint 18.1. Le chipset nécessite un noyau > 4.0.

Installer Linux Mint malgré tout

Bonne surprise : l'installeur de Linux Mint semble pouvoir redimensionner les partitions. Ca laisse une chance de conserver un bout de partition Windows, et de récupérer les données après installation.

Note : Mint semble détecter le modèle comme un T100HAN, il le suggère comme nom de machine.

L'installation s'est déroulée avec succès.

Grub me propose Mint et d'autres options.

En démarrage normal : il reste bloqué sur un écran noir.

En démarrage “avec upstart” : il me sort des erreurs relatives au module intel [i915].

[drm:intel_parse_bios [i915]] *ERROR* Unable to parse MIPI Sequence Block v3+

... Failed to own the pwm chip

... mismatch in base.adjusted_mode.crtc_clock (expected 75000, found 18750)

... mismatch in port_clock (expected 75000, found 18750)

On peut accéder à une console root.

Installer kernel plus récent

Mint utilise les dépots d'Ubuntu. Voyons voir : http://packages.ubuntu.com/yakkety/kernel/

On trouve par ici un kernel 4.8.0 (ainsi qu'un 4.10 ici : http://packages.ubuntu.com/zesty/kernel/).

Je récupère celui-ci : http://packages.ubuntu.com/yakkety/amd64/linux-image-4.8.0-46-generic/download

Après installation de ce paquet, il me dit qu'il ne peut pas trouver les headers. Ainsi que pas de gestion de la locale fr_FR.utf8. Il se sert sans doute des headers pour recompiler des modules.

Ca a l'air de passer quand même, donc je tente.

Ah, cette fois-ci, il m'affiche un logo Linux Mint en mode de démarrage normal, mais bam, il me rebalance sur un shell avec (initramfs). Pareil avec upstart. Ah, en mode Recovery, après plusieurs répétitions d'une ligne Begin: Running /scripts/local-block … done. il me dit :

UUID=6a...58 does not exist. Dropping to a shell!

On tente d'installer les headers voir si ça le rassure.

http://packages.ubuntu.com/yakkety/amd64/linux-headers-4.8.0-46-generic

Cette fois-ci, il me pose un problème de système de fichiers monté en lecture seule. Même la console de récupération est devenue capricieuse : il tente le montage de la partition root tardivement, et me réaffiche le menu de Recovery en indiquant “filesystem state: read-only”.

Il doit y avoir une erreur sur le système de fichiers… qui est en btrfs il semblerait.

Le menu recovery de Mint propose une entrée “fsck”. Remontage de / en lecture/écriture dit-il. J'aurais plutôt pensé qu'il devait faire un démontage complet de la partition….

Il me lance quelques services, puis il reste figé sur Started Braille Device Support. Mais en fait … il a quand même semble t-il fait le boulot : entrée, puis il me ramène au menu Recovery, cette fois-ci avec la partition montée en lecture/écriture.

Headers installés avec succès.

Démarrage en 4.8 mode normal : même gag, il me ramène sous un shell busybox/initramfs.

Démarrage en 4.8 recovery : il délire sur /scripts/local-block, me rebalance sur le même shell.

4.4 recovery : de nouveau des soucis, système de fichiers en lecture seule. Après vérification, la partition est bien montée en ext4.

On a assez fait mumuse, maintenant on fait quoi ? Le moindre redémarrage, quel que soit le kernel, semble faire foirer la partition root.

On va tenter de recommencer à 0, en prenant tout l'espace disque plutôt qu'un redimensionnement périlleux. Se renseigner sur une distrib qui possède un kernel récent, pour le moment je ne vois pas.

Avec cette installation (même foireuse), on est en mesure de faire un backup des fichiers du disque dur NTFS sur un périphérique USB. On aura gagné au moins ça.

UEFI et ses options

Il y a une option UEFI networking, qui était désactivée. Je l'ai réactivée.

Pas mal d'options sont grisées.

Essai avec Debian Testing

Dispose d'un kernel 4.9 : https://packages.debian.org/unstable/kernel/

Des weekly-builds sont par ici : http://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/

Et on prend des non-officiels avec firmwares intégrés, parcequ'on est des fans de matos propriétaire car ils sont plus puissants !1)

Après, c'est bien gentil d'avoir récupéré Grub au lieu des menus Windows qui moulinent, mais au moins ce dernier nous permettait de choisir un périphérique :D

Ca ne l'a pas soigné d'installer Linux. On va donc y aller en mode bourrin : démarrer sur l'USB depuis grub2.

http://blog.viktorpetersson.com/post/93191892924/how-to-boot-from-usb-with-grub2

La partition de la clé USB est /dev/sda1, ça correspond à (hd0,msdos1)

grub> linux (hd0,msdos1)/install/vmlinuz root=/dev/sdb1
grub> initrd (hd0,msdos1)/install/initrd.gz
grub> boot

… ça fonctionne.

Cette fois-ci on partitionne de façon à ne pas contrarier Debian : il vire tout, on lui dit de ne pas avoir de /home séparé. Il semble créer plusieurs partitions tout de même.

Je trouvais que Debian mettait beaucoup de temps pour formater, mais ça va, il s'est décoincé. Ctrl+F4 pour voir ses activités en cas de doute.

Foirage pendant l'installation lors de l'installation de grub-efi-amd64, qui semble être absent.

Je me mets ça de côté : https://wiki.debian.org/GrubEFIReinstall

Coincé dans l'UEFI

Là ça commence à être beau. L'installation précédente a viré toutes les partitions, sans pouvoir installer Grub2. On se retrouve dans l'UEFI sans qu'aucune option de démarrage ne fonctionne.

Après avoir tourné en rond pendant une heure en ayant flippé d'avoir briqué la machine, je commence à lire la description de l'auteur de rEFInd : http://www.rodsbooks.com/refind/

In theory, EFI implementations should provide boot managers. Unfortunately, in practice these boot managers are often so poor as to be useless. The worst I've personally encountered is on Gigabyte's Hybrid EFI, which provides you with no boot options whatsoever, beyond choosing the boot device (hard disk vs. optical disc, for instance). I've heard of others that are just as bad. For this reason, a good EFI boot manager—either standalone or as part of a boot loader—is a practical necessity for multi-booting on an EFI computer. That's where rEFInd comes into play.

La description colle … par contre, est-ce qu'il va bien vouloir exécuter le shell EFI situé sur la clé USB ? Réponse : oui.

rEFInd est magique. Il me retrouve l'installation de Debian et a sû démarrer dessus.

Après avoir démarré Debian, toujours pas de Wifi. Je m'attendais à un noyau 4.x mais il m'a mis un vieux 3.16.

Comment mettre à jour ?

Pas simple sans accès réseau.

Avoir les dépendances du kernel …

Les 2 solutions mentionnées ici ne semblent pas fonctionner dans mon cas : http://stackoverflow.com/questions/13756800/how-to-download-all-dependencies-and-packages-to-directory

Ca fonctionne un peu mieux avec la méthode print-uris, en cleanant le cache au préalable : http://www.tuxradar.com/answers/517

Note: j'ai dû ajouter l'archi amd64 à mes dépots avant de pouvoir faire ça.

Franchement fastidieux ces deps. Je lui ai câlé le kernel 4.8 qui trainait sur la clé, j'ai réalisé après coup qu'il ne vient pas de Debian… résultat: erreur au démarrage pour trouver la partition root puis shell initramfs, même délire que plus haut.

Aucun problème pour redémarrer sur le noyau 3.x. Donc les erreurs de système de fichiers semblent dûes à l'usage d'un noyau 4.8/9.

Installer rEFInd

http://www.rodsbooks.com/refind/installing.html#linux

La solution à base de .deb foire : je crois qu'il n'installe que l'EFI 64bits, et en plus, il semble qu'il manque le paquet efibootmgr dans les dépots.

On le choppe :

Lors du lancement de la commande efibootmgr, il m'indique des erreurs liées à GPT, qui pourraient être corrigées avec GNU Parted…

Malheureusement après suivi des instructions d'installation, rEFInd ne démarre pas. Donc je dois remettre la clé USB. Par contre, une fois dans rEFInd, il m'a ajouté une icône qui consiste à lancer l'instance locale de rEFInd (située dans une partition FAT de ~500Mo).

Installer grub-efi-amd64

On choppe :

Super, une doc pour réinstaller grub-efi : https://wiki.debian.org/GrubEFIReinstall

ça fonctionne ! On retrouve notre grub au démarrage de l'ordi et on n'a plus besoin de rEFInd.

Le point : on nage gentiment

Donc Debian démarre bien, via grub qui est installé.

Reste que, il n'y a pas de wifi et que la carte graphique n'est pas bien reconnue.

La piste que je renifle, c'est d'utiliser debootstrap pour chopper les paquets récents. Reste à voir si je redimensionne la partition pour l'accueillir comme un nouveau système, ou si c'est juste un moyen détourné pour récupérer les .deb.

La piste debootstrap installe des paquets, mais pas le noyau. Il faut faire un chroot avant. Un peu la flemme.

L'autre piste, c'est de chopper un ISO plus récent, il doit être possible de l'ajouter dans le sources.list. En effet le “testing non officiel” datait de janvier (tandis que le testing officiel est chaque semaine). Ca évitera aussi d'installer des trucs ATI/Nvidia dont on n'a que faire.

Usage d'un .iso comme dépot source

Ce sera pas le bleeding-edge, mais on gagnera déjà pas mal.

La liste des paquets de l'ISO est lisible par ici : http://cdimage.debian.org/cdimage/weekly-builds/amd64/list-cd/

On confirme qu'il y a un noyau 4.9.

Comment ajouter un fichier .ISO dans le sources.list ? Il faut le monter en loop au préalable. Voir: https://linuxconfig.org/add-iso-image-to-apt-sourceslist

Ca fonctionne, sauf que je me retrouve dans une situation de paquets qui ne sont pas en commun entre les 2 versions de Testing. La 1ère a MATE, cette seconde a XFCE.

Malgré tout, la mise à jour s'est faite avec succès, et l'installation de XFCE s'est bien passée.

On a gagné : la possibilité de réorienter l'écran.

Il reste à conquérir : la connexion wifi. Le noyau 4.9 n'a pas solutionné la question tout seul.

Le wifi alors ?

Le problème c'est que le chipset n'apparaît pas clairement dans la liste de lspci, ou n'apparaît pas du tout.

On lit que c'est le même qu'une autre machine. J'ai suivi les instructions (copie de firmware etc), mais ça n'a pas fonctionné.

Le wifi étant peut-être lié au processeur, un cat /proc/cpuinfo m'indique qu'il s'agit d'un, ou plutôt de 4 coeurs :

Intel(R) Atom(TM) x5-Z8500 CPU @ 1.44GHz
cpu_family: 6
model: 76
stepping: 3
microcode : 0x358
cpu cores : 4

Bon, allons-y pour de vrai :

J'ai double-vérifié le tuto suivi par ici : https://wiki.debian.org/InstallingDebianOn/Asus/X205TA ; d'autres pages web convergeaient sur la procédure.

modprobe brcmfmac

… ne produit rien de spécial. Il charge le module, me sort dans dmesg :

usbcore: registered new interface driver brcmfmac

… mais rien de plus. Rien dans ifconfig -a.

lsmod | grep brc

… me renvoie plusieurs modules: brcmfmac, brcmutil, cfg80211, usbcore, mmc_core. Tous chargés.

Installation de rfkill, celui-ci ne me renvoie aucun interrupteur (rfkill list).

Fn+mode avion ne semble rien produire, la touche est sans effet. La touche Fn+écran fonctionne et me lance les propriétés d'affichage. J'en déduis que certaines touches Fn fonctionnent.

Le point au 17/04/2017

Je rends temporairement la machine à son propriétaire, en installant au préalable libreoffice. Chopper l'iso du DVD et l'ajouter au sources.list.

La version DVD contient tous les environnements, ça lui a permis de mettre à jour des paquets de Mate qui manquaient avec le CD1.

Le gros problème reste qu'on a peu d'infos sur le chipset wifi, donc va falloir creuser avec les références qu'on a.

Autre constat : ajuster la luminosité ne fonctionne pas.

Peu probable, mais une mise à jour du BIOS/UEFI peut parfois aider à résoudre des cas similaires.

Reprise des aventures le 30/11/2017

La situation :

  • Il était en Debian 9.0, passage en Stretch Stable. L'avancée notable est le firmware wifi qui est empaqueté ( http://ftp.us.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-brcm80211_20161130-3_all.deb )
  • Passage en Testing, parce que ça reste insatisfaisant. Au final je n'ai rien gagné en faisant ça, hormis un noyau plus récent.
  • Passage sous MATE au lieu de XFCE (ils auraient quand même pu prévoir un truc pour basculer facilement de l'un à l'autre, mais penses-tu)
  • Toujours les torticolis, et le backlight qui ne peut pas être ajusté
  • Si le touchscreen ne fonctionne pas bien, c'est parce qu'il y a rotation de l'écran, et que l'input ne tient pas compte de cette rotation. Il faudrait aussi reconfigurer xinput.

Sur Internet, une info utile :

1)
second degré spotted
documentation/installer-linux-sur-asus-t100ha-fu040t-uefi-verrouille-mot-de-passe.txt · Last modified: 2017/12/01 00:13 by 2a01:e35:8be8:e4e0:e2cb:4eff:feff:c527