Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 23/05/2006, à 19:59

misaine

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Palette    Utilisation
0         Couleur d"arrière-plan
0         Couleur d"arrière-plan texte
1         Couleur de la barre de chargement
2         Couleur du texte "OK”
4         Couleur de fond de la barre de chargement
8         Couleur du texte
13        Couleur d"erreur, "Failed”

tu regardes la palette de 16 couleurs et tu remplaces 2 par le chiffre de la couleur qui te convient et pareil pour le 13
bien sûr il faut dans ton cas qu'il y ait du vert et du rouge dans l'image.
sinon essayes de modifier la couleur 15 en vert et la 16 en rouge

Dernière modification par misaine (Le 23/05/2006, à 20:01)


la roue tourne...c'est sûr! c'est même pour ça qu'on l'a inventée.

Hors ligne

#27 Le 25/05/2006, à 23:48

Flew

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Sinon, ce que je pensais faire, c'est transformer l'image en 14 couleurs, puis de rajouter les deux autres. Sauf qu'à ce moment là, je ne peux pas les déplacer, et les couleurs ajoutées sont forcément la 14 et la 15 (14 étant la 15ème couleur et 15 la 16ème, le compte démarrant de 0).
Est-il alors possible de définir usplash pour qu'il prenne en compte la couleur 14 pour les "OK" et la couleur 15 pour les "FAILED"?

Merci


(\__/)
(='.'=)
(")_(")

Hors ligne

#28 Le 29/05/2006, à 03:59

misaine

Re : HOW TO : Changer les couleurs par défaut de l'usplash

de retour de WE big_smile
je pense que c'est une très bonne astuce ça smile je vais essayer


la roue tourne...c'est sûr! c'est même pour ça qu'on l'a inventée.

Hors ligne

#29 Le 29/05/2006, à 16:56

Flew

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Cool cool


(\__/)
(='.'=)
(")_(")

Hors ligne

#30 Le 30/05/2006, à 09:16

Soipacon

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Tout d'abord un grand merci à Gorrk pour le script qui perme de gagner beaucoup de temps quand on veut faire des essais.

Je poste à mon tour ma petite création (qui est issue d'un wallpaper modifié) :

newusplash016bv.th.png

Et le fichier usplash.c qui va bien avec :

/* USplash - a trivial framebuffer splashscreen application */
/* Copyright Matthew Garrett, 2005. Released under the terms of the GNU
   General Public License version 2.1 or later */

#include <string.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <errno.h>
#include <linux/vt.h>
#include <sys/ioctl.h>
#include <dlfcn.h>

#include "bogl.h"
#include "usplash.h"

#ifdef DEBUG
FILE* logfile;
#endif

int left_edge, top_edge;

#define BACKGROUND_COLOUR 0
#define PROGRESSBAR_COLOUR 14
#define PROGRESSBAR_BACKGROUND 3
#define TEXT_BACKGROUND 0
#define TEXT_FOREGROUND 3
#define TEXT_NORMAL 3
#define RED 10

#define TEXT_X1 (left_edge + 136)
#define TEXT_X2 (left_edge + 514)
#define TEXT_Y1 (top_edge + 364)
#define TEXT_Y2 (top_edge + 460)
#define LINE_HEIGHT 12

#define PROGRESS_BAR (top_edge + 330)

#define TEXT_WIDTH TEXT_X2-TEXT_X1
#define TEXT_HEIGHT TEXT_Y2-TEXT_Y1

int pipe_fd;
char command[4096];

extern struct bogl_font font_helvB10;
struct bogl_pixmap* pixmap_usplash_artwork;

void draw_progress(int percentage);
void draw_text(char *string, int length);
void draw_image(struct bogl_pixmap *pixmap);
void event_loop();
void text_clear();
void switch_console(int screen);
void init_progressbar();

int saved_vt=0;
int new_vt=0;
int timeout=15;

void cleanup() {

	if (saved_vt!=0) {
                struct vt_stat state;
                int fd;

                fd = open("/dev/console", O_RDWR);
                ioctl(fd,VT_GETSTATE,&state);
                close(fd);

                if (state.v_active == new_vt) {
                        // We're still on the console to which we switched,
                        // so switch back
                        switch_console(saved_vt);
                }
	}
}

int main (int argc, char** argv) {
	int err;
	void *handle;

#ifdef DEBUG
	logfile = fopen ("/dev/.initramfs/usplash_log","w+");
#endif

	if (argc>1) {
		if (strcmp(argv[1],"-c")==0) 
			switch_console(8);
	}

	chdir("/dev/.initramfs");

	if (mkfifo(USPLASH_FIFO, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP))
	{
		if (errno!=EEXIST) {
			perror("mkfifo");
			cleanup();
			exit(1);
		}
	}

	pipe_fd = open(USPLASH_FIFO,O_RDONLY|O_NONBLOCK);

	if (pipe_fd==-1) {
		perror("pipe open");
		cleanup();
		exit(2);
	}

	err=bogl_init();

	if (!err) {
		fprintf(stderr,"%d",err);
		cleanup();
		exit (2);
	}

	handle = dlopen("/usr/lib/usplash/usplash-artwork.so", RTLD_LAZY);
	if (!handle) {
		exit(1);
	}
	pixmap_usplash_artwork = (struct bogl_pixmap *)dlsym(handle, "pixmap_usplash_artwork");
	
	bogl_set_palette (0, 16, pixmap_usplash_artwork->palette);

	left_edge = (bogl_xres - 640) / 2;
	top_edge  = (bogl_yres - 400) / 2;

	draw_image(pixmap_usplash_artwork);

	init_progressbar();

	text_clear();

	event_loop();

	bogl_done();

	cleanup();

	return 0;
}

void switch_console(int screen) {
	char vtname[10];
	int fd;
	struct vt_stat state;

	fd = open("/dev/console", O_RDWR);
	ioctl(fd,VT_GETSTATE,&state);
	saved_vt = state.v_active;
	close(fd);

	sprintf(vtname, "/dev/tty%d",screen);
	fd = open(vtname, O_RDWR);
	ioctl(fd,VT_ACTIVATE,screen);
        new_vt = screen;
	ioctl(fd,VT_WAITACTIVE,screen);
	close(fd);

	return;
}

void text_clear() {
	bogl_clear(TEXT_X1, TEXT_Y1, TEXT_X2, TEXT_Y2, TEXT_BACKGROUND);
}

void init_progressbar() {
	bogl_clear(left_edge+100,PROGRESS_BAR,left_edge+540,PROGRESS_BAR+4,PROGRESSBAR_BACKGROUND);
}

void draw_progress(int percentage) {
	int fore = PROGRESSBAR_COLOUR, back = PROGRESSBAR_BACKGROUND;

	if (percentage < -100 || percentage > 100)
		return;

	// Paint bar in reverse-video if percentage passed is negative.
	if (percentage < 0) {
		fore = PROGRESSBAR_BACKGROUND;
		back = PROGRESSBAR_COLOUR;
		percentage = -percentage;
	}
	// Overwrite the whole area to blank out any previous contents
	bogl_clear(left_edge+100,PROGRESS_BAR,left_edge+540,PROGRESS_BAR+4, back);
	bogl_clear(left_edge+100,PROGRESS_BAR,(left_edge+100+4.4*percentage),PROGRESS_BAR+4, fore);
	return;
}	

void draw_status(char *string, int colour) {
	bogl_clear (TEXT_X2-30, TEXT_Y2-LINE_HEIGHT, 
		    TEXT_X2, TEXT_Y2, TEXT_BACKGROUND);
	bogl_text (TEXT_X2-30, TEXT_Y2-LINE_HEIGHT, string, strlen(string), 
		   colour, TEXT_BACKGROUND, 0, &font_helvB10);
	return;
}

void draw_text(char *string, int length) {		
	/* Move the existing text up */
	bogl_move(TEXT_X1, TEXT_Y1+LINE_HEIGHT, TEXT_X1, TEXT_Y1, TEXT_X2-TEXT_X1,
		  TEXT_HEIGHT-LINE_HEIGHT);
	/* Blank out the previous bottom contents */
	bogl_clear(TEXT_X1, TEXT_Y2-LINE_HEIGHT, TEXT_X2, TEXT_Y2, 
		   TEXT_BACKGROUND);
	bogl_text (TEXT_X1, TEXT_Y2-LINE_HEIGHT, string, length,
		   TEXT_NORMAL, TEXT_BACKGROUND, 0, &font_helvB10);
	return;
}

void draw_image(struct bogl_pixmap *pixmap) {
	int colour_map[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
	bogl_clear(0, 0, bogl_xres, bogl_yres, BACKGROUND_COLOUR);	
	bogl_put (left_edge, top_edge, pixmap, colour_map);
}
	
int parse_command(char *string, int length) {
	char *command;
	char *origstring = string;
	int parsed=0;

#ifdef DEBUG
	fprintf (logfile, "%s\n", string);
	fflush (logfile);
#endif

	parsed = strlen(string)+1;
	
	if (strcmp(string,"QUIT")==0) {
		return 1;
	}	

	command = strtok(string," ");

	if (strcmp(command,"TEXT")==0) {
		char *line = strtok(NULL,"\0");
		int length = strlen(line);		
		while (length>50) {
			draw_text(line,50);
			line+=50;
			length-=50;
		}
		draw_text(line,length);
	} else if (strcmp(command,"STATUS")==0) {
		draw_status(strtok(NULL,"\0"),0);
	} else if (strcmp(command,"SUCCESS")==0) {
		draw_status(strtok(NULL,"\0"),TEXT_FOREGROUND);
	} else if (strcmp(command,"FAILURE")==0) {
		draw_status(strtok(NULL,"\0"),RED);
	} else if (strcmp(command,"PROGRESS")==0) {
		draw_progress(atoi(strtok(NULL,"\0")));
	} else if (strcmp(command,"CLEAR")==0) {
		text_clear();
	} else if (strcmp(command,"TIMEOUT")==0) {
		timeout=(atoi(strtok(NULL,"\0")));
	} else if (strcmp(command,"QUIT")==0) {
		return 1;
	}

	return 0;
}

void event_loop() {
	int err;
	ssize_t length = 0;
	fd_set descriptors;
	struct timeval tv;
        char *end;

	tv.tv_sec = timeout;
	tv.tv_usec = 0;

	FD_ZERO(&descriptors);
	FD_SET(pipe_fd,&descriptors);

        end = command;
	while (1) {
		if (timeout != 0) {
			err = select(pipe_fd+1, &descriptors, NULL, NULL, &tv);
		} else {
			err = select(pipe_fd+1, &descriptors, NULL, NULL, NULL);
		}

		if (err == -1) {
			return;
		}
		
		if (err == 0) {
			/* Timeout */
			return;
		}
		length += read(pipe_fd, end, sizeof(command) - (end - command));
		if (length == 0) {
                        /* Reopen to see if there's anything more for us */
                        close(pipe_fd);
                        pipe_fd = open(USPLASH_FIFO,O_RDONLY|O_NONBLOCK);
			goto out;
		}

                while (memchr(command, 0, length) != NULL && 
                       (char*)memchr(command, 0, length) < command + length - 1) {
                        /* More than one command in here, do the first */
                        char *ncommand = strdup(command);
                        if (parse_command(ncommand, strlen(ncommand))) {
                                free(ncommand);
                                return;
                        }
                        free(ncommand);
                        length = length - strlen(command) - 1;
                        memmove(command, command + strlen(command) + 1, length+1);
                }
                if (command[length-1] == '\0') {
                        /* Easy, just one command*/
                        if (parse_command(command, strlen(command))) {
                                return;
                        }
                        length = 0;
                } else {
                        /* Incomplete command.  Handle this in the
                         * next round */
                }
	out:
                end = &command[length];

		tv.tv_sec = timeout;
		tv.tv_usec = 0;

		FD_ZERO(&descriptors);
		FD_SET(pipe_fd,&descriptors);
	}
	return;
}

Et le résultat :

imgp21086lh.th.jpg

Je sais que c'est pas parfait mais pour une première je suis assez content. tongue

Dernière modification par Soipacon (Le 30/05/2006, à 14:36)

Hors ligne

#31 Le 01/06/2006, à 00:30

misteraph

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Perso j'ai un écran tout noir.
Comment faire ?

Hors ligne

#32 Le 02/06/2006, à 23:35

misteraph

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Templar, comment as-tu fais ?

Hors ligne

#33 Le 03/06/2006, à 08:19

phoenix818

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Hello!
@Soicapon: comment fais-tu un screenshot de ton boot??!! ça fait un moment que j'ai envie d'en faire un, ainsi que de mon gdm (encore que, en fouillant sur un autre site, je devrais pouvoir retrouver..), de manière à ajouter ces 2 captures sur mon site.... et si possible grub aussi tongue [je sais, j'en demande bcp]

Si quelqu'un sait comment faire tout ça, ou où trouver la doc..... chuis preneur!

@@++


Serveur: http://voltaic.is-a-geek.org
Site: http://www.phoenix818.ch

Hors ligne

#34 Le 03/06/2006, à 10:38

Soipacon

Re : HOW TO : Changer les couleurs par défaut de l'usplash

@phoenix818 :
Si tu regardes bien tu verras que je me suis pas trop creusé... j'ai juste pris une photo de mon écran pendant le démarrage. tongue
Mais il y a sans doutes des méthodes plus élégantes.

@misteraph :
Essai de mettre une option vga dans ton fichier /boot/grub/menu.lst comme ça par exemple :

title		Ubuntu, kernel 2.6.15-23-k7
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.15-23-k7 root=/dev/hda2 ro vga=771 quiet splash
initrd		/boot/initrd.img-2.6.15-23-k7
savedefault
boot

Chez moi la résolution par défaut ne passe pas et j'ai juste un écran noir aussi.

Hors ligne

#35 Le 20/06/2006, à 17:27

benoit74

Re : HOW TO : Changer les couleurs par défaut de l'usplash

bonjour,

voila j'arrive pas a trouver le fichier usplash.c. Il se trouve ou exactement ?
merci pour vos réponses

#36 Le 20/06/2006, à 18:32

Shyne

Re : HOW TO : Changer les couleurs par défaut de l'usplash

@ phoenix818

Le top pour faire des capture d'ecran au demarrage de Grub/Gdm-Kdm c'est quand meme une machine virtuel sous Vmware ou Qemu.

Il y a surement d'autres solutions pour Gdm-Kdm mais pour Grub je pense pas que ce soit possible...

Dernière modification par Shyne (Le 20/06/2006, à 18:32)

Hors ligne

#37 Le 20/06/2006, à 19:26

misaine

Re : HOW TO : Changer les couleurs par défaut de l'usplash

@benoit74  si tu parles du fichier usplash-artwork.c , il est créé par la ligne

pngtobogl usplash-artwork.png > usplash-artwork.c

mais utilise plutôt le script ; voir post #16

Dernière modification par misaine (Le 20/06/2006, à 19:33)


la roue tourne...c'est sûr! c'est même pour ça qu'on l'a inventée.

Hors ligne

#38 Le 20/06/2006, à 20:03

benoit74

Re : HOW TO : Changer les couleurs par défaut de l'usplash

je ne comprends pas. j'ai suivi exactement le tuto et pourtant maintenant j'ai un ecran noir au démarrage. Alors j'ai essayé avec le script et c'est le même résultat. Je ne comprends pas ce qui cloche. J'ai pourtant suivi les instructions à la lettre (16 couleurs, 640x480).
Une idée ?

#39 Le 20/06/2006, à 20:49

Soipacon

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Essais toi aussi de mettre une option vga=771 (ou autre) dans ton fichier /boot/grub/menu.lst

Hors ligne

#40 Le 21/06/2006, à 12:38

benoit74

Re : HOW TO : Changer les couleurs par défaut de l'usplash

génial le probleme est résolu en mettant vga=771. merci beaucoup.
Il reste cependant quelques erreurs mais ca progresse bien dans l'ensemble. Voila j'ai réussià modifier la place des instructions au démarrage par contre pas moyen de faire bouger la barre de progression. Je peux juste la faire bouger verticalement mais horizontalement ca ne fonctionne pas. Est-ce normal ?
Sinon j'ai un autre probleme : lorsque que j'éteinds (ou redemarre) mon pc, l'image est de mediocre qualité, alors qu'au demarrage elle est parfaite. je ne comprends pas d'où ca peut venir.
je posterais les images pour que vous compreniez mieux le problème.

#41 Le 24/09/2006, à 14:52

ke20

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Templar a écrit :

Personnellement je n'ai plus d'image au boot.

J'ai pourtant bien suivi la manip mais j'ai ceci lors de la regénération du initramfs : Searching for splash image... none found, skipping...

Je vois pas pourquoi :\

J'ai eu la mm chose apres

sudo  dpkg-reconfigure linux-image-$(uname -r)

Et mnt j'ai un ecran tt noir au chargement (mm pas l'affichage en noir et blanc).
Si tu pouvais me dire la manip que tu a faite pour que ca marche stp, ou si qqun sait ce qu'il faut faire

Hors ligne

#42 Le 25/09/2006, à 11:25

ke20

Re : HOW TO : Changer les couleurs par défaut de l'usplash

J'ai fait la modif décrite plus haut à savoir ajouter vga=771 mais ça ne fonctionne pas.
Peut-être que la nb n'est pas le bon(?). A quoi correspond 771?
Moi ma carte est une nvidia GeForce Go 6200.
SI qqun peut éclairer ma lanterne svp.

Hors ligne

#43 Le 25/09/2006, à 13:34

misaine

Re : HOW TO : Changer les couleurs par défaut de l'usplash

voilà les différentes valeurs por le framebuffer personnellement j'utilise vga=791
http://forum.ubuntu-fr.org/viewtopic.php?pid=21970


la roue tourne...c'est sûr! c'est même pour ça qu'on l'a inventée.

Hors ligne

#44 Le 25/09/2006, à 16:20

ke20

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Merci mais en fait j'ai trouver tt a l'heure en cherchant bien

Hors ligne

#45 Le 25/09/2006, à 20:48

Flew

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Ben moi, j'ai tout essayé et rien n'a remis mon Usplash en état (enfin, faut dire j'avais tout modifié, l'image de fond, la position et la couleur du texte....)
Finalement, j'ai tout réinstallé (pour diverses raisons) et j'ai de nouveau un Usplash standard.
Mais existe-t-il un tuto spécialement fait pour Dapper (car ceux trouvés sur le Wiki sont pour Breezy)??


(\__/)
(='.'=)
(")_(")

Hors ligne

#46 Le 19/04/2007, à 19:21

alexises

Re : HOW TO : Changer les couleurs par défaut de l'usplash

bon j'ai besoind 'aide j'ai mon image en png indexer et  à la bonne résolution.
je fait quoi maintenent ?


/!\ aveugle ne pas matraquer /!\
¨¨¨                                       ¨¨¨

il est ou le bouton poster ?

Hors ligne

#47 Le 19/04/2007, à 19:53

misaine

Re : HOW TO : Changer les couleurs par défaut de l'usplash

hmm... je suis pas sùr que ce howto fonctionne avec les nouvelles versions d'ubuntu neutral


la roue tourne...c'est sûr! c'est même pour ça qu'on l'a inventée.

Hors ligne

#48 Le 19/04/2007, à 20:14

alexises

Re : HOW TO : Changer les couleurs par défaut de l'usplash

enfin il y as eu un nouveau tuto mais qui est incomplet


/!\ aveugle ne pas matraquer /!\
¨¨¨                                       ¨¨¨

il est ou le bouton poster ?

Hors ligne

#49 Le 23/08/2007, à 17:18

TjrsDactu?

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Bonjour,

est-ce que le script donné fontionne sous feisty également ?? car je vois qu'il date de mars 2006 alors je préfére demander au cas ou ^^

merci smile

#50 Le 19/10/2007, à 19:07

Gorrk

Re : HOW TO : Changer les couleurs par défaut de l'usplash

Lu, euh, je sais pas, mais en tous cas il ne marche plus sous Gutsy. Je sais pas pourquoi, je regarderai ça plus tard si j'ai du temps et du courage. wink

Hors ligne