红联Linux门户
Linux帮助

我与FreeBSD的故事

发布时间:2006-08-31 16:29:27来源:红联作者:ztonline
作者:fantix
7月28日 - 初识FreeBSD
那是在很久很久以前,带我的老师有个项目要用到unix,然后故事就开始了……上网查了不少资料,最后选择了FreeBSD作为我,接触的第一个unix操作系统。
下iso,刻盘,装vm,终于,一套龌龊的系统被我磕磕碰碰的装进了虚拟机里。我本来就是从dos时代过来的(说的跟真的似的),所以看着这黑底白字的提示符,倒是有几分亲切。随着接触的越来越多,FreeBSD的什么package啊,ports啊,内核啊什么的也慢慢变得眼熟了。上真实环境吧,vm算什么英雄好汉,我想。轻车熟路,三下五除二,最小化安装的bsd终于站到了与windows server 2003并列的位置上来了。但总那么一条命令一条命令的打,也不是个事啊,总得给我个借口彻底卸载MS打头的东西吧--于是,开始装gui,kde的安装过程也很顺利。到了配置x的时候了,由于缺乏经验,在加上两台机器协作(我的机器工作,另一台专门查资料~~嘿嘿),这个步骤费了不少劲。在几经周折之后,终于进到了桌面环境下。
后来发生了什么呢?各种各样的package/port/配置被装到了ibm 10G的slice里,输入法、汉化包、eva、jdk、idea、声音、视频,等等等等。终于,FreeBSD已经成为一个足够完美的借口,让任何人卸载MS打头的程序了。但是这时,一个问题出现了。
i915、drm模块:
# kldstat
....
12 1 0xc38b2000 5000 i915.ko
13 1 0xc38b7000 e000 drm.ko
支持agp模仿的显卡,动态显存:
# dmesg | grep agp
agp0: port 0x1800-0x1807 mem 0xe0000000-0xe7ffffff,0xd0000000-0xd007ffff irq 11 at device 2.0 on pci0
agp0: detected 8060k stolen memory
agp0: aperture size is 128M
drm:
# dmesg | grep drm
drmsub1: mem 0xe8000000-0xefffffff,0xd0080000-0xd00fffff at device 2.1 on pci0
info: [drm] AGP at 0xe0000000 128MB
info: [drm] Initialized i915 1.2.0 20041217
没有启动3D加速:
# glxinfo | grep direct
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
Xorg配置:
...
Section "Module"
...
Load "dri"
...
EndSection
...
Section "Device"
Identifier "Card0"
Driver "i810"
VendorName "Intel Corporation"
BoardName "82852/855GM Integrated Graphics Device"
BusID "PCI:0:2:0"
# VideoRam 8060
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 16
...
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768" "800x600"
EndSubSection
EndSection
Section "DRI"
Group 0
Mode 0666
Endsection
xorg启动日志里有错误:
# cat /var/log/Xorg.0.log
....
(WW) I810(0): xf86AllocateGARTMemory: allocation of 4 pages failed
(Cannot allocate memory)
(EE) I810(0): Failed to allocate HW (ARGB) cursor space.
(II) I810(0): Allocated 4 kB for Overlay registers at 0x7ffe000 (0x0869a000).
(II) I810(0): Allocated 64 kB for the scratch buffer at 0x7fee000
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
[drm] failed to load kernel module "i915"
(II) I810(0): [drm] drmOpen failed
(EE) I810(0): [dri] DRIScreenInit failed. Disabling DRI.
....
就是说,原本支持3D加速的显示卡,intel的破集成显卡,愣是没法起3D加速作用!
8月20日 - 再次修改内核,终于有变化了
感谢cu的同仁们,给了很多有益的建议。终于,在内核中加入了drm、i915drm后,有了变化。
# cat SYSKNL
....
device agp
....
device drm
device i915drm
....
编译、安装、重启,发现设备里出了点问题:
# dmesg | grep drm
drmsub0: port 0x1800-0x1807 mem 0xe0000000-0xe7ffffff,0xd0000000-0xd007ffff irq 11 at device 2.0 on pci0
error: [drm:pid0:drm_load] *ERROR* Card isn't AGP, or couldn't initialize AGP.
device_attach: drmsub0 attach returned 12
drmsub1: mem 0xe8000000-0xefffffff,0xd0080000-0xd00fffff at device 2.1 on pci0
error: [drm:pid0:drm_load] *ERROR* Card isn't AGP, or couldn't initialize AGP.
device_attach: drmsub1 attach returned 12
# dmesg | grep agp
# ...别看了,没agp了
X自然也是这么讲了:
# cat /var/log/Xorg.0.log | grep \(EE
(EE) GARTInit: Unable to open /dev/agpgart (No such file or directory)
# cat /var/log/Xorg.0.log | grep \(WW
(WW) I810(0): Bad V_BIOS checksum
(WW) I810(0): /dev/agpgart is either not available, or no memory is available
(WW) I810(0): Bad V_BIOS checksum
(WW) I810(0): Extended BIOS function 0x5f05 failed.
莫非又是因为动态显存的问题,搞的这玩意儿人不像人,鬼不像鬼的。IBM打死是改不了动态显存的大小了,人家IBM工程师很自豪的说,我们的显存不需要手动设置的,如果须要,它会自动划分更多空间……
文章评论

共有 2 条评论

  1. east_yan 于 2006-09-03 20:21:19发表:

    谢谢

  2. ztonline 于 2006-08-31 16:29:42发表:

    8月1日 - package安装JDK
    我从大一学java到现在,编程一直用它,价格便宜量又足。如今换了操作系统,用上了大名鼎鼎的fb,java肯定是必备的了。二话不说,开始安装。
    ......
    后来,想试试ports装jdk啥感觉(纯属吃饱了撑的),于是在/usr/ports/java/diablo-jdk15下make了个 install和clean,这下子惹出事来了。上来说几个包没找到,后来又说什么东西版本不对,更甚至有次直接说某某java代码有编译错误。来回折腾了半天也不见起色--其中”半天“绝对是乐观估计,因为单单编译过程,就耗时2~4小时,占用硬盘1G+空间。其代价之庞大,气势之浩荡,乃亘古为曾有也。终于在后来吸取了几次ports装jdk的经验教训,终于成功装上了diablo-jdk15与jdk15(好像不大一样)。
    1、升级ports!版本问题可能会直接影响编译结果。
    2、按说明,慢慢来。英文文档慢慢读~~
    3、查资料,看人家怎么弄的。
    JDK装好之后,先跑的是一套IntelliJ IDEA 5.1.2 for linux,俺们最习惯用的一套java/j2ee IDE。在赞叹KDE界面精美的同时,我宣布基于java的idea运转正常,jdk安装成功。就在这时,当我试图修改误写为Heloo的类名时,问题出现了。似乎键盘上出了26个英文字母,其他所有键失灵!我意识到这是jdk出问题了,也许某个地方keymap没有映射到标准键盘上来?来回看了几个地方,没有跟这个问题相关的配置,试过其他几个java程序也是一样。最后还是internet上提供了问题解释:
    jdk for FreeBSD的键盘bug:在开着NumLock的时候,键盘部分按键会失灵。
    我那个汗啊。拉倒,反正偶本本没小键盘,不用也罢。