Changement de logo de démarrage du noyau v2.
Distribution : Ubuntu 12.04 LTS
1) Répertoire de travail :
[~] ➔ mkdir RASPBERRYPI.se.logo [~] ➔ cd RASPBERRYPI.se.logo/ [~/RASPBERRYPI.se.logo] ➔
2) Téléchargement des outils :
[~/RASPBERRYPI.se.logo] ➔ git clone https://github.com/raspberrypi/tools.git
3) Téléchargement du noyau Linux :
[~/RASPBERRYPI.se.logo] ➔ git clone https://github.com/raspberrypi/linux.git
4) Installation du logiciel de conversion :
[~/RASPBERRYPI.se.logo] ➔ sudo apt-get install netpbm
5) Télécharger un logo :
http://tux.crystalxp.net/fr.id.1587-tux-gign.html
6) Redimensionnent :
[~/RASPBERRYPI.se.logo] ➔ convert pit-tux-tux-gign.png -resize 80x80 logo.jpg
7) Conversion en ppm :
– Conversion en ppm :
[~/RASPBERRYPI.se.logo] ➔ jpegtopnm logo.jpg > logo.ppm jpegtopnm: WRITING PPM FILE
– Création de tmp :
[~/RASPBERRYPI.se.logo] ➔ ppmquant 224 logo.ppm >logo_224.tmp ppmquant: making histogram... ppmquant: 2206 colors found ppmquant: choosing 224 colors... ppmquant: mapping image to new colors...
– Conversion en ppm :
[~/RASPBERRYPI.se.logo] ➔ pnmnoraw logo_224.tmp > logo_linux_clut224.ppm
– Copie du logo dans le code source :
[~/RASPBERRYPI.se.logo] ➔ cp logo_linux_clut224.ppm linux/drivers/video/logo/
8) Installation du compilateur de compilation-croisé :
[~/RASPBERRYPI.se.logo] ➔ sudo apt-get install gcc-4.6-arm-linux-gnueabi [~/RASPBERRYPI.se.logo] ➔ sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.6 /usr/bin/arm-linux-gnueabi-gcc
9) Compilation du menuconfig :
– Création de la configuration :
[~/RASPBERRYPI.se.logo] ➔ cd linux/ [~/RASPBERRYPI.se.logo/linux (rpi-3.10.y)⚡] ➔ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- bcmrpi_cutdown_defconfig
– Création de menuconfig :
[~/RASPBERRYPI.se.logo/linux (rpi-3.10.y)⚡] ➔ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig
10) Configuration du logo dans le logo :
* Menu du logo :
– [Device Drivers –>]
– [Graphics support —>]
– [[*] Bootup logo —>]
* Sélectionner les types de logo :
– [[*] Standard 16-color Linux logo]
– [[*] Standard 224-color Linux logo]
* Sauvegarde :
– [< Save >]
– [< Ok >]
– [< Exit >]
* Quitter :
– [< Exit >]
– [< Exit >]
– [< Exit >]
– [< Exit >]
11) Compilation :
[~/RASPBERRYPI.se.logo/linux (rpi-3.10.y)⚡] ➔ make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k -j5
12) Décompression du noyau :
[~/RASPBERRYPI.se.logo/linux (rpi-3.10.y)⚡] ➔ cd ../tools/mkimage/ [~/RASPBERRYPI.se.logo/tools/mkimage (master)] ➔ ./imagetool-uncompressed.py ../../linux/arch/arm/boot/Image [~/RASPBERRYPI.se.logo/tools/mkimage (master)⚡] ➔ ls -l kernel.img -rw-rw-r-- 1 util01 util01 4324768 févr. 10 23:54 kernel.img
13) Télécharger une image de Raspbian :
[~/RASPBERRYPI.se.logo/tools/mkimage (master)⚡] ➔ cd ../.. [~/RASPBERRYPI.se.logo] ➔ wget https://miniordi.hacktech.dev/images/2014-01-07-wheezy-raspbian.zip
14) Décompresser l’archive de l’image :
[~/RASPBERRYPI.se.logo] ➔ unzip 2014-01-07-wheezy-raspbian.zip [~/RASPBERRYPI.se.logo] ➔ ls -l *.img -rw-r--r-- 1 util01 util01 2962227200 janv. 8 00:42 2014-01-07-wheezy-raspbian.img
15) Installation de kpartx :
[~/RASPBERRYPI.se.logo] ➔ sudo apt-get install multipath-tool
16) Création d’un répertoire de montage
[~/RASPBERRYPI.se.logo] ➔ mkdir tmpmount
17) Montage de l’image du Raspberry Pi :
[~/RASPBERRYPI.se.logo] ➔ sudo kpartx -v -a 2014-01-07-wheezy-raspbian.img add map loop0p1 (252:0): 0 114688 linear /dev/loop0 8192 add map loop0p2 (252:1): 0 5662720 linear /dev/loop0 122880 [~/RASPBERRYPI.se.logo] ➔ sudo ls /dev/mapper/ control loop0p1 loop0p2
18) Montage de la 1er partition :
[~/RASPBERRYPI.se.logo] ➔ sudo mount /dev/mapper/loop0p1 tmpmount/
19) Vérification :
[~/RASPBERRYPI.se.logo] ➔ mount | grep tmpmount /dev/mapper/loop0p1 on /home/util01/RASPBERRYPI.se.logo/tmpmount type vfat (rw) [~/RASPBERRYPI.se.logo] ➔ ls tmpmount/ bootcode.bin fixup_cd.dat issue.txt LICENSE.oracle start_x.elf cmdline.txt fixup.dat kernel_emergency.img start_cd.elf config.txt fixup_x.dat kernel.img start.elf
20) Copie du nouveau kernel :
[~/RASPBERRYPI.se.logo] ➔ sudo cp tools/mkimage/kernel.img tmpmount/
21) Démontage de la partition :
[~/RASPBERRYPI.se.logo] ➔ sudo umount tmpmount [~/RASPBERRYPI.se.logo] ➔ sudo kpartx -d 2014-01-07-wheezy-raspbian.img loop deleted : /dev/loop0
22) Vérification :
[~/RASPBERRYPI.se.logo] ➔ ls -l 2014-01-07-wheezy-raspbian.img -rw-r--r-- 1 util01 util01 2962227200 févr. 11 18:39 2014-01-07-wheezy-raspbian.img
Juste un petit mot pour une petite commande qui manque à cette procédure très bien documenté :
sudo apt-get install libncurses5-dev
La procédure est super ! Et malgré son apparence, elle reste très accessible. J’ai essayé de la porter sur Debian mais sans succès, j’ai dû installer une petite VM pour arriver à mes fins.
Deux petits points supplémentaires :
– Aucune obligation « technique » de garder une image en 80*80, j’ai testé avec une 500*500 et l’espace dédié au listing des opérations de démarrage reste visible et ne cache aucune ligne (elles restent affiché moins longtemps vu que l’espace est plus petit)
– J’ai utilisé une image du système de mon RPI (extrait avec Win32DiskImager) à la place de l’image officiel proposé dans la procédure et cela fonctionne également sans aucuns soucis !
Encore merci pour cette procédure qui m’a rendu un grand service !
Merci pour tes remarques !!! 😀
En fait, j’ai eu un petit gros soucis avec ta procédure… Elle ne prend pas en compte le fait d’utiliser une version différente que la « lastrelaese ».
Il faut donc préparer sont dossier linux/ en faisant pour la version 3.6 🙂 :
git init
git fetch git://github.com/raspberrypi/linux.git rpi-3.6.y:refs/remotes/origin/rpi-3.6.y
git checkout rpi-3.6.y
Ensuite, il faut suivre la procédure suivante en complément de la tienne afin de modifier en plus du kernel.img les dossiers /lin/modules et /lib/firmware:
http://mitchtech.net/raspberry-pi-kernel-compile/