[MID project] Daily Report from FancyJeans
1. 搭建好lablin环境
2. 搜索了下字符界面下的wifi配置工具,如iwconfig, iwpriv等,这些工具可以移植到lablin, 便于调试
3. 看了802.11协议规范, 对wifi 有初步了解
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
今天测试了iwconfig命令的一些主要参数,如essid, mode, ap等.设置essid参数, 用于区分不同的无线网段,同一网段的essid是一样的.设置mode,即设置网卡的工作模式,目前只测试成功了managed模式, ad-hoc模式未成功.接下来, 编译iwconfig源代码, 移植到lablin上,并用qemu模拟运行lablin系统,并在lablin上识别出iwconfig命令,说明移植了,但无法运行,因为wifi驱动还未实现,接下来就是要去实现了..
本帖最后由 Fancy_Jeans 于 2010-03-09 21:21 编辑
今天看了大半天802.11协议规范, 对发数据有了一些初步认识, 当源主机发数据前先检测信道是否空闲,如果空闲,等待DIFS, 发送rts, 只有目标主机发送cts, 其他主机NAV都置1, 即认为信道忙,不发数据, 源主机接收cts, 立即发送数据, 目标主机收到数据,再发送ack, 源主机收到后, 与其他主机又进入争用期,开始新一轮争用服务.
后来经过小组讨论发现在内核中开发wifi驱动,协议层是子系统做的,但如果移植到g-bios上,还是需要802.11协议层支持.所以还需要进一步研究
今天简单测试组建点对点无线网络,两台带无线网卡的本本不通过无线路由互联,为接下来板子与主机点对点互联,调试wifi模块做好准备.步骤很简单,如下:
建立ad-hoc网络
1.一台host建立一个ad-hoc网络,设置ad-hoc模式,并配置IP
#sudo iwconfig wlan0 essid "adhoc"
#sudo iwconfig wlan0 mode ad-hoc
#sudo ifconfig wlan0 192.168.4.100
2.另一台host要想加入这个网络,按上面步骤进行
#sudo iwconfig wlan0 essid "adhoc"
#sudo iwconfig wlan0 mode ad-hoc
#sudo ifconfig wlan0 192.168.4.101
3.两台主机相互ping,可以ping通,一个简单的自主网络创建好了.
之后,打算编译好内核下载到6410板子nfs挂载rootfs运行, 发现dm9000还没移植.于是在arch/arm/mach-s3c6410/mach-smdk6410.c 添加了3个结构体,并修改了片选地址基址以及中断号,smdk6410_devices[]指针数组里注册了dm9000这个设备.编译后由g-bios引导,kernel跑起来了,并且已经mount rootfs,但在Starting udev..时出现error. 和小敏还有老邓讨论,怀疑是内核选项的问题,重新配置内核编译选项几次..都不成功.明天继续研究..问题出在哪里
今天主要做了以下工作:
1.在老邓的帮助下终于把昨天的问题解决了,把cmdline参数改了一下就可以了,在6410上的运行环境基本搭建好了.
2.刚拿到wifi模块datasheet,看了一遍, 与小敏和老邓讨论,有些疑惑,wifi模块应该是有个firmware支持的.但目前没找到.
问题还是比较严峻的.所以必须要想个办法.
1.今天移植iputils到lablin, 里面有ping,tftpd等工具
2.与小敏和老邓讨论了下,必须先实现一套sdio的api,这样便于wifi开发的一致性,老邓正在赶工中..
3.去marvell官网搜寻firmware无果.
目前wifi资料非常有限,只能先参照内核相关代码..
本帖最后由 Fancy_Jeans 于 2010-03-16 22:06 编辑
DONE:
1.在lablin上可以运行iwconfig
2.生成patch
TODO:
1.了解firmware加载机制
本帖最后由 Fancy_Jeans 于 2010-03-17 22:00 编辑
DONE:
1.写了wifi驱动的基本框架,以module方式在lablin上加载.
2.看了内核的sdio的api,还有些问题
TODO:
1.以module方式加载,无法调用probe函数,明天继续调试