LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 942|回复: 7

我的bootsplash经历[成功一半]

[复制链接]
发表于 2009-4-9 21:03:33 | 显示全部楼层 |阅读模式
前段时间看到一些splash方面的帖子,大多用的是vesafb,所以尝试了一下uvesafb+v86d+fbcondecor的组合,uvesafb编译为模块
系统是funton core2,它针对intel core2的CPU进行了优化,是amd64的系统,没有安装xorg-server
内核为2.6.29-gentoo-r1
步骤:
1. 配置内核
CONFIG_CONNECTOR=y
CONFIG_FB_UVESA=m
2. 编译一次内核
3. 重启
4. modprobe uvesafb
5. dmesg|grep uvesafb
uvesafb: Intel Corporation, Intel(r)GM965/PM965/GL960 Graphics Controller, Hardware Version 0.0, OEM: Intel(r)GM965/PM965/GL960 Graphics Chip Accelerated VGA BIOS, VBE v3.0
uvesafb: VBIOS/hardware supports DDC2 transfers
uvesafb: monitor limits: vf = 60 Hz, hf = 49 kHz, clk = 68 MHz
uvesafb: scrolling: redraw
uvesafb: framebuffer at 0xe0000000, mapped to 0xffffc20010780000, using 6144k, total 7616k
6. emerge klibc,v86d
7. 再次配置内核
CONFIG_INITRAMFS_SOURCE="/usr/share/v86d/initramfs"
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FB_CON_DECOR=y
8. 再次编译内核
9. 重启
10. USE="fbcondecor -truetype" emerge splashutils splash-themes-gentoo
11. rc-update add fbcondecor default
12. splash_manager -c switch -t natural_gentoo(成功的话这里就会提示生成initramfs)
手动生成initramfs:splash_geninitramfs -g /boot/initrd_splash -r 1280x800 natural_gentoo -v
我进行到12的时候报错:
theme 'natural_gentoo' doesn't seem to provide a config file for the current resolution (640x480)
如果没有加载uvesafb模块,则:
theme 'natural_gentoo' doesn't seem to provide a config file for the current resolution (0x0)
当我挂载了uvesafb后,怎么修改它当前的分辨率?
是不是在执行12的时候需要把i915先卸载?
查看当前uvesafb支持哪些分辨率:
cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
今天又试了一下,发现我的splash是基于i915这个模块的,只有这个模块加载了才能启动splash动画,这是怎么回事,为什么不能基于uvesafb呢?
发表于 2009-4-9 21:51:37 | 显示全部楼层
我用的是genkernel
没有用过splash_geninitramfs
貌似splash_geninitramfs里面有设置分辨率的参数的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-9 22:38:34 | 显示全部楼层
是splash_manager的时候,这个分辨率和uvesafb模块有关。splash_geninitramfs里我指定为1280x800了,好象和前个的分辨率不是同一个,明天再试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-10 19:39:05 | 显示全部楼层
有点糊涂了希望得到大家的指点
加载i915模块后,splash_manager -c switch -t natural_gentoo就可以成功,splash是建立在i915模块上的,这样启动后有一段时间没有splash画面。
回复 支持 反对

使用道具 举报

发表于 2009-4-11 14:01:54 | 显示全部楼层
akoya的lyaman里的v86d带了915resolution的补丁,你可以去试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-11 16:17:40 | 显示全部楼层
回楼上,我的uvesafb能够支持多种分辨率
localhost ~ # cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
1024x768-8, 0x0105
1024x768-16, 0x0117
1024x768-32, 0x0118
640x480-32, 0x0112
800x600-16, 0x0114
800x600-32, 0x0115
640x480-8, 0x0101
800x600-8, 0x0103
640x480-16, 0x0111
但是用splash_manager 转换主题时却提示分辨率为640x480,我该怎么办呢?现在还是要等加载完i915后才能见到splash画面
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-11 20:44:44 | 显示全部楼层
终于可以在只有uvesafb的情况下启动splash了,需要用915resolution,但还是有问题。我的uvesafb是个模块,在开机时不能自动加载,我想做一个initramfs文件,包含这个模块,用splash_geninitramfs能够实现吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-12 09:36:29 | 显示全部楼层
参考了一些文章,问题的关键在于制作一个cpio的initramfs,带入v86d和915resolution,在archlinux下有个mkinitcpio的工具,gentoo的portage里没有这个,所以制作的方法比较烦琐,哪位大侠能够指点一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表