Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28598
  • 博文数量: 6
  • 博客积分: 406
  • 博客等级: 一等列兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-26 11:26
文章分类

全部博文(6)

文章存档

2011年(5)

2009年(1)

分类: LINUX

2011-03-03 19:20:30

很早就听说2.6.38内核的小补丁,大改进,但一直懒的更新内核。
最近一冲动,把系统全部更新,中间遇到点问题,后来算是解决了。
做下记录,希望能给其他人带来帮助。

更新系统命令,仅作个人记录,备查
  1. emerge -av --update --deep --newuse world
中间会遇到各种问题,一般是各种依赖,不细说了
  1. emerge --depclean
  2. revdep-rebuild
更新过程中到ati-drivers的时候,编译不过去。
  1. /opt/portage/x11-drivers/ati-drivers-11.2/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘fglrx_pci_suspend’:
  2. /opt/portage/x11-drivers/ati-drivers-11.2/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:851:9: error: implicit declaration of function ‘acquire_console_sem’
  3. /opt/portage/x11-drivers/ati-drivers-11.2/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:873:9: error: implicit declaration of function ‘release_console_sem’
  4. /opt/portage/x11-drivers/ati-drivers-11.2/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: At top level:
google之。找到问题所在,>acquire/release_console_sem已经变为console_lock/unlock, 处理方式么,我先找到个补丁,手动改了源文件。补丁见 的4楼,
当然更简单的方式是用sed了。
  1. sed -i 's/acquire_console_sem/console_lock/;s/release_console_sem/console_unlock/' firegl_public.c
但是我不会修改gentoo的ebuild,每次emerge都会重新解压,不会用我更改的文件编译。
我只好用笨办法了。看来要懂点ebuild了,有哪位高手知道可以不改ebuild的办法,还请多指教

笨办法就是手动执行
  1. # bash ati-driver-installer-11-2-x86.x86_64.run
安装完毕,但是它不会生成内核模块,看下log就知道,内核模块就要手动编译了。也很简单 进入/lib/modules/fglrx/build_mod,使用上面介绍的方法修改源代码后执行bash make.sh, 再根据指示到上层目录执行bash make_install.sh,内核模块就安装好了。ati-config --initial后重启试试吧。
阅读(1174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~