成功安裝gentoo based on alpha platform,發文一篇。 真是辛苦,盡管gentoo早就出了alpha platform的distribution,但居然它主頁上沒for alpha的installation guide,兩個月前試著裝了一次(把以前裝的RH7.2刪了),結果因為boot loader 搞不定,白裝,連起動都成問題。最近比較空,在仔細研究了aboot的文檔後花了三天時間終於把基本系統裝上,現在正在裝X。 不說廢話,先說說機器配置,alpha 21164 500mhz,256m mem,EB164兼容主板,2×SCSI 18.2G硬盤,SRM 5.1 boot rom。還算我運氣好,SRM的版本夠高,不然還要 重新刷bios。(其實光這步就可以卡死很多敢於吃螃蟹的) 先下載gentoo 1.4 RC1 test4的iso(我一直在等它出rc4 for alpha的iso,可sparc,ppc,hppa的版本都更新了,就是for alpha 不更新,氣死我了)刻成光盤。打開機器,進入SRM 狀態,show dev後發現光驅的設備號為 dka 500。it's easy, boot dka500 -fl 0,啟動光盤。 進入Linux,起先的安裝步驟和x86平台無甚兩樣: modprobe eepro100(認出網卡) ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up /sbin/route add -net default gw 192.168.0.1 netmask 0.0.0.0 metric 1 eth0 更改etc/resolv.conf,設置dns serevr。 date xxxxxxx 設置時間 fdisk /dev/sda 硬盤分區,這裡需要仔細說說,由於alpha平台的特殊性,它只認BSD風格的分區形式(就是那種不認partition,只認slice的風格)。同時由於它的boot loader---aboot的特性,所以分區時必須要注意這點,第一個分區的起始扇區必須在2048 block之後(也有建議512的),也就是1m左右的空間以便放aboot引導程序(其實aboot也就80k大)。兩個月前我第一次裝時沒注意,結果把整個distribution build之後才發覺分區錯了,那個暈阿! 剩下來的分區就容易了,按照BSD風格,四個分區分別是a,b,c,d 其實就是 /dev/sda1 /boot 128m, /dev/sda2 swap 768m, /dev/sda3 /var , /dev/sda4 /. mke2fs -j /dev/sda1 mke2fs -j /dev/sda4(這兩個分區必須用ext2或ext3,否則aboot不認) mkswap /dev/sda2 mkfs.xfs -l size=32m /dev/sda3 我試了試xfs的格式在/var分區下。具體參數見gentoo網站上的簡介。 swapon /dev/sda2 打開swap mkdir /mnt/gentoo mount /dev/sda4 /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda1 /mnt/gentoo/boot mkdir /mnt/gentoo/var mount /dev/sda3 /mnt/gentoo/var cd /mnt/gentoo lynx http://www.ibiblio.org/pub/Linux/distributions/gentoo/releases/1.4_rc1/alpha/ 拿下stage1的安裝包 tar -xvjpf /mnt/cdrom/gentoo/stage1-*.tar.bz2 解開安裝包 mount -t proc proc /mnt/gentoo/proc cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf chroot /mnt/gentoo /bin/bash 這步比較重要,進入編譯環境,其實就像罩了把傘一樣。:-) env-update (這裡有可能會失敗,不要緊,emerge sync一把就好了,其實是安裝包太老需要更新) Regenerating /etc/ld.so.cache... source /etc/profile emerge sync nano -w /etc/make.conf 這裡要改點東西,最主要的就是把裡面缺省的cpu 型號改成你要的,我是21164,所以改成EV56,你要是搞不清,沒關系,uname -p一把. cd /usr/portage scripts/bootstrap.sh 艱苦的旅程終於開始了,後來我看了一下時間,用了我大約4個多小時,這裡它編譯了binutils, gcc, gettext, glibc, 然後重編譯binutils, gcc,gettext。 現在進入stage2, emerge -p system emerge system 這更誇張,一共73個組件居然編了我6個半小時。 進入stage3 ln -sf /usr/share/zoneinfo/path/to/timezonefile /etc/localtime 設置時區 這後面的path/to/timezonefile是zoneinfo下你所在時區的路徑,找到Asia,再找到裡你最近的城市,做把連接。 開始編譯kernel emerge sys-kernel/alpha-sources 注意,這和x86平台不一樣,我一開始拼命想試 emerge sys-kernel/gentoo-sources 可系統總告訴我這些ebuilds被masked了,想破腦袋也想不出為什麼,後來進到/usr/portage/sys-kernel下一看才明白,原來如彼!笨死了:-( 我用的是alpha機器啊!emerge ebuilds的嚴謹性由此可見一斑。 cd /usr/src/linux make menUConfig 這裡有些要注意,要把BSD風格的分區支持編進去,要把VFS,devfs的分區也編進去,否則會引起kenel panic,我就是...唉,不說了,怎麼倒霉事盡跑我頭上....編一次kernel要花去我整整一個小時啊!開始想念在那台p4 2.4G 的服務器上4分鐘編譯一次kernel的好光景來了....還有就是注意網卡驅動等等等等 make dep make boot 這和x86平台不一樣,依葫蘆畫瓢吧! make modules make modules_install cp /usr/src/linux/arch/alpha/boot/mvlinux.gz /boot emerge app-admin/sysklogd rc-update add sysklogd default emerge sys-apps/vcron rc-update add vcron default 這個就不說了。 emerge sys-apps/xfsprogs 專給xfs用的 更改 /etc/fstab passwd 改 root passWord echo mymachine.mydomain.com > /etc/hostname 這個也容易。 更改 /etc/hosts 更改 /etc/modules.autoload nano -w /etc/conf.d/net rc-update add net.eth0 default nano -w /etc/rc.conf 更改時區(一大堆routing jobs) 最後就是aboot的安裝了,emerge aboot 裝完後運行swriteboot /dev/sda /boot/bootlx 把aboot copy至起始扇區, 然後 abootconf /dev/sda 4 更改aboot 初始配置,因為/ 分區在/dev/sda4 初始狀態是 /dev/sda 2,這要是在aboot 0.6版以前是要更改編譯參數,重新編譯 aboot的(天哪,還要編譯),現在0.9版好多了,擦汗ing..... 到/etc下照著aboot.conf.example的樣改出一個aboot.conf來。呵呵 etc-update exit 退出chroot狀態 cd / umount /mnt/gentoo/boot umount /mnt/gentoo/proc umount /mnt/gentoo/var umount /mnt/gentoo reboot 重起!哈!gentoo for alpha終於裝好了,全世界第一篇中文版gentoo based on alpha platform的installation guide也誕生了。快鼓掌! 不過裝完後一想,這套linux是32bit的,不爽。反正我還有一個硬盤,改日裝套 netbsd for alpha罷,這可是純64位的系統.....