在qemu上安装 slackware3.3 和添加网卡驱动 - fun - fun
在qemu上安装 slackware3.3 和添加网卡驱动
abelard
posted @ 2011年2月20日 05:04
in linux内核
, 3593 阅读
最近又想如何才能让自己感觉到深刻理解了, 还是觉得赵炯博士那种从简单的摸一遍是非常好的选择,从0.11开始吧,在bochs下跑起来了,觉得离现在的linux版本很多特点太遥远,尝试跑linux 1.0 内核,编译后加载到bochs上,在创建init进程后的进程调度失败,折腾了三天没有结果,放弃了。这次想从2.0开始,选择了slackware3.3 内核版本为linux 2.0.30
1. slackware3.3 简介
slackware3.3使用的内核为linux 2.0.30,由于考虑当时使用的启动盘是软盘,因此安装版不带网络驱动,如需要网络,需要重新编译内核。
2. 安装原始slackware3.3的步骤:
a. 下载安装文件
在 http://slackware.cs.utah.edu/pub/slackware/iso_images/ 有3.2等老的iso文件,下载了slackware-3.2-install.iso 貌似不是很好用,只测试了bare.i文件没有问题,color.gz不好使。
wget -r -L -m -c -P ./ http://slackware.mirrors.tds.net/pub/slackware/slackware-3.3/
下载整个目录下的所有目录和文件的办法。(以下叙述顶层目录名称用slackware-3.3),之后 使用mkisofs命令将整个目录做成slackware-3.3.iso文件
b. 安装
dos 安装 根据slackware-3.3目录下的INSTALL.TXT的 3.4.2.1. Creating the boot and root floppies ,因此首先需要安装dos,本次按照 http://www.xuniji.com/qemu/view.asp?id=5 (标题为:qemu下面安装dos)中的叙述 安装了dos710
制作启动盘: 启动dos后,按照 3.4.2.1. Creating the boot and root floppies 中的进行操作,用到的命令如下:
[abelard@localhost dos710]$ qemu -hda dos710.img -fda floppya.img -fdb floppyb.img -cdrom slackware-3.3.iso 从硬盘启动dos, 光驱在D:盘
d:\BOOTDISKS.144\>rawrite.exe BARE.I A:
d:\ROOTDSKS\>rawrite.exe color.gz B:
然后使用如下命令启动slackware 3.3, 发现启动不了,
[abelard@localhost dos710]$ qemu -hda slack-net.img -fda floppya.img -boot a
改用
[abelard@localhost dos710]$ qemu -hda slack-net.img -fda bare.i -boot a -cdrom slackware-3.3.iso
启动没有问题,碰到下面的显示时:
VFS: Insert root floppy disk to be loaded into ramdisk and press ENTER
使用ctrl + alt + 2切换到qemu的第2个shell,输入 change floppy0 floppyb.img (注:这里必须用floppy.img)回车,在用ctrl + alt + 1切回第一个shell,按回车即可启动到slackware 3.3 的login in窗口
准备安装盘: 根据3.4.2.2. Preparing for installation from hard drive 中提示,要将slackware-3.3.iso中的slakware目录下的所有目录和文件拷贝到硬盘(这里是c盘)中,3.4.2.2中提议在dos启动后拷贝,但这里用下面的方法:
用 qemu -hda dos710.img -fda bare.i -boot a -cdrom slackware-3.3.iso 命令启动后
mount /dev/hdc/ /mnt /mnt目录下将是slackware-3.3.iso中的内容
mount /dev/hda1 /tmp /tmp 目录下为dos中c盘的内容
cp -rf /mnt/slakware /tmp/
创建分区 和 安装软件: 按照 4.2.3. Using fdisk 和 4.4. Installing the software 操作即可创建分区和安装好软件 。
安装后: 使用 qemu -hda slack-net.img 命令就可以启动刚才的os了
3. 在原始slackware3.3上添加网卡
刚才的slackware3.3是没有网卡的,需要网卡的话需要重新编译内核,经过我师弟以前的实验,说在slackware3.0上可以支持qemu上加pcnet网卡,分两步来添加网卡
a. 使能qemu虚拟机中客户机的Tap/tun上网方式
刚才的slackware3.3是没有网卡的,需要网卡的话需要重新编译内核,经过我师弟以前的实验,说在slackware3.0上可以支持qemu上加pcnet网卡,分两步来添加网卡
a. 使能qemu虚拟机中客户机的Tap/tun上网方式
(a.1) 启用Tap设备
[abelard@localhost ~]$ sudo lsmod | grep tun //检查tun是否已启用
[abelard@localhost ~]$ sudo modprobe tun //如没有,就加载该模块
[abelard@localhost ~]$ sudo modprobe tun //如没有,就加载该模块
a.2 编辑 /etc/qemu-ifup 脚本 目的是设置tun/tap设备的ip,其内容如下:
#!/bin/sh
/sbin/ifconfig $1 172.20.0.1
/sbin/ifconfig $1 172.20.0.1
a.3 带网卡启动slackware
sudo qemu -hda slack-net.img -net tap -net nic,model=pcnet
注:为什么使用sudo呢,因为qemu-ifup脚本ifconfig命令需要root权限
注:为什么使用sudo呢,因为qemu-ifup脚本ifconfig命令需要root权限
b. 编译内核
启动slackware后,进入/usr/src/linux/
启动slackware后,进入/usr/src/linux/
执行make menuconfig 后,进入network device support
[*] Network device support
[*] Dummy net driver support
[*] Ethernet (10 or 100M bit)
[*] AMD LANCE and PCnet (AT1500 and NE2100) support
[*] AMD PCInet32( VLB and PCI ) support
注:这里可能有些选项是不需要的,还需要进一步验证,反正要这些肯定没有问题