算来用Gentoo也有一年半了,也没为sir的兄弟们做过什么贡献。
决定现在开始把自己遇到过的问题和解决方法整理在这里,
方便新手学习和老手指导。
如果有错,麻烦指出。
也欢迎大家把自己的经验在这跟贴。:thank
======================================================================
问:我从哪里可以学到更多有关gentoo的知识?
答:官方文档:www.gentoo.org/doc 和 非官方的 gentoo-wiki.com
都有很多很好的文档,希望你能找到想要的东西。
======================================================================
问:我可以用stage1(stage2)安装吗?
答:原则上不推荐用stage1(stage2)。
在Gentoo中,用stage1(stage2)安装的唯一优势是第一遍是在自己机子上优化编译的。
这优势在stage3用 emerge -i system 或日子长了升级了基础包后将完全丧失。
如果想锻炼动手能力和了解Linux系统的结构,请试试LFS吧,
因为stage1(stage2)安装现在已经没有文档可看了。
======================================================================
问:系统安装完重启,找不到分区。
答:这一般出现在SATA硬盘的机子上。关键点是内核没来得及加载上scsi驱动。
解决方法1:把主板驱动(我这里是
Device Drivers --->ATA/ATAPI/MFM/RLL support --->AMD and nVidia IDE support)
和scsi驱动( 我这里是
Device Drivers --->SCSI device support --->SCSI disk support)
以及 libata 的 sata 驱动:
Device Drivers --->Serial ATA (prod) and Parallel ATA (experimental) drivers --->NVIDIA SATA support
编译进内核。
解决方法2:在主板驱动和scsi驱动编译成模块的前提下,这样修改boot 选项:- title Gentoo (Current)
- root (hd0,5)
- kernel /vmlinuz ro root=/dev/ram0 real_root=/dev/sda8 ramdisk_size=8192 doscsi udev quiet
复制代码
(具体参数会有所不同)
========================================================================
问:我的系统时间跟windows下不一样。
答:这问题我遇到过两种情况:
情况1:配置文件没设置对。
修改 /etc/conf.d/clock 把CLOCK 这行改成 CLOCK="local"
情况2:/dev/rtc 不存在。
这种情况是由于没加载 genrtc ,伴随的问题还会有不能修改硬件时间等。
解决方法是把 Device Drivers --->Character devices --->Enhanced Real Time Clock Support
编译进内核,或都编译成模块,并在 /etc/modules.autoload.d/kernel-2.6 中加载.
======================================================================
问:我如何升级系统?
答:升级系统的基本步骤是:- $ sudo emerge --sync # 更新portage
- $ sudo emerge -avuDN # 升级软件包
复制代码 但这样有可能导致一些系统问题,比如库链接失效,多出一些不必要的包等等。
所以我们推荐的升级步骤如下:- $ sudo emerge --sync
- $ sudo emerge -avuDN world
- $ sudo revdep-rebuild # app-portage/gentoolkit 包的一个工具。
- $ sudo emerge -av --depclean # 删除不必要的包,这步要小心点,以免误删了有用的包
复制代码
在emerge -av --depclean 里列出的包中如果有有用的包,请将其包名放入 /var/lib/portage/world 中.
======================================================================
问:我升级系统时遇到某个包编译不通过怎么办?
答:跳过去,一般不会有什么问题的.可以用如下命令:- $ sudo emerge --resume --skipfirst
复制代码 因为portage库庞大,加上软件包的更新很快,难免会出现一些软件包相互不兼容的问题.
特别是使用 ~x86/~amd64 的用户,出现的可能性更大点.
最简单的方法就是跳过去,等下次解决.可能等到你下次emerge --sync之后,就什么问题都没有了.
当然你也可以自己解决,记得把你的解决方法贴到 bugs.gentoo.org ,也算是参与了 gentoo的开发和维护 :-)
======================================================================
问:x86/amd64和~x86/~amd64是什么东西?起什么作用?
答:portage有一个keywords系统,允许用户选择自己偏好的软件包类型:如果你是以稳定性为上,
软件包旧点没关系的请使用没有~的 keyword如:x86, amd64, 如果你爱好开发,想随时试试新出的软件包,
那么你适合有~的keyword,比如:~x86, ~amd64.
系统安装完默认的就是 x86/amd64 的 keywords,要改 keywords,可以修改 /etc/make.conf- ACCEPT_KEYWORDS="~amd64" # 因为我的系统是 64 位的
- #ACCEPT_KEYWORDS="~x86"
复制代码
注意:添加 ~arch 的 keyword 只是增加了你能安装的软件包的范围,原先的 x86/amd64 keyword 的
软件包你仍然可以安装。所以你会在 emerge --info 中看到:- ACCEPT_KEYWORDS="x86 ~x86"
复制代码 或是- ACCEPT_KEYWORDS="amd64 ~amd64"
复制代码 ======================================================================
问:~x86/~amd64里的软件bug比x86/amd64里的多,对吗?
答:不对。一般的软件发布新版本后,版本号对应的源码包是保持不变的。
emerge 的安装过程一般是解压相应的源码包,进行编译和安装,最多进行一些gentoo的特色化设置,
而很少修改源码码本身,因为这是上游的软件开发人员的事。
一个版本的软件,在~x86/~amd64时与它进入x86/amd64后的差别其实只有ebuild里keywords一行里的几个字符。
======================================================================
问:既然~x86/~amd64里的软件跟x86/amd64没什么差,为什么要做这个区分?
答:区分keywords的原因是为了满足一下稳定性至上的用户。比如一些服务器用户和由于工作关系不能接受软件失效的用户,
当然,还有新手。使用x86/amd64 keywords 可以避免未经充分测试的软件安装到你的系统里。
在~x86/~amd64中的软件很多本身是没有什么问题的。在时间的洗礼下,
这些没有问题的软件通过Gentoo开发人员和用户的共同验证,最终会被放到x86/amd64里。
而在测试过程中发现bug的软件包则被打上mask标签,实现有需要的人可以手动unmask,
或者如果bug不是太严重,则永远留在~x86/~amd64里。
======================================================================
问:我想为Gentoo做贡献,如何开始?
答:这里提供两个方向,其它方向高级用户可以自行摸索。
1、进入Gentoo中文,帮助翻译Gentoo文档。详情请查阅, http://groups.google.com/group/gentoo-china
2、帮助汇报bug,Gentoo的bug汇报点在 bugs.gentoo.org ,请注意参看里面的指南。
对这个方向,个人提几点建议:
(1)使用 ~x86/~amd64 keywords,原因看上面。
(2)一定注意查看 emerge 过程输出的信息。
(3)汇报前查看是否已有人汇报相似bug
======================================================================
问:我是 intel64 的机器,想装 64 位系统,怎么 Gentoo 只有 amd64 版?
答:amd64是对 x86_64 的统称,因为 amd64 出得早,这名字就用了下来,后来 intel 也出 64 位,
amd64 也就把 intel64 给包括了进去。(总不能叫人家改名吧...)
所以想装 64 位系统的,选 amd64 版吧。
======================================================================
问:我如何安装 alsa 声卡驱动?
答:在gentoo下,alsa驱动有两种安装方法:1、直接使用内核驱动,2、使用portage中的 alsa-driver
推荐使用的是portage中的alsa-driver,因为版本更新。这里只介绍 alsa-driver 的用法。
首先确保你的内核中选中了 声卡支持,并去掉了 alsa 驱动(以免跟 alsa-driver 冲突)。
然后查看你的 声卡使用的模块,可以用 lspci,并查看 alsa-driver 的相应 USE
比如我的声卡是- 00:10.2 Multimedia audio controller: nVidia Corporation MCP51 AC97 Audio Controller (rev a2)
复制代码 一般的AC97声卡都使用 intel8x0 模块,看到 alsa-driver 中有这个 USE: alsa_cards_intel8x0 , 去掉前缀,
加入到 /etc/make.conf 的 ALSA_CARDS 中:现在:- $ sudo emerge -av alsa-driver
- $ sudo alsaconf
复制代码 安装完毕使用 alsamixer 调节音量,因为有些时候,默认设置是静音的。
最后保存音量:- $ sudo /etc/init.d/alsaound save
复制代码 ======================================================================
问:我的显卡是 intel/nvidia/ati 我该装什么驱动
答:
intel 的驱动是 i810(x11-drivers/xf86-video-i810), 很早就开源了,听说很好用,性能也不错。没有相关使用经验。
nvidia 的驱动有 开源的 nv(x11-drivers/xf86-video-nv),
闭源的官方驱动 (x11-drivers/nvidia-drivers),
当然你也可以用( vesax11-drivers/xf86-video-vesa)。
目前的情况是,由于 nvidia 的官方驱动做得算是比较好的,也很稳定,所以大部分 nvidia fans 都是用官方驱动的。
这里贴一张我以前的 xorg.conf
ATI的驱动种类现在有点多... 如下:
开源的 redeon(x11-drivers/xf86-video-ati), 已支持一些老显卡的3D加速(比如9550),
不过不支持r500/r600核心的新显卡, (连认都认不出来)
开源的 avivo(x11-drivers/xf86-video-avivo),专门为了r500核心开发,主要目标在视频播放,
不过后来ATI也要开源了(就是 radeonHD) ,这驱动也就停止开发了,从没进过portage.
开源的 radeonhd(x11-drivers/xf86-video-radeonhd), 支持 r500/r600,
1.0 已进入 portage, 但还不支持 2D/3D 加速。
闭源的官方驱动 fglrx(x11-drivers/ati-drivers) ,现在支持 aiglx ,稳定性也不错了
(我指的是 >=8.40.3)。
注意,虽然 fglrx 已经支持 xorg-server-1.4,但是在 xorg-server-1.4 下,
是开不了 aiglx的( 至少开不了 beryl/compiz-fusion,具体原因我没分析)。
想用 ati 玩 beryl/compiz-fusion 的,最好降下 xorg-server 和 xorg-x11 的级.
这里贴一下我现在在用的 xorg.conf====================================================================
问:我如何修改源?
答:Gentoo中没有源的概念。portage 与 distfiles 合起来可以跟源的概念等问。
portage里装的是ebuild, 可以说是软件包的数据库,指导portage从哪里下载源码包以及从何外下载。
distfile里就是源码包了。一般的源码包会被放在gentoo服务器中的distfiles文件夹中。
其他有些特殊的源码包(协议或体积大小等关系),要从软件的官方网站下载,
这可以由ebuild指定。再有些,必须签定用户协议的,portage会提示用户手动到官网下载,
并放置于 /usr/portage/distfiles 中。
portage对应的就是SYNC镜像,distfiles对应的就是GENTOO_MIRRORS。
可以通过修改 /etc/make.conf 中的 SYNC 和 GENTOO_MIRRORS 变量进行指定。我现在的配置文件:
- SYNC="rsync://64.127.121.98/gentoo-portage"
- GENTOO_MIRRORS="ftp://gentoo.anheng.com.cn/gentoo/
- ftp://ftp.linuxforum.net/gentoo http://mirror.uni-c.dk/pub/gentoo/
- http://mirror.gentoo.gr.jp/ http://mirrors.acm.cs.rpi.edu/gentoo/
- ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO ftp://ftp.twaren.net/Linux/Gentoo/
- ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO"
复制代码 ======================================================================
问:我从其它第地方下载来的 ebuild 要放到哪?
答:不可以直接放在 /usr/portage 中的,因为 emerge --sync 后,
非 portage 的内容即会被抹掉。
可以放在自己建立的第三方 portage 中,方法如下:
1、决定要用做自己的 portage 的目录,比如在我机子上是 /usr/local/portage
2、在 /etc/make.conf 添加一行: PORTDIR_OVERLAY="/usr/local/portage "
3、为你的 ebuild 建立目录。比如 xf86-video-radeonhd-9999.ebuild 的
软件包名为 x11-drivers/xf86-video-radeonhd,那就在 /usr/local/portage
下建立文件夹 x11-drivers/xf86-video-radeonhd
4、把 ebuild 放入相应文件夹中,如果此 ebuild 使用了补丁,则放入
x11-drivers/xf86-video-radeonhd/files 中。
5、在x11-drivers/xf86-video-radeonhd运行
ebuild xf86-video-radeonhd-9999.ebuild digest ,为 ebuild 创建校验记录。
现在这个ebuild应该可以使用了。
======================================================================
问:layman 是什么?如何使用?
答:layman是Gentoo用来管理overlay(第三方portage)的。可以方便地添加,
更新和删除overlay。
诚然是因为 ebuild 体积小,编写容易,所以 Gentoo 的overlay非常多。
以下是安装并添加 gentoo-china overlay 的命令:- $ sudo emerge -av layman
- $ sudo sh -c "source /usr/portage/local/layman/make.conf >> /etc/make.conf
- $ sudo layman -a gentoo-china
复制代码
几个常用的命令是:- $ sudo layman -L # 获取overlay列表,并列出
- $ sudo layman -a XXX # 添加XXX overlay
- $ sudo layman -d XXX # 删除XXX overlay
- $ sudo layman -s XXX # 更新XXX overlay
- $ sudo layman -S # 更新所有overlay
复制代码
推荐看一下 layman -L 的列表,会有惊喜哦~~:cool:
========================================================================
问: 我的ati显卡不能用 xv 输出/ 我的ati显卡用 xv 输出有很明显的锯齿
答: 如下修改你的xorg.con, 请先确保你的驱动已正确安装, 至少支持硬件3D加速- /etc/X11/xorg.conf:
- Section "Device"
- Driver "fglrx"
- Identifier "Videocard0"
- ....
- # Option "VideoOverlay" "on" # r500/r600 以前的卡要用这个, 不过会有锯齿
- Option "TexturedVideo" "on" # 支持 avivo 的卡可以用这个
- ....
- EndSection
复制代码 ========================================================================
问:64位flash有了,浏览器的64位java插件呢?
答:这问题的主要原因是sun没有给出64位的java插件,而openjdk又远未成熟。
不过现在有一个专门为64位平台写的java插件项目:icedtea,因为还未稳定,所以被放在arcon overlay里。
安装方法如下:(注意:可能有安全隐患)- # layman -a arcon
- # emerge -av dev-java/icedtea-bin
复制代码 ========================================================================
2007-12-31 更新:添加若干节,包括alsa声卡驱动安装的简易介绍。
2008-01-20 更新:SATA驱动部分改错
2008-01-29 更新:ati显卡的xv输出问题
2008-11-21 更新:使用icedtea解决64位firefox的java插件问题。
2008-11-22 更新:关于 keywords 的解释以及关于如何做贡献的一点指南。 |