wsl2核心通過模組方法增加裝置驅動程式

2021-10-21 10:59:46 字數 2347 閱讀 9536

參考:

一、編寫驅動程式和makefile

二、將該程式複製wsl下的任意乙個目錄

我是先在核心資料夾的同級目錄建立了乙個目錄os_drive,在裡面touch乙個.c檔案,再用vim指令右鍵複製,突然想起來用記事本開啟應該更方便,記事本開啟命令是:

notepad.exe 檔名
三、返回該核心根目錄,輸入指令:

make modules_install
結果如圖:

四、然後還是在核心根目錄,再建立乙個軟連線/usr/src/ 連線到核心原始碼目錄

sudo

ln -s /usr/src/

//下面是我執行的命令

sudo

ln -s /usr/src/

五、重新make驅動程式:進入原始碼所在資料夾輸入make指令,結果如下圖:

六、insmod 檔名.ko

//我是在核心根目錄執行insmod指令的,不確定在檔案所在目錄insmod有沒有用

insmod ../os_drive/silence_drive.ko

七、至此裝置驅動程式就加入成功了,如果要解除安裝模組的話,就在.ko檔案所在目錄執行rmmod **.ko命令就行:

rmmod **.ko
//檔名silence_drive.c

#include

#include

#include

#include

#include

#include

#include

long

int silence_major =0;

static ssize_t read_silence

(struct file *flip,

char

*buf,size_t count, loff_t*f_pos)

return count;

}static ssize_t write_silence

(struct file *flip,

const

char

*file,size_t count, loff_t*f_pos)

static

intopen_silence

(struct inode *inode,

struct file *file )

static

void

release_silence

(struct inode *inode,

struct file *file )

struct file_operations silence_fops=

;static

intinit_mymodule

(void)if

(silence_major ==

0) silence_major = result;

/* dynamic */

return0;

}static

void

cleanup_mymodule

(void

)module_license

("gpl");

module_init

(init_mymodule)

;module_exit

(cleanup_mymodule)

;

//makefile

ifneq ($(kernelrelease),)

#kbuild syntax.

obj-m +

=silence_drive.o

else

pwd :

=$(shell pwd)

kver :

=$(shell uname -r)

kdir ::=

/lib/modules/$(kver)

/build

all:

$(make)

-c $(kdir) m=$(pwd)

clean:

rm -f *

.cmd *

.o *

.mod *

.koendif

WSL2下增刪Linux核心模組

該模組裝載時會在核心態顯示hello,解除安裝時會顯示bye,具體 如下 include include include module license gpl module author yige liu module description hello module static int init...

WSL 2 使用說明

cpu啟動虛擬機器平台 在bios中設定 管理員許可權下設定 enable windowsoptionalfeature online featurename virtualmachineplatform enable windowsoptionalfeature online featurenam...

Windows安裝wsl,並公升級到wsl2

lx設定預設wsl 3.wsl啟用wsl2 pycharm配置wsl,並啟用wsl的virtualenv 前提是win宿主機已經啟用虛擬機器以及linux子系統功能 windows設定 應用 解除安裝 預設應用 可選功能 可選功能 滑到最下邊 更多windows功能 勾選 適用於linux的wind...