|
硬件平台:mpc8313erdb
内核版本:2.6.20
编译器powerpc-e300c3-linux-gcc 版本:4.0.2
aodv-uu版本:0.9.5
安装了无线网卡驱动madwifi(能够正常使用)
交叉编译生成aodv模块kaodv.ko,将其复制到目标板上,并加载
# insmod ./kaodv.ko
报错:
kaodv: error creating rt timeout message
kaodv_netlink: skb=NULL
# lsmod
Module Size Used by Not tainted
kaodv 16684 0 - Live 0xc988a000
…….(其他模块省略)
(lsmod查看能够查看到kaodv模块,说明模块加载成功?)
运行用户层程序:
#./aodvd-powerpc -r 3 (有时可能会出现以下情况)
14:04:48.092 host_init: Attaching to ath0, override with -i <if1,if2,...>.
insmod: cannot insert `kaodv.ko': File exists (-1): File exists
14:04:48.225 aodv_socket_init: RAW send socket buffer size set to 210944
14:04:48.225 aodv_socket_init: Receive buffer size set to 210944
14:04:48.226 main: In wait on reboot for 15000 milliseconds. Disable with "-D".
14:04:48.226 hello_start: Starting to send HELLOs!
14:05:03.227 wait_on_reboot_timeout: Wait on reboot over!!
<3>kaodv: error creating rt timeout message
kaodv_netlink: skb=NULL
kaodv: error creating rt timeout message
kaodv_netlink: skb=NULL
kaodv: error creating rt timeout message
kaodv_netlink: skb=NULL
Unable to handle kernel paging request for data at address 0x00000004
Faulting instruction address: 0xc988abb4
Oops: Kernel access of bad area, sig: 11 [#2]
Modules linked in: kaodv ath_pci ath_rate_sample ath_rate_onoe ath_rate_minstrel ath_rate_amrr wlan_xauth wlan_tkip wlan_scan_sta wlan_scan_ap wlan_ccmp wlan_acl wlan_wep wlan ath_hal
NIP: C988ABB4 LR: C988AB5C CTR: 00000000
REGS: c7c498a0 TRAP: 0300 Not tainted (2.6.20)
MSR: 00009032 <EE,ME,IR,DR> CR: 84022428 XER: 00000000
DAR: 00000004, DSISR: 22000000
TASK = c07e7410[880] 'aodvd-powerpc' THREAD: c7c48000
GPR00: 00000000 C7C49950 C07E7410 0000001C 00000000 00000000 C79F7FC0 C0220A9C
GPR08: 00000001 20000442 00000000 0000002C 24022422 100186E0 07FFD000 00000001
GPR16: FFFFFFFF 00000000 00000000 FFFFFFFF 00000000 0000028E C0310000 C039C528
GPR24: C7C49988 0000006B 0000001C 0000002C 0000002C 0000001C 00000000 C79F7F40
Call Trace:
[C7C49950] [C988AB5C] (unreliable)
[C7C49980] [C988AD44]
[C7C499B0] [C988A19C]
[C7C499F0] [C988A424]
[C7C49A40] [C021AA64]
[C7C49A70] [C021AB20]
[C7C49AB0] [C0221428]
[C7C49AE0] [C0208884]
[C7C49B00] [C02089E4]
[C7C49B30] [C0205BA0]
[C7C49B60] [C00215FC]
[C7C49B90] [C0005748]
[C7C49BA0] [C002123C]
[C7C49BB0] [C020845C]
[C7C49BD0] [C0226E38]
[C7C49C10] [C0225E90]
[C7C49C40] [C0244074]
[C7C49C70] [C024449C]
[C7C49D10] [C024C3FC]
[C7C49D30] [C01FB3E4]
[C7C49E20] [C01FB74C]
[C7C49F00] [C01FBD80]
[C7C49F40] [C000F540]
--- Exception: c01Instruction dump:
3bbbfff0 0f090000 813f00a8 7d7eda14 815f0060 7f8b4840 917f00a4 7c1b5214
901f0060 419d00b4 38000000 7c7eea14 <b33e0004> 3ba00000 b01e0006 7cbbe050
<0>Kernel panic - not syncing: Fatal exception in interrupt
<0>Rebooting in 180 seconds..
加载模块时报的错:
kaodv: error creating rt timeout message
kaodv_netlink: skb=NULL
根据源码kaodv-netlink.c:
skb = alloc_skb(size, GFP_ATOMIC);
if (!skb)
goto nlmsg_failure;
..........(中间省略)
nlmsg_failure:
if (skb)
kfree_skb(skb);
printk(KERN_ERR "kaodv: error creating rt timeout message\n");
小弟以前没怎么接触关于linux内核这一方面的知识,希望达人指导一下!
Alloc_skb 开辟一个新的套接字缓存怎么会失败?
运行aodvd-powerpc –l出现的段错误是否只与skb有关?
先谢谢各位了! |
|