Debian on HP ENVY dv7, installation

J’ai fait l’acquisition de cette nouvelle machine suite à l’autodestruction de mon ancien portable – un Dell XPS 15 qui n’était pourtant pas si vieux. Je devais bien entendu y installer ma distribution favorite, à savoir Debian (Sid parce que pour un desktop, c’est la meilleure version quand on connait un peu).

Vu que je l’utilise de temps en temps, je désirais conserver l’OS Microsoft™ (version 8) pré-installé gentiment par HP, donc ce sera une installation multiboot (du coup pas de tout repos).

Le matériel

lshw -short -sanitize -numeric
Chemin matériel  Périphérique  Classe         Description
============================================================
                                  system         HP ENVY dv7 Notebook PC (E3C85EA#ABF)
/0                                bus            181D
/0/0                              memory         6GiB Mémoire Système
/0/0/0                            memory         2GiB SODIMM DDR3 Synchrone 1600 MHz (0,6 ns)
/0/0/1                            memory         4GiB SODIMM DDR3 Synchrone 1600 MHz (0,6 ns)
/0/c                              memory         128KiB BIOS
/0/38                             processor      Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
/0/38/3a                          memory         32KiB L1 cache
/0/38/3b                          memory         256KiB L2 cache
/0/38/3c                          memory         6MiB L3 cache
/0/39                             memory         32KiB L1 cache
/0/100                            bridge         3rd Gen Core processor DRAM Controller [8086:154]
/0/100/1                          bridge         Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port [8086:151]
/0/100/1/0                        display        GF108M [GeForce GT 635M] [10DE:DE3]
/0/100/2                          display        3rd Gen Core processor Graphics Controller [8086:166]
/0/100/14                         bus            7 Series/C210 Series Chipset Family USB xHCI Host Controller [8086:1E31]
/0/100/16                         communication  7 Series/C210 Series Chipset Family MEI Controller #1 [8086:1E3A]
/0/100/1a                         bus            7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 [8086:1E2D]
/0/100/1b                         multimedia     7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1E20]
/0/100/1c                         bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 1 [8086:1E10]
/0/100/1c.1                       bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 2 [8086:1E12]
/0/100/1c.1/0                     generic        RTS5229 PCI Express Card Reader [10EC:5229]
/0/100/1c.3                       bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 4 [8086:1E16]
/0/100/1c.3/0     wlan0           network        RT3290 Wireless 802.11n 1T/1R PCIe [1814:3290]
/0/100/1c.3/0.1                   generic        RT3290 Bluetooth [1814:3298]
/0/100/1c.5                       bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 6 [8086:1E1A]
/0/100/1c.5/0     eth0            network        RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10EC:8168]
/0/100/1d                         bus            7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 [8086:1E26]
/0/100/1f                         bridge         HM77 Express Chipset LPC Controller [8086:1E57]
/0/100/1f.2                       storage        82801 Mobile SATA Controller [RAID mode] [8086:282A]
/0/100/1f.3                       bus            7 Series/C210 Series Chipset Family SMBus Controller [8086:1E22]
/0/1              scsi0           storage
/0/1/0.0.0        /dev/sda        disk           1TB HGST HTS541010A9
/0/1/0.0.0/1      /dev/sda1       volume         399MiB Windows NTFS volume
/0/1/0.0.0/2      /dev/sda2       volume         259MiB Windows FAT volume
/0/1/0.0.0/3      /dev/sda3       volume         127MiB reserved partition
/0/1/0.0.0/4      /dev/sda4       volume         146GiB Windows NTFS volume
/0/1/0.0.0/5      /dev/sda5       volume         28GiB Windows NTFS volume
/0/1/0.0.0/6      /dev/sda6       volume         755GiB LVM Physical Volume
/0/2              scsi4           storage
/0/2/0.0.0        /dev/cdrom      disk           DVD A  DS8A9SH
/1                                power          MO06062
/2                                power          OEM_Define5

Comme je pense la plupart des machines récentes, l’antique BIOS a été remplacé par UEFI. Il y a également 2 cartes graphiques, la carte Intel intégrée et une GeForce Nvidia, le tout saupoudré de technologie Optimus. Les cartes réseaux nécessitent des micrologiciels propriétaires, les paquets suivants devront donc être installés :

  • firmware-ralink
  • firmware-realtek

Préparation

Afin d’avoir ces micrologiciels dès l’installation, j’ai choisi d’utiliser le média d’installation alternatif comme indiqué sur le wiki Debian

Il faut également de la place pour installer Debian sur le disque, j’ai choisi la facilité : réduire la taille de la partition Windows™ avec gparted en démarrant sur un SystemRescueCd.

Je ne m’amuse plus à graver de CD depuis un moment, donc autant pour SystemRescueCd que pour Debian, le démarrage aura lieu sur une clé USB. Pour SystemRescueCd, c’est bien expliqué sur le site officiel, pour l’ISO netinstall de Debian, c’est simple, il suffit d’utiliser la commande dd.

Concernant Secure Boot, je n’ai pas eu envie de chercher, je l’ai juste désactivé pour le moment.

Installation

L’installation est très classique pour qui a déjà installé une Debian, il est même possible de lancer le téléchargement des paquets en Wi-Fi, attention cependant, à ce jour, la configuration Wi-Fi n’est pas conservée dans le fichier /etc/network/interfaces donc pas de réseau au premier boot…

Afin d’éviter les surprises, et réinstaller tout ce que j’avais sur l’ancienne machine, j’ai réalisé une installation minimale puis j’ai réinstallé tous les paquets installés manuellement dont je récupère la liste grâce à la commande suivante :

aptitude search -F%p ~i\!~M

Il y a ensuite plusieurs façons d’installer cette liste de paquets, j’ai choisi la suivante :

cat installed |xargs aptitude -s install
cat installed |xargs aptitude -y install

Pour récupérer mes données, j’ai commencé par éditer /etc/passwd et /etc/group pour recréer mon login avec les mêmes valeurs, un coup de passwd pour inscrire mon mot de passe dans /etc/shadow. Puis un rsync de mon /home depuis le disque de l’ancien portable vers le nouveau.

UEFI HP et dual-boot

Le sélecteur de démarrage est bogué, il ne retient pas l’ordre indiqué par efibootmgr ou son équivalent sous Windows™, j’ai essayé diverses solutions glanées sur le net et testé rEFInd, rien à faire, le démarrage par défaut se fait toujours sous Windows™. Et rEFInd finalement fait double emploi avec GRUB. J’ai donc opté pour une solution manuelle :

  • Tout d’abord, il faut récupérer la configuration générée par GRUB pour démarrer Windows™ dans /boot/grub/grub.cfg, ça va nous servir :
menuentry "Windows Boot Manager (UEFI on /dev/sda2)" --class windows --class os {
      insmod part_gpt
      insmod fat
      set root='(hd0,gpt2)'
      search --no-floppy --fs-uuid --set=root 3EE5-0D31
      chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
  • Ensuite, on neutralise la configuration par défaut en déplaçant le fichier /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi (je l’ai mis dans le répertoire /boot/efi/EFI/Microsoft) et en renommant le fichier /boot/efi/EFI/Boot/bootx64.efi (qui n’est q’une copie du premier) en .old par exemple.
  • À ce stade, je me suis retrouvé avec grub comme boot par défaut, si d’autres installations existent et entrent en conflit, il faudrait copier le fichier grubx64.efi correspondant en /boot/efi/Boot/bootx64.efi (j’ai préféré ne pas le faire pour m’éviter d’oublier cette opération manuelle à la prochaine mise à jour de GRUB). Je me retrouve donc avec la liste d’éléments bootables suivante :
sudo efibootmgr
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 3002,0003,0004,2001,2002,2003
Boot0002* debian
Boot0003* Network Adapter (IPv4 UEFI)
Boot0004* Network Adapter (IPv6 UEFI)
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3002* Internal Hard Disk or Solid State Disk
  • Le Windows™ n’est plus bootable, et le générateur de configuration GRUB ne le trouve plus non plus, il faut l’ajouter manuellement en copiant la configuration récupérée précédemment à la fin du fichier /etc/grub.d/40_custom, ajuster les chemins en fonction de l’endroit où on a déplacé le fichier bootmgfw.efi. Enfin il faut mettre à jour la configuration de GRUB (sudo update-grub).

Conclusion

Tout fonctionne à peut près correctement, kdm se lance sans toucher à la configuration de xorg (franchement, je ne m’y attendais pas), même si je ne sais pas quelle carte graphique est utilisée, le fichier de log xorg montre le chargement des pilotes intel et nouveau (je pense essayer Bumblebee bientôt). Le bluetooth intégré à la carte Wi-Fi ne fonctionne pas, d’après ce que j’ai lu rapidement, un pilote existe sur le site du constructeur, mais il ne compilerait pas sur un noyau plus récent que le 3.2. Je mettrais un billet si j’arrive à en sortir quelque chose.

Comments

Comments powered by Disqus