Plymouth on gentoo

Update: This article is outdated. Please read the new article.

Update: I’m currently working on getting this to work with latest version of plymouth, drm and linux kernel (Intel-only solution)

After checking out some videos on Plymouth booting on Fedora, I wanted to try this out. Luckily someone has already created an ebuild :-) It’s pretty easy to set up as the ebuild installs everything you need to get it running (including ‘dracut’ wich really simplifies initrd creation)… that is except KMS because it’s still experimental. But that is in the works and seems to be running on most intel and radeon chipsets out there. Nvidia (Nouveau) will be supported somewhere in the future.

Currently using a Fjuitsu-Siemens AMILO Pa 2510 (could not find an official page).

Packages

Add this to your portage overlay http://bugs.gentoo.org/274065 and merge. Then run ‘plymouth-set-default-theme spinfinity’ to set the default theme.

Then you’ll need to install a kernel with KMS support. (>= 2.5.31)

NOTE: You’ll need xorg-server-1.6, mesa-7.3, libdrm-2.4 (-9999 ?), xf86-video-ati-6.12 (Or greater, preferably from GIT) to get X running with KMS. (I’m using libdrm-9999 and xf86-video-ati-9999  from the X11 portage overlay)

Enable KMS (Kernel Modesetting)

Plymouth requires KMS support in kernel (If not enabled you’ll get a boring text splash). This works flawlessly on my Radeon Mobile X1200 (Radeon Xpress 1200?) (ATI Technologies Inc RS690M)

I first tried 2.6.32-rc5-git3 but reverted to 2.6.31-gentoo-r4 as I got it working there.

Compile DRM as a module

Device Drivers --->
   Graphics Support --->
      <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
         <M>   ATI Radeon

Disable framebuffering

Device Drivers --->
   Graphics Support --->
      {*} Support for frame buffer devices  --->
         < >   VGA 16-color graphics support
         < >   Userspace VESA VGA graphics support
         < >   VESA VGA graphics support
         < >   ATI Radeon display support

Disable bootup logo (optional?)

Device Drivers --->
   Graphics Support --->
      [ ] Bootup logo  --->

Enable modesetting for radeon

Device Drivers --->
   [*] Staging drivers  --->
      [*]     Enable modesetting on radeon by default

Kernel and init image

Compile and install the kernel and run ‘dracut’ to create initrd image.

My /etc/dracut.conf

omit_dracutmodules="dmsquash-live mdraid crypt rpmversion redhat-i18n"
add_drivers="ath5k radeon drm"
mdadmconf="yes"

Grub

Remove any ‘vga’ arguments from kernel line and add ‘quiet splash’. (Note: I use grub 2, so config file might differ from yours)

menuentry "Gentoo GNU/Linux, with Linux 2.6.31-gentoo-r4" {
 insmod ext2
 set root=(hd0,2)
 search --no-floppy --fs-uuid --set 84d7a2c9-8071-4917-8122-3ac6bc84de38
 linux /vmlinuz-2.6.31-gentoo-r4 root=/dev/sda5 resume=/dev/sda8 ro quiet splash
 initrd  /initrd-2.6.31-gentoo-r4.img
}

Fixes

To fix problems with Plymouth hanging and/or XDM is slow on startup i added this to my /etc/conf.d/local.start :

if [ "$(pidof plymouth)" ] || [ "$(pidof plymouthd)" ] ; then
 # Method 1: (Not working)
 #/bin/plymouth quit --retain-splash &>/dev/null

 # Method 2
 /bin/plymouth --quit &>/dev/null
 chvt 7
fi

This script simply kills plymouth daemon and changes to virtual console number 7 (Where XDM stars). It will only do this if the daemon is running.

Result

Works perfectly at native resolution (1280×800@60) and  switching between console and X is now instant :-) I haven’t noticed any slowdowns in X after enabling KMS. Booting seems to be the same (Haven’t checked in bootchart yet).

Problems

I haven’t got Plymouth working during reboot yet, and it’s being killed during the start up because it seems to halt the init process… so it’s not perfect. I’ll solve this later.

Some usefull links

http://www.freedesktop.org/wiki/Software/Plymouth

http://cgit.freedesktop.org/plymouth/

http://cgit.freedesktop.org/plymouth/tree/README

http://chakra-project.org/wiki/index.php/Plymouth (Intel users)

http://fedoraproject.org/wiki/Releases/FeatureBetterStartup (Possibly deprecated)

About these ads

About this entry