Slackware 11.0桌面系统
1.安装
虽然我使用Unix/Linux多年,但基本都是使用其服务器和程序开发功能,对桌面应用几乎一窍不通。当Slackware 11.0发布时,我决定来尝尝鲜,也搭建一个桌面系统。
鉴于桌面知识的缺乏,安装软件包时,采用menu方式,除了IDEI中只选择了繁体中文和简体中文支持外,其他部分都是全部安装。
2.配置grub
在我的机器上,lilo总是无法正常工作,原因不祥。不得已,我只有用grub来替换。这个工作必须在安装结束,重启系统之前进行,否则就引导不了机器了。
安装工作结束后的命令行下,此时系统硬盘分区都mount在/mnt目录。从其他介质获得我以前制作好的gurb-0.96-i386-1.tgz安装包,和备份的menu.lst,放在/mnt/root目录下(方便而已)。
安装grub:
# chroot /mnt # cd /root # installpkg grub-0.96-i386-1.tgz
配置grub:
# chroot /mnt # mkdir /boot/grub # cd /usr/lib/grub/i386-pc/ # cp stage1 /boot/grub # cp stage2 /boot/grub # cp e2fs_stage1_5 /boot/grub # cp /root/menu.lst /boot/grub
修改menu.lst,使得与实际相符。
运行:
# grub >>root (hd0,1) >>setup (hd0,1) >>quit
弄好grub,就可以重启了。正常的话会出现grub菜单。
本来grub有一个简单的工具grub-install可以轻松完成上面操作,但在chroot环境下不行,所以只好使用上述的笨拙手工操作。
3.配置网络
鉴于hotplug速度太慢,因此被我禁用了。
使用netcnonfig配置网络,但只有第一块网卡被安装,为此,需要我手动添加其他网卡模块(机器上共有4块网卡),相关模块名以前记得,所以直接编辑/etc/rc.d/rc.netdevice添加相关模块。如果忘了,只好参考netconfig脚本,逐个尝试模块了。
/sbin/modprobe 3c59x /sbin/modprobe 8139too /sbin/modprobe tulip
编辑/etc/rc.d/rc.inet1.conf,设置4块网卡地址:
- eth0:10.10.20.100/24
- eth1:10.10.40.100/24
- eth2:172.16.0.100/24
- eth3:192.168.0.100/24
4.配置X
现在我的机器还不能直接启动Xwindow,否则会黑屏,估计是驱动不对吧。
执行xorgsetup,配置X,一切都是按缺省值,一路回车就完了,具体内容我也不是很懂。
弄好后,执行startx就可以正常启动Xwindow了,分辨率设为1280x1024。
5.设置locale
编辑/etc/profile.d/lang.sh,不改LANG,以免在命令行下出乱码,增加:
export LC_CTYPE=zh_CN 屏蔽export LC_COLLATE=C
6.安装中文字体
现在X中虽然有中文的locale,但没有相关字体,中文显示全是乱码。网上有很多linux中文美化的文章,但操作对我来说太复杂了。我要求不高,能显示就行,所以选择了一个最简单的方案,呵呵!
建立字体目录:
# mkdir /usr/share/fonts # mkdir /usr/share/fonts/ttf
从Windows XP的字体目录windows/Fonts中获得字体文件simsun.ttc,放到/usr/share/fonts/ttf目录下。
执行:
# fc-cache
现在启动KDE,在区域设置中增加简体中文,就可以正常显示中文了。
7.挂载Windows分区
我机器上的Windows分区全是FAT格式的(包括16和32),直接mount的话,中文显示为乱码,原因是字符集不对。参考网友做法,修改/etc/fstab中的参数:
/dev/hda13 /fat-i vfat iocharset=cp936 1 0
这里使用的是cp936,看到结果好使就没管了,当然应该还可以使用别的字符集。
8.安装中文输入法
从网上获得fcitx,安装:
# installpkg fcitx-3.1.1-i486-lyjs.tgz
fcitx要求设置一个环境变量:
XMODIFIERS=@im=fcitx
考虑到会有多个窗口管理器用到,所以偷懒在/etc/profile中设置。用倒是可以用了,但在这个地方改,总觉得不是很合适。
9.配置声卡
有图形了,当然多媒体也不能少。执行:
# alsaconf
选择对应的声卡型号。
alsaconf会在/etc/modulels.conf中增加一些相关模块。
OK!现在有声音了。在命令行下也可以播放音乐了,呵呵。
lsmod一看,好多模块哦。
10.关机
缺省关机时是不掉电的,作为桌面机,没必要象服务器那样。所以,修改模块设置。编辑/etc/rc.d/rc.modules,打开apm:
/sbin/modprobe apm
11.编译内核
开始后面的设置之前,我要重新编译一个内核。现在slackware11的内核版本是2.4.33.3,已经是当时最新的2.4内核了。于是省略了下载内核,直接使用一同发行的内核源代码。
我编译的主要目的是为了后面的防火墙设置,其他方面没有关系。所以,我直接使用了当前的配置文件/boot/config-ide-2.4.33.3,在它的基础上进行配置,把所有的netfilter选项和ppp选项全部编进内核,不再作为模块存在,以免后面编写iptables脚本时,还要去手工load相关模块。
具体操作序列:
# cd /usr/src/linux # make mrproper # cp /boot/config-ide-2.4.33.3 .config # make menuconfig # make dep # make bzImage # make modules
由于新编内核与当前是一个版本的,所以对应的modules目录名也一样,安装之前,需要备份原来的目录:
# cd /lib/modules # mv 2.4.33.3 2.4.33.3-old
继续:
# make modules-install # cp System.map /boot/System.map-2.4.33.3 # cp .config /boot/config-2.4.33.3 # cd arch/i386/boot # cp bzImage /boot/vmlinuz-2.4.33.3 # cd /boot # rm System.map # ln -s System.map-2.4.33.3 System.map
编辑/boot/grub/menu.lst,为新内核增加条目。重新启动。
启动后,发现声卡不工作了,一查,好多声卡模块没有啊。开始以为是内核编译时出问题了,在没有深究的情况下,我又编译了一遍内核,真是劳民伤财,结果还是不行。
在查看原来的内核模块目录时发现有点不对,一对比,发现多了个sound目录,再看/var/log/packages/下文件,妈的,是alsa-driver这个包放了许多文件到内核模块目录下,根本不是内核编译的问题。唉,被耍了一会,也怪我,毛糙了点。
把原内核模块中的sound复制到新目录下,重新启动,配置alsaconf,好使了。
12.恢复备份
从备份介质中恢复原来在10.2版本上的一些文件,主要目录:backup、livecd、sources、newpkg。
同时,把我新编译的内核相关文件放到/newpkg/kernel/2.4.33.2-slak目录下。
13.配置防火墙脚本
我的一些模板都在/newpkg目录下。我现在弄的是一台桌面机,所以使用客户端iptables脚本rc.iptables-client.ref:
# cp /newpkg/rc.iptables-client.ref /etc/rc.d/rc.iptables
修改/etc/rc.d/rc.S文件,在末尾添加模板rc.S.ref的内容。
14.设置一些内核参数
使用模板文件rc.sysctl.ref:
# cp /newpkg/rc.sysctl.ref /etc/rc.d/rc.sysctl
编辑/etc/rc.d/rc.M,将模板rc.M.ref内容加入到rc.inet2的前面。
15.配置ADSL上网
在防火墙等一切就绪后,可以与外面的世界相联了。
ADSL走的是PPPOE,配置:
# pppoe-setup
设置用户名、密码、网卡接口、选择不要防火墙(我自己有了),由ISP提供DNS地址,等等。
拨号:
# pppoe-start
断开:
# pppoe-stop
查看状态:
# pppoe-status
测试,OK!
16.建立用户
以上工作都是在root下进行的,实际的日常使用时,应该用一个普通用户来工作,需要时才root。所以建立一个工作用户。
# useradd -m duangw
以后就用duangw这个帐号来工作了。
由于有些操作需要超级用户权限,比如ADSL拨号就是。好在KDE中提供了一个超级用户终端,需要时打开它来拨号。其他就由duangw来完成了。
有关权限的方面很多,比如挂载的FAT分区,当前对普通用户是只读的,不能更改。这些问题以后再慢慢解决了。