Guillaume Seren

J'ai eu besoin du firmware à jour de la intel 7260 pour garder le wifi sur mon laptop en travaillant sur le kernel upstream «vanilla». Voila donc une méthode pour patcher rapidement un paquet Debian existant. Tout d'abord localiser le paquet concerné, si on connait le fichier ici le fichier 'iwlwifi-7260-9.ucode': Soit par dpkg:

$ dpkg -S iwlwifi-7260-9.ucode
firmware-iwlwifi: /lib/firmware/iwlwifi-7260-9.ucode

Soit par apt-file: 

$ apt-file search iwlwifi-7260-9.ucode
firmware-iwlwifi: /lib/firmware/iwlwifi-7260-9.ucode

Ensuite on récupère la source du paquet, dans un répertoire à part c'est plus propre:

$ mkdir firmware-iwlwifi
$ cd !$
$ cd firmware-iwlwifi
$ apt-get source firmware-iwlwifi
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Choix de « firmware-nonfree » comme paquet source à la place de « firmware-iwlwifi »
Note : la maintenance du paquet de « firmware-nonfree » est réalisée dans le système de suivi de versions « Svn » à l'adresse :
svn://svn.debian.org/kernel/dists/trunk/firmware-nonfree/
Nécessité de prendre 27,8 Mo dans les sources.
Réception de : 1 http://http.debian.net/debian/ testing/non-free firmware-nonfree 0.43 (dsc) [3 159 B]
Réception de : 2 http://http.debian.net/debian/ testing/non-free firmware-nonfree 0.43 (tar) [27,8 MB]
27,8 Mo réceptionnés en 30s (922 ko/s)
dpkg-source: info: extraction de firmware-nonfree dans firmware-nonfree-0.43
dpkg-source: info: extraction de firmware-nonfree_0.43.tar.gz

Afin de pouvoir construire le paquet il nous faudra récupérer les dépendances de compilation, par:

$ sudo aptitude build-dep firmware-iwlwifi

(07/07/2015: Je met cette partie à jour.) Ici le but est d'ajouter le firmware nécessaire à la dernière version du kernel. Ainsi dans le cas de ce paquet il y a plusieurs étapes:

# D'abord on se déplace dans le dossier iwlwifi
$ cd firmware-nonfree/iwlwifi
# Ensuite on vas sur le site dédié linux wireless:
# https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
# On copie le lien de téléchargement du fichier ici:
# https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7260-ucode-25.30.14.0.tgz
# Enfin on peut utiliser le script update.sh tel que :
# ./update.sh 25.30.14.0 https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7260-ucode- 25.30.14.0.tgz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  480k  100  480k    0     0   157k      0  0:00:03  0:00:03 --:--:--  157k

A présent il faut mettre à jour les information du paquet

# On met à jour iwlwifi/defines, en ajoutant le fichier nouvellement ajouté.
$ vi defines
# On ajoute après la section concernée:
[iwlwifi-7260-14.ucode_base]
desc: Intel Wireless 7260 firmware
# On ajoute ensuite le fichier dans le répertoire firware-iwlwifi/debian/rules.gen
$ cd ../debian
$ vi rules.gen
# On ajoute le fichier et son alias dans la chaine de build:
# On recherche la chaine qui contient le pattern ici '7260'.
# On se déplace dans la chaine, et ajoute (sans saut de ligne):
iwlwifi-7260-14.ucode-25.30.14.0:iwlwifi-7260-14.ucode
# Enfin il faut mettre à jour le fichier debian/control.md5sum
$ md5sum iwlwifi/defines
0edf000874ec030750021147a563f32e  iwlwifi/defines
# On met à jour cette valeur dans le fichier control.md5sum

Donc maintenant on vas mettre à jour le changelog du fichier:

$ dch -i
# Ajout des informations par ex:
 * Non-maintainer upload.
 * Add 7260 25.30.14.0 for Kernel 4.2 .

On compile le paquet :

$ debuild -us -uc -b

Puis on peut l'installer.

$ sudo dpkg -i ../votre-fichier.deb

Cette méthode n'est probablement pas le méthode optimale mais elle fonctionne, n'hésitez pas à me faire un feedback.