天嵌 ARM开发社区

 找回密码
 注册
查看: 1476|回复: 2

内核模块无法安装

[复制链接]
huanggde 发表于 2014-8-27 11:32:43 | 显示全部楼层 |阅读模式

源码:
#include <linux/device.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/string.h>

MODULE_LICENSE("GPL");

extern struct device first_bus;
extern struct bus_type first_bus_type;
static void first_dev_release(struct device *dev)
{
  }
struct device first_dev ={
    .bus    =  &first_bus_type,
    .parent =  &first_bus,
    .release= first_dev_release,
};

static ssize_t first_dev_show (struct device *dev, char *buf)

{         printk("This is my first device!");
          return 1;
        }

static DEVICE_ATTR(dev,S_IRUGO,first_dev_show, NULL);

static int first_device_init (void)
{
        int ret=0;
        dev_set_name(&first_dev, "first_dev");
        ret=device_register(&first_dev);
        device_create_file(&first_dev,&dev_attr_dev);
               
        return ret;
}

static void first_device_exit (void)
{
        device_unregister(&first_dev);
}

module_init(first_device_init);
module_exit(first_device_exit);
错误信息:
WARNING: at lib/kref.c:43 kref_get+0x48/0x50()
Modules linked in: device(+) bus rt5370sta
Backtrace:
[<c002b034>] (dump_backtrace+0x0/0x10c) from [<c02f9500>] (dump_stack+0x18/0x1c)
r7:00000000 r6:c0146690 r5:c03bc5ec r4:0000002b
[<c02f94e8>] (dump_stack+0x0/0x1c) from [<c00467d8>] (warn_slowpath_common+0x4c/0x80)
[<c004678c>] (warn_slowpath_common+0x0/0x80) from [<c0046824>] (warn_slowpath_null+0x18/0x1c)
r7:c3a42000 r6:00000000 r5:bf0e44d8 r4:bf0e171c
[<c004680c>] (warn_slowpath_null+0x0/0x1c) from [<c0146690>] (kref_get+0x48/0x50)
[<c0146648>] (kref_get+0x0/0x50) from [<c014585c>] (kobject_get+0x18/0x20)
r5:bf0e44d8 r4:bf0e1700
[<c0145844>] (kobject_get+0x0/0x20) from [<c0189c48>] (get_device+0x1c/0x24)
r5:bf0e44d8 r4:bf0e44d8
[<c0189c2c>] (get_device+0x0/0x24) from [<c018a4e8>] (device_add+0x98/0x63c)
[<c018a450>] (device_add+0x0/0x63c) from [<c018aaa8>] (device_register+0x1c/0x20)
[<c018aa8c>] (device_register+0x0/0x20) from [<bf0e4050>] (first_device_init+0x24/0x44 [device])
r5:001e4fe8 r4:bf0e44d8
[<bf0e402c>] (first_device_init+0x0/0x44 [device]) from [<c0026284>] (do_one_initcall+0x3c/0x1bc)
r5:001e4fe8 r4:00000b70
[<c0026248>] (do_one_initcall+0x0/0x1bc) from [<c006af98>] (sys_init_module+0x94/0x1a4)
[<c006af04>] (sys_init_module+0x0/0x1a4) from [<c0026e60>] (ret_fast_syscall+0x0/0x2c)
r7:00000080 r6:000002ec r5:bef56ec0 r4:00000b70
---[ end trace 426184ffa19abac2 ]---
Unable to handle kernel NULL pointer dereference at virtual address 00000020
pgd = c3a48000
[00000020] *pgd=3398e031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in: device(+) bus rt5370sta
CPU: 0    Tainted: G        W   (2.6.30.4-EmbedSky #12)
PC is at sysfs_addrm_start+0x34/0xac
LR is at sysfs_addrm_start+0x28/0xac
pc : [<c00da1f0>]    lr : [<c00da1e4>]    psr: 60000013
sp : c3a43d98  ip : c3a43d98  fp : c3a43db4
r10: bf0e44e0  r9 : bf0e16f8  r8 : c3a43df4
r7 : 00000000  r6 : c3a43db8  r5 : c3a2b750  r4 : 00000000
r3 : 00000000  r2 : c0440adc  r1 : 00000001  r0 : c3805000
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: c000717f  Table: 33a48000  DAC: 00000015
Process insmod (pid: 1043, stack limit = 0xc3a42268)
Stack: (0xc3a43d98 to 0xc3a44000)
3d80:                                                       c3a43db8 c3a2b750
3da0: bf0e44e0 00000000 c3a43dec c3a43db8 c00da7d8 c00da1cc 00000000 00000000
3dc0: 00000000 00000000 bf0e402c bf0e44e0 bf0e44e0 bf0e1700 c3a42000 bf0e1700
3de0: c3a43e0c c3a43df0 c00da874 c00da79c c014585c c0146658 bf0e44e0 bf0e44e0
3e00: c3a43e34 c3a43e10 c0145984 c00da84c bf0e44e0 00000000 bf0e1700 c3a42000
3e20: c0027008 bf0e16f8 c3a43e54 c3a43e38 c0145ba8 c01458e8 bf0e44d8 bf0e44d8
3e40: 00000000 c3a42000 c3a43e6c c3a43e58 c0145c44 c0145b84 c3a43e74 c3a43e74
3e60: c3a43ebc c3a43e78 c018a530 c0145c1c 00000000 bf0e1700 c0027008 bf0e402c
3e80: c3a43ea4 c3a43e90 c014561c c01465b8 bf0e44d8 bf0e44d8 001e4fe8 00000000
3ea0: c3a42000 c0027008 bf0e402c c042b9e0 c3a43ed4 c3a43ec0 c018aaa8 c018a460
3ec0: bf0e44d8 001e4fe8 c3a43eec c3a43ed8 bf0e4050 c018aa9c 00000b70 001e4fe8
3ee0: c3a43f7c c3a43ef0 c0026284 bf0e403c c4915454 c49153ac c3950fe0 c4915a3c
3f00: 0000000f 00000004 00000000 00000011 0000002c 00000002 00000002 c49156d4
3f20: 00000011 00000011 c00978c8 00000000 00000000 00000000 00000000 00000000
3f40: 00000000 00000b70 001e4fe8 bf0e4598 00000000 00000b70 001e4fe8 bf0e4598
3f60: 00000000 c0027008 c3a42000 00000000 c3a43fa4 c3a43f80 c006af98 c0026258
3f80: ffffffff 001e44c0 00000b70 bef56ec0 000002ec 00000080 00000000 c3a43fa8
3fa0: c0026e60 c006af14 00000b70 bef56ec0 001e4ff8 00000b70 001e4fe8 bef56ec0
3fc0: 00000b70 bef56ec0 000002ec 00000080 00000000 00000002 00000000 bef56dc4
3fe0: bef56be8 bef56bd8 0002cdbc 00009300 20000010 001e4ff8 00000000 00000000
Backtrace:
[<c00da1bc>] (sysfs_addrm_start+0x0/0xac) from [<c00da7d8>] (create_dir+0x4c/0xb0)
r7:00000000 r6:bf0e44e0 r5:c3a2b750 r4:c3a43db8
[<c00da78c>] (create_dir+0x0/0xb0) from [<c00da874>] (sysfs_create_dir+0x38/0x64)
r8:bf0e1700 r7:c3a42000 r6:bf0e1700 r5:bf0e44e0 r4:bf0e44e0
[<c00da83c>] (sysfs_create_dir+0x0/0x64) from [<c0145984>] (kobject_add_internal+0xac/0x1d8)
r4:bf0e44e0
[<c01458d8>] (kobject_add_internal+0x0/0x1d8) from [<c0145ba8>] (kobject_add_varg+0x34/0x50)
r9:bf0e16f8 r8:c0027008 r7:c3a42000 r6:bf0e1700 r5:00000000
r4:bf0e44e0
[<c0145b74>] (kobject_add_varg+0x0/0x50) from [<c0145c44>] (kobject_add+0x3c/0x64)
r7:c3a42000 r6:00000000 r5:bf0e44d8 r4:bf0e44d8
[<c0145c08>] (kobject_add+0x0/0x64) from [<c018a530>] (device_add+0xe0/0x63c)
r3:bf0e1700 r2:00000000
[<c018a450>] (device_add+0x0/0x63c) from [<c018aaa8>] (device_register+0x1c/0x20)
[<c018aa8c>] (device_register+0x0/0x20) from [<bf0e4050>] (first_device_init+0x24/0x44 [device])
r5:001e4fe8 r4:bf0e44d8
[<bf0e402c>] (first_device_init+0x0/0x44 [device]) from [<c0026284>] (do_one_initcall+0x3c/0x1bc)
r5:001e4fe8 r4:00000b70
[<c0026248>] (do_one_initcall+0x0/0x1bc) from [<c006af98>] (sys_init_module+0x94/0x1a4)
[<c006af04>] (sys_init_module+0x0/0x1a4) from [<c0026e60>] (ret_fast_syscall+0x0/0x2c)
r7:00000080 r6:000002ec r5:bef56ec0 r4:00000b70
Code: eb0880c2 e59f206c e1a03004 e5920000 (e5941020)
---[ end trace 426184ffa19abac3 ]---
Segmentation fault

求解答。多谢了
 楼主| huanggde 发表于 2014-8-27 11:35:35 | 显示全部楼层
总线的驱动模块安装是成功可以使用的。但是安装这个设备就老是奔溃。
Calvin 发表于 2014-8-27 11:55:23 | 显示全部楼层
huanggde 发表于 2014-8-27 11:35
总线的驱动模块安装是成功可以使用的。但是安装这个设备就老是奔溃。

网上百度一下sysfs的用法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 15:58 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表