|
前言:花了三天的时间,总算把gentoo基本安装在了powerbook上,虽然还有点问题,但就目前我的水平来说,只能慢慢解决,不可能一步到位的解决,因为我对gentoo真是一无所知
我一般很少看文档,可能这也是我的成绩总比其它弟兄进步慢的主要原因吧。在安装过程中,因忙为无知,所以只好粗略的读了一下Gentoo的文档,我读的是英文文档,还是用lynx来读的。真是有点痛苦。不过Gentoo的文档弄的的确是好,想找什么都能找得到。想来想去,感觉写这篇文章实在有点哗弄取宠。
为了和大家分享学习成果,也是为了自娱自乐,呵,写点东西也是我的爱好之一,这样也能“炫耀”一下,我也会linux,也会写文章。
声明:本文可能与有些弟兄的方法可能有点类似,但不能说明是我抄袭而来的。比如emerge 的使用,Gnome的安装,这些我都是看Gentoo官方英文文档然后自己实践而来的。如果不按官方的做,我也不知道怎么安装才好,我不能独创一个根本就不存在的安装方法,毕竟计算机不是最聪明的,我们只能按照他规定好的东西来做。
=========================================================================
正文:在powerbook 12 inch上安装gentoo
=========================================================================
一、机器配置及安装所处的环境
1.机器配置:通俗说明
PowerBook G4 12" 1.33G/768M/显示卡GeForce FX Go5200 64M/60G/Combo/AirPort Extreme/内置蓝牙模块支持/内置网卡sugem ,还附加了一个1394接口的60G外置硬盘
机器配置:专业说明
CPU及内存:
processor : 0
cpu : 7447A, altivec supported
clock : 1333MHz
revision : 1.1 (pvr 8003 0101)
bogomips : 663.55
machine : PowerBook6,4
motherboard : PowerBook6,4 MacRISC3 Power Macintosh
detected as : 287 (Unknown Intrepid-based)
pmac flags : 00000008
L2 cache : 512K unified
memory : 768MB
pmac-generation : NewWorld
显示卡:
00:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 AGP
00:10.0 VGA compatible controller: nVidia Corporation NV34M [GeForce FX Go5200] (rev a1)
无线网卡
01:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 PCI
01:12.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
01:17.0 Class ff00: Apple Computer Inc. KeyLargo/Intrepid Mac I/O
USB支持:
01:18.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
01:19.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
01:1a.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB
01:1b.0 USB Controller: NEC Corporation USB (rev 43)
01:1b.1 USB Controller: NEC Corporation USB (rev 43)
01:1b.2 USB Controller: NEC Corporation USB 2.0 (rev 04)
02:0b.0 Host bridge: Apple Computer Inc. UniNorth 2 Internal PCI
ATA硬盘支持
02:0d.0 Class ff00: Apple Computer Inc. UniNorth/Intrepid ATA/100
1394接口设备支持:
02:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth 2 FireWire (rev 81)
网卡:
02:0f.0 Ethernet controller: Apple Computer Inc. UniNorth 2 GMAC (Sun GEM) (rev 80)
2.gentoo所安装的系统环境
本文安装的系统环境是目前已经有一个linux的版本在您的机器中,也
就是通过目前您所用的linux来安装gentoo ,我采用的系统Yellowdog,其实大同小异,只要有一个linux的版本在您的机器中,就能用我写的这种办法把gentoo安装上。
二、安装前期的准备工作
1.对Linux ppc版本的一点片面认识:
在apple机上安装linux的时候,我试过其它的发行版,比如Fedora 、Debian、yellowdog等。就目前的Linux ppc版本来说,Debian、Yellowdog还是比较成熟的,Fedora也只能说是在开发中,我安装的是 Fedora core 1.0到2.0之间的产品,之所以说它在开发,因为他的安装映像映文件现在已经在服务器上删除了,如果是开发出来了,应该有安装的映像文件。Fedora core安装时,要下载ftp服务器的所有的包,然后通过他的映像文件来通过网络安装,我是通过ftp安装的,也就是说把它的ftp上的ppc RPM包都下载下来,然后自己做一个ftp,然后通过局域网来安装。当然也能通过在线安装,不过这种办法不能保证一步成功。因为NFS和FTP以及我们的网络环境不可能总是稳定的。
之所以安装Gentoo,并不是说大家说她多好,我才安装的。我在Gentoo的服务器上看到他的ppc开发极为成熟,所以才想实践实践。通过安装Gentoo的过程,我发现Gentoo ppc也是极为成熟的版本之一,成熟度和Debian不相上下,或者说在Debian之上。YellowDog也应该说成熟 ,安装简单方便,一目了然,但他的缺点是版本升级太慢,这让我等玩家根本忍受不了。 虽然玩家也能自己动手编译安装自己喜欢的软件,但说实在的,象我这样比较懒的人,除了编编内核 ,对于其它的小的软件,比如系统相关的,我更喜欢全自动,能一步升级到位的。所以从这方面来说,Yellowdog并不是最好的选择。但对在apple机上实验及期熟悉系统,无疑Yellowdog是最好的选择。因为大家都对她比较熟。
2.下载Gentoo ppc版本的stage3
在安装前期,我们应该有所准备,比如下载gentoo ppc stage3,我是通过stages开始安装的,因为我对gentoo一无所知,更不喜欢去读文档,所以我只能用最笨的办法来安装gentoo,因为stage3相对来说是一个比较成形的系统,所以通过这种办法来安装还是比较简单的,但也有麻烦的一面,就是您必须有一个linux系统在您的机器上。说来说去还有点繁,如果没有其它的linux在我们的机器上,用这种办法还真的安装不上 :( 因为我对rpm包管理机制的系统还是比较熟悉(不能说精通,因为我只是玩家),所以为了实验是不是linux也能在apple机上安装上,所以前期只能安装一个我比较熟悉的系统,yellowdog这个发行版,我以前也没有用过,其实想一想就明白了,rpm包系统都差不多,都和Redhat差不多,所以我也就把yellowdog做为安装Gentoo的起点。
Gentoo ppc版本的stage3的下载地址:
从下面的镜像地址为入口,找一个 stage3-ppc-2004.1.tar.bz2 的文件 ,这个文件所在的位置在releases/ppc/2004.1/stages/ppc/目录中,体积大约是
stage3-ppc-2004.1.tar.bz2 21-Apr-2004 19:28 94M
http://www.gentoo.org/main/en/mirrors.xml
要为stage3-ppc-2004.1.tar.bz2包建一个目录,比如gentoo,然后把已经下载好的包移到这个目录中
# mkdir gentoo
#mv stage3-ppc-2004.1.tar.bz2 gentoo
#cd gentoo
然后就是解压了
#tar jxvf stage3-ppc-2004.1.tar.bz2
解压后,我们能看到有如下目录,基本是一个比较完整的系统了
#ls
bin dev home mnt proc sbin tmp var
boot etc lib opt root stage3-ppc-2004.1.tar.bz2 usr
但这个基本完整的系统就是少一个内核,如果有一个内核就是完整的系统。大家都知道linux系统没有内核是没有办法引导的。
3.在已有的系统上编译一个新内核,并放到已经解压的stage3的boot目录中。
我用的是yellowdog,我目前启用的内核是2.6.7,为什么用2.6.7版本的内核呢?因为在yellowdog自带的内核中,网卡的支持是通过module来支持的,如果把原来内核2.4.22-2f的vmlinux文件复制过去这肯定不行。只能把对网卡的支持编入内核才行。因为网卡被内核直接支持后,我们就可以直接启动网卡来升级Gentoo ,等把基础系统升级好后,我们再来根据自己的机器的环境来重新编译内核 ,如果说来,这个gentoo就是全新的gentoo了,一切都是新的。
在您现有的Linux系统中,编译内核时要尽可能的把与硬件相关的东西都编入内核,而不是做为模块,因为在其它发行版中,有时因为module-init-tools是版本比较老,如果您把内核文件vmlinux以及模块直接复制到Gentoo Stage3解压后的相应目录中,因为module-init-tools的版本不一致,或者编译环境不一致,大多是模块不能加载。
把您所编译好内核中的vmlinux 以及 System.map直接复制到已经解压的Gentoo Stage3的解压后的boot目录中。
4.分区及格式化分区
对于分区,可能我们在LinuxSir.Org的讨论区有讨论区,也有详细的办法,在这里我们就不能再介绍。自己查看一下文章就行了。所用工具是mac-fdisk 。我的办法是用mac-fdisk 分出一个区,其实我早就分好了 ,有一个分区是空出来,从来就没有用过,现在正式派上用场。只是格式化一下就行了。
格式化硬盘的工具也有好多,比如 mkfs.ext2 mkfs.ext3 工具能在ppc版本中用,但也有mkreiserfs工具能把分区格式化成reiserfs文件系统,但我没有成功过。提示说要在kerenl 2.4.x下才行。所以我只好格式化成ext3的
我通过mac-fdisk 查看了一下,发现/dev/hda7是已经分好的分区,从来没有用过,所以决定把/dev/hda7格式化成ext3的。
#mkfs.ext3 /dev/hda7
期间没有什么特别的,就是出现了提示,回车一下就行了。可能格式化好后,要重启一下机器才行。这样我们就把/dev/hda7做为gentoo的分区了,只是我们下步要做的是要把stage3解压的后的所有的东西都复到/dev/hda7
所以我们要做的是要加载/dev/hda7到一个临时的目录,然后再把stage3的解压后的所有东西都复制到/dev/hda7 。或者把stage3-ppc-2004.1.tar.bz2复制到/dev/hda7分区中再解压也是一样的。
过程:
#mkdir /mnt/gentoo
#mount /dev/hda7 /mnt/gentoo
#cp stage3-ppc-2004.1.tar.bz2 /mnt/gentoo
#cd /mnt/gentoo
#tar jxvf stage3-ppc-2004.1.tar.bz2
这样我们就能在 /mnt/gentoo的目录中看到有如下的目录
#ls
bin dev home mnt proc sbin tmp var
boot etc lib opt root stage3-ppc-2004.1.tar.bz2 usr
进入boot目录后,我们应该能发现boot是空的。
所以要把您编译好的内核文件 vmlinux以及System.map复制到这里。当然您可以直接下载我编好的内核,这样能省点事。
下载地址:
下载这个包后,要解压放入 /mnt/gentoo/boot这个目录
5.配置 yaboot
yaboot是一个引导系统启动的工具,这步是必须的。只要能把系统能引导起来。我们就有办法把gentoo升级,并且为它安装X,以及桌面环境。
改配置文件 /etc/yaboot.conf,根据我的分区,我加了如下的一段,这段加在哪,您应该明白。
image=/boot/vmlinux
label=gentoo 这是标签,可以根据自己喜欢的来写,不要写的长。这样方便记忆
root=/dev/hda7 这是gentoo所处的分区,可以根据自己的分区情况来写
read-only
加好后,还要执行
#ybin -v
下一个过程才是真正进入gentoo的世界,我写了这么多,才写了个开始,我写文章总是怕新手弟兄看不懂,所以只能多说几句。
三、登入gentoo,配置网络服务,为升级基础系统做准备
1.yaboot是Gentoo的前奏
我们重新启动系统后,先是yaboot的引导,因为yaboot也应该是能引导不同的系统,或者不同内核的同一系统。在yaboot启动时,我们按一下L 键就进行linux的引导了。然后我们再按一下tab键,然后出来几个让我们可选择的系来引导。然后我们在boot:后面输入gentoo,也就是这样的:
boot:gentoo
这样就能进入gentoo,如果您没有把yaboot的配置文件写错的话,没有一点问题。
2.登入gentoo,并设置root的密码
系统启动过程,我们就省点笔墨,因为对于启动过程的原理,我也弄不清楚,因为我是玩家,并不是理论方面的专家,我根本就不懂理论。所以这方面的咱也写不出来,所以只能玩点雕虫小技。
一系列的启动项加载后,也就是ok后,当然也有fail的,显示出的是红字,咱们也不用管那么多了。显示的红字是正常的,因为我们用的内核毕竟不是gentoo中编译的。我们当前要解决的是通过internet把系统升级更新,把x和桌面环境安装上,然后再来重新编译内核。总之 这个内核无论如何也得换了,只是时间的问题而已,所以您没有必要担心系统能否升级成功 。等系统启动过程完成后,出来一个login:类似的。我们只需要把root填上去,密码不用填写,按个回车就能进入Gentoo的系统了。
登入系统后,我们做的第一件事就是设置root的密码
#passwd
然后输入输入两次密码就行了,然后两次密码都需要一样的,否则设置不会成功 ,这和其它linux的发行版是一致的。没有什么特别之处。
3.启动网卡,升级gentoo的基础系统
可能有的弟兄象一样使用的是路由adsl,也有的弟兄可能是通过局域网来上网,也有的弟兄可能是通过乙太口的adsl,然后过过rp-pppoe的软件来拔号上网,还有的弟兄可能是通过usb接口中的adsl以及内置猫来上网。下面我简单的说几句。
1]如果您是通过usb adsl上网,因为usb adsl比较麻烦,要安装驱动,所以对于单机通过usb adsl上网的弟兄,可能会遇到麻烦。我不用usb adsl,也知道他过于麻烦。至于usb adsl如何解决,本文并不能解决,因为我没有这个实践环境。
2]如果您是通过内置猫来上网的,可能要安装猫的驱动,对于苹果用的是什么猫 ,我也不太了解,据网上的文章说是用的hfs芯片的猫或者是hcf芯片的。如果您想通过内置猫来升级,可能麻烦也不小。如果您需要这方面的东西,还得请您查看一下网上的文章。
3]如果您是通过单机乙太口非路由猫上网,可能这得下载一个rp-pppoe的软件包,然后要在gentoo中安装一下才行。这个可以去下载,下载原码包也不错,也能安装成功 。在LinuxSir.Org有这方面的文章。
4]如果您是通过路由猫或者局域网来升级gentoo,这是最容易的,其实他们有相同之处,都是要设置ip和网关的,现在把这个简要的说一下。[非路由adsl单机上网,也要配置此文件,不同的是不必设置网关]
比如我的网关是192.168.1.1 ,设置gentoo的网ip要和网关在同一个网段内,比如我所设置的是192.168.1.31
详细情况:
我的局域网的网关,以及路由猫的网络ip设置如下,这方面的设置要根据自己的网络情况来设置
ip:192.168.1.1
掩码:255.255.255.0
我的apple的机的网卡就设置:
ip:192.168.1.31
掩码:255.255.255.0
网关:192.168.1.1
在gentoo中哪个文件是配置网卡的呢??答:在/etc/conf.d目录中,net这个文件。
把这个文件改一改就行了。我只改了两行就ok了。
改后的结果行如下:
iface_eth0="192.168.1.31 broadcast 192.168.1.255 netmask 255.255.255.0"
另一行是:
gateway="eth0/192.168.1.1"
凡是与这两行相似的,用#号注掉
我的net配置文件内容如下:
# /etc/conf.d/net:
# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/conf.d/net,v 1.7 2002/11/18 19:39:22 azarah Exp $
# Global config file for net.* rc-scripts
# This is basically the ifconfig argument without the ifconfig $iface
#
iface_eth0="192.168.1.31 broadcast 192.168.1.255 netmask 255.255.255.0"
#iface_eth1="207.170.82.202 broadcast 207.0.255.255 netmask 255.255.0.0"
# For DHCP set iface_eth? to "dhcp"
# For passing options to dhcpcd use dhcpcd_eth?
#
#iface_eth0="dhcp"
#dhcpcd_eth0="..."
# For adding aliases to a interface
#
#alias_eth0="192.168.0.3 192.168.0.4"
# NB: The next is only used for aliases.
#
# To add a custom netmask/broadcast address to created aliases,
# uncomment and change accordingly. Leave commented to assign
# defaults for that interface.
#
#broadcast_eth0="192.168.0.255 192.168.0.255"
#netmask_eth0="255.255.255.0 255.255.255.0"
# For setting the default gateway
#
#gateway="eth0/192.168.0.1"
gateway="eth0/192.168.1.1"
注:如果您是通过dhcp来自动获取ip,也要配此文件。如果用dhcp,则无需配制ip,要把iface这行关掉,要根据配制文件中说的应来配制dhcp,这个应该简单一点。
5]配置 /etc/resolv.conf 文件 [非路由乙太口的adsl也是要如下设置]
把/etc/resolv.conf的内容清空,然后写入如下的两行。
nameserver 202.96.128.143
nameserver 202.96.134.133
6]启动网络服务 [非路由adsl以ppooe的方式拔号,也要启动此网络服务]
因为我们在前面已经说过了,网卡的支持已经做为非模块方式已经编入内核,所以我们无须加载模块。我们配置好net文件后,直接启动网络服务这样就行了。
方法:
#/etc/init.d/net.eth0 start
如果是想让网络服务net.eth0下次进入系统后自动运行,应该运行如下命令
#rc-update add net.eth0 default
如果是非路由adsl,还得运行adsl-setup 来配置adsl的拔号,以及adsl-start来启动adsl,这方面的说的太多了,就略过了。
四、升级Gentoo基础系统
网络环境配制好后,我们所想到的第一步就是升级Gentoo基础系统,这也是几乎所有玩家追新的正常心理表现,其实也就是喜新厌旧
1.有时portage版本太老,所以我们先把这个要升级一下,这是最基础的工作
# emerge sync
# emerge -u portage
把旧版的make.profile链接删除
#rm -rf /etc/make.profile
然后在/usr/portage/profiles/ 目录中找个最新的default-ppc的版本,我们能发现这个新的可能是
#ln -s /usr/portage/profiles/default-ppc-2004.2 /etc/make.profile
当然也可能有比这更新的,那就是default-ppc-2004.2更高版本的,不过目前还没有发现,切记:不要用ppc64的,那不是适合苹果机上用的
2.查看gcc的版本,如果比较旧,最好也升级
#gcc -v
如果通过上面的命令查看gcc的版本,就说明没有安装gcc(这种可能性非常之小)
我的系统的gcc -v
beinan@localhost gendoc $ gcc -v
Reading specs from /usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.3.3/specs
Configured with: /var/tmp/portage/gcc-3.3.3_pre20040408-r1/work/gcc-20040408/configure --prefix=/usr --enable-shared --host=powerpc-unknown-linux-gnu --enable-languages=c,c++,f77,objc --enable-threads=posix --enable-long-long --disable-checking --enable-__cxa_atexit --with-gxx-include-dir=/usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.3.3/include/g++-v3 --with-local-prefix=/usr/local --enable-shared --enable-nls --without-included-gettext --disable-multilib --with-system-zlib --enable-cstdio=stdio --enable-clocale=generic --enable-version-specific-runtime-libs --target=powerpc-unknown-linux-gnu --bindir=/usr/powerpc-unknown-linux-gnu/gcc-bin/3.3 --includedir=/usr/lib/gcc-lib/powerpc-unknown-linux-gnu/3.3.3/include --datadir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.3 --mandir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.3/man --infodir=/usr/share/gcc-data/powerpc-unknown-linux-gnu/3.3/info
Thread model: posix
gcc version 3.3.3 (Gentoo Linux 3.3.3_pre20040408-r1)
升级gcc的命令是:
# emerge -u gcc
查看当前gcc的版本的命令
#gcc-config -c
或者:
#gcc -v
有时可能得配置一下gcc,因为可能多版本共存于系统中,这样可能会是新版本没有生效。
所以最好执行一下下面的命令查看一下
#gcc-config --list-profiles
比如:
#gcc-config --list-profiles
[1] powerpc-unknown-linux-gnu-3.2.3
[2] powerpc-unknown-linux-gnu-3.3.3
如果通过 #gcc-config -a 所查看到的当前版本是比较老,所以应该执行下面的命令,这样能让系统启用新版本的gcc ,根据我的系统上面的提示:如果我们查看到的是gcc当前版本是powerpc-unknown-linux-gnu-3.2.3,如果我们想切换到新版本powerpc-unknown-linux-gnu-3.3.3,应该如下做
# gcc-config powerpc-unknown-linux-gnu-3.3.3
比如 :
- root@localhost beinan # gcc-config powerpc-unknown-linux-gnu-3.3.3
- * Switching to powerpc-unknown-linux-gnu-3.3.3 compiler... [ ok ]
复制代码
3.升级glibc
系统自带的glibc的版本一般的情况下都是比较老的,不升级也行,我就是没有升级,现在系统还是基本稳定的。不过追新的心理,glibc的版本过于陈旧,可能不是我们玩家所能忍受得了的。 因为编译时间太长,我当时有点难以忍受,不得不中断
#emerge glibc binutils
这个过程的确有点漫长,需要的时间,不过我们可以喝点茶,看看电视什么的。
4.重新编译系统中的所有部件
#emerge -e world
重要提示:如果在下载及编译过程中出现中断情况, 我们可以用下面的命令恢复,这样就能接着原来中断的地方继续工作了
#emerge --resume
五、安装X Window Server
什么是X Window Server,还是请弟初学Linux的弟兄查看一下文档,这方面的东西也讨论过好多。X Window Server是公用底层软件,比如我们常用的GNOME以及KDE,都是需要他的支持的,也就是说安装我们所能看到的图形桌面或者窗口管理器之前,都要把X Window Server安装上。我不是理论专家,理论的东西我根本没有办法说清楚,我只能根据我的实践来理解一些不明白的东西。如果有弟兄想学习这方面的东西,可以到到官方网站上去看。
我们还是来安装X Window Server吧,因为对理论方面,咱也不敢说,主要是怕说错了。哈哈,还是底气不足啊。加油中
执行下面几个命令就ok了。
# emerge xorg-x11
# env-update
# source /etc/profile
弄好后,我们就配置一下X Window Server ,执行下面的命令,就能在/root的目录下产生一个xorg.conf.new 的文件,我们要这个文件复制到 /etc/X11目录中
# Xorg -configure
#cp ~/xorg.conf.new /etc/X11/xorg.conf
其实安装好xorg-x11后,我们改一下/etc/X11/Xorg.conf就能看到一个简单的窗口管理器了。但我们要运行startx命令。不过现在还是有点早。因为我们用的内核是从别的系统“拿”来的(如果您用的是内核是我所提供的,那就更不适合您的机器了,因为我所编译的内核没有加入对ati显示卡的支持 ),所以我们把startx这事先放放,先把gnome桌面环境安装上。然后再来编内核,让我们的机器上的所有硬件都在内核中被支持。最后我们再startx,这样才精彩。
六、安装Gnome
因为我喜欢Gnome,所以我只能写Gnome的,请理解理解我,如果您也想安装kde,这也不是什么难事,找一下这方面的文档就行了。
安装Gnome:
1.改一个文件 /etc/make.conf
找下面的一行
USE="-qt -kde gtk gnome"
把这行改为
USE="gtk gnome"
2.正式安装及配置
# emerge gnome xscreensaver
# env-update && source /etc/profile
# /etc/init.d/famd start
# rc-update add famd default
让系统默认桌面环境是Gnome,所以要执行下面的命令。
#echo "exec gnome-session" > ~/.xinitrc
还有别的办法可以达到相同的目的
#touch ~/.xinitrc
然后在当前用户的家目录下的.xinitrc中加入下面的一行。
exec gnome-session |
|