Dekkard
Bonjour,
Comment changer l'écran bootsplash (celui situé entre grub et l'écran de connexion) pour mettre un de ceux que l'on trouve sur KDE-Look (j'aimerai mettre Aqua) ?
J'ai lu que c'était possible, mais faut-il, sous Fedora 7, patcher le noyau ? Ou alors peut-on utiliser Splashy (cela nécessite-il de convertir le thème qui nous intéresse sous un format compréhensible par Splashy ?) ?
Quelqu'un a-t-il réussi ?
Merci d'avance.
Alplob
J'ai déjà réussi, c'est assez simple sur kde-look ils expliquent comment installer un splash, "How to install" situé à droite de l'écran quand tu as cliqué sur un splash
How to install a splash screen
* Go to Control Center
* Select "Appearance & Themes"
* Select "Splash Screen"
* Click "Add..."
* Browse for the downloaded file
* Select the new Theme
* Restart KDE
* Have fun! 🙂
* For questions check:
http://docs.kde.org/en/HEAD/kdebase/ksplashml/index.html
Dekkard
Merci mais ça je connais déjà. Je veux modifier le bootscreen. L'écran qui arrive juste après celui du chargeur grub, et avant celui de l'écran de connexion (qui permet de choisir l'utilisateur). Je veux changer celui qui permet de voir le démarrage de Fedora (et pas de KDE).
Dekkard
Bon, j'essaye splashy mais la compilation bute furieusement sur la librairie freetype.
Et pourtant je m'en suis donné du mal. Il a fallu installer libpng-static, libjpeg-static, glib2-static, glib-dev et freetype* mais surtout compiler directfb parce les rpm disponibles n'ont pas été compilés avec les bonnes options (./configure --enable-fbdev --enable-static --enable-zlib --prefix=/usr/).
Pour splashy 0.3.5 je fait un simple ./configure puis make et là :
"/usr/lib/ld: cannot find -lfreetype
collect2: ld returned exit 1 status"
Créer un fichier freetype.conf dans /etc/ld.so.config.d où je pointe sur les répertoires /usr/include/freetype2 et /usr/include/freetype1 ne change rien.
Quelqu'un a-t-il réussi à compiler splashy ?
Quelqu'un sait ce qui peut coincer ?
slashdada
Lors de la compilation de DirectFB-1.0.0 tout se passe bien sauf qu'il ne faut pas mettre de / à la fin de ./configure --enable-fbdev --enable-static --enable-zlib --prefix=/usr !
Je fini par planter sur la compil de splashy moi aussi à cause de freetype non trouver par ld...
Faudrais t-il recompiler freetype comme pour DirectFB ?
Edit : Version de freetype installé chez moi 2.3.4 --> chez sourceForge.net 2.3.5
Edit2 : Après avoir recompiler freetype avec la 2.3.5, je tombe maintenant sur une erreur de glib-2.0.a, il n'y a plus de problème avec ld et freetype puisque je le retrouve bien dans les logs comme étant inclut.
slashdada
Après recompilation de glib2, j'arrive maintenant à une erreur commune entre les 3 dernières versions de splashy :
splashy_config-functions.c:38:56: erreur: magic.h : Aucun fichier ou répertoire de ce type
Reste à déterminer où est censé être ce fichier et d'où il provient.
Dekkard
Bon après compilation de freetype2 (pensez à virer freetype1 si vous l'avez installé), sans rien modifier aux sources (leur système de configuration c'est du chinois pour moi) :
./configure --prefix=/usr
make
make install
puis un ldconfig (au cas où)
je n'ai plus l'erreur lfreetype. C'est déjà ça (en espérant que ma compilation n'est pas mis le désordre ailleurs).
Par contre, erreurs concernant des "undefined reference to 'sysfs_xxxxxxx" précédées de warning.
Edit : recompiler glib2 n'a rien changé à l'erreur.
Edit : slashdada, t'a mis quoi après ./configure pour glib2 ? Bref comment t'as compilé glib2 ?
Edit : pour l'erreur sysfs, un forum italien me donne un indice. Faudrait recompiler directfb en rajoutant --enable-sysfs=no. Je vais essayer.
slashdada
J'ai mis le --prefix=/usr pour que l'install de glib2 se fasse au même endroit que les paquets et non dans /usr/local comme par défaut.
Dekkard
Ok, je vais déjà repartir depuis la compilation de directfb en y rajoutant --enable-sysfs=no. Faut que je restaure un ghost fait avant toutes ces opérations (ben oui, j'ai été prudent 🙂).
Je compilerais glib2 qu'en dernier ressort.
Pour le truc magic.h, le site de splashy fait référence à un libmagic comme prérequis. Je ne sais pas si c'est lié. Y'a des paquets pour debian, mais j'en ai pas trouvé pour rpm.
Edit : bon je suis reparti sur du "neuf".
J'ai installé via yum : libpng-static, libjpeg-static, freetype-demos, glib2-static, sysfsutils
J'ai compilé directfb : ./configure --enable-fbdev --enable-static --enable-zlib --enable-sysfs=no --prefix=/usr
make
make install
J'ai compilé freetype2 : ./configure --prefix=/usr
J'ai tenté de compiler splashy et je tombe sur la même erreur magic.h
Par contre, pas besoin de compiler glib2 à priori.
Dekkard
Bon pour passer l'erreur magic.h faut installer file-devel.
La compilation se finit sans erreur !!! WOW ! :-D
Penser à faire ./configure --prefix=/ ou les fichiers ne seront pas installés où il faut lors du "make install".
Bon maintenant faut tester splashy.
slashdada
Après compilation et installation de splashy, on peut tester splashy en console en tapant /sbin/splashy test --> comme dans le man
Grand Merci à Dekkard, j'aurais peu être jamais trouver le file-devel.
Dekkard
C'était rien, en fait j'ai trouvé en lançant yumex et en faisant une recherche sur *magic* (* inclus). En lisant les descriptifs, j'ai trouvé file-devel.
Dekkard
Bon, après ajout des options "vga=791 splash quiet" dans grub.conf, la commande "splashy test" fonctionne.
Fedora démarre avec le framebuffer, dans la bonne résolution d'écran, mais en mode console.
Splashy ne démarre pas.
slashdada, es-tu arrivé à finir l'installation de splashy et à le faire démarrer durant le processus de démarrage de Fedora ? Si oui comment ?
slashdada
A vrai dire, je fais une pause, je me suis arrêté à l'ajout d'un nouveau thème, chose impossible, on dirait qu'il me manque une librairie, peu être me suis-je trompé dans les options de configuration.
# splashy_config
splashy_config: error while loading shared libraries: libsplashycnf.so.0: cannot open shared object file: No such file or directory
Je fais un peu le menage sur mon dd, 2.6go restant c'est limite, je reprendrais sous peu la config de splashy.
Pikachu_2014
Bonsoir,
où cette bibliothèque a-t-elle été installée ?
# updatedb
# locate libsplashycnf.so.0
slashdada
Nul part puis que locate ne la trouve pas.
D'ailleurs quelles principales différences y a t'il entre locate et find ( je me sers que de find ) ?
Edit : Problème résolu --> La librairie demandée pour le programme de configuration est une ancienne version, donc remplacé par une nouvelle
Autrement dit :
ln -s /usr/lib/libsplashycnf.so.1.0.0 /usr/lib/libsplashycnf.so.0
Et la ça passe, me reste plus qu'à installer le thème et à suivre le README pour la conf.
Et le plus dur pour moi le reboot, donc y aura le test du splash pour moi dimache soir et post de résultat de test lundi matin normalement. :-D
Dekkard
Moi, déjà, pas d'erreur de librairie, la commande "splashy_config -i nom_du_theme.tar.gz" a fonctionné nickel. Pour mon test, j'utilise le thème Aqua disponible sur le site de Splashy. Je l'ai un peu modifié après coup et "splashy test" me l'affiche sans problème.
Par contre pour faire démarrer Splashy au démarrage, rien à faire. Faut dire que le README ne s'intéresse qu'à une Debian. Conséquence :
- le README dit qu'il faut faire un lien symbolique de /etc/init.d/splashy dans /etc/rcS.d/S01Splashy, mais nous, on n'a pas de dossier rcS.d !!! Alors dans quel rcx.d le faire ?
- le README nous dit qu'il faut rajouter un truc dans /lib/lsb/init-functions. Bon, on essaye et j'ai bien l'impression que d'une Fedora à une Debian, la syntaxe du fichier est différente. J'ajoute quand même ceci en fin de fichier :
lib-lsb-logging () {
/etc/lsb-base-logging.sh "$@"
}
Au final, rien ! Au démarrage j'ai toujours la console en 1024x768.
Quand a la commande mkinitramfs, chez nous, à moins que je ne me trompe, c'est mkinitrd, mais je sais pas trop quoi en faire.
slashdada
Pour le lien symbolique, tu le mets dans le rc correspondant à ton niveau de démarrage inscrit dans /etc/inittab dans mon cas rc3.d.
Le mieux est de se placé dans le répertoire rcX.d, je pense, pour faire le lien symbolique de la même manière que les autres.
ln -s ../init.d/splashy ./S01splashy
Je suppose que les lignes lib-lsb-logging est compagnie correspondent à un affichage en console.
Pour l'instant j'ai juste mis en commentaire ces lignes dans le fichier service splashy.
J'attends mon reboot du week et je reposte demain.
slashdada
Pour les fonctions manquantes, on peut les trouver dans le fichier init-functions d'une debian ou ubuntu.
Il suffit simplement de rajouter cette partie à notre propre fichier pour faire fonctionner les messages sur la console :
log_use_fancy_output () {
TPUT=/usr/bin/tput
EXPR=/usr/bin/expr
if [ "x$TERM" != "xdumb" ] && [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1 && $TPUT setaf 1 >/dev/null 2>&1; then
[ -z $FANCYTTY ] && FANCYTTY=1 || true
else
FANCYTTY=0
fi
case "$FANCYTTY" in
1|Y|yes|true) true;;
*) false;;
esac
}
log_success_msg () {
echo "$@"
}
log_failure_msg () {
if log_use_fancy_output; then
RED=`$TPUT setaf 1`
NORMAL=`$TPUT op`
echo "$RED*$NORMAL $@"
else
echo "$@"
fi
}
log_warning_msg () {
if log_use_fancy_output; then
YELLOW=`$TPUT setaf 3`
NORMAL=`$TPUT op`
echo "$YELLOW*$NORMAL $@"
else
echo "$@"
fi
}
#
# NON-LSB HELPER FUNCTIONS
#
# int get_lsb_header_val (char *scriptpathname, char *key)
get_lsb_header_val () {
if [ ! -f "$1" ] || [ -z "${2:-}" ]; then
return 1
fi
LSB_S="### BEGIN INIT INFO"
LSB_E="### END INIT INFO"
sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1
}
# int log_begin_message (char *message)
log_begin_msg () {
if [ -z "${1:-}" ]; then
return 1
fi
echo -n "$@"
}
# Sample usage:
# log_daemon_msg "Starting GNOME Login Manager" "gdm"
#
# On Debian, would output "Starting GNOME Login Manager: gdm"
# On Ubuntu, would output " * Starting GNOME Login Manager..."
#
# If the second argument is omitted, logging suitable for use with
# log_progress_msg() is used:
#
# log_daemon_msg "Starting remote filesystem services"
#
# On Debian, would output "Starting remote filesystem services:"
# On Ubuntu, would output " * Starting remote filesystem services..."
log_daemon_msg () {
if [ -z "${1:-}" ]; then
return 1
fi
if [ -z "${2:-}" ]; then
echo -n "$1:"
return
fi
echo -n "$1: $2"
}
# #319739
#
# Per policy docs:
#
# log_daemon_msg "Starting remote file system services"
# log_progress_msg "nfsd"; start-stop-daemon --start --quiet nfsd
# log_progress_msg "mountd"; start-stop-daemon --start --quiet mountd
# log_progress_msg "ugidd"; start-stop-daemon --start --quiet ugidd
# log_end_msg 0
#
# You could also do something fancy with log_end_msg here based on the
# return values of start-stop-daemon; this is left as an exercise for
# the reader...
#
# On Ubuntu, one would expect log_progress_msg to be a no-op.
log_progress_msg () {
if [ -z "${1:-}" ]; then
return 1
fi
echo -n " $@"
}
# int log_end_message (int exitstatus)
log_end_msg () {
# If no arguments were passed, return
[ -z "${1:-}" ] && return 1
# Only do the fancy stuff if we have an appropriate terminal
# and if /usr is already mounted
if log_use_fancy_output; then
RED=`$TPUT setaf 1`
NORMAL=`$TPUT op`
if [ $1 -eq 0 ]; then
echo "."
else
/bin/echo -e " ${RED}failed!${NORMAL}"
fi
else
if [ $1 -eq 0 ]; then
echo "."
else
echo " failed!"
fi
fi
return $1
}
log_action_msg () {
echo "$@."
}
log_action_begin_msg () {
echo -n "$@..."
}
log_action_cont_msg () {
echo -n "$@..."
}
log_action_end_msg () {
if [ -z "${2:-}" ]; then
end="."
else
end=" ($2)."
fi
if [ $1 -eq 0 ]; then
echo "done${end}"
else
if log_use_fancy_output; then
RED=`$TPUT setaf 1`
NORMAL=`$TPUT op`
/bin/echo -e "${RED}failed${end}${NORMAL}"
else
echo "failed${end}"
fi
fi
}
FANCYTTY=
[ -e /etc/lsb-base-logging.sh ] && . /etc/lsb-base-logging.sh || true
Puis à modifier le fichier service splashy pour forcer la détection du bon runlevel.
Pour ma part j'ai un bug graphique qui m'empêche d'avoir à nouveau accès à la console, je cherche encore un peu pour savoir d'où ça vient.
Dekkard
Bon, je met ton code où il faut (à la place de ce que je mettais) dans init-functions, je fait le lien symbolique vers /etc/rc.d/rc3.d/S01splashy. J'ai fait attention à ce que /etc/init.d/splashy soit exécutable.
Il démarre correctement avec le gestionnaire de services, mais après reboot, j'ai rien qui s'affiche à part ma console en vga=792 et pas de ligne me disant que splashy démarre.
Je suis un poil paumé !?! 🙁
C'est vraiment à se :hammer: