54.4 運行測試 54.4.1 編譯驅動程序 創建 Makefile 文件,內容和前面實驗基本一樣,需要將 obj-m 的值修改為 ft5426.o,具體內容如下: KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga CURRENT_PATH := $(shell pwd) obj-m := ft5426.o build: kernel_modules kernel_modules: $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules clean: $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean 首先我們在終端輸入兩個命令(設置兩個環境變量): export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- 然后執行“make”命令進行編譯,編譯完成生產 ft5426.ko 驅動模塊文件。 54.4.2 運行測試 編譯設備樹文件,使用新的設備樹文件啟動開發板,然后拷貝編譯生產的 ft5426.ko 驅動模塊文件到開發板根文件系統 lib/modules/4.1.15 目錄下(檢查開發板根文件系統中有沒有“/lib/modules/4.1.15”這個目錄,如果沒有的話需要自行創建一下。開發板中使用的是光盤資料里面提供的 busybox 文件系統,光盤資料的“i.MX6UL 終結者光盤資料\08_開發板系統鏡像\03_文件系統鏡像\01_Busybox 文件系統”目錄下)。使 用下列命令加載模塊: depmod modprobe ft5426 當驅動模塊加載成功后,有如圖 54.4.2.1 信息: 驅動加載成功后就會生成/dev/input/eventn 設備文件,比如本觸摸屏如圖 54.4.2.2 所示: event4 設備文件就是觸摸屏對應的文件。當然也有可能文件名稱不同。 使用命令查看 event4 文件: hexdump /dev/input/event4 使用一根手指觸摸屏幕在抬起,會有信息輸出,如圖 54.4.2.3 所示: 54.4.3 將驅動添加到內核中 前面我們把觸摸屏驅動編譯成了模塊文件,每次系統啟動后都需要手動加載驅動模塊,這樣很不方便。當我們的設備驅動調試成功后,一般會把驅動直接編譯到內核中,這樣內核啟動后就會自動加載驅動。在本節就來看一下如何將 ft5426.c 驅動文件添加到 Linux 內核中去。 1、 、 將驅動文件放到合適目錄下 測試成功的驅動文件首先要放到 Linux 內核的合適的目錄下,這時我們可以參考類似設備的驅動文件存放目錄,比如觸摸屏驅動文件,我們可以找到在 drivers/input/touchscreen 目錄下都是關于觸摸的驅動文件,因此我們把 ft5426.c 驅動文件也放到這個目錄下。 2、 、的 修改對應的 Makefile 把 ft5426.c 驅動文件放到 drivers/input/touchscreen 目錄下后,需要修改此目錄下的 Makefile 文件,添加如下內容: obj-y += ft5426.o 添加完成所示: 修改完成后,重新編譯 Linux 內核,然后使用新的 zImage 鏡像啟動開發板,驅動添加成功啟動有如圖54.4.3.2 信息打印: 可以使用下面的命令查看對應的 event 時間: cat /proc/bus/input/devices 結果如下: 可以看到 ft5426 對應/dev/input/event1 設備文件,然后使用下面的命令查看驅動是否工作正常: hexdump /dev/input/event1 結果如圖 54.4.3.4 所示: 說明 ft5426 驅動工作正常。 |