====== Ubuntu MATE Linux 18.04 ======
Premiers tests
* Téléchargement : [[http://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/ubuntu-mate-18.04-desktop-amd64.iso|http://cdimage.ubuntu.com/ubuntu-mate/releases/18.04/ubuntu-mate-18.04-desktop-amd64.iso]]
* Pré-requis : sudo apt-get install squashfs-tools schroot genisoimage
===== Liens utiles =====
[[https://www.nextinpact.com/news/107281-cubic-personnalisez-et-automatisez-installation-dubuntu.htm|https://www.nextinpact.com/news/107281-cubic-personnalisez-et-automatisez-installation-dubuntu.htm]]
[[https://askubuntu.com/questions/741753/how-to-use-cubic-to-create-a-custom-ubuntu-live-cd-image|https://askubuntu.com/questions/741753/how-to-use-cubic-to-create-a-custom-ubuntu-live-cd-image]]
https://www.linuxuprising.com/2018/07/how-to-customize-ubuntu-or-linux-mint.html
===== 0. TODO =====
*
* Insérer de la documentation : générique, locale sur VireGUL, des ressources libres (epub, musique, photos…).
* Ajouter bulletin adhésion VireGUL + référence au site…
* Personnaliser fonds d'écrans, personnaliser ecran connexion lightdm, écran d'accueil de clef USB…
* Ajouter des images et musique sous licence libre
* Autres idées ?
===== 1. Extraction =====
mkdir -p mateviregul/iso
sudo mkdir /tmp/isolive
Le dossier **iso** contiendra les fichiers contenus dans l'iso téléchargée (ceux qu'on trouve dans l'installation sur clef USB live)
sudo mount -o loop ubuntu-mate-18.04-desktop-amd64.iso /tmp/isolive
rsync -arz /tmp/isolive/. mateviregul/iso/
sudo umount /tmp/isolive
==== Extraction du filesystem.squashfs ====
cd mateviregul/
sudo unsquashfs ./iso/casper/filesystem.squashfs
Un dossier **squashfs-root** est créé contenant tout le système de fichiers.
===== 2. Chrootage =====
sudo mount --bind /proc squashfs-root/proc
sudo mount --bind /sys squashfs-root/sys
sudo mount --bind /dev squashfs-root/dev
sudo mount --bind /dev/pts squashfs-root/dev/pts
sudo cp /etc/resolv.conf squashfs-root/etc/resolv.conf
sudo chroot squashfs-root
Ca y est, on est à l'intérieur du système.
==== Mise à jour ====
apt update && apt-get upgrade && apt-get autoremove && apt-get clean
# apt-get dist-upgrade est à tester !!!
===== 3. Personnalisation =====
==== 3.1 Ajout, suppression de paquets manquants ====
Récupération du dépot git et installation des paquets, à adapter selon les outils voulus
apt install git
cd /tmp
git clone https://framagit.org/viregul/matelinux.git
cd distrolinux
bash maj_paquets.sh
On peut aussi retirer des paquets en trop (''apt remove paquet'' ou ''apt purge paquet'' pour supprimer les fichiers de configuration)
==== 3.2 Personnalisation de l'environnement utilisateur ====
Un petit mémo modifier le fond d'écran en ligne de commande :
dconf write /org/mate/desktop/background/picture-filename '/usr/share/backgrounds/backgrounds-viregul/default.jpg'
dconf write /org/mate/desktop/background/picture-options 'stretched'
(Utiliser les commandes : dconf list / dconf read / dconf write ou gsettings list-schemas pour voir les valeurs par défaut )
=== 3.2.1 Fond d'écran ===
Pour appliquer des options par défaut à tous les utilisateurs, créer les dossiers suivants** /etc/dconf/profile** et **/etc/dconf/db/site.d**
mkdir -p /etc/dconf/profile /etc/dconf/db/site.d
Créer un fichier **/etc/dconf/profile/user **qui doitcontenir :
user-db:user
system-db:site
et un fichier **/etc/dconf/db/site.d/00_bg_settings** contenant (variable de fond d'écran à personnaliser):
[org/mate/desktop/background]
picture-filename='/usr/share/backgrounds/backgrounds-viregul/default.jpg'
[org/mate/desktop/background]
picture-options='stretched'
Puis relancer ''dconf update''
=== 3.2.2 Environnement ===
Pour changer l'environnement de bureau et choisir l'environnement classique "ubuntu-mate" au lieu de "familiar": Je ne sais pas où le mettre !!!
mate-tweak --layout ubuntu-mate
=== 3.2.3 Dconf ===
L'ensemble des paramètres liés à l'utilisateur est sauvegardé dans la base dconf (ex : gconf) qui se trouve dans **.config/dconf/user** Il suffit de personnaliser ce fichier et de le stocker dans le **/etc/skel/.config/dconf/user** pour que tous les paramètres soient appliqués à chaque création d'utilisateur.
==== 3.3 Ajout de fichiers, documents pour tous ====
Personnalisation fine (dossier perso…) : Copie des images de fonds d'écran dans un dossier du chroot depuis l'extérieur du chroot (l'environnement hôte). Commandes à adapter :
sudo mkdir livecd/squashfs-root/usr/share/backgrounds/backgrounds-viregul
sudo cp fondsecran/* live/squashfs-root/usr/share/backgrounds/backgrounds-viregul/
sudo mkdir livecd/squashfs-root/usr/share/ubuntu-doc-viregul/
sudo cp Documentation/* livecd/squashfs-root/usr/share/ubuntu-doc-viregul/
Il ne reste plus qu'à créer des liens symboliques depuis **/etc/skel** vers ces documents.
Exemple depuis l'environnement chrooté :
mkdir /etc/skel/Bureau/Documentation
ln -s /usr/share/ubuntu-doc-viregul/* /etc/skel/Bureau/Documentation/
==== 3.4 Personnalisation de l'écran de connexion ====
Modifier dans le fichier **/etc/lightdm/slick-greeter.conf** la valeur de background dans la partie [Greeter] :
[Greeter]
background=/usr/share/backgrounds/background-viregul/viregul-lightdm.png
===== 4. Nettoyage et sortie =====
rm -r /var/cache/apt/archives/ /tmp/
echo ""> /etc/resolv.conf
history -c
exit
sudo umount squashfs-root/dev/pts squashfs-root/dev squashfs-root/proc squashfs-root/sys
===== 5. Personnalisation avant reconstruction de l'ISO =====
Il faut modifier l'archive cpio "bootlogo" qui se trouve dans le dossier **iso/isolinux** dans un autre dossier comme **bootlogodir**.
sudo mkdir ~/livecd/bootlogodir
sudo mv ~/livecd/iso/isolinux/bootlogo ~/livecd/bootlogodir/
cd ~/livecd/bootlogodir/
sudo cpio -i
- Remplacer le fond d'ecran ''splash.pcx'' par une autre image PCX indexée à 255 couleurs dans le dossier bootlogodir.
cp monimage.pcx ~/livecd/bootlogodir/
- (optionnel) modifier en root la liste des langues affichées dans le fichier **langlist** de **bootlogodir**
- choisir le français par défaut avec un fichier ''lang'' contenant ''fr'' (sans retour à la ligne final) dans le dossier **bootlogodir**:
echo "fr" | tee lang
- Reconstruire l'archive **bootlogo** à partir des fichiers extraits dans le dossier **bootlogo** avec :
cd ~/livecd/bootlogodir
ls | cpio -o> bootlogo
sudo cp bootlogo ~/livecd/iso/isolinux/
Editer le fichier **iso/isolinux/txt.cfg** et remplacer le texte du menu en français par ce qu'on veut (juste après le ^ de chaque ligne).
//Optionnel pour forcer le fr coûte que coûte// dans le boot : Ajouter ''locale=fr_FR.UTF-8 keyboard-configuration/layoutcode=fr'' avant le '—' final sur chaque ligne.
Ajouter une image de fond en .PNG (640×400) dans **iso/isolinux/** et modifier la valeur du background dans **iso/isolinux/stdmenu.cfg**. On peut aussi modifier les couleurs des textes dans ce fichier.
cp monimage.png ~/livecd/iso/isolinux/
===== 6. Reconstruction de l'ISO =====
sudo chmod 744 iso/casper/filesystem.manifest
sudo chroot squashfs-root/ dpkg-query -W --showformat='${Package} ${Version}n'> iso/casper/filesystem.manifest
sudo rm iso/casper/filesystem.squashfs
sudo mksquashfs squashfs-root iso/casper/filesystem.squashfs -comp xz # le -comp xz sert à la compression et peut être omis pour gagner du temps
chmod 744 iso/casper/filesystem.size
printf $(du -s --block-size=1 iso/casper/filesystem.squashfs)> iso/casper/filesystem.size
cd iso
chmod 744 md5sum.txt
find . -path ./isolinux -prune -o -type f -not -name md5sum.txt -print0 | xargs -0 md5sum> md5sum.txt
cd ..
==== Construction de l'ISO - à personnaliser ====
sudo genisoimage -D -r -V "Ubuntu-MATE-VireGUL" -A "Ubuntu installation" -publisher "contact@viregul.fr" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ubuntu-viregul.iso iso/.
''sudo genisoimage -D -r -V 'Ubuntu-MATE-VireGUL' -A 'Ubuntu installation' -publisher 'contact@viregul.fr' -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ubuntu-viregul.iso iso/. ''
On fait les tests avec Virtualbox par exemple **en activant nomodeset** (F6) ou on laisse le boot par défaut pour avoir un mode vesa compatible.
Si ça ne va pas, on reprend à l'étape du "2. chrootage"
===== 7. Gravage =====
Copier l'iso à l'aide d'outils dédie comme : usb-creator-gtk
Attention certains outils comme Etcher (ou la copie avec dd) ne rendent pas toujours l'ISO générée bootable.