分类: LINUX
2012-08-29 09:16:57
本周二拿到百里恒的正式样板,然后开始测试web和驱动。
一)web
由于此样板默认网络端口都在br0内,所以开始时需要
brctl delif br0 eth4,将wan口拿出来。同时由于5个端口MAC地址相同,需要
ifconfig eth4 down
ifconfig eth4 hw ether 00:00:00:ff:00:01
ifconfig eth4 up
修改wan的mac地址.
同时由于两个设备的MAC地址一样,需要开机时在bootload里按下b,然后修改br0的m ac地址。
在测试过此中, 我发现snat设置后,但PC还是无法连接到192.168.0.96后发现,是> 因为设备本来是桥接模式,PC首先链接到192.168.1.1上,由于公司内部有一些路由器> 作为HUB使用,其lanip为192.168.1.1这个对我们有影响,在pc arp 里看到其mac,需> 要使用arp -d 192.168.1.1 来删除(root权限)
关于udhcpc udhcpd的适用方式跟之前有一点区别,udhcpc 需要指定一个脚本,且脚
本需要执行权限》
udhcpd 跟以前一样,需要一个配置文档,格式跟之前稍有不同,目前主要问题是
在wan链接的情况下,PC会使用要wan的dhcp,此问题杨工在查看。
二)驱动
笔的驱动和摄像头驱动都OK了,开始由于笔接收器有点异常,导致驱动有时加载错
误,后换新接受器,问题解决。
摄像头在被程序打开时,拔掉摄像头,/dev/video0依旧存在,在程序退出后,才可
以释放,所以本来的RB433程序需要修改。
三)功能程序
1)在之前发现编译是对读写锁不支持,后杨工说编译器是加上 —D _GNU_SOURCE 问
题可以解决。
2)在摄像头问题上,我修改了get_mou_video 程序,在/dev下有多个video时也异> 常。同时增加了check_dev_video函数,此函数别state_dev调用,定时打开摄像头测试
,这样可以及时发现摄像头被拔出的情况。
3)在设备变动后,state_dev线程会跳转到main线程,然后主线程退出.但在broad平
台上,报signal 11,即段错误。经过分析在RB433上 main线程和state_dev线程都表现
为同一个线程,而在broad上是三个线程。所以我在state_dev线程里发现设备异常后可
以在本线程里处理通知,然后exit(-1)退出,这样可以导致整个程序退出,而不会出现
断错误,此程序在RB433上也可以正常运行。
james 8/25/2012
~