当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 30 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 宽屏指东之intel+lcd完美控制台
帖子发表于 : 2007-10-24 18:32 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
前言:
还记得915resolution吗?在2.0版本的i810驱动下,在X环境中我们已经不需要它了。但是,兄弟们大概不知道,915resolution还可以帮助我们实现控制台宽屏终端哦!再也不用看那被拉长的字体了~

检查:
首先,看看你的显卡video bios是不是支持宽屏:
32位系统:google搜索lrmi包,下载后编译,得到vbetest,root权限执行,如果在这里面有你使用的分辨率,恭喜!你中奖了!你的显卡bios天然的支持宽屏!此时,你所要做的就是在/boot/grub/menu.lst的kernel启动行中,添加这样的内容
代码:
video=intelfb:mode=1280x800-16@60,mtrr,ywrap vga=你刚刚得到的数字+512


此时,只要你重启系统,就是完美的宽屏高分辨率终端了。

64位系统,不能用vbetest,不过可以用suse开发的hwinfo

代码:
hwinfo --vbe

同样的,也是看mode中有没有宽屏。这个数字转化成vga=的参数,就是直接由16进制变成10进制即可。

注意!initelfb不支持lcd上的改变分辨率,并且必须用vga=模式代码 的形式加载。否则无效。

下一楼接着发


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-24 18:34 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
nv独显可以吗?..


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-24 18:56 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
上面说的情况其实可以说,基本上是不靠谱的。因为厂商对集成显卡的video bios通常都不会费时费力的去添加非标准的模式。绝大绝大多数的劳苦大众,都是vbios中没有宽屏选项的。遇到这种情况,怎么办?靠天靠地靠厂商,不如靠自己。

我们知道,915resolution能做什么?它能将在内存中的vbios hack掉,也就是让显卡读的是内存中的已经改过的“支持宽屏”的vbios。我们要做的,就是在framebuffer的显卡驱动没有加载之前,让915resolution先把模式改掉,然后加载framebuffer显卡驱动时,以为自己的模式是宽屏。

但是,终端不止有分辨率的问题,还有刷新率的问题,而传统的vesafb不能控制刷新率,intelfb虽然可以控制刷新率,但是由于intelfb本生的问题,只能在启动是内核指定参数,我们对vbios之后的hack它根本就无视,问题来了,怎么办?


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-10-24 18:58 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
nv独显可以吗?..

nv的驱动和它的fb的驱动冲突,不过由于不采用,使用vesa-tng或uvesafb,所以完全可以用。
当然,也可以不用3d加速,那这样直接可以用nvidiafb


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:08 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
接三楼,所以,只能使用gentoo中的vesa-tng或者是它的继任者,uvesafb。下面这篇文章的作者设立了一个打上了补丁的debian的源。
http://jeandamiendurand.free.fr/debian/splashutils/
同样的,在ubuntu论坛上也有有篇howto
http://ubuntuforums.org/showthread.php?t=178439

你可以用上面的两种方式之一,构建你的基本的uvesafb known kernel。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:38 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
上面的文章很新,23号刚刚更新。而且作者还在持续的更新中,有什么问题也好反馈。建议用源安装。

下面讲我们的hack的过程。

如果只是要能够看到终端宽屏,那么可以在915resolution修改后重新modprobe uvesafb,指定参数,即可。
如果要尽可能早的起效,那么可以用early usermode的方法。

对已经可以引导的initramfs文件,进行解包:
代码:
mkdir xx
cd xx
zcat yy.img.gz |cpio -i

这样,所有的文件都会被展开。
下面准备静态连接的915resolution
解包915resolution的gz包,然后编辑Makefile,增加下面一行
LDFLAGS:=-s -static
然后make,得到静态连接的915resolution。
编辑init文件,尽可能早的执行915resolution来更改模式。
将v86d的静态连接版本也放进去。uvesafb需要它。
手动更改init脚本,insmod下面几个module
cfbcopyarea
cfbfillrect
cfbimgblt.ko
fbcon
uvesafb
当然,要记得带上正确的参数。
这样,在initrd载入后,直接就可以参看宽屏的终端了。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:41 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
把fb搞得支持宽屏,不就得了。


_________________
● 鸣学


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:41 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
忘了,可以用/usr/src/linux/scripts/gen_initramfs_lists.sh和/usr/src/linux/usr/gen_init_cpio来生成重新打包的initramfs。
这种生成方式的好处是,这个makefile保存相对容易,适合脚本进一步的编辑,完成自动化。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:43 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
把fb搞得支持宽屏,不就得了。

vesa是不会支持非标准屏的。intelfb对lcd的支持一直没有改变。似乎作者也没有什么改进的动力。ee大虾有兴趣可以试试阿!


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-10-24 19:46 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
有钱就有动力。好多软件都是荒废了,尤其老式底层软件,作者都不愿意跟进了。


_________________
● 鸣学


页首
 用户资料  
 
11 楼 
 文章标题 : 我总也 启动不了 我的 i810fb
帖子发表于 : 2007-10-28 10:43 

注册: 2007-10-28 10:05
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
我根据楼主 的方法:
./vbetest
VBE Version 3.0
Intel(r)845G/845GL/845GE/845GV Graphics Chip Accelerated VGA BIOS
[316] 1920x1440 (256 color palette)
[333] 1920x1440 (5:6:5)
[348] 1920x1440 (8:8:8)
[314] 1600x1200 (256 color palette)
[331] 1600x1200 (5:6:5)
[346] 1600x1200 (8:8:8)
[263] 1280x1024 (256 color palette)
[282] 1280x1024 (5:6:5)
[283] 1280x1024 (8:8:8)
[261] 1024x768 (256 color palette)
[279] 1024x768 (5:6:5)
[280] 1024x768 (8:8:8)
[274] 640x480 (8:8:8)
[276] 800x600 (5:6:5)
[277] 800x600 (8:8:8)
[257] 640x480 (256 color palette)
[259] 800x600 (256 color palette)
[273] 640x480 (5:6:5)


然后我在 /boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/hda5 ro video=i810fb:mode=1600x1200-24@60,mtrr,ywrap vga=858

858 346+ 512 ([346] 1600x1200 (8:8:8))

目录:
/lib/modules/2.6.8-2-386/kernel/drivers/video/

aty cfbimgblt.ko cyber2000fb.ko kyro pm2fb.ko sstfb.ko vesafb.ko vgastate.ko
cfbcopyarea.ko cirrusfb.ko hgafb.ko matrox riva tdfxfb.ko vfb.ko
cfbfillrect.ko console i810(目录下有 i810fb.ko) neofb.ko sis tridentfb.ko vga16fb.ko


fbset -i

mode "1600x1200-77"
# D: 192.012 MHz, H: 94.494 kHz, V: 77.201 Hz
geometry 1600 1200 1600 1200 32
timings 5208 200 32 16 4 200 4
rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
Name : VESA VGA
Address : 0xd8000000
Size : 8192000
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 6400
Accelerator : No

难道 要 insmod?

为什么不启动 i810fb 呢?


页首
 用户资料  
 
12 楼 
 文章标题 : 美驱动器来,
帖子发表于 : 2007-10-28 10:50 

注册: 2007-10-28 10:05
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
panchoat
我没有 驱动器起来!。555,帮我分析一下原因!


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 我总也 启动不了 我的 i810fb
帖子发表于 : 2007-10-28 11:36 

注册: 2007-10-19 21:15
帖子: 90
送出感谢: 0 次
接收感谢: 0 次
magichere 写道:
我根据楼主 的方法:
./vbetest
VBE Version 3.0
Intel(r)845G/845GL/845GE/845GV Graphics Chip Accelerated VGA BIOS
[316] 1920x1440 (256 color palette)
[333] 1920x1440 (5:6:5)
[348] 1920x1440 (8:8:8)
[314] 1600x1200 (256 color palette)
[331] 1600x1200 (5:6:5)
[346] 1600x1200 (8:8:8)
[263] 1280x1024 (256 color palette)
[282] 1280x1024 (5:6:5)
[283] 1280x1024 (8:8:8)
[261] 1024x768 (256 color palette)
[279] 1024x768 (5:6:5)
[280] 1024x768 (8:8:8)
[274] 640x480 (8:8:8)
[276] 800x600 (5:6:5)
[277] 800x600 (8:8:8)
[257] 640x480 (256 color palette)
[259] 800x600 (256 color palette)
[273] 640x480 (5:6:5)


然后我在 /boot/grub/menu.lst
kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/hda5 ro video=i810fb:mode=1600x1200-24@60,mtrr,ywrap vga=858

858 346+ 512 ([346] 1600x1200 (8:8:8))

目录:
/lib/modules/2.6.8-2-386/kernel/drivers/video/

aty cfbimgblt.ko cyber2000fb.ko kyro pm2fb.ko sstfb.ko vesafb.ko vgastate.ko
cfbcopyarea.ko cirrusfb.ko hgafb.ko matrox riva tdfxfb.ko vfb.ko
cfbfillrect.ko console i810(目录下有 i810fb.ko) neofb.ko sis tridentfb.ko vga16fb.ko


fbset -i

mode "1600x1200-77"
# D: 192.012 MHz, H: 94.494 kHz, V: 77.201 Hz
geometry 1600 1200 1600 1200 32
timings 5208 200 32 16 4 200 4
rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
Name : VESA VGA
Address : 0xd8000000
Size : 8192000
Type : PACKED PIXELS
Visual : TRUECOLOR
XPanStep : 0
YPanStep : 0
YWrapStep : 0
LineLength : 6400
Accelerator : No

难道 要 insmod?

为什么不启动 i810fb 呢?


830以上均为intelfb.
i810fb只针对810 815
具体看内核源码树下的Documents/fb/的内容


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-10-28 13:42 
头像

注册: 2005-10-14 16:55
帖子: 1637
地址: 江苏
系统: OS X
送出感谢: 0 次
接收感谢: 0 次
哈~成功!! :D


_________________
Hardy Heron + Mac OS X

在某些人眼里(炫耀+摆阔+不懂音乐+在乎外表-内涵-鉴赏能力-文化)*跟风=买iPod


页首
 用户资料  
 
15 楼 
 文章标题 : 你怎么搞成功的?
帖子发表于 : 2007-10-28 17:47 

注册: 2007-10-28 10:05
帖子: 13
送出感谢: 0 次
接收感谢: 0 次
Beetle
改了什么?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 30 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译