Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187035
  • 博文数量: 28
  • 博客积分: 1490
  • 博客等级: 上尉
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-17 10:01
文章分类
文章存档

2012年(3)

2011年(2)

2008年(2)

2007年(7)

2006年(14)

我的朋友

分类: LINUX

2006-12-10 14:23:17



有两个选择:一是用 ATI 自己提供的驱动();二是利用开源驱动()。他们的配置方式有些不同,安装的包自然是不一样的。

我首先采用的是 开源驱动 来安装的,当时有些问题没有处理好以失败告终,后来利用 ATI 的驱动时才有所体会。开源驱动肯定是可以用的。但本文还是以 ATI 提供的驱动做实例。基本上是按照 how to 来说明的。

1. 内核配置 (针对 2.6, 我采用的版本是 2.6.17-gentoo-r8)

# cd /usr/src/linux

# make menuconfig

按照 how to 来作就好了。

General setup --->

() Local version - append to kernel release (Currently, ati-drivers won't fully compile if you append anything to your version)

Loadable Module Support --->

[*] Enable loadable module support

[*] Module unloading

Processor type and features --->

[*] MTRR (Memory Type Range Register) support

Device Drivers --->

Character Devices --->

/dev/agpgart (AGP Support)

Your_AGP_Chipset_Here

< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)

Graphics support --->

[ ] Support for framebuffer devices

Kernel Hacking --->

[ ] Kernel debugging


但这里有一点要指出的是,也是很容易搞错的地方。在选项
/dev/agpgart (AGP Support) 的子项中不要想当然地认为自己显卡是 ATI 的就选了
   ATI chipset support
我开始就是犯了这个错误。(我想,这里应该是指主板的芯片类型支持)你可以这样来确定:

# lspci | grep AGP


比如我的机器是:
00:01.0 PCI bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge (rev 03)
所以我这里应该是:

/dev/agpgart (AGP Support)

< > ATI chipset support

Intel 440LX/BX/GX, I8xx and E7x05 chipset support


注意:别忘了编译、安装新内核,并以新的内核来引导系统。

# make && make modules_install

# cp arch/i386/boot/bzImage /boot/kernel-2.6.17-gentoo-r8


在启动引导菜单中加入新的引导选项,我的机器采用 grub,
/boot 分区在 /dev/hda8, / 分区在/dev/hda10,所以:

# vim /boot/grub/grub.conf

title Gentoo Linux 2.6.17-r8 (ATI Radeon 9000 driver)

    root (hd0,7)

    kernel /kenerl-2.6.17-gentoo-r8 root=/dev/hda10

# reboot


2. 安装驱动
你用新的内核启动后,通常没法进入登录窗口,因为新的显卡驱动还没有安装,你的 X 配置没有更改。。。
你可以在 reboot 前将默认启动登录窗口禁止。

# rc-update del xdm default

或者 在无法启动登录界面时,按 CTRL-ALT-F1 然后在文字终端登录,并且运行

# /etc/init.d/xdm stop


现在安装驱动了。
howto 上讲了一下关于去掉 dlloader 的选择的问题,如果你的 xorg-x11 安装时用了这个选项的话,那你要重新编译 xorg-x11 了。
你大概也不用做那些 umask 的设置了,默认选项里面是直接可以安装的。

# emerge -av x11-drivers/ati-drivers x11-apps/ati-drivers-extra

# env-update && source /etc/profile

# modprobe fglrx

# eselect opengl set ati


你需要 copy 一些文件到指定的目录
# find /usr -iname fglrx_dri.so
通常在 /usr/lib/dri/ 目录下
# ls /usr/lib/dri
atiogl_a_dri.so  fglrx_dri.so  r200_dri.so  r300_dri.so  radeon_dri.so
HowTo 里面说只用 copy fglrx_dri.so 就行了,但后来发现 atiogl_a_dri.so 这个文件也要用的,就都 cp 过去好了。
HowTo 里面描述的目标目录是 /usr/X11R6/lib/modules/dri/ 也就是 /usr/lib/modules/dri/ 但后来发现链接库找的目录是 /usr/lib/dri, 所以你要是防止出现问题的话不妨多做几个链接,或者根据错误信息来定位目录。
# cp /usr/lib/dri/* /usr/X11R6/lib/modules/dri/
别忘了做这一步,在别的系统上应该是 ldconfig, 但在gentoo 上做ldconfig 是不够的。
# env-update

3. 配置 X
# /opt/ati/bin/aticonfig --initial --input=/etc/X11/xorg.conf
不过,我觉得在里面的描述来配置更好。

我单个屏幕的设置是 1024x768,做水平扩展后的就是 2048x768 了。

# export PATH=/opt/ati/bin:$PATH

# aticonfig --initial=dual-head --screen-layout=right

# aticonfig --dtop=horizontal --overlay-on=1

# aticonfig --resolution=0,2048x768,1024x768

现在去你的 X 配置文件看看,里面有一些选项已经添加或者更改了。
# vim /etc/X11/xorg.conf
如果你启动 X 后,发现了错误,你可能要修改里面的配置了。

可以启动 X 了。
# startx
不过我大都选用登录窗口来启动新的会话

# /etc/init.d/xdm start


看看启动后桌面有什么不同吗?如果你的 gdm 登录窗口没有象预期的那样扩展到两个显示器上面,或者你的桌面没有扩展,我只能说你很幸运,因为你可以在解决这些问题的同时来提升自己对系统的了解。;-)

我碰到的一些问题。
1) $ /opt/ati/bin/fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: Mesa project:
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.2.1)
我被这个问题磨练了好久,正确的显示结果应该是
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY/RADEON 9000 DDR Generic
OpenGL version string: 1.3.1091 (X4.3.0-8.27.6)
你首先应该做这些:
(1)确认你的驱动模块已经启动
# lsmod
fglrx                 392300  8
intel_agp              23708  1
agpgart                35532  2 fglrx,intel_agp
如果没有,用 modprobe 来加载模块
并编辑自动模块加载文件,例如我的机器:
# vim /etc/modules.autoload.d/kernel-2.6.17-gentoo-r8
fglx
intel_agp
agpgart
以让下次启动时这些模块自动加载。
# modules-update

(2) 编辑 /etc/X11/xorg.conf 文件确认

Section "Extensions"
        Option      "Composite" "false"
EndSection

(3) 如果你上面都确认了,你这时重启系统比较好。

(4) 如果你还要往下看的话。这里有一些建议:如果你开始也像我一样尝试了 开源驱动 的话,并且按照开源驱动做了相应的配置了,你要尝试一下去卸载那些包或者更改那些相关配置文件。如果你采用手动删除那些包的话(并不推荐),别忘了做 env-update 。

2) 每个人的机器可能配置不一样,所以解决方法可能有区别。但有一种解决方式是一致的,那就是 google your problems 了,有做广告的嫌疑了 ;-)

3) 消除日志文件 /var/log/Xorg.0.log 用(EE)标识的每一个错误后,通常你就成功了。本文最后列出我的 /etc/X11/xorg.conf 文件内容,我觉得这个参考价值比较大一些。

4. 最后的提醒
(你一定要看的,我在这上面浪费了不少时间,绝对是浪费)

如果你的以前系统屏幕的分辨率是 1024x768(我想这种情况的比较多), 并且你平时都是用普通用户登录的(不推荐用root来登录系统),那么咱俩的情形就相同了。
我 的情况:gdm 登录屏幕是扩展的,但登录后,桌面是那种 clone 模式,也就是两个桌面显示相同的内容,但明明在 /etc/X11/xorg.conf 里面设置的是水平扩展,于是我就比较郁闷了,在用 root 登录看看,发现桌面是按照预期扩展的,我就纳闷了,难道是用户的问题?但我确认了自己的用户在 video 组里面,并且在xorg.conf文件里也有对应的设置。我非常困惑了。又 google 了好久,不抖包袱了,但确实是里面的某一文章说到了一下分辨率的问题,我被触动了,一看分辨率,当前的还是 1024x768,于是我改了一下,选用 2048x768,大功告成!!

5. 一些应用程序相关的问题

目前只发现 acroread 有些问题
(1) 关于 Adobe Reader (7.0.8 chs) 的字体变得超宽,可读性极差。几经试探,发现可以这样解决:

菜单==>>编辑==>>首选项==>>分辨率

( )使用系统分辨率 当前显示: 158 像素/英寸

(*)自定义分辨率: 158 像素/英寸


很奇怪,这样设置就 Ok 了。有些晕。不管它了。


后记
双显示器的好处还是显而易见的,你一边写代码一看文档,不用来回使 Atl+tab Ctrl+c Ctrl+v 了;你可以对照两篇文章来看,等等。一句话,好不好,用了才知道。

/etc/X11/xorg.conf
#########################################################
Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "aticonfig-Screen[0]" 0 0
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"

    # FontPath     "/usr/share/fonts/CID/"
    RgbPath      "/usr/share/X11/rgb"
    ModulePath   "/usr/lib/xorg/modules"
    FontPath     "/usr/share/fonts/misc/"
    FontPath     "/usr/share/fonts/TTF/"
    FontPath     "/usr/share/fonts/OTF"
    FontPath     "/usr/share/fonts/Type1/"
    FontPath     "/usr/share/fonts/100dpi/"
    FontPath     "/usr/share/fonts/75dpi/"
EndSection

Section "Module"
    Load  "glx"
    Load  "extmod"
    Load  "vnc"
    Load  "xtrap"
    Load  "record"
    Load  "dbe"
    Load  "dri"
    Load  "drm"
    Load  "freetype"
    Load  "type1"
EndSection

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
EndSection

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option        "Protocol" "IMPS/2"
    Option        "ZAxisMapping" "4 5"
    Option        "Device" "/dev/input/mice"
    Option        "Name" "USB Mouse"
EndSection

Section "Monitor"
    Identifier   "aticonfig-Monitor[0]"
    Option        "VendorName" "ATI Proprietary Driver"
    Option        "ModelName" "Generic Autodetecting Monitor"
    Option        "DPMS" "true"
EndSection

Section "Monitor"
    Identifier   "aticonfig-Monitor[1]"
    Option        "VendorName" "ATI Proprietary Driver"
    Option        "ModelName" "Generic Autodetecting Monitor"
    Option        "DPMS" "true"
EndSection

Section "Device"
    Identifier  "aticonfig-Device[0]"
    Driver      "fglrx"
    Option        "UseInternalAGPGART" "no"
    Option        "DesktopSetup" "horizontal"
    Option        "VideoOverlay" "on"
    Option        "UseFastTLS" "2"
    Option         "EnablePrivateBackZ" "on"
    Option        "OverlayOnCRTC2" "1"
    BusID       "PCI:1:0:0"
EndSection

Section "Device"
    Identifier  "aticonfig-Device[1]"
    Driver      "fglrx"
    BusID       "PCI:1:0:0"
    Screen      1
EndSection

Section "Monitor"

    #DisplaySize      300   230    # mm
 ### Comment all HorizSync and VertSync values to use DDC:
        # These are the DDC-probed settings reported by your monitor.
        # 1280x1024, 75.0Hz; hfreq=79.98, vfreq=75.03
    Identifier   "Default_Monitor"
    VendorName   "GSM"
    ModelName    "S"
    HorizSync    30.0 - 63.0
    VertRefresh  56.0 - 75.0
    ModeLine     "1280x1024" 135.0 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync
    ModeLine     "1024x768" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
    ModeLine     "1024x768" 78.8 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
    ModeLine     "1024x768" 75.0 1024 1048 1184 1328 768 771 777 806 -hsync -vsync
    ModeLine     "800x600" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
    ModeLine     "800x600" 49.5 800 816 896 1056 600 601 604 625 +hsync +vsync
    ModeLine     "800x600" 40.0 800 840 968 1056 600 601 605 628 +hsync +vsync
    Option        "DPMS"
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[0]"
    Device     "aticonfig-Device[0]"
    Monitor    "aticonfig-Monitor[0]"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
        Modes    "2048x768" "1024x768"
    EndSubSection
EndSection

Section "Screen"
    Identifier "aticonfig-Screen[1]"
    Device     "aticonfig-Device[1]"
    Monitor    "aticonfig-Monitor[1]"
    DefaultDepth     24
    SubSection "Display"
        Viewport   0 0
        Depth     24
    EndSubSection
EndSection

Section "DRI"
    Group        "video"
    Mode         0666
EndSection

Section "Extensions"
    Option        "Composite" "false" # "Enable"
    Option        "XVideo" "Enable"
EndSection

Section "ServerFlags"
    Option        "AIGLX" "off"
EndSection

阅读(6330) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~