jinxin16897123 发表于 2013-08-07 22:16

关于ifconfig的问题

如果在一个系统上我没有添加任何网络设备驱动,执行命令ifconfig的话,会不会出现 lo 的详情呢?我现在未加任何网络驱动,发现没有lo,请问这是正常的吗?

jinxin16897123 发表于 2013-08-08 11:57

找到原因了,lo默认没有up,
ifconfig lo up就有了。
怎么自动让lo 自动up呢?

wwxxxxll 发表于 2013-08-08 17:42

本帖最后由 wwxxxxll 于 2013-08-08 18:00 编辑

你在/etc/profile把ifconfig lo up这个命令加上就可以了,当然这个自动在加载文件系统后
我还想说一下,lo应该也算个网络设备驱动
毕竟人家的家乡也在drivers/net。原代码loopback.c
不过它只是自娱自乐

jinxin16897123 发表于 2013-08-09 10:15

谢谢~
目前正在弄一个spi 的网络驱动,使用spi_register_board_info注册设备之后,用insmod插入这个网络设备驱动,却发现没有调用相关的probe函数,可能是什么原因?
谢谢~
经过调试,发现调用流程如下:
spi_register_driver->driver_register->bus_add_driver->driver_attach->bus_for_each_dev
在bus_for_each_dev中:
301      while ((dev = next_device(&i)) && !error)
302                error = fn(dev, data);
303      klist_iter_exit(&i);
发现next_device直接返回0,导致fn没有被调用,即probe没有被调用,难道是没有注册设备?我已经用spi_register_board_info注册号设备了啊~
请问突破点在哪?谢谢~

wwxxxxll 发表于 2013-08-09 12:03

本帖最后由 wwxxxxll 于 2013-08-09 12:04 编辑

http://bbs.chinaunix.net/thread-4093629-1-1.html
这个贴子的二楼是我的qq和我们的群,有兴趣可加入讨论,里面有十几个同好。
spi我没写过,不过不知道你有没有看过设备模型或platform设备,和这个一样,你一定要知道device和driver的关系
你没加载device只加载了driver
你要写另一个模块加载device
platform是platform_add_devices
我刚看了spi可能是spi_add_device
如果你不了解device和driver,那你现在可能有点疑惑
但我还要多说一点,写驱动不是一定要用系统的设备模型,我之前的spi用gpio的就是用简单的misc
再让你看看s3c24xx的
static int __init s3c24xx_spi_init(void)
{
      return platform_driver_probe(&s3c24xx_spi_driver, s3c24xx_spi_probe);
}
它用了platform而且还是畸形的用,直接init时调用probe,而不是等注册deivce时才调用
总结一下,你的就是device没加载;废话一下,欢迎加入我们群。

jinxin16897123 发表于 2013-08-12 20:16

谢谢你的解答,原来是我没有添加master device~~
页: [1]
查看完整版本: 关于ifconfig的问题