ARMベースのデバイス用のドライバをコンパイルできましたが、ロードしようとするとドライバがクラッシュしました。ここ はcpuinfoの出力です:あなたは、私が余分vermagicを追加しましたようにここでARMv7とARMv5のドライバのコンパイル
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 999.42
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc08
CPU revision : 2
は
filename: cp210x.ko
description: Silicon Labs CP210x RS232 serial adaptor driver
license: GPL
vermagic: 2.6.37 mod_unload ARMv7
vermagic: 2.6.37 mod_unload modversions ARMv5
parm: debug:Enable verbose debugging messages
driver.koのuname -rの出力
2.6.37
のmodinfoです(2.6.37 mod_unload ARMv7)、ターゲットシステムと一致するようにします。
これを正しく理解すれば、ターゲットはv7ですが、このモジュールをARMv5 CPU用にコンパイルしました。これがデバイスドライバのクラッシュの原因になりますか?
デバイスにはこのドライバがありますが、hwプロデューサの他のドライバパッケージに組み込まれています。このパッケージには、使用できないドライバもロードされます。このドライバパッケージはロードされていませんが、このドライバがこのハードウェア上で動作する必要があることを示しています。ここ
がクラッシュログ
modprobe cp210x.ko
Unable to handle kernel NULL pointer dereference at virtual address 0000000a
pgd = ca1fc000
[0000000a] *pgd=870dd031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
last sysfs file: /sys/kernel/uevent_seqnum
Modules linked in: dahdi_dummy dahdi cmemk syslink ipt_MASQUERADE nf_nat iptable_filter ip_tables ipt_LOG xt_state nf_conntrack_ftp nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 xt_recent xt_mac xt_limit work_led reset_button ipv6
CPU: 0 Not tainted (2.6.37 #1)
PC is at sys_init_module+0xfe0/0x1460
LR is at sys_init_module+0xe7c/0x1460
pc : [<c00836e8>] lr : [<c0083584>] psr: 20000013
sp : cc5e9ed0 ip : bf3828dc fp : cc5e8000
r10: bf385ca8 r9 : cf3bcb4e r8 : 000000c5
r7 : 00000027 r6 : bf382544 r5 : bf38266c r4 : bf385ca8
r3 : 00000000 r2 : c7c9f000 r1 : 0000000a r0 : 0000000a
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c5387d Table: 8a1fc019 DAC: 00000015
Process modprobe (pid: 2676, stack limit = 0xcc5e82e8)
Stack: (0xcc5e9ed0 to 0xcc5ea000)
9ec0: bf382544 00000001 000ac048 bf382550
9ee0: 000000c5 cf3bd5a4 cf3b8000 000055f4 cf3bd20c cf3bd128 cf3bc2a0 c7c9f000
9f00: 0000266c 000028dc 00000000 00000000 00000017 00000018 00000010 0000000d
9f20: 00000009 00000000 6e72656b 00006c65 00000000 00000000 00000000 00000000
9f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9f60: 00000000 00000000 c9a19540 00000000 ca2403c0 00000006 c9a19540 00000000
9f80: ca2403c0 000055f4 00000000 00000006 00000080 c0037c28 cc5e8000 00000000
9fa0: 00000001 c0037a80 000055f4 00000000 000ac998 000055f4 000ac048 000ac978
9fc0: 000055f4 00000000 00000006 00000080 000ac008 000ac028 000ac998 00000001
9fe0: bebaf968 bebaf958 00017764 40214740 60000010 000ac998 c1e38bcc 03de8ad9
[<c00836e8>] (sys_init_module+0xfe0/0x1460) from [<c0037a80>] (ret_fast_syscall+0x0/0x30)
Code: e7923103 e1a03133 e3130001 15963128 (17d33000)
---[ end trace 6e8943127db36208 ]---
Segmentation fault
私はの.koファイルをロードしようとすると、いくつかのより多くの試した後、今、このエラーが出る のmodprobe -v /lib/modules/2.6.37/misc/cp210x.ko cp210x:不明な記号がmutex_lock_nested(ERR 0) modprobe:モジュールをロードできません/lib/modules/2.6.37/misc/cp210x.ko(/persistent/etc/cp210x.ko):モジュール内の未知のシンボル、または未知のパラメータ しかし、私はfintの "mutex_lock_nested"をどこにも配置できませんcp210x.cファイルにあります。これをカーネルの設定のどこかで無効にする必要がありますか? –
この[リンク](http://stackoverflow.com/questions/26039351/kernel-module-wont-link-symbol-mutex-lock-nested-not-found)をご覧ください。 多分あなたはそれからいくつかの助けを得る。 – Gaurav
そのリンクから助けを得ることはできませんでしたが、ありがとうございます –