मैं संकलन और मेरी कर्नेल में एक मॉड्यूल सम्मिलित करने के लिए कोशिश कर रहा हूँ, लेकिन मैं इस त्रुटि प्राप्त हो रही:एक बहुत सरल मॉड्यूल सम्मिलित करने में नाकाम रहने insmod
insmod: error inserting 'hello.ko': -1 Invalid module format
मैं चरणों यहाँ पर इस ट्यूटोरियल में वर्णित का पालन किया: http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html। और सब कुछ समझ में आया और काम किया। मुझे अपना नमूना मॉड्यूल संकलित मिला लेकिन एक चेतावनी थी कि यह बात क्यों विफल रही है कि यह बात क्यों विफल रही है। चेतावनी यह थी:
WARNING: Symbol version dump /usr/src/linux-3.0.0/Module.symvers is missing; modules will have no dependencies and modversions.
मैं स्पष्ट रूप से नहीं जानता कि Module.symvers फ़ाइल क्यों नहीं है। /usr/src/linux-3.0.0 निर्देशिका और अपने सभी सामग्री मेरे द्वारा बनाया गया था के बाद मैं इस आदेश का उपयोग सूत्रों पूछेगा:
apt-get source linux-image-$(uname -r)
कि वास्तव में था कि ट्यूटोरियल के केवल कदम है कि मैं का पालन नहीं किया, क्योंकि मुझे अपने कर्नेल (3.0.0-32-जेनेरिक) के लिए सटीक स्रोत नहीं मिल सका और सोचा कि योग्यता उपकरण मुझे यह सॉर्ट करेगा।
और मैं एक 64 बिट्स मशीन पर Ubuntu चल रहा हूँ वैसे, यहाँ uname -एक उत्पादन है:
Linux vega 3.0.0-32-generiC#51-Ubuntu SMP Thu Mar 21 15:50:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
आगे क्या करने की कोशिश करना है के रूप में कोई सुझाव? कोई अनुशंसित पढ़ने?
PS1। कुछ और शोध के बाद मैंने पुष्टि की कि मैं 3.0.0-32-जेनेरिक चला रहा हूं। अद्यतन-कोड़ना लौटे:
Found linux image: /boot/vmlinuz-3.0.0-32-generic
लेकिन एक sudo oldconfig बनाने के जारी करने और जिसके परिणामस्वरूप .config फ़ाइल मैं इस दिलचस्प लाइन प्राप्त की जाँच के बाद:
CONFIG_VERSION_SIGNATURE="Ubuntu 3.0.0-32.51-generic 3.0.69"
कि एक missmatch माना जाएगा?
PS2। dmesg आउटपुट इस:
[ 5.869900] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 6.144304] EXT4-fs (dm-1): re-mounted. Opts: errors=remount-ro
[ 6.368936] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 6.433919] vesafb: mode is 640x480x32, linelength=2560, pages=0
[ 6.433921] vesafb: scrolling: redraw
[ 6.433923] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 6.435424] vesafb: framebuffer at 0xb0000000, mapped to 0xffffc90012800000, using 1216k, total 1216k
[ 6.435516] Console: switching to colour frame buffer device 80x30
[ 6.443104] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.450198] fb0: VESA VGA frame buffer device
[ 8.884523] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
[ 8.885845] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 12.611236] init: ssh main process (762) terminated with status 255
[ 12.624381] init: failsafe main process (752) killed by TERM signal
[ 12.634739] type=1400 audit(1373412287.107:8): apparmor="STATUS" operation="profile_load" name="/usr/sbin/tcpdump" pid=852 comm="apparmor_parser"
[ 12.634873] type=1400 audit(1373412287.107:9): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient" pid=851 comm="apparmor_parser"
[ 12.635180] type=1400 audit(1373412287.107:10): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=851 comm="apparmor_parser"
[ 12.635403] type=1400 audit(1373412287.107:11): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=851 comm="apparmor_parser"
[ 19.390991] eth1: no IPv6 routers present
[ 576.758697] hello: no symbol version for module_layout
ठीक से चलाने के बाद क्या dmesg कहता है, उदाहरण के लिए पिछले 10 लाइनें? – fghj
मैंने अभी डीएसईजी आउटपुट की कुछ और पंक्तियों को पेस्ट करने के लिए प्रश्न अपडेट किया है, लेकिन मेरा मानना है कि केवल अंतिम व्यक्ति प्रासंगिक होना चाहिए। – Bilthon
यहां http://stackoverflow.com/questions/1738539/how-do-i-fix-no-symbol-version-for- मॉड्यूल- प्लेआउट? – fghj