Linux操作系统下以太网卡的安装及配置
?
cp arch/i386/boot/zImage /boot/vmlinuz-v.s.r-m
为了安全起见,可以先把原有的核心代码做个备份,以便发生错误时恢复。至此,你可以重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决的是驱动程序的参数问题。有些网卡驱动程序如果不输入参数,那它工作就会不正常,甚至根本不工作。由于现在网卡的驱动程序是系统启动时由核心载入运行的,系统启动之后用户就很难改变这些参数了,所以你必须在系统启动时告诉Linux核心网卡驱动程序使用的参数。具体方法有两种:
(1)在系统引导程序LILO中输入。
在LILO开始引导系统时,用ether子命令设定以太网卡驱动程序的参数。ether命令的使用方式为:LILO:linu xether=IRO.BASE_ADDR,NAME 这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linux ether=15,0x320,eth0
(2)在LILO配置文件中设定。
每次在系统启动时再输入驱动程序参数似乎有点过于麻烦。幸好系统提供了LILO的配置文件可以用来永久性的设置Linux系统启动时的子命令。方法是在/etc/lilo.conf文件中的适当位置加入以下一行:
append=“ether=IRQ, BASE_ADDR,NAME”
这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程序。
第四步:网络配置及测试
安装完网卡就可以配置网络通信了。配置网络简单地就是使用ifconfig命令,
例如:
ifconfig eth0 1.2.3.4 netmask 255.0.0.0 up
最后ping一下网上其它机器的ip地址,检查网络是否连通。
gcc -D_KERNEL_-I/usr/src/linux/include -I/usr/src/linux/net/inet-Wall -Wstrictprototypes -02 -fomit-frame-pointer -DMODULE -DCONFIG_MODVERSIONS -ccs89x0.c
编译结果是名为cs89x0.o的驱动程序目标模块。要装载此驱动程序,输入下列命令:
insmod cs89x0.o io=0x360 irq=10
要卸载此驱动程序,用rmmod命令:
rmmod cs89x0.o
7.如果要将驱动程序编进系统核心,
修改/usr/src/linux/drivers/net/CONFIG,加入:
CS89x0_OPTS=
修改/usr/src/linux/drivers/net/Config.in,加入:
tristate‘CS8920 Support'CONFIG_CS8920
以上两行是为了让make config在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:
ifeq((CONFIG_CS8920),y) L_OBJS+=cs89x0.o endif
修改/usr/src/linux/drivers/net/Space.c,加入:
extern int cs89x0_probe(struct device *dev); …… #ifdef CONFIG_CS8920 && cs89x0_probe(dev); #endif
以上两段是为了编译并输出网卡驱动程序及其例程。 把驱动程序源代码拷到/usr/src/linux/drivers/net目录下。 在/usr/src/linux目录下执行 make config或 make menuconfig,选择核心CS8920网卡支持。 执行make dep、make clean命令。最后用 make zImage 编译Linux核心。 如何设置核心驱动程序参数,上节已有说明,不再赘述。
六、结束语
与其它外设一样,以太网卡种类繁多,对于新兴的操作系统Linux来说,是否能够有效地支持这些设备,直接关系着Linux的发展前途。本文叙述的以太网卡安装配置只是其中的一小部分,未尽事宜希望与有识之仕共同探讨。
?