linux裝置驅動整理(2)

來源:互聯網
上載者:User

linux裝置驅動整理(2) "欲利其事,先利其器",整理一下編譯linux裝置驅動程式的makefile。 Java代碼    www.2cto.com  all:   KERNELDIR ?= /lib/modules/$(shell uname -r)/build   PWD := $(shell pwd)   $(MAKE) -C $(KERNELDIR) M=$(PWD) modules    clean:   $(MAKE) -C $(KERNELDIR) M=$(PWD) clean   注意:按規定,makefile檔案中,縮排部分一定是一個tab,不能用空格代替。   /lib/modules/$(shell uname -r)/build 對應的就是當前編譯環境的linux源碼樹。  用uname -r檢查編譯環境的核心版本是否和目標環境(也就是裝置驅動程式要安裝的那個作業系統)的核心版本是否一致。如果不一致,則需要安裝和目標環境一致的linux源碼樹。否則會因為編譯出來的ko檔案的vermagic不同,而無法在目標環境下載入。 還有一個方法就是修改核心源碼樹中的include/linux/utsrelease.h (其中的UTS_RELEASE宏)和include/linux/vermagic.h中的VERMAGIC_STRING,也可以編譯出帶和目標環境一致的vermagic的ko。   www.2cto.com  用modinfo MyLinuxDrv.ko可以查到它相應的vermagic。  寫好一個MyLinuxDrv.c的裝置驅動程式代碼,將以上makefile指令碼儲存在同一目錄下的Makefile檔案裡。  執行make,即可編譯出需要的MyLinuxDrv.ko檔案。  執行make clean 可清除編譯出來的MyLinuxDrv.ko檔案和中間目標檔案(.o),以便重新編譯。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.