Drivers

無法為 Devkit8000 製作 LDD

  • November 17, 2014

我正在嘗試為 Devkit 8000 建構 Linux 設備驅動程序。我收到以下錯誤消息:

錯誤資訊

當我嘗試遵循它的指示時,我會被問到一堆我不太明白的是/否問題。最後,我可以在 25 個不同的處理器之間進行選擇(?):

處理器選擇

這是我的生成文件:

ifeq ($(KERNELRELEASE),)

KERNELDIR = ~/sources/linux-3.2.6
PWD := $(shell pwd)
modules:
$(MAKE) ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules

.PHONY: modules clean

else
# called from kernel build system: just declare what our modules are
obj-m := LED_timer.o
endif

我不認為我的程式碼本身是相關的,而且我知道我的原始碼充滿了錯誤,你不想看到,哈哈。

你沒有說你從哪裡得到你正在使用的源,但顯然其中有一個無效.config的。這用於設置各種選項,例如處理器類型。實際上有數百個這樣的選項相互之間有著複雜的依賴關係(例如,您選擇的處理器將影響您擁有的其他選擇)。

香草源沒有.config。您需要提供或創建一個。 make oldconfig.config來自以前的版本時使用,並且必須更新。有時這個過程不能完全自動化,你最終基本上執行了make config,它使用 CLI 界面;make oldconfig如果您嘗試不進行任何配置,也可能會發生這種情況。

您應該查看更多圖形make menuconfig以更好地了解這一切。

但是,除非您知道自己在做什麼,否則從無到有並試圖獲得適合您的配置是不可能的。理想情況下,您將從用於創建執行核心的那個開始。如果您只是建構一個模組,則尤其如此;雖然您不需要建構實際的核心,但為了編譯模組,必須知道要使用的核心是如何編譯的。

希望您可以/proc/config.gz在目標系統上找到它。這不是磁碟文件,系統必須正在執行才能檢索它。它被壓縮成這樣

gunzip config.gz
mv config .config

應該這樣做。將其複製到您的原始碼樹中並執行make menuconfig以添加您要建構的模組的說明。

如果不存在,您將不得不追踪使用的配置。 另請注意,如果您正在建構模組,則需要使用完全相同的核心版本。

這是編譯過程的一般概述,可能也有幫助,請先閱讀 #2 和 3。

引用自:https://unix.stackexchange.com/questions/168492