手头产品是类似于IPC的设备,通过wifi传输视频。目标客户可能在户外使用较多,这就要求wifi 应该是Ap模式工作。Marvell sd8782 Src 源码下载
根据习惯,度娘上一顿收缩,参考博文一篇。
测试uaputl 工具报错,所有命令全部不能配置。因为实际使用的marvell驱动是芯片家直接给的,而手头有的源码版本要低些,uaputl工具是低版本源码编译的,可能这里有版本差异在里面了,先放放,后面拿到源码再试这个。
那我用iwpriv 工具来配置网卡了。
一、装一堆驱动模块
#insmod rfkill_backport.ko;
#insmod compat_firmware_class.ko;
#insmod compat.ko;
#insmod cfg80211.ko;
#insmod mlan.ko
#insmod sd8xxx.ko drv_mode=2&
#echo 1 > /sys/class/compat_firmware/mmc1\:0001\:1/loading
#cat "/lib/firmware/sd8782_uapsta.bin" > /sys/class/compat_firmware/mmc1\:0001\:1/data
#echo 0 > /sys/class/compat_firmware/mmc1\:0001\:1/loading
上面三行命令作用是,我们使用的底层驱动有bug,自己找不到sd8782_uapsta.bin文件(无论是直接编译进内核,还是用udev,nxp技术支持大哥这么解释)。手工指定个路径暂时解决下。
二、iwpriv配置
#iwpriv uap0 apcfg "ASCII_CMD=AP_CFG,SSID=TEST_uAP,SEC=open,CHANNEL=8"
#iwpriv uap0 start
#iwpriv uap0 bssstart
这时可以识别到uap0了
/drivers # iwconfig
lo no wireless extensions.
dummy0 no wireless extensions.
uap0 IEEE 802.11-DS ESSID:""
Mode:Master Frequency:2.437 GHz Access Point: Not-Associated
Encryption key:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
三、配置Ip地址
/drivers # ifconfig uap0 192.168.1.2
/drivers # ifconfig
uap0 Link encap:Ethernet HWaddr 48:02:2A:31:37:26
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
四、用手机测试下,能识别到这个无线网络了,但是链接不上,这时udhcp要上场了。
下载交叉编译udhcp,当然busybox里面已经带udhcp的,独立编译或着编译busybox都可以。
本人选择独立编译,省事。
修改makefile: CROSS_COMPILE=arm-linux-
#make
把udhcpd copy到您的文件系统下(PS,我还编译了dhcpd,出来有5M多)。
在samples下拷个udhcpd.conf放到/etc/下。
然后自己对udhcpd.conf修修改改,就可以跑来了。