LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1159|回复: 6

t400上安装gentoo-2.6.29-gentoo-r5 (minimal/stage-amd64-20090723)

[复制链接]
发表于 2009-8-2 22:12:00 | 显示全部楼层 |阅读模式
这几天在弄gentoo,如标题所示。主要的问题是wifi5300agn。

首先,两句古语:法出自疑。三人行,必有我师。

1.  livecd环境下使用wifi 5300
livecd环境下与switchable graphics无关,所以不比担心对wifi有影响。
事先下载 iwlwifi-5000-1.ucode,连接为http://www.intellinuxwireless.org/?n=downloads&f=ucodes_5000, 选那个08年的版本。将它放在能够一个任何livecd能够挂载的分区/dev/partitionx,假设放这个文件的分区为。
从livecd启动,挂载 /dev/gentoo-root-partition 到 /mnt/gentoo。 挂载 /dev/partitionx到/mnt下的一个目录,比如说 /mnt/1.
加压驱动,并将得到了 iwlwifi-5000-1.ucode拷贝到 /lib/firmware。
然后运行net-setup,输入参数。ok。 wifi 5300在livecd环境下可以用了。
你应该得到如下消几句关键的话 (dmesg | grep wlan0):
broadcasting for a lease (这个说明你的网卡找了access point)
offered  a lease.. (说明你的网卡得到了ip或者接入了网络)

如果你注意看livecd启动时message,你可以看到关键的一句话:wlan0 detected, 同时如果你检查genkernel的默认kernel 配置中的 wifi 5000agn选项时会发现,这个选项并没有被选上,甚至连 wifi core也没有备选上。
所以,livecd下并没有iwlcore, iwlagn模块备加载,但是提供了firmware microcode后就可以使用wifi 5300了。
但是,进入真正系统,你会发现,即使选上了这些模块,wifi 5300仍然无法获得ip

难道是因为net-setup tools与 net-wireless/wireless-tools中的iwconfig的功力有差异? 该不会是前者使用了 一指禅?
 楼主| 发表于 2009-8-2 22:17:35 | 显示全部楼层
2. mac80211
这个是内核配置中可以看到的选项。是映射技术,否则网卡要迷路的。

3. yes or module
是不是一定要编入内核呢? 不一定。因为module本身就是能够在需要的时候被insert到kernel运行中的代码。所以,只要在系统boot的时候加载就可以了。
但是,如果只能选择yes (即编入内核),那就编入吧。因为这个时候,选项必须要满足dependency关系。

4. 是不是一定要照gentoo handbook的步骤来做?
未必。你如果有经验。完全可以按照自己的步骤来做。the point is:
livecd给了一个最基本的装载在cd上的系统。一旦chroot后,你就到你的物理分区上了,当然,你可以重新回到livecd。
如果你使用ctrl-alt-fn建启动virtual console的话,你可以同时在live cd和你的/mnt/gentoo的跟目录下。
如何知道在livecd还是在/mnt/gentoo的根目录下呢? 呵呵。
记住了哦:livecd下能够使用net-setup命令但不能使用emerge命令。但是你tar了连个ball后 (stage, portage),你能够使用emerge命令但不能使用net-setup的环境就是/mnt/gentoo
这个有利于你按照你自己的意思和步骤来安装。
chroot对于root用户来说是没有任何限制力的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-2 22:37:05 | 显示全部楼层
5. mount proc dev
在tar那两个ball之前,/mnt/gentoo只有一个ext3或者是你喜欢的文件系统。呵呵。
tar完之stage3后,/mnt/gentoo就有了基本的linux的文件目录系统,目录里已经有了标记,基本文件和编译时所需要的工具,但它还不足以启动你的机器。tar 完了portage之后,/mnt/gentoo中的编译环境就知道了有哪些包括可以用了。呵呵。
/proc是虚拟文件系统,所以要 -t 。/proc记录了系统的进程信息
/dev使设备目录,因为它已经被挂载在livecd环境的根目录下了,所以要 bind。

ok. chroot到/mnt/gentoo 可以开工了。准备make.conf, 和 /usr/src/linux/.config

你会发现chroot后,你的wifi link还需要重新获得ip。并且livecd /与 /mnt/gentoo中的两份 /etc/conf.d/net, /etc/resolv.conf文件都是一样的。但是,reboot到新系统后,哈哈,它们就可能不一样了。那么你的wifi link就不能用了。
(写与purdue大学)
回复 支持 反对

使用道具 举报

发表于 2009-8-2 23:01:21 | 显示全部楼层
关于网卡的问题已经回复过你了,这里再罗唆几句。

无线网卡有这样几个部分
1. 内核部分,需要在内核中正确配置驱动。
2. ucode驱动,根据不同的网卡,需要emerge自己的ucode。(不推荐自己复制)
3. 管理工具。一般用networkmanager,个人觉得wicd比较方便。

如果是控制台文本模式下,安装了wireless-tools就可以用 dhcpcd wlan0 的方式来寻找网络了。
如果你注意看livecd启动时message,你可以看到关键的一句话:wlan0 detected, 同时如果你检查genkernel的默认kernel 配置中的 wifi 5000agn选项时会发现,这个选项并没有被选上,甚至连 wifi core也没有备选上。
所以,livecd下并没有iwlcore, iwlagn模块备加载,但是提供了firmware microcode后就可以使用wifi 5300了。
你的分析是完全错误的。
错在哪?genkernel的默认配置不等于livecd的kernel配置,相差很远的。livecd的内核配置应该可以在livecd光盘中找到的。
genkernel的配置只能说是保险配置,很多选项都需要自己选上才可以用。

网卡是必须在内核中选中才可以驱动的。ucode只是ucode,并不是drivers,是配合drivers工作的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-3 02:12:17 | 显示全部楼层
呵呵。
genkernel 没有选上那些。
livecd中可能你是正确的,可能被编译如了内核。

当然相信你的经验。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-3 02:15:21 | 显示全部楼层
如此,则甚善。
如果照你的说法正确了,那这个t400的帖子也就到此结束了
哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-3 03:46:59 | 显示全部楼层
Ok> 如此:
1.  livecd环境下,加入iwlwifi-5000-1.ucode到 /lib/firmware
2. 用net-setup 启动, 配置wlan0
3. tar 两个bar
4. 拷贝 /lib/firmware到 /mnt/gentoo/lib/firmware
5.  拷贝 /etc/resolv.conf, /etc/conf.d/net到 /mnt/gentoo相同目录下

6. 测试livecd环境下的wlan0的稳健性(robustness), 先关掉wlan0, 再打开wlan0,如果依然能够配置成功上网,那就说明成功了。

7. 内核中的配置,不用担心module,还是built-in。 关键就是 mac90211, iwlcore, iwlagn,有可以作为模块的选项时,也可以作为模块,然后在 autoload.d中加入可以。

如果你的router不是ipv6的,那就一定不要选 networking option> ipv6 protocal,它很可能会overwrite ipv4设置,从而导致 no ipv6 routers present的错误。可能这个就是即使wlan0驱动了也无法得到ip的原因。

8. emerge -av net-wireless/iwl5000-ucode。也可以手工将iwlwifi-5000-1.ucode加入到/lib/firmware, 、usr/share的目录。只要能够load firmware就好了
9. 重启,用iwconfig配置,指定ap (access points)

个案:如果6不成功,那么wifi 5300就无法在新环境下获得ip.
欢迎批评指正
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表