時間:2022-06-28 23:18:16
緒論:在尋找寫作靈感嗎?愛發表網為您精選了8篇網卡驅動程序,愿這些內容能夠啟迪您的思維,激發您的創作熱情,歡迎您的閱讀與分享!
1、原因:驅動有問題。
2、要想正常使用無線網卡,就必須先得安裝網卡驅動程序。在一般情況下,購買無線網卡時會自帶驅動程序。如果沒有找到驅動程序,可以利用“驅動人生”等程序來自動獲取與網卡類型相匹配的驅動程序。
3、方法:當出現電腦無法識別無線網卡的情況時,是簡單的方法就是將無線USB網卡插到電腦后置USB接口上,以保證供電的充足。當然如果是偶然出現無法識別的情況,建議重啟一下電腦試試。
4、步驟:啟用USB無線網卡驅動:右擊“計算機”,從彈出的菜單中選擇“管理”項進入。在打開的窗口中,切換到“設備管理器”,確保“網絡適配器”列表中的無線網卡驅動被正常啟用。如果被禁用,則右擊選擇“啟用”項即可。
(來源:文章屋網 )
1、單擊右鍵,點開管理中的設備管理窗口;2、再點擊網絡適配器,顯示的是當前電腦所有的網絡適配器;3、然后單擊右鍵,出現屬性框,即可查看網卡驅動。
網卡驅動是CPU控制和使用網卡的程序。驅動程序全稱為“設備驅動程序”,是一種可以使計算機中央處理器控制和使用設備的特殊程序,相當于硬件的接口,操作系統通過這個接口,控制硬件設備的工作。網卡驅動程序就是中央處理器控制和使用網卡的程序。
(來源:文章屋網 )
1、原因:驅動有問題。
2、要想正常使用無線網卡,就必須先得安裝網卡驅動程序。在一般情況下,購買無線網卡時會自帶驅動程序。如果沒有找到驅動程序,可以利用“驅動人生”等程序來自動獲取與網卡類型相匹配的驅動程序。
3、方法:當出現電腦無法識別無線網卡的情況時,是簡單的方法就是將無線USB網卡插到電腦后置USB接口上,以保證供電的充足。當然如果是偶然出現無法識別的情況,建議重啟一下電腦試試。
4、步驟:啟用USB無線網卡驅動:右擊“計算機”,從彈出的菜單中選擇“管理”項進入。在打開的窗口中,切換到“設備管理器”,確保“網絡適配器”列表中的無線網卡驅動被正常啟用。如果被禁用,則右擊選擇“啟用”項即可。
(來源:文章屋網 )
1、在我們的電腦桌面上,鼠標右鍵此電腦,選擇管理,進去管理界面之后,點擊設備管理器
2、進去設備管理器之后,點擊網絡適配器,查看網卡驅動“Realtek PCle GBE Family Controller”是否有黃色感嘆號和是否被禁用。
3、如果網卡驅動出現黃色感嘆號,鼠標右鍵進行更新驅動程序,也可以通過一些驅動程序軟件進行更新,如果網卡驅動被禁用,進行啟用就可以
(來源:文章屋網 )
1、原因:win10系統下,未安裝網卡驅動程序。
2、解決方法:進入MAC系統或者其它可以上網的電腦下載網卡驅動,返回安裝即可。操作如下:首先在MAC系統中,或者其它可以聯網的電腦上下載“驅動精靈網卡版”;然后將下載的驅動精靈網卡版通過U盤復制到當前WIN10系統下,打開軟件,點擊“一鍵體檢”;然后軟件就會提示“電腦未安裝網卡驅動”,點擊彈出的網卡驅動進行安裝;等待安裝完成即可;安裝完成之后,即可正常上網。
(來源:文章屋網 )
就象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核心。
如何設置核心驅動程序參數,上節已有說明,不再贅述。
1、電腦不開機能卸載驅動,先進入安全模式,卸載主板驅動后,電腦即可開機。
2、主板驅動是指計算機用來識別電腦硬件的驅動程序,主要包括:芯片組驅動、集成顯卡驅動、集成網卡驅動、集成聲卡驅動、USB驅動等。
3、操作系統在運行的時候,不需要任何驅動程序,系統正常運行后,再安裝驅動程序即可。
4、不安裝驅動程序會導致部分功能無法使用,但系統可以正常運行。
(來源:文章屋網 )
關鍵詞:NW335;嵌入式Linux移植;WPA
1 背景
當今的物聯網時代,移動終端設備的通信得到廣泛的應用。各種設備相繼接入無線網絡,從而實現更靈活、更方便快速的網絡通信。
無線網卡模塊是實現無線網絡通信的硬件條件,目前來看主要有兩種形式(1)內置式無線網卡:即將網卡芯片與主板集成在一起,如手機、筆記本電腦等;(2)外置式無線網卡:利用USB接口外接USB無線網卡。這兩種方式各有優勢,本文主要研究外置式無線網卡的實際應用。
2 無線網卡驅動程序的配置與移植
2.1 無線網卡的選擇
從技術角度看,無線網卡的選擇要注意以下幾點:
(1)支持802.11b/g/n無線傳輸協議。
(2)采用主流廠商的無線網卡芯片.
(3)具備外置增益天線。
根據以上要求,本論文中選用了磊科的NW335型號的無線網卡來進行測試操作。
2.2軟硬件平臺
硬件平臺:S3c6410
軟件平臺:linux2.36.2
交叉編譯工具:arm-linux-gcc 4.3.2
2.3 NW335驅動程序的移植
不同廠商,不同型號的無線網卡的驅動程序不盡相同。因此,對于無線網卡驅動程序的移植就必不可少了。下面開始介紹對該款網卡的驅動程序移植到嵌入式linux操作系統的過程:
(1)登錄realtek官網:http://.tw/Default.aspx,獲取驅動程序源代碼,rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(2)將驅動程序以共享文件夾的方式移動到ubuntu虛擬機中,然后解壓縮,運行: tar xzvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(3) 打開解壓后的文件夾,如下圖:
修改Makefile,運行gedit Makefie,打開文件,將原來的代碼
CONFIG_PLATFORM_ANDROID_X86=y
CONFIG_PLATFORM_ARM_S3C6K4 =n
改為:
CONFIG_PLATFORM_ANDROID_X86=n
CONFIG_PLATFORM_ARM_S3C6K4 =y
執行make命令,會生成一個.ko文件,這里生成一個8188cu.ko文件。即是我們生成的linux下無線網卡的驅動程序。將該文件復制到開發板存儲器中,執行:insmod /8188cu.ko 即可加載該網卡的驅動程序。
3 安全認證與加密
對于無線網絡來說,由于信號不是在密閉的線路中傳輸,其安全性是必須要考慮的因素,數據傳輸過程中的協議與加密算法是非常重要的。目前主要的加密算法有兩種(1) WEP安全加密方式(2) WPA安全加密方式,其中wpa加密方式是目前最安全的加密技術,其配置過程如下:
一、下載并解壓縮源碼
登錄 http://hostap.epitest.fi/wpa_supplicant/,下載wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的補丁),并進行解壓縮:
#tar xvfz wpa_supplicant-0.7.3.tar.gz
下載/source/openssl-0.9.8e.tar.gz,并進行解壓縮
#tar zxvf openssl-0.9.8e.tar.gz
二、編譯openssl庫
將wpa_supplicant中的補丁拷貝到openssl中 ,修改配置文件,如下圖所示:
三、編譯wpa_supplicant ,修改配置文件后進行編譯,如下圖所示:
經過編譯后的wpa_supplicant源程序可以看到兩個主要的可執行工具:wpa_supplicant和wpa_cli。 wpa_supplicant是核心程序,它和wpa_cli的關系就是服務和客戶端的關系:后臺運行wpa_supplicant,使用wpa_cli 來搜索、設置、和連接網絡。
四、配置wpa_supplicant工具
修改wpa_supplicant.conf配置文件,其內容如下:
wpa_supplicant -B -i wlan0 -c /mnt/disk/home/wireless/wpa_supplicant.conf
4 保證不斷網的方案
因為各種各樣的原因,網絡有可能會連接不成功。如網絡設備故障,斷電,設備自身重啟,軟件硬件故障等。為了保證網絡連接的穩定性,需要制定的聯網策略,對斷網情況進行修復處理。
1.啟動時進行網絡檢測,若不能通過便重新啟動,代碼如下:
2.在運行期間每隔一段時間檢測網絡,若不成功便重新連接網絡:
5 結論
通過對磊科NW335無線網卡的移植,可以實現帶有USB接口的LINUX設備的聯網,實用效果比較理想。在具備網絡連接檢測軟件運行的情況下,設備可以實現不間斷的網絡通信。
參考文獻
[1] 李俊.嵌入式Linux設備驅動開發詳解[M].北京:人民郵電出版社,2008.126-167
[2] 宋寶華.Linux設備驅動開發詳解[M].北京:人民郵電出版社,2008.477-528
[3] 劉淼.嵌入式系統接口設計與Linux驅動程序開發[M].北京:航空航天大學出版社,2006.205-234
[4] 華清遠見嵌入式培訓中心linux設備驅動開發詳解 [M]北京:人民郵電出版社2007