Enlever la « white-list » Wi-Fi d’un HP Pavilion DV3500

Je n’en avais pas encore parlé ici (bien sur Twitter), mais j’utilise régulièrement un vieux PC portable HP, et quand je l’ai réinstallé sous Windows 10, j’avais un souci de Wi-Fi. Et quand j’ai voulu changer la carte, je me suis rendu compte qu’il bloquait le changement. J’ai donc cherché comment régler ça.

La version courte, vous pouvez aller à la fin, c’est qu’il existe un BIOS custom qui supprime complètement le problème. Mais je pense que la version longue peut être intéressante.

Le fond du problème n’est pas totalement lié à la carte Wi-Fi. Par défaut, cette machine a une carte Wi-Fi Intel (comme pas mal de PC de l’époque, c’est un Core 2 Duo arrivé sous Windows Vista) et un bouton d’activation du Wi-Fi. C’est un truc que je n’ai jamais compris sur les PC, il y a un raccourci qui permet de couper le Wi-Fi et c’est la source principale de « Le Wi-Fi de mon PC ne marche pas ». Il s’agit généralement d’un raccourci clavier abscons et parfois – comme ici – d’un bouton tactile. Le problème, c’est que le bouton en question ne répond pas sans les bons pilotes et que le comportement par défaut est de désactiver la carte. Ne me demandez pas la raison, c’est idiot. De façon très concrète, si vous réinstallez la machine sans les pilotes, pas de Wi-Fi. Et même avec, il m’arrive de temps en temps que le bouton se désactive, ce qui coupe le Wi-Fi. Et évidemment, les pilotes sont compliqués à trouver (bon, là, j’ai archivé).

Ma première idée a été de changer la carte Wi-Fi, car je pensais que la partie liée au bouton dépendait de la carte Wi-Fi. J’ai donc sorti une carte de mon stock, redémarré la machine et obtenu cette image. Une erreur 104.

La fameuse erreur 104

C’est un problème très courant chez HP ou Lenovo (notamment), il est impossible de changer la carte Wi-Fi. Le BIOS vérifie la carte et si vous n’avez pas un modèle validé, c’est mort. Dans le cas du Pavilion DV3500, la machine ne démarre même pas. Ce système de white-list (le BIOS contient une liste des cartes acceptées) est assez énervant : si jamais la carte tombe en panne, c’est parfois compliqué de trouver le bon modèle.

Mais j’ai l’habitude de ce genre de soucis, et j’ai donc cherché un peu. Je savais qu’il existe des BIOS modifiés ou la possibilité de modifier le BIOS pour changer la white-list. C’est une méthode pas forcément pratique, mais efficace. Je suis parti de ce tutorial.

Première étape, trouver le BIOS. Ce n’est pas si évident, HP ne liste plus les pilotes de ce modèle, mais quelques recherches plus tard, je suis tombé sur une mise à jour. Je l’ai installée (autant avoir un BIOS récent) puis j’ai cherché les fichiers. Petite astuce, ils sont dans les dossiers temporaires de Windows (C:/Users/Vous/AppData/Local/Temp, ensuite il faut chercher les dossiers récents), avec le programme de flash (sous Windows) et un fichier .fd qui contient le BIOS.

J’en ai profité pour récupérer les identifiants PCI de la carte Wi-Fi. Il faut généralement trois valeurs : le Vendor ID (l’identifiant du fabricant), le Product ID (l’identifiant de la carte) et le Subset ID (l’identifiant précis de la carte). Ensuite, il faut chercher dans le BIOS, avec un éditeur hexadécimal. L’organisation des données avec les CPU Intel (little endian) implique de rechercher les données avec des valeurs inversées. Ma carte est 8086 (Vendor ID, évidemment Intel) et 4237 (Product ID), il faut donc chercher 86803742 (inverse les deux valeurs). Jusque là, tout se passait bien, j’ai trouvé la valeur dans le fichier, dans une zone avec visiblement d’autres identifiants. Mais en cherchant le Subset ID… rien.

L’identifiant trouvé

Si j’avais trouvé le Subset ID, la suite de la manipulation consiste à remplacer les valeurs par celles d’une autre carte (il faut évidemment un second PC pour les trouver), sauver le tout et flasher le BIOS. Mais dans mon cas, c’est différent.

En cherchant les informations, je suis tombé sur une solution plus complète : un BIOS qui supprime totalement la vérification. La modification de base consiste à remplacer la valeur d’une carte par un autre, ce qui repousse le souci : on reste bloqué sur une carte particulière. Mais Kingnoob, quand il a décidé de se monter un Hackintosh, a trouvé cette solution bloquante. Il a donc analysé le BIOS, trouvé où se faisait la vérification et a modifié le code. Et même si le BIOS date d’il y a 10 ans, il est encore disponible.

Flash en cours


Flash réussi

Le flash a été assez simple, j’ai placé le fichier dans le dossier du programme de flash (récupéré au début), serré les fesses (les BIOS fait par quelqu’un d’autre, c’est toujours un peu inquiétant) et ça a fonctionné. Avec le BIOS custom, j’ai pu installer une carte Wi-Fi d’une autre marque sans soucis.

Tout ça pour rien

Le côté amusant de la chose (si on peut dire), c’est que ça n’a servi à rien. J’ai bien un BIOS qui n’a plus de white-list, mais mon problème de base ne change pas. Le bouton tactile n’est pas lié à une carte Wi-Fi HP ou un modèle précis, mais visiblement au connecteur lui-même. Donc même avec une autre carte Wi-Fi, il se désactive aléatoirement. Comme c’est un PC qui sert uniquement pour des tests quand je ne peux pas utiliser une machine virtuelle, je vais supporter le problème (au pire, l’Ethernet fonctionne). Mais j’ai perdu une bonne demi-journée pendant un week-end pour ça. Et accessoirement, le CPU chauffe vraiment beaucoup, mais comme le système de refroidissement est (vraiment) inaccessible, je n’ai pas la patience de tout démonter pour nettoyer le ventilateur et changer la pâte thermique…

C’est chaud