ioctl 驱动代码里加打印信息,工作不正常

hhll26 2010-09-27 01:51:49
有个wifi的驱动,在ioctl的代码里,加了一句打印,

printk("tbm WLAN_CMD_BSS_SCAN..begin \n");

后,驱动就不能正常工作,不会出错,但是搜索不到无线网络了,去掉这句,马上就可以搜索到了。

请问,可能是什么原因呢?

...全文
205 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
deep_pro 2010-09-29
  • 打赏
  • 举报
回复
会用source insight这样的工具是非常必要的
hhll26 2010-09-29
  • 打赏
  • 举报
回复
内核中struct device 和struct net_device 都是很常见很重要的数据结构

具体的结构是什么,到哪里可以查到?linux/netdevice.h中吗?
hhll26 2010-09-29
  • 打赏
  • 举报
回复
#define net_device device
----------------------
不知道你在哪看到的,内核中struct device 和struct net_device 都是很常见很重要的数据结构,他们不可能相同

这个是驱动代码里的。


把你的目标板上的镜像先导入pc,挂载成nfs调试

请问,怎么把目标板上的镜像导入pc?
deep_pro 2010-09-29
  • 打赏
  • 举报
回复
不能把整个nfs下的东西制作成镜像烧进目标板,因为目标板装不下那么多。
---------------
那用nfs就没什么意义 还不如把你的目标板上的镜像先导入pc,挂载成nfs调试

如果我想把struct __device_info里的dev的一些值打印出来看,怎么做呢?
-----------------
printk啊 ,这个有什么问题?

#define net_device device
----------------------
不知道你在哪看到的,内核中struct device 和struct net_device 都是很常见很重要的数据结构,他们不可能相同
hhll26 2010-09-29
  • 打赏
  • 举报
回复
不能把整个nfs下的东西制作成镜像烧进目标板,因为目标板装不下那么多。

比如,目标板上就必须用busybox,而nfs下不是的。

刚刚看了一下驱动的代码,有个问题,不明白,请教大家,在代码里,定义了
typedef struct __device_info {

// netdev
struct usb_device* usb;
struct net_device* dev;
struct net_device_stats stats;
...

而这里的net_device,确是宏定义为

#define net_device device

如果我想把struct __device_info里的dev的一些值打印出来看,怎么做呢?

宏定义里的device,是什么?

deep_pro 2010-09-29
  • 打赏
  • 举报
回复
就是nfs下和目标板上,文件系统不是完全一样的。但是没有办法做到完全一样
-------------------
为什么没办法呢 ,一般都是nfs测试好了就把nfs制作成镜像烧进目标板啊
hhll26 2010-09-29
  • 打赏
  • 举报
回复
奇怪的问题,困扰了很久,就是wifi的驱动,nfs下工作正常,下载到目标板上,就不正常了。

并不报错,在nfs挂载方式下,可以搜索到无线网络,下载到目标板后,就搜索不到了。

kernel是一样的,就是nfs下和目标板上,文件系统不是完全一样的。但是没有办法做到完全一样。

另外,文件系统东西太多,不知道怎么查起?
hhll26 2010-09-29
  • 打赏
  • 举报
回复
如果怀疑这里在nfs和目标板上有差异,导致问题,请问,可以查哪些东西?

比如,insmod加载了wifi模块后,ifconfig eth1 up命令后,可以查哪些地方,来看是否正常?
deep_pro 2010-09-27
  • 打赏
  • 举报
回复
把printk 换个延时试试呢

其实加打印信息是为了调试。我这个驱动有个怪问题,在nfs挂载下,可以正常工作,可以搜索到无线网络。但是下载到目标板后,就搜索不到了,因此想加打印信息找找原因。
------------------------------
我也遇到过类似现象,最后发现在nfs里设置的/etc/hostname 在烧写后不起作用,只得手动执行hostname修改
所以nfs也不能全信啊
pottichu 2010-09-27
  • 打赏
  • 举报
回复
从 ioctl 的上下文来看, 加个打印信息应该是不会有问题的。
hhll26 2010-09-27
  • 打赏
  • 举报
回复
其实加打印信息是为了调试。我这个驱动有个怪问题,在nfs挂载下,可以正常工作,可以搜索到无线网络。但是下载到目标板后,就搜索不到了,因此想加打印信息找找原因。
丰满 2010-09-27
  • 打赏
  • 举报
回复
打印影响的哦,不要打印算了

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧