我是新的內核模塊開發,並決定今天編寫我的第一個內核模塊。內核模塊負載導致錯誤
我的模塊應該接收2個數字作爲輸入,由空格分隔並將這些數字加在一起。
內核模塊通過一個名爲calc(/ proc/calc)的proc入口進行通信,因此從文件中讀取將返回輸出並且寫入該文件將給出新輸入(2個數字由空白分隔)
當加載模塊(insmod)時,我的外殼卡住了,在中斷它並查看dmesg時,我看到一個內核BUG行, here is the trace。
我不確定這是否是我的代碼中的錯誤,或者它是在Linux內核的實際錯誤,並希望瞭解我做錯了什麼,我該如何開始調試我的模塊與給定dmesg日誌。
here is the source code of my module。
我的makefile是很標準的一個,
obj-m += calc.o
KDIR := /lib/modules/$(shell uname -r)/build
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) M=$(PWD) clean
許多許多在此先感謝!
編輯:我使用Ubuntu 16.04.02,版本4.10.0-28,非常標準。
根據堆棧溢出的規則,你的驅動器和跟蹤的代碼應該是在問題本身**的**的文字,沒有鏈接。 – Tsyvarev
好的,沒有意識到,謝謝。 生病下一次更好 –