接下来,就是配置内核了,关于配置内核的文章到处有,这里我简单提一下关键和不同的地方吧
首先是下载内核代码
emerge sparc-sources
之后就会自动下载并且安装代码到/usr/src下,我写此文的时候,内核版本是2.4.29,并做好一个/usr/src/linux的连接
接着就是编译内核了
cd /usr/src/linux
make menuconfig
恩,大体上与在x86上编译没什么区别,只把需要特别留意需要开启的地方写出来吧
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
//开启扩展代码的支持,否则有的选项根本看不到呢
File systems --->
[*] Virtual memory file system support (former shm fs)
<*> Ext3 journalling file system support
<*> Second extended fs support
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[ ] Automatically mount at boot
//注意,依照官方的文档,是需要选自动mount的,但是这里我在选择了/dev后,重新启动的时候报告了错误,即使我emerge devfsd后依然如此,因此我只有把 [ ] Automatically mount at boot去掉,这样的话开机会提示一个警告信息,但是使用上无碍,还请其他朋友指点此困惑。
Console drivers --->
Frame-buffer support --->
[*] SBUS and UPA framebuffers
[*] Creator/Creator3D support
[*] CGsix (GX,TurboGX) support
//上面是对SBUS/UPA的支持,记得选上
Misc Linux/SPARC drivers --->
[*] /dev/openprom device support
上面是对OBP的支持
SCSI support --->
SCSI low-level drivers --->
<*> Sparc ESP Scsi Driver
<*> PTI Qlogic, ISP Driver
<*> SYM53C8XX Version 2 SCSI support
//scsi卡支持,上面的几种各自针对特定的型号,为了config文件的通用性,我是都选上了的
Network device support --->
Ethernet (10 or 100MBit) --->
<*> Sun LANCE support
<*> Sun Happy Meal 10/100baseT support
<*> DECchip Tulip (dc21x4x) PCI support
Ethernet (1000Mbit) --->
<*> Broadcom Tigon3 support
//各种型号的网卡支持的,也是为了通用性,我都选了,其实ultra1上根本没1000m卡的,天缘这里的sun fire上才有吧。
注意,最好只把重要的编译进核心,而把其他的相关部分编译成模块就行了,确保内核文件别超过2.5M为好,天缘在文章最后会给出我使用的.config文件,各位如果想偷懒保存下来后,直接使用就行了。
恩,保存后退出,接着就是内核编译了。。。
make dep && make clean vmlinux image modules modules_install
之后。。。可以忙乎自己的事情去了,天缘是晚上编译,第2天早晨去看的结果,具体完成时间也办法告诉大家,估计在30分钟到2个小时吧。
好,假设您跟我一样够好运气,顺利编译完成了(此时/空间用了大致78%左右,呵呵)
接着就是把核心文件cp到/boot分区去
cp arch/sparc64/boot/image /boot/kernel-2.4.9
cp System.map /boot
配置文件也一起cp一份丢过去吧
cp .config /boot/config-2.4.29 /boot
到这里,内核编译就完成了,接着就是最后的配置系统设置了
首先是设置/etc/fstab 文件,linux系统后,是根据这个文件来加载分区的
我的设置如下(注释已去掉):
ultra1 root # cat /etc/fstab
/dev/sda1 /boot ext2 defaults,noatime 1 2
#加载/boot分区,使用ext2格式,并且不记录对文件的访问时间(减少写入次数)
/dev/sda4 / ext3 noatime 0 1
#加载/分区,ext3格式,不记录对文件的访问时间
/dev/sda2 none swap sw 0 0
#交换分区
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,user 0 0
#cdrom加载,非自动加载
#/dev/fd0 /mnt/floppy auto noauto 0 0
#软驱,由于我编译内核的时候去掉了对软驱的支持,所以就把这行屏蔽了
none /proc proc defaults 0 0
#proc分区加载,它的作用前面提到了
none /dev/shm tmpfs defaults 0 0
#用内存+硬盘虚拟出一块区域来存放文件,tmpfs格式
none /proc/openprom openpromfs defaults 0 0
#这行是sparc系统必须添加的
#此处我没有添加usb的支持,因为我内核里禁止了usb的相关模块