linux 菜鳥入門級別

2021-04-16 20:24:32 字數 1368 閱讀 8068

最近手上是的工作不多,閒的慌,就想弄個linux玩玩

裝的是vm + linux (redhat9 ) 2。4。20-8 的核心

下面是我實現核心模組編譯平台的筆記,現在記錄下來希望對碰到和我一樣問題的朋友有幫助。

首先vi hello.c

原程式網上的個篇pdf文件

#define module

#include

int init_module(void)

void cleanup_module(void)

gcc –c hello.c

出現下面的提示

hello.o: kernel-module version mi**atch

hello.o was compiled for kernel version 2.4.20

while this kernel is version 2.4.20-8.

按文件修改, 是因為 核心和模組版本不一致

修改方法: /usr/include/linux/version.h 裡的定義 2.4.20  改為 2.4.20-8

重新編譯,正常了

然後in**od ./hello.o出現了第二個問題:

網上搜尋資料,

於是知道了,在原程式中加入module_license("gpl");

int init_module(void)

在編譯後,然後 in**od ./hello.o

沒有出現文件描述的那樣,在終端顯示 「hello world」

要執行命令:

dmesg

在最下面顯示

hello,world!

rmmod  hello 後

再dmesg,顯示

goodbye cruel world

檢視模組載入是否成功

$cat /proc/modules

或可以用

l**od

從中可以看到hello 這個模組,這就是我載入的。

現在看來,程式很簡單,非常簡單地,但對於乙個linux 的layman來說, 哀,難呀

做了這麼多年嵌入開發,各種型號的mcu,arm用了是不少,但都是裸奔的, 跑過一次wince,後來專案還停了,也在朋友那弄個44b0的開發板玩過vxworks,. linux 這個卻從未接觸過地, 路還漫長的說,還好,興趣和積極性沒有被打滅 哈哈

Linux菜鳥入門級命令大全

linux菜鳥入門級命令大全 eg man ls 就可以檢視ls相關的用法 注 按q鍵或者ctrl c退出,在linux下可以使用ctrl c終止當前程式執行。2.ls 檢視目錄或者檔案的屬 列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙...

Linux 菜鳥入門級命令大全

2.ls 檢視目錄或者檔案的屬 列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙個 表示是檔案,如果是l則表示是乙個連線檔案 link b.表示檔案或者目錄許可許可權.分別用可讀 r 可寫 w 可執行 x 3.cp 拷貝檔案 eg cp f...

經典 Linux菜鳥入門級命令大全

2.ls 檢視目錄或者檔案的屬 列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙個 表示是檔案,如果是l則表示是乙個連線檔案 link b.表示檔案或者目錄許可許可權.分別用可讀 r 可寫 w 可執行 x 3.cp 拷貝檔案 eg cp f...