wifi连接及启动热点

连接wifi

现在wpa_supplicant、hostapd、rt8821驱动都编译完了,还需要在busybox添加udhcp支持:

make menuconfig
make
make insall
#install在_install目录下

make menuconfig配置:
在这里插入图片描述
然后将_install目录与osdrv/pub/rootfs_glibc合并,重新制作文件系统,使用yaffs2、2KB pagesize、4bit ecc:

cd osdrv/pub
./bin/pc/mkyaffs2image100 rootfs_glibc rootfs_hi3519av100_2k_24bit.yaffs2 1 4

制作完成后将rootfs_hi3519av100_2k_24bit.yaffs2重新烧写。
烧写完成后udhcpc就能找到了,再将ko、wpa_supplicant、config等文件拷贝过来,加载驱动,启动wpa_supplicant,扫描连接wifi,启动udhcpc,就可以用iperf测速了:

insmod rtl8192eu.ko
export LD_LIBRARY_PATH=/mnt/usr/lib:$LD_LIBRARY_PATH
udhcpc -i wlan0 -s /etc/udhcpc/wifi.script &
/mnt/usr/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf -B

simple.script内容如下:

#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
RESOLV_CONF="/etc/resolv.conf"
[ -n "$1" ] || { echo "Error: should be called from udhcpc"; exit 1; }
NETMASK=""
[ -n "$subnet" ] && NETMASK="netmask $subnet"
BROADCAST="broadcast +"
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
case "$1" in
        deconfig)
                echo "Setting IP address 0.0.0.0 on $interface"
                ifconfig $interface 0.0.0.0
                ;;
        renew|bound)
                echo "Setting IP address $ip on $interface"
                ifconfig $interface $ip $NETMASK $BROADCAST
                if [ -n "$router" ] ; then
                        echo "Deleting routers"
                        while route del default gw 0.0.0.0 dev $interface ; do
                                :
                        done
                        metric=0
                        for i in $router ; do
                                echo "Adding router $i"
                                route add default gw $i dev $interface metric $((metric++))
                        done
                fi
                echo "Recreating $RESOLV_CONF"
                echo -n > $RESOLV_CONF-$$
                [ -n "$domain" ] && echo "search $domain" >> $RESOLV_CONF-$$
                for i in $dns ; do
                        echo " Adding DNS server $i"
                        echo "nameserver $i" >> $RESOLV_CONF-$$
                done
                mv $RESOLV_CONF-$$ $RESOLV_CONF
                ;;
esac
exit 0

wpa_supplicant.conf 从源码包 wpa_0_8.conf修改,wpa_cli,iperf使用就参考 “wpa_cli、wpa_supplicant连接热点”、“iperf交叉编译及使用”了。

启动热点

启动热点前需要将wpa_supplicant、dhcpc关掉,然后设置wlan0 ip,启动dhcpd,启动hostapd:

ifconfig wlan0 192.168.44.203 netmask 255.255.255.0 up
udhcpd /etc/udhcpd.conf
route add default gw 192.168.0.1
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
#设置路由
/mnt/usr/bin/iptables -t nat -A POSTROUTING -s 192.168.44.204/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
/mnt/usr/bin/hostapd /etc/rtl_hostapd_5G.conf &

udhcpd.conf:

start 192.168.44.204 #default: 192.168.0.20
end 192.168.44.254 #default: 192.168.0.254
# The interface that udhcpd will use
interface wlan0 #default: eth0
max_leases 234
option subnet 255.255.255.0
option router 192.168.44.203
option dns 114.114.114.114

rtl_hostapd_5G.conf则直接从源码包里边来,稍作修改即可使用。
启动时可能遇到报错:rfkill: Cannot open RFKILL control device,找不到 /dev/rfkill ,需要配置内核加上RFKILL支持:
在这里插入图片描述
内核重新编译之后,重新执行上述命令。

注意:有可能热点开启了,但是手机还是无法连上,可能是5Gwifi有的手机不支持,无法扫描到热点,换个手机扫描试试。

热点开启后,为让连接到吃热点的设备能够上网,需要设置路由,使用iptables设置。

/mnt/usr/bin/iptables -t nat -A POSTROUTING -s 192.168.44.204/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

关闭热点时:

killall udhcpd
killall hostapd
/mnt/usr/bin/iptables -t nat -D POSTROUTING 1
route del default gw 192.168.43.1
echo 0 > /proc/sys/net/ipv4/ip_forward
a20_hummingbird_v4.5_v1.0_csi01_2ov7670_rtl8188eus 20150918 1830 JNI.7z 无法打开USB Wifi rtl8188eus.txt 配置前后ov7670双摄像头 JNI调用读写一次之后就会出现内核出错,系统死机。 有可能与系统为android4.4有关。 无法打开USB Wifi rtl8188eus shell@wing-k70:/ $ shell@wing-k70:/ $ shell@wing-k70:/ $ shell@wing-k70:/ $ logcat -c shell@wing-k70:/ $ logcat --------- beginning of /dev/log/system I/ActivityManager( 1670): Waited long enough for: ServiceRecord{41e90e08 u0 com.android.calendar/.alerts.InitAlarmsService} --------- beginning of /dev/log/main D/dalvikvm( 1849): GC_FOR_ALLOC freed 673K, 22% free 5143K/6512K, paused 41ms, total 47ms I/ActivityManager( 1670): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.settings/.Settings} from pid 1849 D/PermissionCache( 1252): checking android.permission.READ_FRAME_BUFFER for uid=1000 => granted (3161 us) D/BluetoothAdapter( 1931): 1103979928: getState() : mService = null. Returning STATE_OFF D/libEGL ( 1931): loaded /system/lib/egl/libEGL_mali.so D/libEGL ( 1931): loaded /system/lib/egl/libGLESv1_CM_mali.so D/libEGL ( 1931): loaded /system/lib/egl/libGLESv2_mali.so D/OpenGLRenderer( 1931): Enabling debug mode 0 D/BluetoothAdapter( 1931): 1103979928: getState() : mService = null. Returning STATE_OFF I/ActivityManager( 1670): Displayed com.android.settings/.Settings: +1s78ms D/WifiService( 1670): setWifiEnabled: true pid=1931, uid=1000 D/WifiHW ( 1670): Start to insmod 8188eu.ko [ 54.805792] ****wyb arch/arm/mach-sun7i/rf/wifi_pm.c:69/wifi_pm_power()! on=1 [ 54.813855] ****wyb arch/arm/mach-sun7i/rf/wifi_pm.c:73/wifi_pm_power()! [ 54.821376] ****wyb arch/arm/mach-sun7i/rf/wifi_pm_rtl8188eu.c:197/rtl8188eu_power()! mode=1 *updown=1 [ 54.831805] ****wyb arch/arm/mach-sun7i/rf/wifi_pm_rtl8188eu.c:95/rtl8188eu_gpio_ctrl()! name=rtk_rtl8188eu_wl_dis, level=1 [ 54.844290] ****wyb arch/arm/mach-sun7i/rf/wifi_pm_rtl8188eu.c:209/rtl8188eu_power()! usb wifi power state: on [ 54.855621] ----wyb arch/arm/mach-sun7i/rf/wifi_pm_rtl8188eu.c:222/rtl8188eu_power()! D/WifiHW ( 1670): faied to read proc/net/wireless D/WifiHW ( 1670): loading wifi driver... D/WifiHW ( 1670): faied to read proc/net/wireless D/WifiHW ( 1670): loading wifi driver... I/USB3G ( 1258): event { 'add', '/devices/platform/sw-ehci.2/usb4/4-1', 'usb', '', 189, 385 } I/USB3G ( 1258): path : '/sys/devices/platform/sw-ehci.2/usb4/4-1' I/USB3G ( 1258): VID :size 5,vid_path '/sys/devices/platform/sw-ehci.2/usb4/4-1/idVendor',VID '0bda I/USB3G ( 1258): '. I/USB3G ( 1258): PID :size 5,Pid_path '/sys/devices/platform/sw-ehci.2/usb4/4-1/idProduct',PID '8179 I/USB3G ( 1258): '. I/USB3G ( 1258): cmd=source /system/xbin/usb_modeswitch.sh /system/etc/usb_modeswitch.d/0bda_8179 &, D/WifiHW ( 1670): faied to read proc/net/wireless D/WifiHW ( 1670): loading wifi driver... I/USB3G ( 1258): excute ret:0,err:No such file or directory I/USB3G ( 1258): free cmd W/ContextImpl( 1670): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1123 com.android.server.usb.UsbSettingsManager.deviceAttached:621 com.android.server.usb.UsbHostManager.usbDeviceAdded:156 com.android.server.usb.UsbHostManager.monitorUsbHostBus:-2 com.android.server.usb.UsbHostManager.access$000:38 D/Tethering( 1670): sendTetherStateChangedBroadcast 1, 0, 0 W/SocketClient( 1249): write error (Broken pipe) D/Tethering( 1670): InitialState.processMessage what=4 D/Tethering( 1670): sendTetherStateChangedBroadcast 0, 0, 0 D/WifiHW ( 1670): faied to read proc/net/wireless D/WifiHW ( 1670): loading wifi driver... D/WifiHW ( 1249): Enter: wifi_get_fw_path function, fw_type=0, D/WifiHW ( 1249): Eneter: wifi_change_fw_path, fwpath = STA. D/SoftapController( 1249): Softap fwReload - Ok D/CommandListener( 1249): Setting iface cfg D/CommandListener( 1249): Trying to bring down wlan0 D/WifiMonitor( 1670): startMonitoring(wlan0) with mConnected = false I/wpa_supplicant( 2247): Successfully initialized wpa_supplicant I/wpa_supplicant( 2247): rfkill: Cannot open RFKILL control device D/BluetoothAdapter( 1931): 1103979928: getState() : mService = null. Returning STATE_OFF I/wpa_supplicant( 2247): rfkill: Cannot open RFKILL control device D/WifiConfigStore( 1670): Loading config and enabling all networks E/WifiConfigStore( 1670): Error parsing configurationjava.io.FileNotFoundException: /data/misc/wifi/ipconfig.txt: open failed: ENOENT (No such file or directory) D/BluetoothAdapter( 1931): 1103979928: getState() : mService = null. Returning STATE_OFF E/WifiStateMachine( 1670): Failed to set device name wing_k70 E/WifiStateMachine( 1670): Failed to set manufacturer Allwinner E/WifiStateMachine( 1670): Failed to set model name AOSP on wing E/WifiStateMachine( 1670): Failed to set model number AOSP on wing E/WifiStateMachine( 1670): Failed to set serial number 582034060190a829459 E/WifiStateMachine( 1670): Failed to set WPS config methods E/WifiStateMachine( 1670): Failed to set primary device type 10-0050F204-5 D/CommandListener( 1249): Setting iface cfg D/CommandListener( 1249): Trying to bring up p2p0 D/WifiMonitor( 1670): startMonitoring(p2p0) with mConnected = true E/WifiStateMachine( 1670): Failed to set frequency band 0 [ 57.384990] init: untracked pid 2221 exited D/InitAlarmsService( 2053): Clearing and rescheduling alarms. W/SocketClient( 1249): write error (Broken pipe) D/ConnectivityService( 1670): Sampling interval elapsed, updating statistics .. D/ConnectivityService( 1670): Done. D/ConnectivityService( 1670): Setting timer for 720seconds I/MediaFocusControl( 1670): AudioFocus abandonAudioFocus() from android.media.AudioManager@41cc7828com.android.music.MediaPlaybackService$3@41cc66a8 I/ActivityManager( 1670): Start proc com.android.musicfx for broadcast com.android.musicfx/.ControlPanelReceiver: pid=2265 uid=10008 gids={50008, 3003, 3002} V/MusicFXControlPanelReceiver( 2265): onReceive V/MusicFXControlPanelReceiver( 2265): Action: android.media.action.CLOSE_AUDIO_EFFECT_CONTROL_SESSION V/MusicFXControlPanelReceiver( 2265): Package name: com.android.music V/MusicFXControlPanelReceiver( 2265): Audio session: 8 V/MusicFXControlPanelEffect( 2265): closeSession(android.app.ReceiverRestrictedContext@41ccc508, com.android.music, 8) ^C 130|shell@wing-k70:/ $
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值