【原创】ati-drivers-8.27.10.ebuild 率先支持 X.org 7.1 已进portage
时间:2006-08-02
来源:互联网
怀疑以前官方的不能正常安装在 xorg 7.0 上 , 此 ebuild 修正此点.
如 midx 所说, ATIer这回可以微笑一下
ATI 早于 Nvidia 推出了支持 X.org 7.1 的驱动程序.
下面有 ebuild , 在 xorg 7.0 和 7.1 , gcc-4.1.1 , kernel-2.6.16 下编译,安装,运行通过.
最后是打包好的.
注意:
1. 使用之前
下载 ati-driver-installer-8.27.10-x86.run 到 /usr/portage/distfiles/
touch /usr/portage/distfiles/ati-driver-installer-8.27.10-x86_64.run 免得下载
用 64 位驱动的反过来
最好重新 digest
2. xorg-server-1.1.x 仍然 block ati-drivers
解决方法 1. 先卸载旧版 ati-drivers , 安装 xorg-7.1 , 再装新的驱动, 因为要 --nodeps, 装之前先满足依赖, 一般 ati-drivers 需要 acpid
emerge -C ati-drivers emerge xorg-server xorg-x11 emerge ati-drivers -pv emerge ati-drivers --nodeps
$ diff /usr/portage/x11-base/xorg-server/xorg-server-1.1.1.ebuild /usr/local/portage-xgl-own/x11-base/xorg-server/xorg-server-1.1.1.ebuild 146c146 < !x11-drivers/ati-drivers" --- > !<x11-drivers/ati-drivers-8.27.4"
# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/x11-drivers/ati-drivers/ati-drivers-8.26.18-r1.ebuild,v 1.2 2006/07/09 17:24:02 lu_zero Exp $ IUSE="acpi doc opengl" inherit eutils rpm multilib linux-mod linux-info toolchain-funcs DESCRIPTION="Ati precompiled drivers for r350, r300, r250 and r200 chipsets" HOMEPAGE="http://www.ati.com" SRC_URI="x86? ( mirror://gentoo/ati-driver-installer-${PV}-x86.run ) amd64? ( mirror://gentoo/ati-driver-installer-${PV}-x86_64.run )" LICENSE="ATI" KEYWORDS="-* ~amd64 ~x86" RDEPEND="|| ( x11-base/xorg-server virtual/x11 ) || ( x11-apps/xauth virtual/x11 ) !>=x11-base/xorg-server-1.0.99 app-admin/eselect-opengl || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) acpi? ( sys-power/acpid )" DEPEND=">=virtual/linux-sources-2.4 ${RDEPEND}" PROVIDE="virtual/opengl" ATIBIN="${D}/opt/ati/bin" RESTRICT="nostrip multilib-pkg-force stricter" MODULE_NAMES="fglrx(video:${WORKDIR}/common/lib/modules/fglrx/build_mod)" QA_EXECSTACK_x86="usr/lib/xorg/modules/dri/fglrx_dri.so" QA_EXECSTACK_amd64="usr/lib64/xorg/modules/dri/fglrx_dri.so usr/lib32/xorg/modules/dri/fglrx_dri.so" QA_TEXTREL_x86="usr/lib/xorg/modules/dri/fglrx_dri.so usr/lib/opengl/ati/lib/libGL.so.1.2" QA_TEXTREL_amd64="usr/lib64/xorg/modules/dri/fglrx_dri.so usr/lib32/opengl/ati/lib/libGL.so.1.2 usr/lib32/xorg/modules/dri/fglrx_dri.so usr/lib32/xorg/modules/dri/atiogl_a_dri.so" choose_driver_paths() { ARCH_DIR="${WORKDIR}/arch" COMMON_DIR="${WORKDIR}/common" #new modular X paths, 0 is a workaround. if has_version "x11-base/xorg-server"; then # so we are using >= X.org 7.0 if [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" = 0 ] then BASE_DIR="${WORKDIR}/x690" xlibdir="xorg" elif [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" = 1 ] then BASE_DIR="${WORKDIR}/x710" xlibdir="xorg" fi else BASE_DIR="${WORKDIR}/x$(get_version_component_range 1 ${X11_IMPLEM_V})" xlibdir="" # Determine if we are facing X.org 6.8.99 aka 6.9 if [ "$(get_version_component_range 1 ${X11_IMPLEM_V})" = 6 ] && [ "$(get_version_component_range 2 ${X11_IMPLEM_V})" = 8 ] && [ "$(get_version_component_range 3 ${X11_IMPLEM_V})" = 99 ] then BASE_DIR="${BASE_DIR}90" else BASE_DIR="${BASE_DIR}$(get_version_component_range 2 ${X11_IMPLEM_V})0" fi fi if use amd64 ; then BASE_DIR="${BASE_DIR}_64a" ARCH_DIR="${ARCH_DIR}/x86_64" else ARCH_DIR="${ARCH_DIR}/x86" fi } pkg_setup(){ #check kernel and sets up KV_OBJ linux-mod_pkg_setup local agp ebegin "Checking for MTRR support enabled" linux_chkconfig_present MTRR eend $? if [[ $? -ne 0 ]] ; then ewarn "You don't have MTRR support enabled, the direct rendering" ewarn "will not work." fi ebegin "Checking for AGP support enabled" linux_chkconfig_present AGP eend $? if [[ $? -ne 0 ]] ; then ebegin "Checking for PCI Express support enabled" linux_chkconfig_present PCIEPORTBUS eend $? if [[ $? -ne 0 ]] ; then ewarn "If you don't have either AGP or PCI Express support enabled, direct rendering" ewarn "could work only using the internal support." fi fi ebegin "Checking for DRM support disabled" ! linux_chkconfig_builtin DRM eend $? if [[ $? -ne 0 ]] ; then ewarn "You have DRM support enabled builtin, the direct rendering" ewarn "will not work." fi # Set up X11 implementation if has_version "x11-base/xorg-server"; then X11_IMPLEM=xorg-x11 X11_IMPLEM_V="$(best_version x11-base/xorg-x11)" X11_IMPLEM_V="${X11_IMPLEM_V/${X11_IMPLEM}-/}" X11_IMPLEM_V="${X11_IMPLEM_V##*\/}" elif has_version "<x11-base/xorg-x11-6.8.99"; then X11_IMPLEM=xorg-x11 X11_IMPLEM_V="$(best_version x11-base/xorg-x11)" X11_IMPLEM_V="${X11_IMPLEM_V/${X11_IMPLEM}-/}" X11_IMPLEM_V="${X11_IMPLEM_V##*\/}" else X11_IMPLEM_P="$(best_version virtual/x11)" X11_IMPLEM="${X11_IMPLEM_P%-[0-9]*}" X11_IMPLEM="${X11_IMPLEM##*\/}" X11_IMPLEM_V="${X11_IMPLEM_P/${X11_IMPLEM}-/}" X11_IMPLEM_V="${X11_IMPLEM_V##*\/}" fi einfo "X11 implementation is ${X11_IMPLEM}" einfo "X11 version is ${X11_IMPLEM_V}" choose_driver_paths } src_unpack() { local OLDBIN="/usr/X11R6/bin" ebegin "Unpacking Ati drivers" sh ${DISTDIR}/${A} --extract ${WORKDIR} &> /dev/null eend $? || die "unpack failed" rm -rf ${ARCH_DIR}/usr/X11R6/bin/{fgl_glxgears,fireglcontrolpanel} cd ${WORKDIR}/common/lib/modules/fglrx/build_mod #if kernel_is ge 2 6 16; then # epatch ${FILESDIR}/${PN}-8.22.5-intermodule.patch # epatch ${FILESDIR}/${PN}-8.23.7-noiommu.patch # epatch ${FILESDIR}/${PN}-8.23.7-gcc41.patch #fi if use acpi then sed -i \ -e "s/\/var\/lib\/xdm\/authdir/\/etc\/X11\/xdm\/authdir/" \ -e "s/\/var\/lib\/gdm/\/var\/gdm/" \ -e "s/#ffff#/#ffff##:.*MIT-MAGIC-COOKIE/" \ "${WORKDIR}/common/etc/ati/authatieventsd.sh" \ || die "sed failed." fi } src_compile() { einfo "Building the DRM module..." cd ${WORKDIR}/common/lib/modules/fglrx/build_mod ln -s \ ${ARCH_DIR}/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) \ || die "cannot find precompiled core" if kernel_is 2 6 then set_arch_to_kernel addwrite "/usr/src/${FK}" cp 2.6.x/Makefile . export _POSIX2_VERSION="199209" if use_m ; then make -C ${KV_DIR} M="`pwd`" GCC_VER_MAJ=$(gcc-major-version) \ modules || ewarn "DRM module not built" else make -C ${KV_DIR} SUBDIRS="`pwd`" GCC_VER_MAJ=$(gcc-major-version) \ modules || ewarn "DRM module not built" fi set_arch_to_portage else export _POSIX2_VERSION="199209" # That is the dirty way to avoid the id -u check sed -e 's:`id -u`:0:' \ -e "s:\`uname -r\`:${KV_FULL}:" \ -i make.sh chmod +x make.sh ./make.sh || ewarn "DRM module not built" fi } pkg_preinst() { # Clean the dynamic libGL stuff's home to ensure # we don't have stale libs floating around ... if [ -d "${ROOT}/usr/lib/opengl/ati" ] then rm -rf ${ROOT}/usr/lib/opengl/ati/* fi } src_install() { local ATI_LIBGL_PATH="" cd ${WORKDIR}/common/lib/modules/fglrx/build_mod linux-mod_src_install cd ${WORKDIR} local native_dir use x86 && native_dir="lib" use amd64 && native_dir="lib64" # Install the libs # MULTILIB-CLEANUP: Fix this when FEATURES=multilib-pkg is in portage local MLTEST=$(type dyn_unpack) if [ "${MLTEST/set_abi/}" = "${MLTEST}" ] && has_multilib_profile; then local OABI=${ABI} for ABI in $(get_install_abis); do src_install-libs done ABI=${OABI} unset OABI elif has_multilib_profile; then src_install-libs elif use amd64; then src_install-libs lib $(get_multilibdir) src_install-libs lib64 $(get_libdir) else src_install-libs fi &> /dev/null #apps, man pages, and conf files exeinto /opt/ati/bin doexe ${ARCH_DIR}/usr/X11R6/bin/* if use acpi then exeinto /opt/ati/sbin doexe ${ARCH_DIR}/usr/sbin/* insinto /opt/ati/man/man8 doins common/usr/share/man/man8/* doinitd ${FILESDIR}/atieventsd.rc6 atieventsd dodir /etc/conf.d echo 'ATIEVENTSDOPTS=""' > ${D}/etc/conf.d/atieventsd fi #ati custom stuff insinto /usr doins -r ${WORKDIR}/common/usr/include # doc's if use doc; then dodir /usr/share/doc/fglrx cp -pPR common/usr/share/doc/fglrx/* \ ${D}/usr/share/doc/fglrx fi #env.d entry cp ${FILESDIR}/09ati ${T}/ if use acpi then local ATIETC="${WORKDIR}/common/usr/share/doc/fglrx/examples/etc/acpi" exeinto /etc/acpi doexe ${ATIETC}/ati-powermode.sh insinto /etc/acpi/events doins ${ATIETC}/events/a-ac-aticonfig doins ${ATIETC}/events/a-lid-aticonfig fi #Work around hardcoded path in 32bit libGL.so on amd64, bug 101539 if has_multilib_profile && [ $(get_abi_LIBDIR x86) = "lib32" ] ; then ATI_LIBGL_PATH="/usr/lib/dri:/usr/$(get_libdir)/dri:/usr/lib32/${xlibdir}/modules/dri/:/usr/$(get_libdir)/${xlibdir}/modules/dri" fi cat >>${T}/09ati <<EOF LIBGL_DRIVERS_PATH="\$LIBGL_DRIVERS_PATH:$ATI_LIBGL_PATH" EOF doenvd ${T}/09ati } src_install-libs() { local pkglibdir=lib local inslibdir="$(get_libdir)/${xlibdir}" ATI_LIBGL_PATH="${ATI_LIBGL_PATH}:/usr/$(get_libdir)/${xlibdir}/modules/dri" if [ ${#} -eq 2 ]; then pkglibdir=${1} inslibdir=${2} elif has_multilib_profile && [ "${ABI}" == "amd64" ]; then pkglibdir=lib64 fi einfo "${pkglibdir} -> ${inslibdir}" local ATI_ROOT="/usr/$(get_libdir)/opengl/ati" # The GLX libraries exeinto ${ATI_ROOT}/lib doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/libGL.so.1.2 dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so.1 dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so # Don't do this... see bug #47598 #dosym libGL.so.1.2 ${ATI_ROOT}/lib/libMesaGL.so # same as the xorg implementation dosym ../${X11_IMPLEM}/extensions ${ATI_ROOT}/extensions #Workaround if use opengl ; then sed -e "s:libdir=.*:libdir=${ATI_ROOT}/lib:" \ /usr/$(get_libdir)/opengl/${X11_IMPLEM}/lib/libGL.la \ > $D/${ATI_ROOT}/lib/libGL.la dosym ../${X11_IMPLEM}/include ${ATI_ROOT}/include fi # X and DRI driver if has_version "<x11-base/xorg-x11-6.8.0-r4" then local X11_DIR="/usr/X11R6/" else local X11_DIR="/usr/" fi local X11_LIB_DIR="${X11_DIR}${inslibdir}" exeinto ${X11_LIB_DIR}/modules/drivers # In X.org 6.8.99 / 6.9 this is a .so doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/drivers/fglrx_drv.*o exeinto ${X11_LIB_DIR}/modules/dri doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so doexe ${ARCH_DIR}/usr/X11R6/${pkglibdir}/modules/dri/atiogl_a_dri.so exeinto ${X11_LIB_DIR}/modules/linux # In X.org 6.8.99 / 6.9 this is a .so if has_version ">=x11-base/xorg-x11-6.8.99" || \ has_version "x11-base/xorg-server" then doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.so else doexe ${BASE_DIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.a fi if has_version ">=x11-base/xorg-x11-6.8.99" || \ has_version "x11-base/xorg-server" then cp -pPR ${ARCH_DIR}/usr/X11R6/${pkglibdir}/lib{fglrx_*,aticonfig} \ ${D}/usr/$(get_libdir) else cp -pPR ${ARCH_DIR}/usr/X11R6/${pkglibdir}/lib{fglrx_*,aticonfig.a} \ ${D}/usr/$(get_libdir) fi #Not the best place insinto ${X11_DIR}/include/X11/extensions doins ${COMMON_DIR}/usr/X11R6/include/X11/extensions/fglrx_gamma.h dodir /etc cp -pPR ${COMMON_DIR}/etc/* ${D}/etc/ } pkg_postinst() { /usr/bin/eselect opengl set --use-old ati echo einfo "To switch to ATI OpenGL, run \"eselect opengl set ati\"" einfo "To change your xorg.conf you can use the bundled \"aticonfig\"" if use !opengl ; then ewarn "You don't have the opengl useflag enabled, you won't be able to build" ewarn "opengl applications nor use opengl driver features, if that isn't" ewarn "the intended behaviour please add opengl to your useflag and issue" ewarn "# emerge -Nu ati-drivers" fi echo einfo "If you experience unexplained segmentation faults and kernel crashes" einfo "with this driver and multi-threaded applications such as wine," einfo "set UseFastTLS in xorg.conf to either 0 or 1, but not 2." # DRM module linux-mod_pkg_postinst } pkg_postrm() { linux-mod_pkg_postrm /usr/bin/eselect opengl set --use-old xorg-x11 }
ati-drivers.tar.gz (12.6 KB, 35 次查看) |
作者: VirusCamp 发布时间: 2006-08-02
作者: fakeid 发布时间: 2006-08-02
作者: 狱卒 发布时间: 2006-08-02
作者: 晨想 发布时间: 2006-08-02
glxgears得分才250多点,以前是2500多呀。没装这个驱动也有380左右。
可要说没有装成功呢,glxgears的画面明显非常顺畅,感觉上和以前的效果是一致的。用xorg 7.1里面的驱动,glxgears非常的卡。怎么回事呢?
作者: ifree 发布时间: 2006-08-02
作者: lucida 发布时间: 2006-08-02
作者: lucida
portage已经有了。。。
|
作者: VirusCamp 发布时间: 2006-08-02
作者: midx 发布时间: 2006-08-02
http://www.fsf.org/blogs/community/rms-ati-protest.html
作者: zhllg 发布时间: 2006-08-02
相反 NVIDIA 反应一向都挺快的(除了对XEN),RMS 应该没那么快就跑去折腾 NVIDIA的。嘿嘿
作者: 晨想 发布时间: 2006-08-03
作者: ifree 发布时间: 2006-08-03
作者: coolman_725 发布时间: 2006-08-03
$ glxgears 4926 frames in 5.0 seconds = 984.994 FPS 4751 frames in 5.0 seconds = 950.185 FPS $ fgl_glxgears Using GLX_SGIX_pbuffer 1917 frames in 5.0 seconds = 383.400 FPS 1963 frames in 5.0 seconds = 392.600 FPS
X300
作者: 食古不化 发布时间: 2006-08-03
作者: 食古不化
代码:
$ glxgears 4926 frames in 5.0 seconds = 984.994 FPS 4751 frames in 5.0 seconds = 950.185 FPS $ fgl_glxgears Using GLX_SGIX_pbuffer 1917 frames in 5.0 seconds = 383.400 FPS 1963 frames in 5.0 seconds = 392.600 FPS X300 |
不过我是64bit的
作者: 种草得草 发布时间: 2006-08-03
fgl_glxgears 620左右
作者: baryon 发布时间: 2006-08-03
唉,我插得上话的话题不多,太激动了,汗颜。
作者: baryon 发布时间: 2006-08-03
http://www.linuxsir.org/bbs/showthread.php?t=263057
表明, 用于 X.org 7.1 的 fglrx 驱动, 普遍出现问题,
在 fglrxinfo 和 glxinfo 显示驱动正常的情况下,
glxgears 成绩偏低, 但 fgl_glxgears 成绩正常.
甚至出现, fgl_glxgears 比 glxgears 快的情况:
yangtse@yangtse ~ $ fgl_glxgears Using GLX_SGIX_pbuffer 2390 frames in 5.0 seconds = 478.000 FPS yangtse@yangtse ~ $ glxgears 1258 frames in 5.0 seconds = 251.418 FPS
请提供如下问题答案
1. 是否升级 mesa ?
2. ati-drivers 安装完成后, 是否安装了 ati-drivers-extra ( fgl_glxgears ), mesa-progs ( glxgears ).
就是当前的 mesa 及 ati-drivers 是不是编译 glxgears 及 fgl_glxgears 时的.
如果不是请重新编译, 再看结果.
emerge ati-drivers-extra mesa-progs
作者: VirusCamp 发布时间: 2006-08-03
# eselect opengl list Available OpenGL implementations: [1] ati * [2] mesa-cvs [3] xorg-x11
作者: 食古不化 发布时间: 2006-08-04
fgl_glxgears比glxgears快的那样。
作者: ifree 发布时间: 2006-08-04
至少 dri , 3d 硬件驱动确实跑起来了.
再问, 有人用 新的 ati-drivers 和 xorg-server-1.1.1 跑 3d 软件, 比如游戏(Quake3? Doom3?), XGL 的吗?
这时游戏和软件跑的顺不顺? 如果顺, 就不管 glxgears 了.
ps , 我两天前在 bugzilla 上提交, 已被接受, 此 ebuild 已(即将?)进入官方, 不用从这下了.
作者: VirusCamp 发布时间: 2006-08-04
作者: VirusCamp
看来"fgl_glxgears比glxgears快"是 ati-drivers 和 xorg-server-1.1.1 mesa等的配合问题, 可能 ati 的人才能解决.
至少 dri , 3d 硬件驱动确实跑起来了. 再问, 有人用 新的 ati-drivers 和 xorg-server-1.1.1 跑 3d 软件, 比如游戏(Quake3? Doom3?), XGL 的吗? 这时游戏和软件跑的顺不顺? 如果顺, 就不管 glxgears 了. ps , 我两天前在 bugzilla 上提交, 已被接受, 此 ebuild 已(即将?)进入官方, 不用从这下了. |
请问什么叫“已(即将?)进入”?直接可以emerge 了而不用下载ebuilds了吗?
作者: sheep204 发布时间: 2006-08-05
作者: sheep204
请问什么叫“已(即将?)进入”?直接可以emerge 了而不用下载ebuilds了吗?
|
作者: VirusCamp 发布时间: 2006-08-05
*ati-drivers-8.27.10-r1 (04 Aug 2006) 04 Aug 2006; Chris Bainbridge <[email protected]> +files/ati-powermode.sh.patch, files/atieventsd.rc6, +ati-drivers-8.27.10-r1.ebuild: Fix to work with xorg 7.0, fix eventsd init script, fix power state restore, thanks to Armando Di Cianno and Christian Affolter in bug #139458 |
作者: midx 发布时间: 2006-08-05
The currently drivers don't support X.org 7.1. Support will probably appear in the 9xxx series of drivers.
-- Aaron
Maybe new NV driver will come soon...
作者: fiag 发布时间: 2006-08-05
作者: fiag
Gentoo Forums :: >=xorg-server-1.0.99 blocks nvidia/ati binary drivers
The currently drivers don't support X.org 7.1. Support will probably appear in the 9xxx series of drivers. -- Aaron Maybe new NV driver will come soon... |
02 Aug 2006; Donnie Berkholz <[email protected]>; xorg-server-1.1.0-r1.ebuild, xorg-server-1.1.1.ebuild: Add VIDEO_CARDS=fglrx back in, now that there's a compatible driver. |
作者: midx 发布时间: 2006-08-05
9x系列应该会加入GLX_EXT_texture_from_pixmap
不过两边有竞争总是好事情。
作者: lucida 发布时间: 2006-08-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28