首页 > Linux > 给系统加上 fbsplash 支持

给系统加上 fbsplash 支持

2009年7月25日 wd 发表评论 阅读评论

先贴几个参考文章。

  • 1 HOWTO: Fancy Grub and fbsplash on a machine with Intel graphic chipsets
  • 2 Fbsplash
  • 这两个文章里面最重要是那些内核选项的支持,弄好了那些才有下面的内容。里面有个要注意的是 General Setup —> Initial RAM filesystem and RAM disk (initramfs/initrd) support —> Built-in initramfs compression mode 这个选项,好像是从 2.6.30 出来的。这个压缩模式选的是什么,关系到后面的工作。

    安装 splashutils[fbcondecor] 和 media-gfx/splash-themes-gentoo 或 media-gfx/splash-themes-livecd 这两个都是提供一些 theme,在 /etc/splash 目录下面。

    我的 kernel 没有 initrd 文件,是编译到内核的,所以这么做。

    splash_geninitramfs -g /usr/src/linux/usr/initramfs_data.cpio.gz[这个就是前面说到的,如果你前面用的是 none ,那就不加 gz ,如果用的是 gzip 那就加 gz,如果是其它。。。] -v -r 1024x768[分辨率] theme_name_in_etc_splash
    cd /usr/src/linux && make && make install # recompile kernel, this is my way

    然后就是设置内核参数,下面是我的。那个 quiet 会让 kernel 不显示信息,如果你不想,那就去掉。
    video=uvesafb:1024×768-32,mtrr:3,ywrap quiet splash=silent,theme:natural_gentoo console=tty1 fbcon=scrollback:64K

    如果用的是 tuxonice 内核,那还可以给 sys-apps/tuxonice-userui 加上 fbsplash use,装好后会提示你 ln 一个 splash theme 为 tuxonice ,照做就是了。另外还需要在内核里面 Power management and ACPI options —> Enhanced Hibernation (TuxOnIce) —> Default userui program location 设置为 /sbin/tuxoniceui_fbsplash ,重编内核。。。

    这么弄完之后会发现,休眠后再启动的时候会显示一个没找到 /sbin/tuoniceui_fbsplash 的错误,还有一些百分比,这些实际上不影响正常启动。不过好像有点影响美观。我琢磨了下,觉得那个错误可能是没有把那个文件弄到 initramfs 里面的缘故,弄进去之后果然没了,不过还是有那个百分比出来。

    先 cp 一份这个文件 /usr/src/linux/usr/initramfs_data.cpio[看压缩设置] 到临时目录,file 看看属性,我的是 gzip 压缩的,那就解压一下。然后用 cpio 看下里面的文件。

    $ file initramfs_data.cpio 
    initramfs_data.cpio: gzip compressed data, was "initramfs_data.cpio", from Unix, last modified: Sat Jul 25 19:26:29 2009
    $ mv initramfs_data.cpio initramfs_data.cpio.gz
    $ gzip -d initramfs_data.cpio.gz 
    $ file initramfs_data.cpio 
    initramfs_data.cpio: ASCII cpio archive (SVR4 with no CRC)
    $ cpio --list < initramfs_data.cpio
    .
    lib
    lib/splash
    lib/splash/sys
    lib/splash/proc
    sbin
    sbin/v86d
    sbin/fbcondecor_helper
    sbin/splash_helper
    root
    dev
    dev/mem
    dev/tty1
    dev/fb
    dev/tty0
    dev/zero
    dev/misc
    dev/null
    dev/vc
    dev/console
    etc
    etc/splash
    etc/splash/luxisri.ttf
    etc/splash/natural_gentoo
    etc/splash/natural_gentoo/1024x768.cfg
    etc/splash/natural_gentoo/images
    etc/splash/natural_gentoo/images/silent-1024x768.jpg
    etc/splash/natural_gentoo/images/verbose-1024x768.jpg
    xxx blocks
    $ cat f
    sbin/tuxoniceui_fbsplash
    $ ls sbin
    tuxoniceui_fbsplash
    $ cpio -ov --format=newc -A -O initramfs_data.cpio < f
    sbin/tuxoniceui_fbsplash
    xxx blocks
    $ gzip -c initramfs_data.cpio initramfs_data.cpio.gz
    $ mv initramfs_data.cpio.gz /usr/src/linux/usr/initramfs_data.cpio

    ok, 这里你可以再看看文件里面的东西。没问题就可以复制过去了,要注意压缩格式。

    回头录一个视频放上来玩玩,呵呵。

    分类: Linux 标签:
    1. MeaCulpa
      2009年8月9日18:06 | #1

      兄弟我NVidia 7900gs,
      /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
      里最多1024×768
      怪不得自从有了这个显卡就没上成过宽频FB…

      等有钱买显卡了刷Bios…

    2. 2009年9月23日05:23 | #2

      [...] 1 给系统加上 fbsplash 支持 [...];

    3. maniux
      2010年1月25日17:15 | #3

      你好,我在弄tuxonice,不能resume。
      看文档说要把
      echo 1 > /sys/power/tuxonice/do_resume
      加入init。
      你没这么做也成功了吗?

    4. 2010年1月26日14:15 | #4

      @maniux

      哪里看的文档呀,我没做这个事情。..

    1. 2009年7月25日20:35 | #1