導航:首頁 > 文件管理 > 內核模塊讀配置文件

內核模塊讀配置文件

發布時間:2023-06-05 18:36:17

A. 我想在linux的內核模塊中對文件進行打開讀寫等操作,可以實現嗎

寫個驅動···· vfs_write之類的函數,具體網上很多例子

B. Linux內核根目錄中的配置文件.config中包含了許多宏定義,

一、Linux內核的配置系統由三個部分組成,分別是:
1、Makefile:分布在 Linux 內核源代碼根目錄及各層目錄中,定義 Linux 內核的編譯規則;
2、配置文件(config.in(2.4內核,2.6內核)):給用戶提供配置選擇的功能;
3、配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進行解釋)和配置用戶界面(提供基於字元界面、基於 Ncurses 圖形界面以及基於 Xwindows 圖形界面的用戶配置界面,各自對應於 Make config、Make menuconfig 和 make xconfig)。這些配置工具都是使用腳本語言,如 Tcl/TK、Perl 編寫的(也包含一些用 C 編寫的代碼)。本文並不是對配置系統本身進行分析,而是介紹如何使用配置系統。所以,除非是配置系統的維護者,一般的內核開發者無須了解它們的原理,只需要知道如何編寫 Makefile 和配置文件就可以。

二、Make menuconfig過程分析

1、scripts文件夾存放的是跟make menuconfig配置界面的圖形繪制相關的文件,我們作為使用者無需關心這個文件夾的內容
2、讀取arch/arch/$ARCH/Kconfig以及各子目錄下的Kcondig文件,生成配置條目。
$ARCH由linux內核根目錄下的makefile文件決定
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
Kconfig文件中為配置信息的宏定義,與我們在make menuconfig圖形界面看到的信息一致。
例如:
config CPU_S3C2410_DMA
bool
depends on S3C2410_DMA && (CPU_S3C2410 || CPU_S3C2442)
default y if CPU_S3C2410 || CPU_S3C2442
help
DMA device selection for S3C2410 and compatible CPUs
因此,Kconfig文件很重要的作用就是:定義配置宏、相關依賴關系、幫助信息
3、讀取內核根目錄下.config文件,生成配置選項:[*]編譯進內核 [M]編譯為模塊 [ ]不編譯
arch/arm/configs/文件夾下存放了一些配置模板
我們可以通過cp /arch/arm/configs/xx_defconfig .config來使用這些配置模板
通過圖形界面變更配置選項會自動更新到.config文件中
make disclean 會刪除.config
4、編譯過程根據.config生成 Linux內核根目錄下的 include/config/auto.conf文件
CONFIG_EEPROM_93CX6=m
CONFIG_DM9000=y
根目錄Makefile以及子目錄的Makefile根據auto.conf生成編譯條件
obj-$(CONFIG_DM9000) += dm9000.o //obj-m += dm9000.o
5、編譯過程根據.config生成Linux內核根目錄下的 include/linux/autoconf.h文件
.config 或 auto.conf 中定義要編譯為 m 模塊的項,如:
CONFIG_DEBUG_NX_TEST=m
在 autoconf.h 中會被定義為:
#define CONFIG_DEBUG_NX_TEST_MODULE 1

.config或auto.conf 中定義為編譯為 y 的選項,如:
CONFIG_DM9000= y
在 autoconf.h 中會被定義為:
#define CONFIG_DM9000 1
autoconf.h中是.config或者auto.conf中配置信息的另一種體現形式,它是站在源碼的角度,供源碼使用的C語言宏定義。
6、總結
我們在使用make menuconfig時,首先會確定架構arch,然後讀取arch目錄的Kconfig中的配置宏定義,生成編譯條目,然後讀取Linux內核根目錄下的.config選項, 將.config中的配置信息顯示在圖形界面上[*] [M] or []。我們在圖形界面中更改配置選項會自動保存到.config文件中。編譯過程根據.config隨後生成auto.conf文件,它決定了makefile中各個文件的編譯類型,靜態編譯進內核、編譯成模塊、不編譯;同時生成autoconf.h,它以C語言宏定義的形式表達了 各個文件是否被編譯,源碼中會判斷某文件是否被編譯進行不同的處理。

三、將自定義文件添加進內核配置系統
1、修改文件目錄下Kconfig文件
添加:
config HELLO
tristate "just a test hello"
default y
---help---
This is a test
//tristate 或 bool 表示可選擇種類數量3[*][M][ ]、2
// "just a test hello"將作為標題顯示在配置的圖形界面
2、修改文件目錄下makefile文件
obj-$(CONFIG_HELLO) += hello_drv.o
3、make menuconfig 我們會在字元設備驅動的界面看到 ust a test hello 並且默認編譯進內核

4、make編譯內核發現
autoconfig.h 自動添加 #define CONFIG_HELLO 1
auto.conf 自動添加 CONFIG_HELLO=y

C. linux 系統配置文件

一般的配置文件都是放在/etc目錄下的 (你可以通過輸入:ll /etc命令來列出etc目錄下的具體內容專)
不同的服務對應屬不同的文件。如:
/etc/httpd.conf對應apache服務
/etc/named.conf對應DNS服務
/etc/dhcpd.coonf對應DHCP服務
/etc/samba/smb.conf對應文件共享
/etc/passwd 對應用戶名
/etc/shadow 對應用戶密碼
/etc/ypserv.conf 對應NIS服務
/etc/vsftpd/vsftpd.conf 對應FTP服務
/etc/hosts 對應主機名和IP地址關系
/etc/resolv.conf 對應DNS伺服器的設置
如果你要有所改動的話要根據你的實際需要修改一下相關的配置文件就可以了!不過有的文件的位置是不能修改的!

D. 系統配置的配置文件

內核本身也可以看成是一個「程序」。為什麼內核需要配置文件?內核需要了解系統中用戶和組的列表,進而管理文件許可權(即根據許可權判定特定用戶(UNIX_USERS)是否可以打開某個文件)。注意,這些文件不是明確地由程序讀取的,而是由系統庫所提供的一個函數讀取,並被內核使用。例如,程序需要某個用戶的(加密過的)密碼時不應該打開 /etc/passwd 文件。相反,程序應該調用系統庫的getpw() 函數。這種函數也被稱為系統調用。打開 /etc/passwd 文件和之後查找那個被請求的用戶的密碼都是由內核(通過系統庫)決定的。
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /etc 目錄中。配置文件可以大致分為下面幾類:
訪問文件
/etc/host.conf 告訴網路域名伺服器如何查找主機名。(通常是 /etc/hosts,然後就是名稱伺服器;可通過 netconf 對其進行更改。)
/etc/hosts 包含(本地網路中)已知主機的一個列表。如果系統的 IP 不是動態生成,就可以使用它。對於簡單的主機名解析(點分表示法),在請求 DNS 或 NIS 網路名稱伺服器之前,/etc/hosts.conf 通常會告訴解析程序先查看這里。
/etc/hosts.allow 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
/etc/hosts.deny 請參閱 hosts_access 的聯機幫助頁。至少由 tcpd 讀取。
引導和登錄/注銷
/etc/issue & /etc/issue.net 這些文件由 mingetty(和類似的程序)讀取,用來向從終端(issue)或通過 telnet 會話(issue.net)連接的用戶顯示一個「welcome」字元串。 它們包括幾行聲明 Red Hat 版本號、名稱和內核ID 的信息。它們由 rc.local 使用。
/etc/redhat-release 包括一行聲明 Red Hat 版本號和名稱的信息。由 rc.local 使用。
/etc/rc.d/rc 通常在所有運行級別運行,級別作為參數傳送。 例如,要以圖形(Graphics)模式(X-Server)引導機器,請在命令行運行下面的命令:init 5。運行級別 5 表示以圖形模式引導系統。
/etc/rc.d/rc.local 非正式的。可以從 rc、rc.sysinit 或 /etc/inittab 調用。
/etc/rc.d/rc.sysinit 通常是所有運行級別的第一個腳本。
/etc/rc.d/rc/rcX.d 從 rc 運行的腳本(X 表示 1 到 5 之間的任意數字)。這些目錄是特定「運行級別」的目錄。 當系統啟動時,它會識別要啟動的運行級別,然後調用該運行級別的特定目錄中存在的所有啟動腳本。例如,系統啟動時通常會在引導消息之後顯示「entering run-level 3」的消息;這意味著 /etc/rc.d/rc3.d/ 目錄中的所有初始化腳本都將被調用。
文件系統
內核提供了一個介面,用來顯示一些它的數據結構,這些數據結構對於決定諸如使用的中斷、初始化的設備和內存統計信息之類的系統參數可能很有用。這個介面是作為一個獨立但虛擬的文件系統提供的,稱為 /proc 文件系統。很多系統實用程序都使用這個文件系統中存在的值來顯示系統統計信息。例如,/proc/moles 文件列舉系統中當前載入的模塊。lsmod 命令讀取此信息,然後將其以人們可以看懂的格式顯示出來。 下面表格中指定的 mtab 文件以同樣的方式讀取包含當前安裝的文件系統的 /proc/mount 文件。
/etc/mtab 這將隨著 /proc/mount 文件的改變而不斷改變。換句話說,文件系統被安裝和卸載時,改變會立即反映到此文件中。
/etc/fstab 列舉計算機當前「可以安裝」的文件系統。 這非常重要,因為計算機引導時將運行 mount -a 命令,該命令負責安裝 fstab 的倒數第二列中帶有「1」標記的每一個文件系統。
/etc/mtools.conf DOS 類型的文件系統上所有操作(創建目錄、復制、格式化等等)的配置。
系統管理
/etc/group 包含有效的組名稱和指定組中包括的用戶。單一用戶如果執行多個任務,可以存在於多個組中。例如,如果一個「用戶」是「project 1」工程組的成員,同時也是管理員,那麼在 group 文件中他的條目看起來就會是這樣的:user: * : group-id : project1
/etc/nologin 如果有 /etc/nologin 文件存在,login(1) 將只允許 root 用戶進行訪問。它將對其它用戶顯示此文件的內容並拒絕其登錄。
etc/passwd 請參閱「man passwd」。它包含一些用戶帳號信息,包括密碼(如果未被 shadow程序加密過)。
/etc/rpmrc rpm 命令配置。所有的 rpm 命令行選項都可以在這個文件中一起設置,這樣,當任何 rpm 命令在該系統中運行時,所有的選項都會全局適用。
/etc/securetty 包含設備名稱,由 tty 行組成(每行一個名稱,不包括前面的 /dev/),root 用戶在這里被允許登錄。
/etc/usertty
/etc/shadow 包含加密後的用戶帳號密碼信息,還可以包括密碼時效信息。
/etc/shells 包含系統可用的可能的「shell」的列表。
/etc/motd 每日消息;在管理員希望向 Linux 伺服器的所有用戶傳達某個消息時使用。
初學者在使用電腦過程中,肯定會碰到各種各樣的問題:如怎麼管理電腦的自啟動程序、如何查看載入的系統服務、怎樣從安裝光碟提取丟失的系統文件等。為了解決類似問題,微軟在系統中提供了一個實用工具——系統配置實用程序(Msconfig)。
以系統管理員身份登錄系統後,單擊「開始→運行」輸入「Msconfig」回車後即可啟動系統配置實用程序
下面就結合幾個應用實例來詳細介紹Msconfig的使用(以WinXP為例)。
「一般」選項不一般
默認情況下,Windows採用的是正常啟動模式(即載入所有驅動和系統服務),但是有時候由於設備驅動程序遭到破壞或服務故障,常常會導致啟動出現一些問題,這時可以利用Msconfig的其它啟動模式來解決問題。單擊 「一般」選項,在「啟動模式」選擇「診斷啟動」,這種啟動模式有助於我們快速找到啟動故障原因。此外,還可以選擇「有選擇的啟動模式」,按提示勾選需要啟動的項目即可。
小提示:診斷啟動是指系統啟動時僅載入基本設備驅動程序如顯卡驅動,而不載入Modem、網卡等設備,服務也僅是系統必須的一些服務。這時系統是最干凈的,如果啟動沒有問題,可以依次載入設備和服務來判斷問題出在哪裡。
雖然WinXP具備強大的文件保護功能,不過有時候由於安裝/卸載軟體或誤操作,還是經常會造成系統文件的丟失。一般重要的系統文件,在系統安裝光碟CAB文件中都可以找到。單擊上圖的「展開文件」,然後在彈出窗口中依次輸入要還原的文件(填入丟失文件名)、還原自(單擊「瀏覽自」,選擇安裝光碟的CAB壓縮文件)、保存文件到(選擇保存文件路徑,WinXP/2000一般為c:windowssystem32,Win98則為c:windowssystem),最後單擊「展開」,系統會自動解壓CAB文件,將系統文件從安裝光碟提取到電腦。
可以先用系統的SFC命令來掃描系統文件的改動,找出變化的系統文件,命令格式:SFC [/SCANNOW] [/SCANONCE] [/SCANBOOT] [/REVERT] [/PURGECACHE] [/CACHESIZE=x]
/SCANNOW:立即掃描所有受保護的系統文件。
/SCANONCE:下次啟動時掃描所有受保護的系統文件。
/SCANBOOT:每次啟動時掃描所有受保護的系統文件。
/REVERT:將掃描返回到默認設置。
/PURGECACHE:清除文件緩存。
/CACHESIZE=x:設置文件緩存大小。
在電腦應用中經常會看到「許可權」這個詞,特別是Windows 2000/XP被越來越多的朋友裝進電腦後,常常會有讀者問,什麼是許可權呢?它到底有什麼用?下面我們將用幾個典型實例為大家講解windows中的許可權應用,讓你不僅可以在不安裝任何軟體的情況下,限制別人訪問你的文件夾、指定用戶不能使用的程序,而且還有來自微軟內部的加強系統安全的絕招。
初識Windows的許可權
首先,要完全使用windows許可權的所有功能,請確保在應用許可權的分區為NTFS文件系統。本文將以windowsXP簡體中文專業版+SP2作為範例講解。
在以NT內核為基礎的Windows 2000/XP中,許可權主要分為七大類完全控制、修改,讀取和運行、列出文件夾目錄、讀取、寫入、特別的許可權。
其中完全控制包含了其他六大許可權.只要擁有它,就等同於擁有了另外六大許可權,其餘復選框會被自動選中.屬於「最高等級」的許可權。
而其他許可權的等級高低分別是:特別的許可權>讀取和運行>修改>寫入>讀取。
默認情況下,Windows XP將啟用簡單文件共享,這意味著安全性選項卡和針對許可權的高級選項都不可用.也就不能進行本文所述的那些許可權應用操作了。請右擊任意文件或文件夾.選擇「屬性」,如果沒有看到「安全」選項卡,你可以通過如下方法打開它。
打開「我的電腦」,點擊「工具→文件夾選項→查看」,接著在然後單擊取消「使用簡單文件共享(推薦)」復選框即可。
實戰許可權「正面」應用
以下應用的前提,是被限制的用戶不在Administrators組,否則將可能發生越權訪問,後面反面應用會講到。執行許可權設置的用戶至少需要為Power Users組的成員,才有足夠許可權進行設置。
實例1:我的文檔你別看-保護你的文件或文件夾
假設A電腦中有三個用戶,用戶名分別為User1、User2、User3。Userl不想讓User2和User3查看和操作自己的「test」文件夾。
第一步:右擊test文件夾並選擇屬性,進入安全選項卡,你將會看到組或用戶名稱欄里有Administrators(AAdministrators)、CREATOR OWNER、SYSTEM Users(AUsers)、User1(A User1)。他們分別表示名為A電腦的管理員組,創建、所有者組,系統組,用戶組以及用戶User1對此文件夾的許可權設置。當然,不同的電腦設置和軟體安裝情況,此欄里的用戶或用戶組信息不一定就是和我描述的一樣.但正常情況下最少將包含3項之一:Administrators、SYSTEM、Users或Everyone。
第二步:依次選中並刪除Administrators、CREATOR OWNER、SYSTEM、Users,僅保留自己使用的Userl賬戶。在操作中可能會遇到的提示框。
其實只要單擊高級按鈕,在許可權選項卡中,取消從父項繼承那些可以應用到子對象的許可權項目,包括那些在此明確定義的項目的復選框,在彈出對話框中單擊刪除即可。該操作使此文件夾清除了從上一級目錄繼承來的許可權設置,儀保留了你使用的User1賬戶。
就這么輕松,你就實現了其他用戶,甚至系統許可權都無法訪問test文件夾的目的。
★需要注意的是,如果這個文件夾中需要安裝軟體,那麼就不要刪除SYSTEM,不然可能引起系統訪問出錯
★Administrator並不是最高指揮官:你可能會問,為什麼這里會有一個SYSTEM賬戶呢?同時許多朋友認為windows2000/XP中的Administrator是擁有許可權最高的用戶,其實不然,這個SYSTEM才具有系統最高許可權,因為它是作為操作系統的一部分工作,任何用戶通過某種方法獲取了此許可權,就能凌駕一切。
實例2:上班時間別聊天-禁止用戶使用某程序
第一步:找到聊天程序的主程序,如QQ,其主程序就是安裝目錄下的QQ.exe,打開它的屬性對話框,進入安全選項卡,選中或添加你要限制的用戶,如User3。
第二步:接著選擇完全控制為拒絕,讀取和運行也為拒絕。
第三步:單擊高級按鈕進入高級許可權沒置,選中User3,點編輯按鈕,進入許可權項目。在這里的拒絕欄中選中更改許可權和取得所有權的復選框。
也可以使用組策略編輯器來實現此功能,但安全性沒有上面方法高。點擊開始→運行,輸入gpedit.msc,回車後打開組策略編輯器,進入計算機設置→windows設置→安全設置→軟體限制策略→其他規則,右擊,選擇所有任務→新路徑規則,接著根據提示設置想要限制的軟體的主程序路徑,然後設定想要的安全級別,是不允許的還是受限制的。
實例3:來者是客--微軟內部增強系統安全的秘技
本實戰內容將需要管理員許可權。所謂入侵,無非就是利用某種方法獲取到管理員級別的許可權或系統級的許可權,以便進行下一步操作,如添加自己的用戶。如果想要使入侵者進來之後不能進行任何操作呢?永遠只能是客人許可權或比這個許可權更低,就算本地登錄,連關機都不可以。那麼,他將不能實施任何破壞活動。
注意:此法有較高的危險性.建議完全不知道以下程序用途的讀者不要嘗試.以免誤操作引起系統不能進入或出現很多錯誤。
第一步:確定要設置的程序
搜索系統目錄下的危險程序,它們可以用來創建用戶奪取及提升低許可權用戶的許可權,格式化硬碟,引起電腦崩潰等惡意操作:cmd.exe、regedit.exe、regsvr32.exe、regedt32.exe、gpedit.msc、format.com、compmgmt.msc、mmc.exe、telnet.exe、tftp.exe、ftp.exe、XCOPY.EXE、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、net.exe、tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、cscript.exe、netstat.exe、issync.exe、runonce.exe、debug.exe、rexec.exe、wscript.exe、command.com、comspd.exe
第二步:按系統調用的可能性分組設置
按照下面分組.設置這些程序許可權。完成一組後,建議重啟電腦確認系統運行是否一切正常,查看事件查看器,是否有錯誤信息(控制面板→管理工具→事件查看器)。
(1)cmd.exe、net.exe gpedit.msc telnet.exe command.com
(僅保留你自己的用戶,SYSTEM也刪除)
(2)mmc.exe、tftp.exe、ftp.exe、XCOPY.EXE、comspd.exe
(僅保留你自己的用戶,SYSTEM也刪除)
(3)regedit.exe、regedt32.exe、format.com、compmgmt.msc、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、debug.exe、wscript.exe、cscript.exe、rexec.exe
(保留你自己的用戶和SYSTEM)
(4)tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、netstat.exe、issync.exe、runonce.exe、regsvr32.exe
(保留你自己的用戶和SYSTEM)
第三步:用戶名欺騙
這個方法騙不了經驗豐富的入侵者,但卻可以讓不夠高明的偽黑客們弄個一頭霧水。
打開控制面板一管理工具一計算機管理,找到用戶,將默認的Administrator和Guest的名稱互換,包括描述信息也換掉。完成後,雙擊假的Administrator用戶,也就是以前的Guest用戶.在其屬性窗口中把隸屬於列表裡的Guests組刪除.這樣.這個假的管理員賬號就成了無黨派人士,不屬於任何組,也就不會繼承其許可權。此用戶的許可權幾乎等於0,連關機都不可以,對電腦的操作幾乎都會被拒絕。如果有誰處心積慮地獲取了這個用戶的許可權,那麼他肯定吐血。
第四步:集權控制,提高安全性
打開了組策略編輯器,找到計算機設置→windows設置→安全設置→本地策略→用戶權利指派,接著根據下面的提示進行設置。
(1)減少可訪問此計算機的用戶數,減少被攻擊機會
找到並雙擊從網路訪問此計算機,刪除賬戶列表中用戶組,只剩下Administrators;
找到並雙擊拒絕本地登錄,刪除列表中的Guest用戶,添加用戶組Guests。
(2)確定不想要從網路訪問的用戶,加入到此黑名單內
找到並雙擊拒絕從剛絡訪問這台計算機,刪除賬戶列表中的Guest用戶,添加用戶組Guests;
找到並雙擊取得文件或其他對象的所有權,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除列表中Administrators。
(3)防止跨文件夾操作
找到並雙擊跳過遍歷檢查,添加你所使用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators、Everyone和Users用戶組。
(4)防止通過終端服務進行的密碼猜解嘗試
找到並雙擊通過終端服務拒絕登錄,添加假的管理員賬戶Administrator;找到通過終端服務允許登錄,雙擊,添加你常用的賬戶和以上修改過名稱為Guest的管理員賬戶,再刪除賬戶列表中的Administrators,Remote Desktop User和HelpAssistant(如果你不用遠程協助功能的話才可刪除此用戶)。
(5)避免拒絕服務攻擊
找到並雙擊調整進程的內存配額,添加你常用的賬戶,再刪除賬戶列表中的Administrators
實例4:你的文檔別獨享——突破文件夾私有的限制
windows XP安裝完成並進入系統時,會詢問是否將我的文檔設為私有(專用),如果選擇了是,那將使該用戶下的我的文檔文件夾不能被其他用戶訪問,刪除,修改。其實這就是利用許可權設置將此文件夾的訪問控制列表中的用戶和用戶組刪除到了只剩下系統和你的用戶,所有者也設置成了那個用戶所有,Administrators組的用戶也不能直接訪問。如果你把這個文件夾曾經設置為專用,但又在該盤重裝了系統,此文件夾不能被刪除或修改。可按照下面步驟解決這些問題,讓你對這個文件夾的訪問,暢通無阻。
第一步:登錄管理員許可權的賬戶,如系統默認的Administrator,找到被設為專用的我的文檔,進入其屬性的安全選項卡,你將會看到你的用戶不在裡面,但也無法添加和刪除。
第二步:單擊高級按鈕,進入高級許可權設置,選擇所有者選項卡,在將所有者更改為下面的列表中選中你現在使用的用戶,如Userl(AUserl),然後再選中替換子容器及對象的所有者的復選框,然後單擊應用,等待操作完成。
第三步:再進入這個文件夾看看,是不是不會有任何許可權的提示了?可以自由訪問了?查看裡面的文件,復制、刪除試試看.是不是一切都和自己的一樣了?嘿嘿。如果你想要刪除整個文件夾,也不會有什麼阻止你了。
ServerWinStationsRDP-Tcp 改3389 的

E. 怎麼查看linux下的模塊,很多命令的介紹

1、lsmod 列加以掛載的內核模塊;
lsmod 是列出目前系統中已載入的模塊的名稱及大小等;另外我們還可以查看 /proc/moles ,我們一樣可以知道系統已經載入的模塊;
代碼:

[root@localhost beinan]# lsmod
2、modinfo 查看模塊信息;
modinfo 可以查看模塊的信息,通過查看模塊信息來判定這個模塊的用途;
代碼:

[root@localhost beinan]# moinfo 模塊名
舉例:
代碼:

[root@localhost beinan]# modinfo ne2k-pcifilename: /lib/moles/2.6.11-1.1369_FC4/kernel/drivers/net/ne2k-pci.koauthor: Donald Becker / Paul Gortmakerdescription: PCI NE2000 clone driverlicense: GPLparmtype: debug:intparmtype: options:array of intparmtype: full_plex:array of intparm: debug:debug level (1-2)parm: options:Bit 5: full plexparm: full_plex:full plex setting(s) (1)vermagic: 2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0depends: 8390alias: pci:v000010ECd00008029sv*sd*bc*sc*i*alias: pci:v00001050d00000940sv*sd*bc*sc*i*alias: pci:v000011F6d00001401sv*sd*bc*sc*i*alias: pci:v00008E2Ed00003000sv*sd*bc*sc*i*alias: pci:v00004A14d00005000sv*sd*bc*sc*i*alias: pci:v00001106d00000926sv*sd*bc*sc*i*alias: pci:v000010BDd00000E34sv*sd*bc*sc*i*alias: pci:v00001050d00005A5Asv*sd*bc*sc*i*alias: pci:v000012C3d00000058sv*sd*bc*sc*i*alias: pci:v000012C3d00005598sv*sd*bc*sc*i*alias: pci:v00008C4Ad00001980sv*sd*bc*sc*i*srcversion: 6ACE95F441CD26DF9DC31C2
上 面的例子是我們查看 ne2k-pci 這個模塊的信息,通過查看,我們知道ne2k-pci 模塊是8029網卡(PCI NE2000 clone driver)的驅動;模塊是位於 /lib/moles/2.6.11-1.1369_FC4/kernel/drivers/net/ 中ne2k-pci.ko
我們現在常用的網卡也有8139的,8139網卡所用的驅動是 8139too ;查查看?
代碼:

[root@localhost beinan]# modinfo 8139too

我們再查查vfat 和ntfs 的模塊信息;
代碼:

[root@localhost beinan]# modinfo vfat[root@localhost beinan]# modinfo ntfs

自己嘗試一下;
注意: 模塊名是不能帶有後綴的,我們通過modprobe -l 所看到的模塊,都是帶有.ko 或.o後綴;
3、modprobe 掛載新模塊以及新模塊相依賴的模塊
modprobe 我們常用的功能就是掛載模塊,在掛載某個內核模塊的同時,這個模塊所依賴的模塊也被同時掛載;當然modprobe 也有列出內核所有模塊,還有移除模塊的功能;下在我們舉個例子說一說咱們常用的功能和參數;
代碼:
modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-o ] [parameters...]
modprobe -r [-n] [-i] [-v] ...
modprobe -l -t [ -a ...]
上面是modprobe 的用法,具體更為詳細的幫助,我們可以查看 man modprobe ;
代碼:
[root@localhost beinan]# modprobe -c
modprobe -c 可以查看moles 的配置文件,比如模塊的別名是什麼等;
代碼:

[root@localhost beinan]# modprobe -l
modprobe -l 是列出內核中所有的模塊,包括已掛載和未掛載的;通過modprobe -l ,我們能查看到我們所需要的模塊,然後根據我們的需要來掛載;其實modprobe -l 讀取的模塊列表就位於 /lib/moles/'uname -r' 目錄中;其中uname -r 是內核的版本;
代碼:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/moles/2.6.11-1.1369_FC4/
通過上面的命令,自己試試看?
代碼:

[root@localhost beinan]# modprobe 模塊名 註:掛載一個模塊;
舉例:
代碼:

[root@localhost beinan]# modprobe ne2k-pci 註:掛載 ne2k-pci 模塊;[root@localhost beinan]# modprobe vfat 註:掛載vfat 模塊[root@localhost beinan]# modprobe ntfs 註:掛載ntfs 模塊[root@localhost beinan]# lsmod 註:列出已掛載模塊, 我們會看到ne2k-pci ,vfat ,ntfs的模塊 ;
注意: 模塊名是不能帶有後綴的,我們通過modprobe -l 所看到的模塊,都是帶有.ko 或.o後綴;
代碼:

[root@localhost beinan]# modprobe -r 模塊名 註:移除已載入的模塊,和rmmod 功能相同;
注意:模塊名是不能帶有後綴的,我們通過modprobe -l 所看到的模塊,都是帶有.ko 或.o後綴;
代碼:

[root@localhost beinan]# modprobe -r 模塊名
舉例:
代碼:

[root@localhost beinan]# modprobe -r ne2k-pci
就說這么多吧,更為詳細的還是用 man modprobe 來查看和嘗試;

4、rmmod 移除已掛載模塊;
命令格式:
代碼:
rmmod 模塊名
注意: 模塊名是不能帶有後綴的,我們通過modprobe -l 所看到的模塊,都是帶有.ko 或.o後綴;
舉例:
代碼:
[root@localhost beinan]# rmmod vfat 註:移除已掛載的模塊vfat
5、depmod 創建模塊依賴關系的列表
這 個模塊管理工具是創建模塊依賴關系的列表,有幾個參數我們注意一下就行了,目前的的Linux 發行版所用的內核是2.6x版本,是自動解決依賴關系,所以這個命令知道就行了;模塊之前也有依賴關系,比如我們想驅動USB 移動硬碟,目前有兩種驅動,一種是udev ,在內核中有,但目前不太穩定;另一種辦法是用usb-storage驅動,而usb-storage 依賴的模塊是scsi 模塊,所以我們要用usb-storage 的模塊,也得把scsi 編譯安裝;
再 舉個例子:sata的硬碟,在Linux中的設備表示的是/dev/sd* ,比如 /dev/sda,/dev/sdb 等... 系統要驅動 sata硬碟,則需要把sata在內核中選中,或編譯成模塊,或內置於內核之中,在此同時,還需要在內核中選中ide ,scsi 的支持等;
depmod 工具的洋文原意:depmod — program to generate moles.dep and map files.(我譯的:為moles.dep 文件或映射文件創建依賴關系)
代碼:

[root@localhost beinan]# depmod -a 註:為所有列在/etc/modprobe.conf 或/etc/moles.conf 中的所有模塊創建依賴關系,並且寫入到moles.dep文件;[root@localhost beinan]# depmod -e 註:列出已掛載但不可用的模塊;[root@localhost beinan]# depmod -n 註:列出所有模塊的依賴關系,但僅僅是輸出出來 (Write the dependency file on stdout only)
註:moles.dep 位於 /lib/moles/內核版本 目錄
比如 Fedora Core 4.0 中,系統默認的內核:
代碼:

[root@localhost beinan]# ls /lib/moles/2.6.11-1.1369_FC4/moles.dep/lib/moles/2.6.11-1.1369_FC4/moles.dep

6、insmod 掛載模塊;
insmod 這個工具,和modprobe 有點類似,但功能上沒有modprobe 強,modprobe 在掛載模塊是不用指定模塊文件的路徑,也不用帶文件的後綴.o 或.ko ;而insmod 需要的是模塊的所在目錄的絕對路徑,並且一定要帶有模塊文件名後綴的(molefile.o 或molesfile.ko );
對於這個工具,我們只是介紹一下, 並不推薦使用。因為模塊有依賴關系,對於新手來說,可能不知道這個模塊依賴和哪個模塊依賴;
舉例:
代碼:
[root@localhost beinan]# insmod /lib/moles/2.6.11-1.1369_FC4/kernel/drivers/net/tg3.ko
我們要到 /lib/moles/內核版本 uname -r 的命令輸出/kernel/drivers 中找相對應的模塊才行,要有絕對路徑,而且必須要用到文件名的全稱,不能把文件名的後綴省略;
四、與內核模塊載入相關的配置文件;
1、模塊的配置文件 moles.conf 或 modprobe.conf
內 核模塊的開機自動掛載模塊一般是位於一個配置文件,一般的Linux發行版本都有 /etc/moles.conf 或 /etc/modprobe.conf 。比如Fedora Core 4.0 內核模塊開機自動載入文件是 /etc/modprobe.conf ;在這個文件中,一般是寫入模塊的載入命令或模塊的別名的定義等;比如我們在moles.conf 中可能會發行類似的一行 ;
代碼:

alias eth0 8139too
而8029的網卡應該是
代碼:

alias eth0 ne2k-pci
這樣系統啟動的時候,首先會modprobe 8139too ,然後再為8139too 指定別名為 eth0,然後我們在登錄的時候,用 ifconfig 就會查看到網卡的IP 等情況,當然您得為網卡設置IP 才行;
一 般的情況下,modproe.conf 或moles.conf的內容 是我們用相應的硬體配置工具而生成的;如果您的硬體驅動是沒有被內核支持,您自己到硬體的廠商下載而來的驅動。一般的情況下都有安裝和幫助文件。他們的驅 動在配置時,他會寫入硬體的支持到moles.conf 或modprobe.conf 文件中。
再比如我們的音效卡在moles.conf 或modprobe.conf 中也有相應的內容,這是由alsaconf 配置工具生成的,明白了吧;同理網卡在modprobe.conf 或moles.conf中的內容也是由網卡的配置工具而來的。
有些硬體是以內核模塊的方式驅動的,模塊一旦載入上就能用,也沒有什麼配置工具,比如vfat 和ntfs 的支持;如果是硬體驅動不以模塊的方式支持,而是直接編入內核,也不會用在modprobe.conf 或 moles.conf 中加入什麼內容;
如果您有些模塊不能開機載入,您想讓一些模塊加機自動載入,就可以把modprobe 模塊 直接寫入配置文件;
2、內核模塊其它配置文件
內核模塊的其它配置文件還是需要了解的,比如 /lib/moles/內核版本目錄下的幾個文件;了解一下就行;比如:
代碼:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/moles/2.6.11-1.1369_FC4/build misc moles.ccwmap moles.ieee1394map moles.isapnpmap moles.symbols sourcekernel moles.alias moles.dep moles.inputmap moles.pcimap moles.usbmap
五、硬體驅動在系統中的目錄;
硬體驅動在內核中以模塊支持的目錄;
硬 件驅動是必須由內核支持的,無論是我們自己安裝驅動,還是內核自帶的驅動都是如此。硬體驅動如果是以內核模塊支持的,驅動目錄位於: /lib/moles/內核版本/kernel/目錄 或 /lib/moles/內核版本/kernel/drivers 目錄中;
代碼:

[root@localhost beinan]# uname -r2.6.11-1.1369_FC4[root@localhost beinan]# ls /lib/moles/2.6.11-1.1369_FC4/kernelarch crypto drivers fs lib net sound
註:只有驅動在內核中以模塊的方法支持,驅動才位於 /lib/moles/相應的目錄;如果是直接置入內核的,不會出現在/lib/moles驅動相關的目錄;
六、自己編譯驅動的辦法;
通 過源碼編譯驅動一般是./configure ;make;make install ,有時程序不提供./configure ,我們可以make或make install ,或者執行make;make install ;如果不能make install ,則需要我們自己復制.o或者.ko文件到 /lib/moles/內核版本/kernel/目錄 或 /lib/moles/內核版本/kernel/drivers 目錄中相應的驅動目錄;
這個還是自己嘗試吧,說也說不清楚,遇到問題後就知道怎麼弄了;具體的還是驅動的REAME和INSTALL為准;
現在大多驅動都是在編譯安裝時,都自動復制.o或.ko 文件到內核模塊目錄,大多不用我們自己動手復制過去。如果您嘗試編譯安裝音效卡驅動 alsa-drivers 就會明白我所說的意思。

F. 如何提取linux kernel的配置文件

如果你是一個喜歡編譯內核的狂人,同時也是經常忘記將默認的.config文件備份的懶傢伙,那麼下面的方法將會使你
的內核配置工作變得更輕松,從linux 2.6開始內核提供了一種將.config附加到映像文件的方法,通過這種方法,內核
配置者可以不必備份當前的.config文件,而是在需要的時候直接從內核映像中提取.config文件。步驟如下:
1. 配置內核
1.1 make menuconfig;
1.2 選擇如下:
General setup --->
<*> Kernel .config support
[*] Enable access to .config through /proc/config.gz
1.3 make uImage
2. 提取配置文件
2.1 方法一,從uImage文件中提取:
2.1.1 打開控制台,cd進入到linux源碼樹根目錄,我的為:/root/Desktop/easy2440/linux-2.6.30.9-easy2440
2.1.2 輸入如下命令:scripts/extract-ikconfig arch/arm/boot/uImage > config
2.1.3 命令執行完後,將會在linux源碼樹根目錄下面生成config文件;
2.1.4 config文件即為我們需要的內核配置文件,可以將其替代.config文件。
2.2 方法二,從開發板的/proc/config.gz中提取:
2.2.1 將新生成的uImage文件下載到開發板;
2.2.2 准備串口控制台,啟動開發板;
2.2.3 開發板正常啟動後,在控制台輸入命令:cat /proc/config.gz | gzip -d > /home/config
2.2.4 命令執行完後,將會在/home目錄下生成config文件
2.2.5 config文件即為我們需要的內核配置文件,可以將其替代.config文件。

G. Linux內核配置與編譯相關流程

linux內核配置與編譯相關流程1、清除臨時文件、中間文件和配置文件
make
clean
不刪除配置文件。
make
mrproper
make
distclean
刪除編輯的backup文件、補丁文件等2、確定目標系統的軟硬體配置情況,比如CPU的類型,網卡的型號,所需要支持的網路協議。3、使用命令配置內核
make
config
基於文本模式的交互配置。
make
menuconfig
基於文本模式的菜單配置。
make
oldconfig
使用已有的配置文件(.config),但是會詢問新增的配置選項。
make
xconfig
圖形化的配置(需要安裝圖形化系統)。4、編譯內核
make
zImage
make
bzImage
區別:在X86平台上,zImage只能用於小雨512k內核。如果需要獲取詳細編譯信息,則在後面加上V=1.
編譯好的內核位於arch/<cpu>/boot/目錄下。
5、編譯內核模塊
make
moes
6、安裝內核模塊
make
moes_install
將編譯好的內核模塊從內核源代碼目錄到/lib/moes下。7、製作
init
ramdisk
mkinitrd
$initrd-$version
-$version內核安裝(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf

/etc/lilo.conf$version為所編譯的內核版本號。

閱讀全文

與內核模塊讀配置文件相關的資料

熱點內容
java定時器quartz實例 瀏覽:259
稻殼excel文件太大怎麼弄 瀏覽:901
文件里的視頻如何保存到相冊 瀏覽:428
手機百度雲文件電腦 瀏覽:957
編程怎麼做到時鍾精準 瀏覽:912
錘子用過的壁紙在哪個文件里 瀏覽:468
qq網站安全性未知訪問不了怎麼辦 瀏覽:270
燕秀怎麼修改編程人名字 瀏覽:789
2012年天之眼導航升級 瀏覽:595
如何安裝視頻文件 瀏覽:315
紅米2A升級miui9 瀏覽:927
如何在表格中加入一行資料庫 瀏覽:421
dnf遠古二能升級85嗎 瀏覽:251
extjsbbar屬性 瀏覽:355
nodejs網頁 瀏覽:517
同城簡歷在哪個文件夾 瀏覽:661
mac上的文件總是出現未知錯誤代碼 瀏覽:374
flash滾動圖片教程 瀏覽:191
手機dcim文件夾怎麼 瀏覽:61
extjsform中畫表格 瀏覽:492

友情鏈接