मैं एक साधारण कर्नेल मॉड्यूल बनाने और इसे रास्पबेरी पीआई पर चलाने की कोशिश कर रहा हूं। मैंने आधिकारिक रास्पबेरी साइट से कर्नेल स्रोत डाउनलोड किए हैं, लेकिन बोर्ड पर मेरे रास्पियन के बाद उनके पास थोड़ा अलग कर्नेल संस्करण है। कर्नेल मॉड्यूल चलाने के लिए स्रोत और लक्ष्य मशीन पर कर्नेल का पूरी तरह से समान संस्करण होना जरूरी है? मैं अपने रास्पबेरी Piलक्ष्य के लिए कर्नेल संस्करण और मॉड्यूल के लिए
$ uname -a
Linux raspberrypi 4.4.11+ #888 Mon May 23 20:02:58 BST 2016 armv6l GNU/Linux
पर इस राशि और ये मेरे मॉड्यूल के बारे में
$ modinfo ./threads.ko
filename: /lib/modules/4.4.11+/kernel/mymodules/./threads.ko
version: 0.0.1
description: Kernel threads example
author: xxxxxx
license: GPL
srcversion: C906582EC824D2D8DA76BFB
depends:
vermagic: 4.4.13+ mod_unload modversions ARMv6
जैसा कि आप देख: "4.4.11+" बनाम "4.4.13 +" ... क्यों मैं कर रहा हूँ पूछ रही हो?
$ sudo insmod ./threads.ko
insmod: ERROR: could not insert module ./threads.ko: Invalid module format
और समझ में नहीं आता है, यह कर्नेल के संस्करण के अंतिम संख्या में मूल्यवान अंतर नहीं है या कोई और समस्या है: जब डालने मॉड्यूल मैं एक त्रुटि है।
धन्यवाद! तो, मैं इस संस्करण में कैसे स्विच कर सकता हूं? – artsin
मैंने 'गिट fetch' बनाया, फिर 'गिट चेकआउट v4.4.11' लेकिन एक त्रुटि है: "त्रुटि: pathspec' v4.4.11 'गिट को ज्ञात किसी भी फ़ाइल से मेल नहीं खाती।" – artsin