樹莓派 Linux 核心驅動編譯

2021-10-07 23:54:36 字數 2398 閱讀 7877

寫好驅動**

pin4module.c

#include

#include

#include

#include

#include

#include

#include

#include

static

struct class *pin4_class;

// 建立乙個類

static

struct device *pin4_class_dev;

//建立乙個裝置

static dev_t devno;

// 裝置號

static

int major =

231;

// 主裝置號

static

int minor =0;

// 次裝置號

static

char

*module_name =

"pin4"

;//驅動模組名

static

intpin4_open

(struct inode *inode,

struct file *file)

static

intpin4_write

(struct file *file,

const

char __user * buf, size_t count, loff_t *ppos)

static

intpin4_read

(struct file *file,

char __user * buf, size_t size, loff_t *ppos)

struct file_operations pin4_fops =

;int __init pin4_drv_init

(void

)//真實入口

void __exit pin4_drv_exit

(void

)module_init

(pin4_drv_init)

;//入口 核心載入該驅動的時候 這個巨集會被呼叫

module_exit

(pin4_drv_exit)

;module_license

("gpl v2"

);

測試**(上層**)

pin4test.c

#include

#include

#include

#include

#include

intmain()

else

return0;

}

將驅動**拷貝到當前路徑如下

然後修改當前路徑的makefile

然後在linux原始碼的目錄結構下輸入如下指令來生成目標驅動 如圖

生成目標檔案pin4moudle.ko以 .ko 結尾的檔案

然後編譯測試**

將生成的驅動檔案 和 測試檔案 用scp *** [email protected]:/home/pi

拷貝到樹莓派下面。

在樹莓派上使用如下指令 將目標驅動載入到核心當中

sudo insmod pin4moudle.ko

lsmod 檢視當前驅動

rmmod *** 刪除當前驅動

之後會生成如圖所示的結果

然後用指令 sudo chmod 666 /dev/pin4 給生成的目標檔案賦予所有人都可讀可寫的許可權。

然後執行測試檔案 ./pin4test 的到如圖的結果

樹莓派 Linux 核心編譯

5.1配置config arch arm cross compile arm linux gnueabihf kernel kernel7 make bcm2709 defconfig 5.2 編譯 arch arm cross compile arm linux gnueabihf kernel ...

樹莓派Linux核心配置 編譯

4929703.html驅動 的編譯需要乙個提前編譯好的核心,編譯核心就必須配置,配置的最終目標會生成 config檔案,該檔案指導makefile去把有用東西組織成核心。第一種方式 make menuconfig 一項項配置 arch arm cross compile arm linux gnu...

樹莓派 RaspberryPi 核心編譯

上面列出了樹莓派所有的開源軟體 linux 核心原始碼 tools 編譯核心和其他原始碼所需的工具 交叉編譯器等 我們只需要以上兩個檔案即可,下面的工程可以了解一下 firmware 樹莓派的交叉編譯好的二進位制核心 模組 庫 bootloader documentation 樹莓派離線幫助文件,教...