當前位置:首頁 » 存儲配置 » 如何將網卡配置寫入內核

如何將網卡配置寫入內核

發布時間: 2022-09-24 16:02:59

linux怎麼編譯進驅動進內核

一、 驅動程序編譯進內核的步驟
在 linux 內核中增加程序需要完成以下三項工作:
1. 將編寫的源代碼復制到 Linux 內核源代碼的相應目錄;
2. 在目錄的 Kconfig 文件中增加新源代碼對應項目的編譯配置選項;
3. 在目錄的 Makefile 文件中增加對新源代碼的編譯條目。

bq27501驅動編譯到內核中具體步驟如下:
1. 先將驅動代碼bq27501文件夾復制到 ti-davinci/drivers/ 目錄下。
確定bq27501驅動模塊應在內核源代碼樹中處於何處。
設備驅動程序存放在內核源碼樹根目錄 drivers/ 的子目錄下,在其內部,設備驅動文件進一步按照類別,類型等有序地組織起來。
a. 字元設備存在於 drivers/char/ 目錄下
b. 塊設備存放在 drivers/block/ 目錄下
c. USB 設備則存放在 drivers/usb/ 目錄下。
注意:
(1) 此處的文件組織規則並非絕對不變,例如: USB 設備也屬於字元設備,也可以存放在 drivers/usb/ 目錄下。
(2) 在 drivers/char/ 目錄下,在該目錄下同時存在大量的 C 源代碼文件和許多其他目錄。所有對於僅僅只有一兩個源文件的設備驅動程序,可以直接存放在該目錄下,但如果驅動程序包含許多源文件和其他輔助文件,那麼可以創建一個新子目錄。
(3) bq27501的驅動是屬於字元設備驅動類別,雖然驅動相關的文件只有兩個,但是為了方面查看,將相關文件放在了bq27501的文件夾中。在drivers/char/目錄下增加新的設備過程比較簡單,但是在drivers/下直接添加新的設備稍微復雜點。所以下面首先給出在drivers/下添加bq27501驅動的過程,然後再簡單說明在drivers/char/目錄下添加的過程。

2. 在/bq27501下面新建一個Makefile文件。向裡面添加代碼:
obj-$(CONFIG_BQ27501)+=bq27501.o
此時,構建系統運行就將會進入 bq27501/ 目錄下,並且將bq27501.c 編譯為 bq27501.o
3. 在/bq27501下面新建Kconfig文件。添加代碼:
menu "bq27501 driver"

config BQ27501
tristate"BQ27501"
default y
---help---
Say 'Y' here, it will be compiled into thekernel; If you choose 'M', it will be compiled into a mole named asbq27501.ko.
endmenu
注意:help中的文字不能加回車符,否則make menuconfig編譯的時候會報錯。
4. 修改/drivers目錄下的Kconfig文件,在endmenu之前添加一條語句『source drivers/bq27501/Kconfig』 對於驅動程序,Kconfig 通常和源代碼處於同一目錄。 若建立了一個新的目錄,而且也希望 Kconfig 文件存在於該目錄中的話,那麼就必須在一個已存在的 Kconfig 文件中將它引入,需要用上面的語句將其掛接在 drivers 目錄中的Kconfig 中。

5. 修改/drivers目下Makefile文件,添加『obj-$(CONFIG_BQ27501) +=bq27501/』。這行編譯指令告訴模塊構建系統在編譯模塊時需要進入 bq27501/ 子目錄中。此時的驅動程序的編譯取決於一個特殊配置 CONFIG_BQ27501 配置選項。

6. 修改arch/arm目錄下的Kconfig文件,在menu "Device Drivers……endmenu"直接添加語句
source "drivers/bq27501/Kconfig"

❷ 急急急!!怎麼設置網卡

正確設置網卡參數

許多使用寬頻撥號上網的用戶常常會遭遇到這樣的麻煩,那就是系統每次開機運行後,打開Windows界面的速度倒是十分正常,可是等到Windows系統桌面中的所有內容顯示出來後我們還需要等很長時間才能正常操作鍵盤和滑鼠,其實在這個等待過程中系統正處於一種假死狀態。事實上很少有人清楚,這個假死狀態竟然是由網卡一手造成的;原來系統在每次運行過程中,網卡在預設狀態下會自動向DHCP伺服器申請IP地址,不過我們由於使用的是寬頻撥號方式,這種撥號方式一般不會為網卡自動分配IP地址的,這么一來網卡就會耗費很長的時間來反復申請地址,直到最後申請失敗為止。

為了避免系統在啟動過程中,網卡耗費太長的時間去申請IP地址,我們可以通過下面的兩個方法來為網卡快速分配合適的IP地址:

第一種方法就是通過共享路由上網的方法,在使用該方法上網時,我們可以先打開IE瀏覽器,並在瀏覽窗口的地址欄中輸入路由器默認的IP地址,打開該設備的後台登錄界面,並正確輸入原始登錄帳號與密碼,進入後台管理界面,然後在該界面中將路由器的DHCP功能正確啟用起來,同時要將可供有效分配的IP地址池參數設置好,最後重新啟動一下設置好參數的路由器設備,這么一來Windows系統日後啟動時網卡就能很快從路由器內置的DHCP伺服器中獲得有用的IP地址了,那麼系統啟動過程中就不會出現假死等待狀態了,那樣的話啟動速度自然就要比以前快了許多。

第二種方法是通過虛擬撥號的方法進行上網,在使用該方法上網時,可以先用滑鼠右鍵單擊系統桌面中的「網上鄰居」圖標,從彈出的右鍵菜單中執行「屬性」命令,打開本地計算機系統的網路連接列表界面,選中該界面中的「本地連接」圖標,再用滑鼠右鍵單擊該圖標,然後執行快捷菜單中的「屬性」命令,打開本地連接屬性設置窗口;

單擊該窗口中的「常規」標簽,並在對應標簽頁面中雙擊其中的「Internet協議(TCP/IP)」項目,進入到如圖2所示的設置對話框;選中該對話框中的「使用下面的IP地址」項目,同時為網卡分配一個與寬頻「貓」IP地址同處一個網段的地址;例如,一般寬頻「貓」IP地址為「192.168.0.1」,那麼網卡IP地址就可以設置成「192.168.0.10」,子網掩碼地址可以設置為「255.255.255.0」,網關地址可以設置成「192.168.0.1」;下面的再在DNS伺服器地址處選擇「使用下面的DNS伺服器地址」,然後在對應的文本框中輸入本地ISP提供的DNS地址,例如筆者在這里填寫的是「202.102.11.141」,單擊「確定」按鈕,將上面的參數設置保存起來,最後重新啟動一下Windows系統,相信這一次系統很快就能啟動完畢。

圖2

小提示:

網卡參數設置不當,不但會影響計算機系統的啟動速度,而且還會影響共享訪問速度。例如,要是相互通信的兩台工作站網卡使用的工作模式不匹配的話,就會嚴重影響它們的數據傳輸速度;這不,當10M/100M自適應網卡與100M網卡相互通信時,一旦10M/100M自適應網卡工作模式被設置為10M全雙工時,那麼該網卡每次和100M網卡相互傳輸數據時,就需要耗費一定的時間來決定該使用什麼大小的速度進行數據傳輸,那樣的話兩台工作站相互傳輸數據的速度就會受到很大影響。

為了防止網卡模式影響共享訪問速度,我們必須根據實際情況來設置好網卡的工作模式。一般來說,當相互通信的網卡型號完全相同時,我們只要將它們的工作模式設置成相同就可以了;當一塊網卡為10M/100M自適應的,另外一塊網卡為100M的,那麼它們在相互通信時,我們可以將10M/100M自適應網卡模式調整成100M全雙工模式,而將100M網卡設置成默認工作模式就可以了;當一塊網卡為10M/100M自適應的,另外一塊網卡為10M的,那麼它們在相互通信時,我們可以將10M/100M自適應網卡模式調整成10M全雙工模式,而將10M網卡設置成默認工作模式就可以了;在具體調整網卡模式參數時,可以按照下面的操作步驟進行:

首先逐一單擊「開始」、「設置」、「網路連接」命令,在其後彈出的網路連接列表界面中右擊本地連接圖標,執行右鍵菜單中的「屬性」菜單命令,進入本地連接屬性設置窗口;

單擊該設置窗口中的「常規」標簽,並在對應標簽頁面的「連接時使用」處,將安裝在本地計算機中的目標網卡設備選中,同時單擊右側「配置」按鈕,打開網卡設備屬性設置窗口;

在該設置窗口的「高級」標簽頁面中,選中「屬性」列表中的「Link Speed/Duplex Mode」選項(如圖3所示),並在該選項的「值」下拉列表中,為網卡選擇一個合適的工作模式,並單擊「確定」按鈕就可以了。

在開始之前,您應該知道您的網卡類型,它用的晶元和它是 PCI 還是 ISA 網卡。FreeBSD 支持很多種 PCI 和 ISA 網卡。 可以查看您的版本硬體兼容性列表以確定您的網卡被支持。

確認系統能夠支持您的網卡之後, 您還需要為它選擇合適的驅動程序。 /usr/src/sys/conf/NOTES 和 /usr/src/sys/arch/conf/NOTES 將為您提供所支持的一些網卡和晶元組的信息。 如果您懷疑驅動程序是否使所要找的那一個,請參考驅動程序的聯機手冊。 聯機手冊將提供關於所支持的硬體更詳細的信息,甚至還包括可能發生的問題。

如果您的網卡很常見的話, 大多數時候您不需要為驅動浪費精力。 常用的網卡在 GENERIC 內核中已經支持了,所以您的網卡在啟動時就會顯示出來,像是:

dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
dc0: Ethernet address: 00:a0:cc:da:da:da
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
dc1: Ethernet address: 00:a0:cc:da:da:db
miibus1: <MII bus> on dc1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
在這個例子中,我們看到有兩塊使用 dc(4) 驅動的網卡在系統中。

如果您的網卡沒有出現在 GENERIC 中,則需要手工載入合適的驅動程序。 要完成這項工作可以使用下面兩種方法之一:

最簡單的辦法是用 kldload(8) 載入網卡對應的內核模塊。 除此之外, 通過在 /boot/loader.conf 文件中加入適當的設置, 也可以讓系統在引導時自動載入這些模塊。 不過,並不是所有的網卡都能夠通過這種方法提供支持; ISA 網卡是比較典型的例子。

另外, 您也可以將網卡的支持靜態聯編進內核。 察看 /usr/src/sys/conf/NOTES, /usr/src/sys/arch/conf/NOTES 以及驅動程序的聯機手冊以了解需要在您的內核配置文件中加一些什麼。要了解關於重新編譯內核的進一步細節, 請參見 第 8 章。如果您的卡在引導時可以被內核 (GENERIC) 識別,您應該不需要編譯新的內核。

11.8.1.1 使用 Windows® NDIS 驅動程序
不幸的是, 許多廠商由於認為驅動程序會涉及許多敏感的商業機密,至今仍不願意將把驅動程序作為開放源代碼形式發布列入他們的時間表。 因此, FreeBSD 和其他操作系統的開發者就只剩下了兩種選擇: 要麼經歷長時間的痛苦過程來對驅動進行逆向工程,要麼使用現存的為 Microsoft® Windows 平台提供的預編譯版本的驅動程序。 包括參與 FreeBSD 開發的絕大多數開發人員, 都選擇了後一種方法。

得益於 Bill Paul (wpaul) 的工作, 從 FreeBSD 5.3-RELEASE 開始, 已經可以 「直接地」 支持 網路驅動介面標准 (NDIS, Network Driver Interface Specification) 了。 FreeBSD NDISulator (也被稱為 Project Evil) 可以支持二進制形式的 Windows 驅動程序, 並讓它相信正在運行的是 Windows。 由於 ndis(4) 驅動使用的是用於 Windows 的二進制形式的驅動, 因此它只能在 i386™ 和 amd64 系統上使用。

注意: ndis(4) 驅動在設計時主要提供了 PCI、 CardBus 和 PCMCIA 設備的支持, 而 USB 設備目前則沒有提供支持。

要使用 NDISulator, 您需要三件東西:

內核的源代碼

二進制形式的 Windows XP 驅動程序 (擴展名為 .SYS)

Windows XP 驅動程序配置文件 (擴展名為 .INF)

您需要找到用於您的卡的這些文件。 一般而言, 這些文件可以在隨卡附送的 CD 或製造商的網站上找到。 在下面的例子中, 我們用 W32DRIVER.SYS 和 W32DRIVER.INF 來表示這些文件。

注意: 不能在 FreeBSD/amd64 上使用 Windows/i386 驅動程序。 必須使用 Windows/amd64 驅動才能在其上正常工作。

接下來的步驟是將二進制形式的驅動程序組裝成內核模塊。 要完成這一任務, 需要以 root 用戶的身份執行 ndisgen(8):

# ndisgen /path/to/W32DRIVER.INF /path/to/W32DRIVER.SYS
ndisgen(8) 是一個互動式的程序, 它會提示您輸入所需的一些其他的額外信息; 這些工作完成之後,它會在當前目錄生成一個內核模塊文件, 這個文件可以通過下述命令來載入:

# kldload ./W32DRIVER.ko
除了剛剛生成的內核模塊之外, 還必須載入 ndis.ko 和 if_ndis.ko 這兩個內核模塊, 在您載入需要 ndis(4) 的模塊時,通常系統會自動完成這一操作。 如果希望手工載入它們, 則可以使用下列命令:

# kldload ndis
# kldload if_ndis
第一個命令會載入 NDIS 袖珍埠驅動封裝模塊,而第二條命令則載入實際的網路介面。

現在請查看 dmesg(8) 來了解是否發生了錯誤。 如果一切正常, 您會看到類似下面的輸出:

ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps
這之後, 就可以像使用其它網路介面 (例如 dc0) 一樣來使用 ndis0 設備了。

與任何其它模塊一樣, 您也可以配置系統, 令其在啟動時自動載入 NDIS 模塊。 首先,將生成的模塊 W32DRIVER.ko 復制到 /boot/moles 目錄中。 接下來, 在 /boot/loader.conf 中加入:

W32DRIVER_load="YES"
11.8.2 配置網卡
現在正確的網卡驅動程序已經裝載,那麼就應該配置它了。跟其他配置一樣,網卡可以在安裝時用 sysinstall 來配置。

要顯示您系統上的網路介面的配置,輸入下列命令:

% ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-plex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
注意: 老版本的 FreeBSD 可能需要在 ifconfig(8) 後面接 -a 選項,需要了解更多的 ifconfig(8) 語法請查閱使用手冊。注意所有關於 IPv6 (inet6 等等) 的記錄在這個例子里都被忽略了。

在這個例子中,顯示出了下列設備:

dc0: 第一個乙太網介面

dc1: 第二個乙太網介面

lp0: 並行埠網路介面

lo0: 回環設備

tun0: ppp使用的隧道設備

FreeBSD 使用內核引導時檢測到的網卡驅動順序來命名網卡。例如 sis2 是系統中使用 sis(4) 驅動的第三塊網卡。

在這個例子中,dc0 設備啟用了。主要表現在:

UP 表示這塊網卡已經配置完成准備工作。

這塊網卡有一個 Internet (inet) 地址 (這個例子中是 192.168.1.3)。

它有一個有效的子網掩碼 (netmask; 0xffffff00 等同於 255.255.255.0)。

它有一個有效的廣播地址 (這個例子中是 192.168.1.255)。

網卡的 MAC (ether) 地址是 00:a0:cc:da:da:da

物理傳輸媒介模式處於自動選擇狀態 (media: Ethernet autoselect (100baseTX <full-plex>))。我們看到 dc1 被配置成運行在 10baseT/UTP 模式下。要了解驅動媒介類型的更多信息, 請查閱它們的使用手冊。

連接狀態 (status)是 active,也就是說連接信號被檢測到了。對於 dc1,我們看到 status: no carrier。這通常是網線沒有插好。

如果 ifconfig(8) 的輸出顯示了類似於:

dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
ether 00:a0:cc:da:da:da
的信息,那麼就是還沒有配置網卡。

要配置網卡,您需要 root 許可權。 網卡配置可以通過使用 ifconfig(8) 命令行方式來完成, 但是這樣每次啟動都要做一遍。放置網卡配置信息的文件是 /etc/rc.conf。

用您自己喜歡的編輯器打開 /etc/rc.conf。並且您需要為每一塊系統中存在的網卡添加一行, 在我們的例子中,添加如下幾行:

ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"
用自己正確的設備名和地址來替換例子中的 dc0,dc1 等內容。您應該應該查閱網卡驅動和 ifconfig(8) 的手冊頁來了解各選項,也要查看一下 rc.conf(5) 幫助頁來了解 /etc/rc.conf 的語法。

如果在安裝的時候配置了網路,關於網卡的一些行可能已經存在了。所以在添加新行前仔細檢查一下 /etc/rc.conf。

您也可能需要編輯 /etc/hosts 來添加區域網中不同的機器名稱和 IP 地址,如果它們不存在,查看 hosts(5) 幫助和 /usr/share/examples/etc/hosts 以獲得更多信息。

11.8.3 測試和調試
對 /etc/rc.conf 做了必要的修改之後應該重啟系統以應用對介面的修改,並且確認系統重啟後沒有任何配置錯誤。

系統重啟後就應該測試網路介面了。

11.8.3.1 測試乙太網卡
為了確認網卡被正確的配置了,在這里我們要做兩件事情。首先, ping 自己的網路介面,接著 ping 區域網內的其他機器。

首先測試本地介面:

% ping -c5 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms

--- 192.168.1.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms
現在我們應該 ping 區域網內的其他機器:

% ping -c5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms

--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms
您如果您設置了 /etc/hosts 文件,也可以用機器名來替換 192.168.1.2。

11.8.3.2 調試
調試硬體和軟體配置一直是一件頭痛的事情, 從最簡單的開始可以減輕一些痛苦。例如網線是否插好了?是否配置好了網路服務?防火牆配置正確嗎? 是否使用了被 FreeBSD 支持的網卡? 在發送錯誤報告之前您應該查看一下硬體說明, 升級 FreeBSD 到最新的 STABLE 版本, 看一下郵件列表或者在 Internet 上搜索一下。

如果網卡工作了, 但性能低下,應該好好閱讀一下 tuning(7) 聯機手冊。您也可以檢查一下網路配置, 不正確的設置會導致慢速的網路連接。

一些用戶可能會在一些網卡上經歷一到兩次 「device timeouts」, 這通常是正常現象。 如果經常這樣甚至引起麻煩,則應確定一下它跟其他設備沒有沖突。 仔細檢查網線連接, 或者換一塊網卡。

有時用戶會看到少量 「watchdog timeout」 錯誤。這種情況要做的第一件事就是檢查線纜連接。 一些網卡需要支持匯流排控制的 PCI 插槽。在一些老的主板上,只有一個 PCI 插槽支持 (一般是 slot 0)。檢查網卡和主板說明書來確定是不是這個問題。

「No route to host」 通常發生在如果系統不能發送一個路由到目的主機的包的時候。這在沒有指定默認路由或者網線沒有插上時會發生。 檢查 netstat -rn 的輸出並確認有一個有效的路由能到達相應的主機。 如果沒有,請查閱 第 27 章。

「ping: sendto: Permission denied」 錯誤信息經常由防火牆的配置錯誤引起。 如果 ipfw 在內核中啟用了但是沒有定義規則, 那麼默認的規則就是拒絕所有通訊,甚至 ping 請求! 查閱 第 26 章 以了解更多信息。

有時網卡性能低下或者低於平均水平, 這種情況最好把傳輸媒介模式從 autoselect 改變為正確的傳輸介質模式。 這通常對大多數硬體有用,但可能不會解決所有人的問題。 接著,檢查所有網路設置,並且閱讀 tuning(7) 手冊頁。

❸ 如何在linux系統下配置無線網卡

vmware三種模式onlyhost、NAT、bridge模式否選虛擬硬體否添加線網卡

❹ 如何將驅動添加進內核

一、 驅動程序編譯進內核的步驟 在 linux 內核中增加程序需要完成以下三項工作: 1. 將編寫的源代碼復制到 Linux 內核源代碼的相應目錄; 2. 在目錄的 Kconfig 文件中增加新源代碼對應項目的編譯配置選項; 3. 在目錄的 Makefile 文件中增加對新源代碼的編譯條目。 bq27501驅動編譯到內核中具體步驟如下: 1. 先將驅動代碼bq27501文件夾復制到 ti-davinci/drivers/ 目錄下。 確定bq27501驅動模塊應在內核源代碼樹中處於何處。 設備驅動程序存放在內核源碼樹根目錄 drivers/ 的子目錄下,在其內部,設備驅動文件進一步按照類別,類型等有序地組織起來。 a. 字元設備存在於 drivers/char/ 目錄下 b. 塊設備存放在 drivers/block/ 目錄下 c. USB 設備則存放在 drivers/usb/ 目錄下。 注意: (1) 此處的文件組織規則並非絕對不變,例如: USB 設備也屬於字元設備,也可以存放在 drivers/usb/ 目錄下。 (2) 在 drivers/char/ 目錄下,在該目錄下同時存在大量的 C 源代碼文件和許多其他目錄。所有對於僅僅只有一兩個源文件的設備驅動程序,可以直接存放在該目錄下,但如果驅動程序包含許多源文件和其他輔助文件,那麼可以創建一個新子目錄。 (3) bq27501的驅動是屬於字元設備驅動類別,雖然驅動相關的文件只有兩個,但是為了方面查看,將相關文件放在了bq27501的文件夾中。在drivers/char/目錄下增加新的設備過程比較簡單,但是在drivers/下直接添加新的設備稍微復雜點。所以下面首先給出在drivers/下添加bq27501驅動的過程,然後再簡單說明在drivers/char/目錄下添加的過程。 2. 在/bq27501下面新建一個Makefile文件。向裡面添加代碼: obj-$(CONFIG_BQ27501)+=bq27501.o 此時,構建系統運行就將會進入 bq27501/ 目錄下,並且將bq27501.c 編譯為 bq27501.o 3. 在/bq27501下面新建Kconfig文件。添加代碼: menu "bq27501 driver" config BQ27501 tristate"BQ27501" default y ---help--- Say 'Y' here, it will be compiled into thekernel; If you choose 'M', it will be compiled into a mole named asbq27501.ko. endmenu 注意:help中的文字不能加回車符,否則make menuconfig編譯的時候會報錯。 4. 修改/drivers目錄下的Kconfig文件,在endmenu之前添加一條語句『source drivers/bq27501/Kconfig』 對於驅動程序,Kconfig 通常和源代碼處於同一目錄。 若建立了一個新的目錄,而且也希望 Kconfig 文件存在於該目錄中的話,那麼就必須在一個已存在的 Kconfig 文件中將它引入,需要用上面的語句將其掛接在 drivers 目錄中的Kconfig 中。 5. 修改/drivers目下Makefile文件,添加『obj-$(CONFIG_BQ27501) +=bq27501/』。這行編譯指令告訴模塊構建系統在編譯模塊時需要進入 bq27501/ 子目錄中。此時的驅動程序的編譯取決於一個特殊配置 CONFIG_BQ27501 配置選項。 6. 修改arch/arm目錄下的Kconfig文件,在menu "Device Drivers……endmenu"直接添加語句 source "drivers/bq27501/Kconfig"

❺ 如何配置Linux網卡

linux下配置網路步驟方法:

配置動態IP

1、在終端命令窗口中輸入setup,就會彈出如下窗口。
[root@wgods ~]# setup

拓展資料

1、網卡上面裝有處理器和存儲器(包括RAM和ROM)。網卡和區域網之間的通信是通過電纜或雙絞線以串列傳輸方式進行的。而網卡和計算機之間的通信則是通過計算機主板上的I/O匯流排以並行傳輸方式進行。因此,網卡的一個重要功能就是要進行串列/並行轉換。由於網路上的數據率和計算機匯流排上的數據率並不相同,因此在網卡中必須裝有對數據進行緩存的存儲晶元。

2、在安裝網卡時必須將管理網卡的設備驅動程序安裝在計算機的操作系統中。這個驅動程序以後就會告訴網卡,應當從存儲器的什麼位置上將區域網傳送過來的數據塊存儲下來。網卡還要能夠實現乙太網協議。

3、網卡並不是獨立的自治單元,因為網卡本身不帶電源而是必須使用所插入的計算機的電源,並受該計算機的控制。因此網卡可看成為一個半自治的單元。當網卡收到一個有差錯的幀時,它就將這個幀丟棄而不必通知它所插入的計算機。當網卡收到一個正確的幀時,它就使用中斷來通知該計算機並交付給協議棧中的網路層。當計算機要發送一個IP數據包時,它就由協議棧向下交給網卡組裝成幀後發送到區域網。

4、隨著集成度的不斷提高,網卡上的晶元的個數不斷的減少,雖然各個廠家生產的網卡種類繁多,但其功能大同小異。

參考資料:網路:網卡

❻ centos 7.1無線網卡怎麼設置配置文件

centos7的網卡設置和以前的版本設置有所不同,設置方法如下:

1.安裝好後,網卡是以eno1677736命名的

❼ 如何在linux系統下配置無線網卡

工作的大體思路如下:
用iwconfig開啟無線網卡的電源,並查找區域內的無線網路
連接到相應的無線網路
通過ifconfig啟用無線網卡,並獲取IP(如果使用DHCP的話)

注意:
假設無線被識別為wlan0,如果您的網卡沒有被識別為wlan0,可以在操作時做相應的修改。
具體過程
1. 打開無線網卡電源
iwconfig wlan0 txpower on
無線網路的信號燈應該亮了。
2. 列出區域內的無線網路
iwlist wlan0 scan
3. 假設要連接到網路MyHome(即essid為MyHome的網路),那麼輸入命令
iwconfig wlan0 essid "MyHome"
如果網路是加密的,密碼是0123456789,那麼就輸入命令
iwconfig wlan0 essid "MyHome" key 0123-4567-89
4. 如果正常的話,輸入
iwconfig wlan0
就可以看到連接正常的各項參數了。
5. 啟用無線網卡
ifconfig wlan0 up
6. 如果是用DHCP獲取IP的,那麼用dhclient 或dhcpcd獲取ip
dhclient wlan0

dhcpcd wlan0
7. 現在無線網卡應該可以正常使用了。

❽ 如何配置linux內核

在做Virtualization這段時間,編譯過多次Linux kernel,編譯Kernel過程中配置config這一步是相對來說比較復雜的。對編譯內核過程中的配置這一步做詳細的說明吧,總結一下,多數內容源於網上的多篇文章。

首發在我的博客:http://renyongjie668.blog.163.com/blog/static/1600531201143010295156/

首先,配置時可能出現的選項,對其選擇先來個說明吧。
Typically, your choices for each option are shown in the format [Y/m/n/?] The capitalized letter is the default, and can be selected by just pressing the Enter key. The four choices are:
y Build directly into the kernel.
n Leave entirely out of the kernel.
m Build as a mole, to be loaded if needed.
? Print a brief descriptive message and repeat the prompt.
y表示是(相應功能將直接編譯進內核),m表示模塊(相應功能將編譯為一個模塊,在需要時載入),以及n表示否(相應功能不會包含進內核)。?則(對該配置項)列印出簡要的描述信息並重復剛才的選擇提示。
其次,我使用的最多的兩個配置命令分別是:make muneconfig和make oldconfig
make oldconfig和make config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題。
make menuconfig基於終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過游標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統中必須安裝有ncurese庫。

在內核樹的根目錄中,有一個.config文件,它記錄了內核的配置選項,可直接對它進行修改,再運行。在.config文件中,每個配置和選項的值只能為」y」和」m」兩者之一,如果不需要這個特性不再支持她,那麼可以將對應的選項用」#」注釋掉。實際上,如果你手頭有合適的.config文件,可以運行make oldconfig 直接按.config的內容來配置$ sudo make oldconfig
對內核的配置都是圍繞.config來展開的. 即便開始.config文件不存在,進行配置後會創造它.
一般來說,內核配置保存於/usr/src/linux-*/.config文件中。在/boot/config-<版本>有其備份。請保留它以備後用。

常見的幾種配置方式:
為了完成內核的配置,必須切換到root用戶,然後轉入內核源碼目錄(就是你下載新內核的目錄):
#cd /usr/src/linux/linux-2.6.38
然後執行下面命令之一:
#make config
#make oldconfig
#make menuconfig
#make gconfig
#make defconfig
#make allyesconfig
#make allmodconfig

1.make config
基於文本的最為傳統的也是最為枯草的一種配置方式,但是它可以使用任何情況,這種方式會為每一個內核支持的特性向用戶提問,如果用戶回答「y」,則把特性編譯進內核;回答「m」,則它特性作為模塊進行編譯;回答「n」,則表示不對該特性提供支持
如果回答每個問題前,必須考慮清楚,如果在配置過程中犯了錯誤給了錯誤的回答,就只能按「ctcl+c」強行退出了

2.make oldconfig
make oldconfig和make config類似,但是它的作用是在現有的內核設置文件基礎上建立一個新的設置文件,只會向用戶提供有關新內核特性的問題,在新內核升級的過程 中,make oldconfig非常有用,用戶將現有的配置文件.config復制到新內核的源碼中,執行make oldconfig,此時,用戶只需要回答那些針對新增特性的問題
make silentoldconfig : Like above, but avoids cluttering the screen with questions already answered.和上面oldconfig一樣,但在屏幕上不再出現已在.config中配置好的選項。

3.make menuconfig
基於終端的一種配置方式,提供了文本模式的圖形用戶界面,用戶可以通過游標移動來瀏覽所支持的各種特性。使用這用配置方式時,系統中必須安裝有ncurese庫,否則會顯示「Unable to find the Ncurses libraies」的錯誤提示

4.make xoncifg
基 於X Winodws的一種配置方式,提供了漂亮的配置窗口,不過只有能夠在X Server上使用root用戶欲行X應用程序時,才能夠使用,它依賴於QT,如果系統中沒有安裝QT庫,則會出現「Unable to find the QT installation」的錯誤提示

5.make gconfig
與make xocnifg類似,不同的是make gconfig依賴於GTK庫

6.make defconfig
按照默認的配置文件arch/i386/defconfig對內核進行配置,生成.config可以用作初始化配置,然後再使用make menuconfig進行定製化配置

7.make allyesconfig
盡量多地使用「y」設置內核選項值,生成的配置中包含了全部的內核特性
make allnoconfig :除必須的選項外,其它選項一律不選. (常用於嵌入式系統).

8.make allmodconfig
盡可能多的使用「m」設置內核選項值來生成配置文件

下載好Linux內核源代碼後,在源代碼的根目錄執行
make localyesconfig或者make localmodconfig
然後系統就會根據你的硬體自動生成一個適應你的硬體的.config (內核的配置文件)
make localmodconfig會執行lsmod命令查看當前系統中載入了哪些模塊(Moles),並最後將原來的.config中不需要的模塊去掉,僅保留前面lsmod出來的這些模塊,從而簡化了內核的配置過程。
這樣做確實方便了很多,但是也有個缺點:該方法僅能使編譯出的內核支持當前內核已經載入的模塊。因為該方法使用的是lsmod的結果,如果有的模塊當前沒有載入,那麼就不會編到新的內核中。
There』s an additional 「make localyesconfig」 target, in case you don』t want to use moles and/or initrds.

幾條好的建議:
除非您使用初始化ramdisk (initrd),否則絕不要把掛載根文件系統必需的驅動程序(硬體驅動以及文件系統驅動)編譯成模塊!而如果您確實使用初始化ramdisk,請為ext2FS支持選項選擇Y,因為ramdisk使用該文件系統。您還需要initrd支持。
如果您系統中有網卡,將它們的驅動編譯成模塊。這樣,您就能夠在/etc/moles.conf中用別名定義哪一塊網卡第一,哪一塊第二,等等。如果您將驅動程序編譯進了內核,它們載入的順序將取決於當初它們鏈接進內核的順序,而這不一定是您想要的。
最後,如果您不清楚某個選項的含義,請閱讀其幫助!而如果該幫助信息依然不能解決您的困惑,請保留該選項原來的樣子。(在config和oldconfig中可以按?鍵訪問幫助。)
配置最終結束後,請保存您的配置並退出。

參考資料:

http://www.cnmaizi.com/tech/elebuild/simplify-linux-kernel-config-rapid-compile-method-collect/

http://man.ddvip.com/linux/Mandrakelinuxref/compiling-conf.html

http://www.huomo.cn/os/article-5d18.html

編譯 Linux2.6 內核總結: http://www.cublog.cn/u/13991/showart.php?id=79823

編譯內核:http://my.chinaunix.net/space.php?uid=25806768&do=blog&id=302764

內核_.config 內核配置及Makefile:http://www.cnblogs.com/parrynee/archive/2010/05/13/1734689.html

❾ 請教一個問題怎麼把無線網卡編譯到內核中去

編譯為驅動模塊.ko,然後insmod就可以呀。

❿ linux無線網卡配置

先去確認所在的區域有無wi-fi覆蓋,並且得到相應的wi-fi登錄密碼
打開linux終端,登錄root用戶,用【lsusb】命令檢查是否檢測到網卡。
檢查模塊與對應的網卡代號,看看是否正確載入到內核。採用【modinfo】與【iwconfig】命令。如果出現wlan0之類的網卡才是捕捉到。
如果沒有載入正確的驅動程序,那就要下載正確的驅動程序,可以用【rpm】命令下載相關的驅動程序。
網卡檢測到,並且載入正確的驅動程序。下面就是開始配置網卡配置文件。【cd】進入【etc/sysconfig/network-scripts】目錄,再用【vim】打開相應的網卡配置文件進行配置。
配置好之後,檢測網路是否聯通,可採用【ping】命令。

熱點內容
androidactivity生命 發布:2024-04-27 07:33:48 瀏覽:83
win2008伺服器搭建網站 發布:2024-04-27 07:26:51 瀏覽:639
java的vector 發布:2024-04-27 07:05:00 瀏覽:203
舊電腦共享伺服器 發布:2024-04-27 06:32:21 瀏覽:339
java程序練習 發布:2024-04-27 06:24:00 瀏覽:438
sql30 發布:2024-04-27 06:22:10 瀏覽:55
怎樣防止sql注入 發布:2024-04-27 06:11:25 瀏覽:236
安卓為什麼不能登蘋果系統的游戲 發布:2024-04-27 06:11:23 瀏覽:601
編程日課 發布:2024-04-27 05:56:54 瀏覽:620
漏洞上傳工具 發布:2024-04-27 05:50:58 瀏覽:717