红联Linux门户
Linux帮助

非常老的Linux版本让我写下了这篇历险记

发布时间:2007-06-23 15:57:06来源:红联作者:Hopeful
  绝对是个老Linux版本。晚上想重装一下系统,没想到把系统删了之后才发现自己的XP的碟都找不到了。于是翻出压在箱底已久的RedHat7.0的碟来装。没想到好久不玩linux了,搞出好多问题来。

  一开始还以为 RedHat 7.0 应该支持 S3 IX 的显卡吧,装好了之后发现原来不行,只能去找了个支持 IX 的驱动(幸好还有一台台式机)。下载下来之后是个压缩包。用命令解压:

    # tar xzvf xxxxx.tgz
  得到一个叫XF86_SVGA的文件,复制到/usr/X11R6/bin目录:

    # cp XF86_SVGA /usr/X11R6/bin

  然后进Xconfigurator(这个好像是 RedHat 特有的,另外还有一个通用的 xf86cfg ,最好加上 -textmode 的参数)选择 SVGA 显卡就可以了。用命令 startx 来运行 X 服务之后,进入图形界面一切正常。

  然后是声卡。进了 Gnome 了,先听听歌试试看,但是 mp3 都放在了原来的 windows 的分区里面了,先挂载过来吧:

    # mount -t msdos /dev/hda5 /mnt/d

  挂载软盘和其他盘都差不多,只不过改一下 /dev/ 后面那个,软驱就是 /dev/fd0 (第一个软驱),光驱就是 /dev/hdc 等等。盘是挂过来了,打开一首 MP3 发现竟然没有声音。原来声卡都没配置好呢。使用 sndconfig 配置,它马上帮我识别出声卡是 YMH 的了,还播放了 linux 创始人说的那段话做为试音。可是又怪了,这个试音竟然不会自己停,反复说了 N 遍还在说。键盘鼠标也没有反应了,只能 reset 了。

  重起之后,进入系统的时候他说什么系统非正常关机,XXX未清空之类的话,早料到会这样了,于是又做了几分钟的扫描就继续 boot 。一波未平一波又起,现在竟然就停在 Enabling swap space [OK] 那一行了。我开始还以为是 swap 分区可能比较大,可能要扫描比较久。没想到 10 钟后再过来看,竟然还停在那里。重启了几次还是一样。

  幸好我有两台电脑,用另一台上网查查看。上网找了半天,很多论坛里都有很多人说他们也是到 Enabling swap space 那里就定住了,但好像没有看有人给出一个可行的解决方法。我差不多找遍了全世界的论坛,还是搞不定。

  既然 Enabling swap space 这个步骤已经 OK 了,那应该不是这一步出错。我记得重启之前,刚刚配置了一个声卡,确实在 Enabling swap space 这一步的前面也载入了声卡模块,会不会是因为这个声卡模块的问题呢?试试看吧,启动试不加载声卡模块看看。刚刚配置完 sndconfig 之后,它说修改了 /etc/modules.conf 文件。使用 linux 的安装光盘启动,进入 rescue 模式。在 rescue 模式中,还要 mount /dev/hd2 /mnt/hd2 (hd2是我安装linux的分区)才能看见原来安装的那个分区。进入 /dev/hd2/etc/ 然后删掉 modules.conf 文件(本来编辑他也可以,但是 rescue 模式里面没有 vi ):

    # rm modules.conf

  重新启动就搞定了。可惜又没有了声音,过后再装一个 oss 或 alsa 就可以了。

  现在先配置机子的网络部分,方便等下上网下载文件或从另一台机复制文件过来。我这里是网通的宽带,使用 PPPoE 拨号。网卡在安装系统的时候就识别好了,现在是 eth0 设备。用 ifconfig 查看。在 gnome 里面有个程序也是可以方便的改网卡的 IP 等等的。

  要用 PPPoE ,那就先看看 /usr/sbin 里面安装有 pppd 和 adsl-xxxxx 的程序没有,我这里的已经在安系统的时候选择安装好了。现在可以配置 adsl 拨号文件:

    # adsl-setup

  进入设置程序,在设置 DNS 那里的时候输入 server 就可以自动获得 DNS 。设置好之后可以启动拨号程序:

    # adsl-start

  成功的话会显示 connected! 用 adsl-status 可以查看状态。现在可以用浏览器试试看了。如果输入 www.gxcnc.net 它说无法解析域名,那说明是刚刚 adsl-setup 里面的DNS没有配置好。

  如果网卡没有安装好,就看看 /usr/X11/modules/net 里面有没有合适自己的网卡模块,例如我的 Intel pro 100 ,它的模块就是eepro100.o 。具体可以使用命令查看模块的信息

    # modinfo -d eepro100 (不要带上后缀.o)

  发现合适的模块之后,编辑 modules.conf 来让开机的时候加载模块,先备份 modules.conf 为 modules.conf.bak ,然后修改 /etc/modules.conf ,加上一行

    alias eepro100 eth0

  这种小型的修改可以使用 vi 。第一次使用vi的话可能有些不习惯。

  要使用 vi 编辑文件的话就是用这样的格式:

    # vi modules.conf

  打开 vi 之后显示命令模式,这里可以使用方向键指示光标上下左右的移动,如果方向键不能使用可以用 h j k l 这四个键代替。要想编辑就按 i 键进入 insert 模式编辑好之后按 Esc 键回到命令模式,按 Shift + ; 进入命令行模式,这时候下放会出现一个冒号,在这里输入 q! 表示不存盘退出,输入 wq 存盘退出。

  要加载其他模块也是用类似的方法。编辑好之后重启就行,如果加载模块不顺利,开机的时候幸运的话会显示 .....[failed] ,不幸的话会卡在那里。万一不幸的话,用前面讲的方法解除开机时模块的加载就可以解决。

  现在网卡正常了,也可以上网了,还差一个双机共享的功能。实现共享最方便就是使用 samba ,先确定有没有安装 samba ,查看 /etc/rc.d/init.d/ 下面有没有 smb 。如果没有就安装 samba ,一般安装光盘有。通常默然 smb 是没有启动的,可以随时启动他,进入 /etc/rc.d/init.d/ 然后打

    ./smb start

  启动他,停止他就是

    ./smb stop

  其他的服务类似。可以使用 setup 或者 ntsysv ,在里面选择开机时启用 smb 服务。这样只要 windows 那台机打开了共享,那么就可以挂载他共享的盘了:

    # mount -t smbfs -o username=aaaa,password=bbbb //192.168.1.41/c /mnt/hd

  这样就方便把win的那台机里面的东西复制过来了。

  刚才装的是 RedHat 7.0 ,内核版本是 2.2.16 ,它好像不支持 U 盘,那现在就升级一下内核,我在 http://www.kernel.org 下载了 2.4.5 (虽然不是最新的,只是随便下了一个支持U盘的)。下面来重新编译一个新内核。

  先把下载下来的源码复制到 /use/src 里面,然后解开它:

    # tar jxvf linux-2.4.5.tgz.bz2

  就会得到一个 linux-2.4.5 的目录,里面的东西大概有 100M ,进入这个目录,下面的工作都是在这个目录里面进行。

  先清除原来编译剩下的东西,不过这个是新下载回来的,不需要这一步,但是如果编译了好多次了,编译之前就得先清楚上一下遗留的文件,以免出现许多小麻烦。

    # make mrproper

  几秒钟就解决了。下面是设置即将编译的新内核里面的东西了:

    # make menuconfig

  这个 menuconfig 需要 ncurse 包,他佩带的 develop 库包也要,一般安装光盘里面有它的 rpm 文件,如果没安装就得先安装他(在有这个文件的目录下执行):

    # rpm -Uvh ncurse-5.1-i386.rpm
    # rpm -Uvh ncurse-5.1-devel-i386.rpm

  不同版本的文件名略有不同。安装好之后, menuconfig 应该就正常了,以后缺什么就安什么, rpm 包的安装方法都类似。

  里面的选项,打 * 的话表示编译进内核,打 M 的话表示编译成模块,编译成模块的话,内核就比较小,而且模块也可以选择是否加载。在 menuconfig 里面设置好了之后选 exit ,它就会问你保不保存。一定要注意在选 files system 那里要选择 VF* 和 **t3 ,要不然等会加载分区加载不了(除非不是用 ext3 文件系统来安装 linux 的)。然后就可以编译内核了:

    # make bzImage

  这个过程花费时间比较多,我的 PIII 700 的 cpu 得要十几分钟这样,也和编译进内核的东西的多少有关。完成之后他会告诉你这个内核文件有多大,一般也就是 1M 左右,然后他会说这个文件放在哪里,一般放在 arch/i386/boot 里面。之后就编译模块:

    # make modules

  这个时间也比较长。完成之后就安装模块:

    # make modules_install

  他会在 /lib/modules/linux-2.4.5 里面放入新编译的模块。以后要调用就在这里面。然后安装新的启动文件:

    # make install

  他会把刚刚编译的 bzImage 改名成 vmlinuz-2.4.5 复制到 /boot 里面,也会把 System.map 更新到 /boot 目录。

  现在编辑 lilo ,让启动的时候能使用新内核。用 vi 打开 /etc/lilo.conf ,加上:

    image=vmlinuz-2.4.5
    label=linux245
    root=/dev/hda2
    vga=791(表示用65535色,1024x768分辨率启动,可以不加这一行)

  保存之后,还要还要把他加载进 lilo

    # lilo

  这样在 lilo 的启动菜单里就可以选择新内核来启动了。

  到此, linux 也就可以用新内核,能使用高色彩、高分辨率,安装 oss 后就能使用声卡,能使用 samba 共享,能用 adsl 上网,基本功能都齐全了。 linux 里面是区分大小写的,有一次我把 make bzImage 打成 make bzimage 它就不认。linux还挺有意思的。总之,还有待研究。
文章评论

共有 3 条评论

  1. pan52014 于 2007-06-26 11:38:44发表:

    这么老的核也能这么玩~~厉害!!

  2. Memory 于 2007-06-26 00:47:25发表:

    先顶后读

  3. lazyhaha 于 2007-06-24 19:59:05发表:

    还是军长比较强!