Duangw

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块网卡地址:

 

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分区,当前对普通用户是只读的,不能更改。这些问题以后再慢慢解决了。