Linux??×÷????????????????·????????¨???????§?????????????????????à???????????àíù????×?IT?ú?????··×·×??????Linux???§????Linux??????????????????????????±???·????÷????????±ê×?????Linux??POSIX1003.1?????????ü????±???×???UNIX?????ü???í???????á?????????ü????·??????÷??±???????·??????????????é???????????????????????????°?????ù??????Linux??????°???????Linux??????????(SHELL)?°???§?????í????????·???°?±???Linux·???°?±??????????????ò×é????Linux????????????°?×°?¤?????????í?????§??°ó???????á?????ù?????à·±?à???÷???÷?????±??????????×?????????????·???°?±??????????????à?????¨???§????±???????RedHat5.1???????¨·???°?±????????¨????????°?×°????????????????????????????·???°?±??????ù?????????è??×÷????
???óUNIX??Linux?§???????¨?÷???????????¨????3COM??ACCTON??AT??T??IBM??CRYSTAL??D??LINK?????à?·???????????¨????°?×°???????·???????????????ù???????§????
???? Linux?????¨???¤×÷???í
?????????????????÷???ü????????????·????ò????????????Linux???????????¨?¤×÷??????°???????Linux??????????????OSI?????????????????°?ü??????·????????????????????????????·???????§?¤×÷?????¨?????????ò???????????·???????í???????????¨???÷?????????ò??·????????ò???í????·??????????÷?????????ò???????????????í??????????????
1.???¨???????ò
?ò???????????????????????¨?????????????¨????×????????????é???¨?????????ò?????????ò?á???????ò??×÷???????????????????ò???í??????????
???????ò????×÷??????????????????·??????¨???ì?????¨???????°·????????????????????±???????ò??????×÷?±????×÷?????×???÷???ì????????·?????????°?×°?????¨???????????¨?§?????????????????ì??????????????×???·??????¨???÷????????·??ò???????????????ò??×÷?°???è???????¨???????????????ò???????±??????·????????±???ü?÷?????????ò??·?????????·????????????????????·???????????ó?¤?????í·?????????
???????ò???ò???í?????????????????í???????±???¨????????????·????????á?????ò??·????í?ó?±?????¨?ú?ú?????????????ó?????÷?????????????í?????????????í????????????·??ú?????ò?????????ì???????í??±????±???¨????????????·??ú?????±?????????í?????÷????????????????????
2.???????ò?¤×÷????
???????ò???¤×÷?????ò???¨???????????????????ó??°ü?¨I/O????????????????DMA?¨???????í??????????????????????????±??????????????ù???·???±???¨?¤×÷???????????????????±±????????????????????????è??CPU?????????¤?????ù?è?????°???????????ó??????CPU?¨???????????¨???????????¨?????????????????????¨???????ò???????????????ü?è±????????????±???¨????DMA·????±???ü??????DMA?¨???ú???????????????è??CPU?????¤??
???????é?????????¨?????????¨?§???ê??×????ì?????????????????????????¨?????????ò???ì???????á×????è?¨?ù?è????????°??é???????è?????¤?è?¨??????????????·??????????????¨???????????????????????????è?¨???????????????????????????¨????DMA???????????è?¨DMA?¨???????????????????????¨???????í???????????????????????è?¨???í???????????··??§??
3.???????ò??????·???
???????¨?????????ò?ó??????????????°????????ò??????Linux????????????°????????ò???¤?????????é??Linux???????????????¤???¤???????????¨??????????????°??è????·±?÷???????????????????????????ó?ó?á?????????§???????????é?????????????±??????????×??????????¨?????????ò?????????ò???????????¨??LILO?ü?????????????¨???????????ó???????ò????פ????????????????????·?·¨???????????????¨?????????????????¨??????±à??????????????±à???????????ó?????°??
????°????????ò±à??????×°?????é???????????????á?????ü?????????????ó???±?????????±???????????????????????ú???×?????í???????±?????ü?????????????????§???????????ò???????????ü???????±???????ò?¨?????????????¨??
???? ???¨°?×°?°??×?±?
??°?×°???¨?°????±??ì?é??·???±???????????
1.????·???
?????????¨
?????????????°?????·????10base??T??°???8??????????RJ??45????
2.?í??·???
??Linux??×÷????
?????¨???????ò(??±ê???ò???ú??)
???????¨???????ò
?????í????·??¤??????GNU?¤??°ü(°ü?¨±à???÷gcc??make??)
3.????????????
???????????????·
??????????????
????????????±ê??????±??????????????????????é???????????ó?????????????é?????????????????÷??
???? ???¨??°?×°?°????
???????????????????¨???¤×÷????
???????¨???????????¨???¤×÷???????????????·???????????????¨???±????????°??????????¨??????EEPROM?????????¨???§?°?è?????????±?????????ó?à???é???????????????????????????????????????????????????¨?????§???í???????è?????????????????????¨???è?????ò?????????ù???????¨?????????????????ò?????????¨?§???¨???????í???°?????????????·?¨???¨???¤×÷???????????¨???é?????¨???????÷?é???·?¨????????
???¨???è?????ò?????????ò???????è?????ò?????????????¨EEPROM?????è???????????????¨???ò±??í?????????????ü??×÷??????????WINDOWS95/98??OS/2??DOS??????????·?Linux???¨?????????????????è?????ò????????????°?×°???¨??°??è?????ò???÷?è?????¨?????????ó????Linux??????°?×°?????¨??
????????°?×°Linux????
??????????°?×°???????¨??Linux????±??í????°?×°??????????????×???°?×°Linux?????±°?×°???¨???????????????°?á??????Linux·???°?±?°ü??????°?×°?????¨?????????ò??
????Linux??°?×°???ò??°??á????????×÷??±??ü??°?×°????????????·????±??????LAN?????±??°?×°???ò?á?????ü?§?????ù?????¨???à???????????????¨??·?°???????????×?Linux·???°?±????????????????°RedHat 6.0???????????????????¨?à???????????????????????¨?????????????????????????????à???è????????±?????????°?×°???ò?á×????ê?????¨??°?×°?????????????????????????????????¨?à????????±???????????????????
???????????¤°?×°???¨
°?×°???¨??????°?×°???¨?????????ò?????¨???¤×÷±??????????????ò?????????????ò?????ì?????????????ò??°??????¨???ú?ú?ò???????á????????Linux??????????????????????×÷?????????¨???ú?ú?????????¨?á??Linux?·?????????????ò?????±?ò???????????ü??????°ì·¨????±?????INTERNET??ר???á?????????????ò???????é????????????????????×é???ù???ó?ú??????×????????????????¨?????????ò?ó??·???????????????
???¨?????????ò???????à???????????±???????????????ú?????í?????????????ò?????ú???????????ú????°????¤??±à????????×°?????é?????ú??????±à??????×°?????é????????±à??????????????????·???????°????ú??±à??????×°?????é????±??????????????????????é?????????ò?????÷?é??
1.??×°?????é??????
?????á??????×é?ü???????????????ò???é???????????????????ü??°ü?¨modprobe??insmod??Ismod??rmmod??modprobe ??insmod?ü???????à????????·????÷?ì??
??modprobe ?ü??????????????/erc/config.modules???????????????é?????? modprobe?ü?????????????¨?????????ò???????? config.modules????????????
alias eth0 drivermodule (drivermodule?????????ò???é??????)
????????????°????????¨???è±????????????ò???é??????????modprobe?ü????????????????×?????????·??? /lib/library/xxxx/net?????????? drivermodule.o?????é???ò?????? modprobe?ü?????????????ò???é??±??????????é·??? /lib/library/xxxx/net????????
???????????ò?????????????¨???????????conf.modules??????·?·¨??????×????????????????ó????????????????
options drivermodule parml=valuel,parm2=value2,????
????parm1 ?????????ò??????????????????valuel?????????????????à????
±???options cs89x0 io=0x200 irq=0xA media=aui
??insmod?ü???±???¨???ü?????????????????ò???é???????????????????ü???????¨???????ò????????????
insmod drivermodule.o parml=valuel,parm2=value2,????
?????????ü???????????????????ò???????????????????¨?°?????????ò???¨????×??????????¨?°???????ò?????÷?é?????????¨???????ò?????????????????????¨±??íEEPROM???????????????????ò±???????EEPROM???????????????ò?????????ò??×????ì?????¨?????????????ù??????°????¨??????EEPROM???????????????????ò??
???????????ò???é????rmmod?ü????
rmmod drivermodule.o
2.°????????ò±à????????????
????????×°?????é?????????????????ò????????°????????ò±à????Linux?????????????ü?????§????????·????è?????????ò?????ú????Linux???????ú???°??±à???¤????Linux??????±à??????°ü?¨?????????????¨???????????ú???????ú???????è?????????????????????????á?????????¤??(make config ?òmake menuconfig)?????ú??????±à???????????àmake?????????????????????????????¤?????????????¨???????ò?????è??????????????????????????
(1)???????????????÷?????????????ú??????????????????????drivers/net/CONFIG??????drivers/net/Config.in??????drivers/net/Makefile ??????drivers/net/Space.c??????CONFIG??Config.in?????????????????????¤??(make config ?òmake menuconfig)?????????÷??????????????·?°ü?¨?????¨???§???á????Makefile ??Space.c????????±à???????ú???????÷???ò?????????????ê????????????????×???
(2)?????????????¤?????????????ú????????????make config?ò make menuconfig?ü???? make config?????ò?ü?????????¨???????????á??????????????????????????????????????±??ò?·?????°???????????à????±???make menuconfig ?ò???¨???°??????·???????????????·?±?????±????????????????????????????·??????????????????????config???á??????·??è???????¨?§?????á????????????y?????ò????menuconfig???? network??????????±í???????¨??????????°??ü??????????
(3)???¨?????????????ò????????make dep??make clean?ü????
(4)?ú???????ú????????make zImage ?ü?????????ü??????????±à???????ú??????°??????ú????·???arch/i386/boot ????????zImage??
(5)?????????????????ú???????è?????????????ú?????????????????????????ú????°???·???/boot ?????????????????à????vmlinuz??v.s.r??m (v.s.r??m)±í????????°?±???)????vmlinuz??2.0.34??1???????????ü????
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???·???ì?é??????·????¨??
???????????????¨°?×°????
??????Cirrus?????ú?ú??Crystal CS8920???????¨???????ê?????÷????°?×°??????????±????????????ü?????????????????ú???????????????????????????·??????·???????????????????????±????????????ü???ü????????×?????°ü?¨????°?×°???????????????è????
1.?????¨??IBM PC?ú???????????¨???ú?÷???á????Windows95/98?·?????????????ò??????RedHat 5.0·???°?±??????á?????????¨???±???§?????ù????Cirrus?????????????????????????¨???????ò??Linux°?±?????????????Linux102_tar.gz????????????
2.????Linux102_tar.gz?????ó°ü?¨??????????°ü?¨???ú????????????Linux 2.0°?±?????±ê???é???°readme??????
3.?é??readme?????ó???????????????????ò???????????¨EEPROM???è?¨????????(I/O?ù???·)?????????????????????¨EEPROM???è????????Cirrus???????????????¨DOS°?±????è?????òsetup.exe
4.??DOS??????setup.exe??·??????¨??????????????0x360??????????10????±????è±?????????????setup.exe???ò???à????????°???????????5???í?????????????ò???§??plug and Play????????setup.exe???????¨??PnP??????±?????
5.???ù??????RedHat 5.0??Linux????°?±???2.0.34,?ù?????????????????????ò??±ê???é???è??×???????±à???????????ù??????????·????????????????ò??
6.??????±à???????????é???????????ü????
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??·????°????±????????????????¨°?×°????????????????????·???????????????????????????????????