Image de démarrage, Yaourt, Abs et noyau personnalisé

Reconnaissance et configuration du matériel / kernel linux
Répondre
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Image de démarrage, Yaourt, Abs et noyau personnalisé

Message par Logicien »

Bonjour,
c'est mon premier message sur ce forum. Je travaille présentement à temps plein à comprendre ArchLinux. Avec Gentoo, j'ai toujours réussi à avoir une image de démarrage grâce à fbsplash, même si j'ai dû butiner pour m'adapter aux modifications du mainteneur. Je n'arrive pas à avoir une image avec ArchLinux. J'utilise le pilote framebuffer sisfb compilé directement dans le noyau car il m'autorise à avoir une résolution de 1280x800. J'ai un thème très simple adapté à cette résolution. Sous Gentoo, ma ligne de commande Grub fonctionne comme ceci:

title Gentoo/Linux (2.6.23)
root (hd0,0)
kernel /boot/vmlinuz panic=30 quiet resume=/dev/hda5 ro splash=verbose vga=0x317 video=sisfb:mode:1280x800x16,rate:60
initrd /boot/img/marree-basse.img

À noter que cela fonctionne sans patch fbsplash dans les Gentoo-sources. J'ai lû que le splash ne fonctionne qu'avec une profondeur de 16 bits et une fréquence de rafraîchissement de 60 Hz. Ce n'est pas le cas en lisant /etc/splash/grub.sample. Maintenant, que j'utilise le thème darch en 1024x768 ou mon thème personnalisé en 1280x800, l'initrd ne fonctionne pas. J'ai essayé avec avec les paquets gensplash et fbsplash. J'ai compilé un noyau personnalisé avec le PKGBUILD du kernel-sources avec le patchset klight je crois, mais ça ne marche pas plus. En regardant le src/.config je ne vois pas d'activation du fbsplash dans le noyau. Y a-t-il une méthode fonctionnelle?

Dans un autre ordre d'idées, j'utilise un noyau personnalisé compilé manuellement. Je ne peux utiliser Pacman et Yaourt pour lui ajouter des modules, acer-acpi, acerhk, ndiswrapper, kqemu et vboxdrv. Je dois le faire manuellement depuis les sources téléchargés. J'ai essayé avec Abs, mais impossible de lui faire utiliser mon noyau 2.6.23.13. Comment faire?

Je vous remerci déjà !
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Salut !

Pour le splash, est-ce que le framebuffer s'affiche bien (avec le logo) ou tu restes en console traditionnelle texte sur fond noir ?
Si tu as une animation, n'oublie pas d'installer le initscripts-gensplash.


Pour le kernel custom, si tu souhaite installer un module il te faudra à chaque fois customiser le PKGBUILD et remplacer la valeur de _kernver par `uname -r`.
Pour automatiser cela, tu peux installer customizepkg et yaourt (made in archlinux.fr svp).
1. créer un fichier /etc/customizepkg.d/virtualbox-module par exemple avec cette ligne:
replace#global#_kernver=.*#_kernver=`uname -r`
2. lancer l'installation avec yaourt (mêmes commandes que pacman):
yaourt -S virtualbox-module

Lors d'une mise à jour (yaourt -Syu) le paquetage sera automatiquement recompilé pour correspondre à la branche de ton kernel à toi
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

OK pour customizepkg ! Tout ce que j'obtiens c'est le fond noir dans terminaux virtuels dans la résolution 1280x800, la profondeur 16 bits et rafraîchissement 60 hz tel que demandé à sisfb au démarrage. Vérifié par fbset. Mais toute image est ignorée comme si je n'avais rien demandé. Je dois dire que présentement j'ai le logo du pingouin Linux activé ce qui doit poser problème avec fbsplash, Je vais le désactiver et réessayer, mais même sans, je pense qu'il y a problème. Quel paquet dois-je utiliser, fbsplash normalement, mais quel est l'utilité de gensplash? Le paquet initscripts-gensplash n'existe pas:

pot 16:16 ~ $ yaourt -Ss initscripts-gensplash
pot 16:16 ~ $
pot 16:16 ~ $ pacman -Ss initscripts-gensplash
pot 16:16 ~ $

Est-ce que mon /etc/splash/dunes/1280x800.cfg est compatible avec fbsplash? Il vient du bootsplash mais sous Gentoo il fonctionnait avec fbsplash:

# This is a bootsplash configuration file for
# theme debian, resolution 1280x800.

# config file version
version=3

# should the picture be displayed?
state=1

# fgcolor is the text forground color.
# bgcolor is the text background (i.e. transparent) color.
fgcolor=7
bgcolor=0

# (tx, ty) are the (x, y) coordinates of the text window in pixels.
# tw/th is the width/height of the text window in pixels.
tx=10
ty=10
tw=1270
th=790

# ttf message output parameters
# text_x=312
# text_y=532
# text_size=18
# text_color=0xeef4ff
# text_color=-0x000000

# name of the picture file (full path recommended)
jpeg=/etc/splash/dunes/images/background-1280x800.jpg
silentjpeg=/etc/splash/dunes/images/background-1280x800.jpg

progress_enable=1

# (ax, ay) are the (x, y) coordinates for playing boot/shutdown animations
ax=375
ay=145

# background
box silent noover 204 552 820 582 #04045498
box silent inter 204 553 204 581 #ffffff #ffffff #526bb0 #526bb0
box silent 204 553 820 581 #ffffff #ffffff #526bb0 #526bb0

# black border
box silent 204 552 820 552 #313234
box silent 204 582 820 582 #eef4ff
box silent 204 552 204 582 #313234
box silent 820 552 820 582 #eef4ff

# text box (left, top)
# box 19 19 19 679 #313234
# box 19 19 1005 19 #313234
# (right, bottom)
# box 1005 19 1005 679 #eef4ff
# box 19 679 1005 679 #eef4ff

# box itself
box noover 5 5 1275 795 #04045498
overpaintok=1
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Désolé, le paquetage a été renommé, je ne le savais pas. C'est maintenant "initscripts-splash". Le paquet gensplash est ses dépendances fournissent un thème "darch" et tous les outils pour manipuler et convertir des thèmes et générer un initrd.
Je te conseille de lire ce wiki et de commencer par afficher le thème darch avec une résolution 1024x768 16bits et le driver vesafb au lieu de sisfb:
http://wiki.archlinux.org/index.php/Gensplash

Si ça fonctionne tu pouras tester le drivers sisfb, puis monter en résolution pour voir ce qui est supporté.

Pour info, avec le kernel compilé à partir du paquetage kernel-sources, l'image splash peut être compilée directement dans le noyau. Ainsi, il n'est plus nécessaire d'indiquer quoi que ce soit dans le bootloader (pas d'initrd)

edit: et oui ton thème est bien compatible avec fbsplash
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

J'ai réussi à patcher mon noyau 2.6.23.13, personnalisé manuellement, avec le patch fbcondecor-0.9.4-2.6.23-rc7.patch afin d'avoir l'option d'fbcondecor dans la configuration du noyau. Du coup, l'image de démarrage s'affiche correctement comme sous Gentoo avec vesafb en 1024x768 et avec sisfb en 1280x800. Le problème actuel vient du script /etc/rc.d/fbsplash qui cherche à savoir si le noyau supporte fbsplash par /dev/fbsplash. Ce que j'ai, c'est /dev/fbcondecor. En plus il cherche les utilitaires splash_util et splash_util.static dans les mauvais répertoires. Les paramètres passés à ces commandes ne sont pas supportés non plus. Inutile de dire que que l'image ne s'affiche que sur la console via l'initrd. Ce n'est pas mieux si je désinstalle fbsplash pour installer gensplash. Je ne comprend pas qu'un paquet installe des utilitaires dans des répertoires précis et que les scripts qu'il installe cherche ces mêmes utilitaires dans d'autres répertoires. J'ai encore du chemin à faire avant que tout soit éclaircie, dont /dev/fbsplash via /dev/fbcondecor. Toutefois, j'ai compris que le paquet fbsplash installe splashutils ce que ne fait pas gensplash.
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Honnêtement pour l'instant c'est l'anarchie. Gensplash qui est remplacé par fbsplash n'a pas encore été remis à jour dans archlinux. La notion de splash est jugée "pas assez KISS" pour les devs et donc non suppportée par l'équipe officielle. Des contributeurs travaillent néanmoins au support de fbsplash (via fbcondecor) et le proposerons dans le dépôt community.

Pour l'instant:
- les scripts ne sont plus à jour
- le kernel ne fournit ni l'ancien fbsplash, ni le nouveau fbcondev
- le paquetage fbsplash (qui remplace gensplash) sensé fournir les outils userland n'est pas prêt (cf l'abandon de raymano sur AUR).

Nous pourrions essayer ensemble de refaire les PKGBUILDs manquants et de fournir une procédure à jour qui explique comment avoir un splash sous archlinux ?
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

Je veux bien y contribuer, si je comprend suffisamment les méandres du fbsplash. Il faut étudier le site de Spock. C'est lui qui a repensé le Bootsplash et créer le projet Gensplash/Fbsplash. Il ne faut pas jouer à l'autruche, ne supporter que ce qui est simple c'est laisser grossir des problèmes criant qui doivent avoir notre attention et notre énergie. Ceci dit, avoir une image de démarrage n'est que du design, peut-être du superflu, mais contribue à un bel environnement sous Linux. J'ai réussi, en étudiant Freesbie, à avoir une image de démarrage avec FreeBSD, du temps que je l'utilisais.
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Pour ma part en tant qu'auteur du pkgbuild kernel-sources, je vais être forcé d'évoluer vers la solution fbcon qui est présente maintenant dans la pluspart des nouveaux patchsets.
Je vais étudier la manière de procéder de gentoo (spock) et essayer de réaliser dans un premier temps l'affichage d'une image statique. a+
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

Je pensais: il y a pleins de choses qu'on peut faire avec le framebuffer du noyau Linux:

- afficher des images avec fbi (paquet fbida)
- prendre une copie d'écran avec fbgrab
- voir des vidéos avec mplayer et fbxine
- afficher des fichers PostScripts et Pdf avec fbps
- naviguer sur Internet avec links (paquet links-g)

Tout ça fonctionne bien. Alors avoir une image de démarrage a bien sa place.

Il faut quand même est vigilant. Il y a plusieurs pilotes framebuffers qui peuvent faire l'affaire dans le noyau. Il convient de ne mettre que l'indispensable, voir que le meilleur. Ça dépend de la carte graphique et de l'écran. Quand le serveur graphique X tourne, la carte graphique et l'écran peuvent être pilotés alternativement par le pilote choisi dans /etc/X11/xorg.conf et par le pilote framebuffer actif dans le noyau Linux. Le passage du mode graphique au mode caractères par Ctrl+Alt+Fn et vice-versa change souvent la résolution, la profondeur et la fréquence de rafraîchissement en plus du pilote. Je ne peut pas dire si ça peut être dommageable, mais je pense que ce n'est pas l'idéal. Des conflits de ressources ne sont pas impossibles. Personnellement, je cherche à avoir la même résolution, profondeur et fréquence de rafraîchissement sous X et dans les terminaux virtuels. J'utilise le pilote sisfb du noyau et sis de Xorg qui me permettent de synchroniser le tout sur mon Acer Aspire 3003. Ces pilotes sont dit 'coopératifs' par l'auteur. Il y a tellement de matériel et d'architectures différentes. Impossible pour moi de dire à quel point cette coopération est étendue sous Linux.
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Bon, j'ai mis le nez dans cette nouvelle version de fbsplash et ça fonctionne bien. Je part d'un kernel vanilla patché avec fbcon dans lequel j'intègre directement l'image cpio.gz du thème darch à l'aide de splash_geninitramfs (fournit par le paquetage gensplash).
Comme j'utilise le driver nvidia proprio sous X, je ne peut pas utiliser le driver nvidia framebuffer en même temps, je me rabat sur vesafb.
nb: vesa-tng était mieux, mais il a disparu au profit de uvesafb qui lui nécessitera qu'on crée un paquetage v86d, donc je laisse de côté pour le moment.

J'ai installé la nouvelle version des initscripts (initscripts-splash) et ajouté
SPLASH="gensplash" + DAEMONS=( ...gensplash...) dans le fichier rc.conf

Pour grub le menu.lst se résume à:

Code : Tout sélectionner

title Archlinux
root (hd0,0)
kernel (hd0,0)/vmlinuz26genpatches-splash root=/dev/hda3 vga=789 splash=silent,theme:darch console=tty1
Pas d'initrd puisqu'il est dans le kernel directement. Au boot c'est magique, le démarrage graphique et animé fonctionne :D
Finalement, fbsplash ne m'apporte rien par rapport à l'ancien gensplash...

Prochaine étape, proposer le tout de manière automatisée dans kernel-sources et crééer les paquetages userland pour uvesafb. Le patch fbcon sera dispo dans les patchsets genpatches et zen, et sera proposé aussi en bonus à la compilation d'un kernel vanilla pour ceux qui veulent à la fois du kiss et de l'agréable 8)
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

J'essai de te comprendre. Tout semble beau côté noyau pour faire afficher une image sur la console au moment du démarrage. Qu'en est-il côté scripts ou démons au niveau utilisateur? Est-il possible de faire afficher des images sur tous terminaux tty[1-12] après le lancement d'init? Moi j'ai l'image sur la console tty1 qu'fbcondecor affiche à l'aide de l'initrd, mais les autres terminaux restent noirs parce-que le démon gensplash ou fbsplash reste mort.
Paul
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

Logicien a écrit :J'essai de te comprendre. Tout semble beau côté noyau pour faire afficher une image sur la console au moment du démarrage. Qu'en est-il côté scripts ou démons au niveau utilisateur? Est-il possible de faire afficher des images sur tous terminaux tty[1-12] après le lancement d'init? Moi j'ai l'image sur la console tty1 qu'fbcondecor affiche à l'aide de l'initrd, mais les autres terminaux restent noirs parce-que le démon gensplash ou fbsplash reste mort.
Oui biensûr, je n'est même pas instalé le paquetage fbsplash, donc impossible d'appliquer l'image aux autres consoles. Je vais tester le paquetage sur AUR
Avatar de l’utilisateur
Logicien
Daikyu
Messages : 60
Inscription : mer. 16 janv. 2008, 20:23
Localisation : Montréal Québec

Message par Logicien »

Bonjour wain,
tout marche sur des roulettes maintenant avec l'image de démarrage. Mon noyau 2.6.23.13 patché avec fbcondecor, la compilation et l'installation du paquet splashutils sur le site de Spock me permettent d'afficher facilement tous les thèmes que je veux sur chaque console au début et à la fin du démarrage. J'ajoute les lignes

Code : Tout sélectionner

splash_manager -c set -m verbose -t dunes --tty=2
splash_manager -c set -m verbose -t dunes --tty=3
à mon rc.local et l'image demandée apparaît sur chaque console. Toutes les options de la commande splash_manager fonctionnent. Le splashutils (full) de Spock n'installe aucun script dans /etc/rc.d pour démarrer le démon fbsplshd à ce que je sache, ni ficher de configuration dans /etc/ et /etc/conf.d. C'est plus simple d'utiliser directement splash_manager que de configurer un démon et de l'activer au démarrage. Une image de fond sans fadein, ni fadeout, ni barre de progression me suffisent actuellement.

Je n'arrive à rien avec la commande splash_manager du paquet community/gensplash et c'était pareil avec le paquet aur/fbsplash je crois. La commande affiche des erreurs et rien ne se passe. J'ai regardé du côté d'Abs. Je peux utiliser un PKGBUILD pour gensplash, mais comme la version par défaut du paquet splashutils est plus ancienne que celui que j'ai téléchargé sur le site de Spock et que je ne suis pas certain qu'il va fonctionner, je m'en tiens au dicton de ma mère 'La meilleure méthode, c'est celle qui fontionne !'

Quand j'étais sous Gentoo, je me demandais si les sources du gen/fbsplash pouvaient être utilisées avec d'autres distributions. ArchLinux m'a appris comment le faire. J'ai été déçu quand le projet du Bootsplash s'est intégré à Splashy. Il fonctionnait bien, mais Splashy laisse à désirer. Avec Fbsplash, ça fonctionne encore mieux que le Bootsplash. Il reste à ArchLinux à corriger les problèmes je je t'ai décris et comme beaucoup d'utilisateurs Linux aime le splash au démarrage, ArchLinux va les attirer.
Paul
Répondre