~apachelogger/+junk/plymouth-stop-kdm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Current plans are getting discussed here:

http://fedoraproject.org/wiki/Releases/FeatureBetterStartup

Until this file is fleshed out, I've included Kristian's old
text below.

plymouth - fbdev based graphical boot

INSTALL

Get the SRPMS and rpmbuild --rebuild them.  libpng-static is a build
requirement of mkinitrd so build and install that before building
mkinitrd.  To build the kernel SRPM, pass --target i686 to rpmbuild.

  libpng-1.2.10-1.plymouth.src.rpm
  initscripts-8.33-1.src.rpm
  mkinitrd-5.0.34-1.plymouth.src.rpm
  SysVinit-2.86-3.plymouth.src.rpm
  rhgb-0.16.3-1.plymouth.src.rpm
  kernel-2.6.16-1.2139_FC6.plymouth.src.rpm

Then install them and run (as root) mkinitrd to create an initrd for
your current kernel that has the graphical boot bits in it:

  $ mkinitrd /boot/plymouth-initrd-$(uname -r) $(uname -r)

Run grubby to add an entry to /etc/grub.conf:

  $ grubby --grub --copy-default \
	--title="Plymouth $(uname -r)" \
	--add-kernel=/boot/vmlinuz-$(uname -r) \
	--initrd=/boot/plymouth-initrd-$(uname -r).img \
	--args="vga=0x318 rhgb quiet"

or hand-edit /etc/grub.conf if you prefer and make an entry that boots
with the new initrd and passes vga=0x318, rhgb, and quiet on the
kernel command line.

Edit /etc/inittab to not start a tty on vt0:

  $ sed -ie 's/1:2345/# 1:2345/' /etc/inittab

Reboot!


HOW IT WORKS

We're using the kernel fbdev driver to initialize the display to
1024x768 24bpp as soon as the kernel boots up.  At this point the
kernel boots up with a black background and shows a picture of a fat
penguin.  The kernel patch disables the Linux logo and re-enables the
quiet boot mode.  I'd like to teach the kernel to clear the background
color to the background color set by nash later on, but for now the
patch just makes it boot into a black 1024x768.  This solid color
background patch and using fbdev are the only changes to the kernel.

A few seconds after the kernel boots, the initrd starts up.  The
changes to initrd includes making nash less chatty in quiet mode, and
adding a 'logo' command to the nash shell that it can load and display
a fedora PNG logo from the initrd.

Next step is rhgb.  The changes to rhgb replaces all the X server
startup/hand-holding code and the gtk+ progress screen and just paints
on the fbdev using cairo.  Other than that, most of the rhgb progress
feedback is reused, the initscripts report back to rhgb throughout the
boot process as they have always done.


NEXT STEPS

- Silence grub completely - don't show the menu, don't show the info
  about what we're booting, don't show anything.  Enter the menu only
  if the user holds down some key.

- Fall back to text mode in rhgb if something fails, or at least make
  a note of it and let the user review the log at a later time.  Also,
  probably bind Esc or some key to drop back into full textual boot.

- Actually write the kernel patch to initialize the fbdev to a given
  solid color.

- Make the transition from the rhgb fbdev into X smoother.  Don't do
  mode-setting in X and reuse framebuffer contents when possible or
  crazy-talk like that.