歡迎您光臨本站 註冊首頁

Inst gentoo based on alpha platform

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
成功安裝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位的系統.....





[火星人 ] Inst gentoo based on alpha platform已經有258次圍觀

http://coctec.com/docs/linux/show-post-57569.html