:http://wireless.kernel.org在这个网站上的document中有下面说有内容的介绍

1. 准备工作(虚拟机,开发板)及配置内核选择WIFI驱动
1.1 选型:确定网卡的VID,PID是否在列表里:http://wireless.kernel.org/en/users/Devices/USB
选购WIFI:
Atheros : VID 0x13D3 PID 0x3327 (成品型号 AR9271)
realtek : VID 0x0bda PID 0x8176 (成品型号TP-LINK公司TL-WN721N)

1.2 搭建开发环境:
a. 设置VMWARE的网络为桥接, 并选择使用哪一个网卡
b. 把PC windows网卡, vmware linux的网卡、开发板的有线网卡IP设为192.168.7.xxx
因为以后开发板上USB WIFI网卡将使用192.168.1.xxx

1.3 配置内核以支持USB WIFI网卡
a. 打补丁
tar xjf linux-3.4.2.tar.bz2
cd linux-3.4.2
patch -p1 < ../linux-3.4.2_camera_mini2440.patch
cp config_ok .config

b. 配置内核: 根据网卡的VID/PID确定使用哪一个源码
打开源码所在目录的Makefile进而确定配置项的名称
make menuconfig, /名

cd drivers/net/wireless/
grep "0x3327" * -nR
ath/ath9k/hif_usb.c:32: { USB_DEVICE(0x13D3, 0x3327) }, /* Azurewave */
打开ath/ath9k/Makefile可知配置项为 CONFIG_ATH9K_HTC
make menuconfig, /CONFIG_ATH9K_HTC 得到下面信息
Symbol: ATH9K_HTC [=n] |
| Type : tristate |
| Prompt: Atheros HTC based wireless cards support |
  | Defined at drivers/net/wireless/ath/ath9k/Kconfig:100 |
  | Depends on: NETDEVICES [=y] && WLAN [=y] && ATH_COMMON [=n] && USB [=y] && MAC80211 [=m] |
  | Location: |
    | -> Device Drivers |
      | -> Network device support (NETDEVICES [=y]) |
        | -> Wireless LAN (WLAN [=y]) |
          | -> Atheros Wireless Cards (ATH_COMMON [=n])

配置:
-> Networking suppor
  -> Wireless
    <*> cfg80211 - wireless configuration API
    <*> Generic IEEE 802.11 Networking Stack (mac80211)
-> Device Drivers
  -> Network device support
    -> Wireless LAN
      -> Atheros Wireless Cards
        <*> Atheros HTC based wireless cards support
make uImage

另一款网卡:
cd drivers/net/wireless/
grep "0x8176" * -nR
rtlwifi/rtl8192cu/sw.c:273: {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8176, rtl92cu_hal_cfg)},
打开rtlwifi/rtl8192cu/Makefile确定配置项为 CONFIG_RTL8192CU
make menuconfig, /CONFIG_RTL8192CU

-> General setup
[*] Prompt for development and/or incomplete code/drivers
-> Device Drivers
-> Network device support
-> Wireless LAN
<*> Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter

make uImage

uboot:
set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.7.124:/work/nfs_root/fs_mini_mdev_new ip=192.168.7.17
set bootcmd 'nfs 32000000 192.168.7.124:/work/nfs_root/uImage_mini2440_wifi; bootm 32000000'
save
boot

c. 编译、使用
c.1 把固件htc_9271.fw放到单板/lib/firmware

需要固件htc_9271.fw,我们wifi网卡可能需要下载一个文件到芯片上面去,

1 把固件htc_9271.fw放到单板/lib/firmware

先建目录:mkdir  /work/nfs_root/lib/firmware

拷贝:cp htc_9271.fw  /work/nfs_root/lib/firmware

接上USB网卡, ifconfig wlan0 up

c.2 对于"realtek : VID 0x0bda PID 0x8176 (成品型号TP-LINK公司TL-WN721N)"
修改bug:
http://lkml.indiana.edu/hypermail/linux/kernel/1301.2/00465.html
make uImage

2. 使用WIFI网卡: iw, wpa_supplicant,dhcp
2.1 概念: 认证/加密
无线加密的多种方法及其区别(WEP WPA TKIP EAP)
http://wenku.baidu.com/link?url=DlLntlD490hAeIIbE-CO4QfAzgUC-gOTA7FCwS_XanOJMFzkyhQrFIB38ULKCcQIVFyDqqSWNWyq5kVtYAoJKjjf9pmZLu17-hVQ922WeaG

以手机上WIFI热点为例,有4种常用的"认证/加密"
a. open/open
b. WEP/WEP
c. WPA(TKIP):PSK/TKIP
d. WPA2(AES):PSK/AES(PSK认证方式是在AP上保存密码,手机输入的密码与AP比较,相等则认证成功)

2.2 编译、使用iw,wpa_supplicant,dhcp
a. 旧工具iwconfig, iw(有扫描周围wifi信号的功能)是它的替代者, 可用于这2种"认证/加密": open, WEP
a.1
tar xzf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
./configure --host=arm-linux --prefix=$PWD/tmp
修改 lib/addr.c 添加宏(宏来自内核源码)
make(出错,出现一些宏未定义,比如AF_RDS,在内核中找这些宏定义)
make install

把编译出来的头文件应该放入:(应用程序编译需要)
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

cd tmp/include/libnl3
sudo cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

把编译出来的库文件应该放入:(应用程序编译需要)
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

sudo cp * -rf -d /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

把编译出来的so库文件应该放入NFS文件系统的lib目录:(应用程序运行需要)
在tmp\lib目录下执行cp *so* -d /work/nfs_root/fs_mini_mdev_new/lib

a.2
tar xjf iw-3.11.tar.bz2
cd iw-3.11/
修改Makefile:(如果支持configure配置指令,可以在configure的时候指定编译器为arm-linux-gcc,这样就不用修改makefile)
CC = "arm-linux-gcc"
NL3xFOUND := Y(NL3xFOUND 以前被赋予其他值)
#LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
#CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))

在info.c的代码前面添加
#define htole16(X) (((((uint16_t)(X)) << 8) | ((uint16_t)(X) >> 8)) & 0xffff)

make

cp iw /work/nfs_root/fs_mini_mdev_new/bin
使用:
iw list // 列出WIFI网卡的性能
ifconfig wlan0 up//启动网卡(ifconfig wlan0 down 关闭)
iw dev wlan0 scan // 扫描WIFI AP
iw wlan0 connect dswei // 连接到WIFI AP:dswei (open)
iw wlan0 connect dswei keys d:0:baiwenwang123 // 连接到WIFI AP:dswei (WEP)
d: default, 0: 第0个密码
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

iw wlan0 disconnect//断开连接

b. wpa_supplicant : 可用于上述4种"认证/加密"
b.1 先编译它的依赖libopenssl
tar xzf openssl-1.0.1d.tar.gz
cd openssl-1.0.1d/
./config shared no-asm --prefix=$PWD/tmp//make的时候除了写错,调用优化x86的汇编代码,x86指的pc,所有指令不适用汇编no-asm

修改Makefile:
CC= arm-linux-gcc
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
NM= arm-linux-nm
MAKEDEPPROG= arm-linux-gcc

make
make install
安装:
把编译出来的头文件应该放入:

cd include

cp * -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

cd ../lib

sudo cp * -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

cp *so* -d /work/nfs_root/fs_mini_mdev_new/lib

把编译出来的库文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

把编译出来的库文件应该放入NFS文件系统的lib目录:
/work/nfs_root/fs_mini_mdev_new/lib

b.2 要有一个配置文件.config
tar xzf wpa_supplicant-2.0.tar.gz
cd wpa_supplicant-2.0/wpa_supplicant/
cp defconfig .config//defconfig 是安装包中默认的config
修改.config加上一行: CONFIG_LIBNL32=y//回去找libnl-3的库,否则是找libnl库,这个没有
修改Makefile:(wpa_supplicant目录中没有configure程序,只能通过makefile来编译)
CC=arm-linux-gcc//并且去掉上下的if和endif

make
make DESTDIR=$PWD/tmp install (这里的make指令是查看MakeFile得到中间那串字符的意思)

得到的工具在tmp/usr/local/sbin下面

在wpa_supplicant目录下的examples目录下有一些conf的例子

wpa_supplicant和wpa_cli是两个应用程序,wpa_cli可以查询和设置wpa_supplicant里面的参数,其是通过sock来通讯的,wpa_supplicant运行的时候还在 /var/run/wpa_supplicant下创建一个文件,wpa_cli利用该文件还和wpa_supplicant通讯

使用:
mkdir -p /var/run/wpa_supplicant
① OPEN
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0  //  /etc/plaintext.conf就是配置文件
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

配置文件内容为:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
key_mgmt=NONE//key_mgmt指的认证方法
}

② WEP/WEP
wpa_supplicant -B -c/etc/wep.conf -iwlan0(通过killall wpa_supplicant 杀掉后台运行(-B表示后台运行)的程序)
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

配置文件:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
key_mgmt=NONE
wep_key0="baiwenwang123"
wep_tx_keyidx=0
}

③WPA(TKIP)
wpa_supplicant -B -c/etc/wpa-psk-tkip.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

配置文件
ctrl_interface=/var/run/wpa_supplicant # 一个目录,用于wpa_supplicant和wpa_cli的socket通信
network={
ssid="dswei"
proto=WPA # proto: list of accepted protocols, 可取WPA,RSN
# If not set, this defaults to: WPA RSN
key_mgmt=WPA-PSK # 认证方式
# If not set, this defaults to: WPA-PSK WPA-EAP
pairwise=TKIP # If not set, this defaults to: CCMP TKIP
group=TKIP # If not set, this defaults to: CCMP TKIP WEP104 WEP40
psk="baiwenwang12"
}

④ WPA2(AES)
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

配置文件:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
psk="baiwenwang123"
}

另:
wpa_cli可工作于"命令模式"和"交互模式(执行wpa_cli,后面不接命令,但在执行wpa_cli后进入交互模式,在执行status、scan、quit等指令)"

⑤ 配置文件里设置多个network:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
psk="baiwenwang123"
}
network={
ssid="Programer"
psk="baiwenwang"
}

wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态,显示连接上那个AP

⑥ 访问外网:
修改/etc/resolv.conf添加DNS:(域名服务器,将www.baidu.com转换成ip地址)
nameserver 192.168.1.1

设置网关:
route add default gw 192.168.1.1

通过route指令可以查看设置的网关

c. dhcp : 使得WIFI网卡动态获取IP

http://www.isc.org/sw/dhcp
c.1 编译、安装
tar xzf dhcp-4.2.5-P1.tar.gz
cd dhcp-4.2.5-P1
./configure --host=arm-linux ac_cv_file__dev_random=yes

cd bind
修改Makefile:

./configure --disable-kqueue........

改为(BUILD_CC表示编译的当前环境下的编译工具,该工具先用gcc生成点工具,在用工具生成交叉编译后在arm下运行的工具)
./configure BUILD_CC=gcc ac_cv_file__dev_random=yes --host=arm-linux --disable-kqueue.....

cd bind

(如果有bind-9.8.4-P2,需要执行rm -rf bind-9.8.4-P2/)

tar xzf bind.tar.gz
cd bind-9.8.4-P2
修改 lib/export/dns/Makefile.in (这里还有个makefile是由makefile.in生成的)
gen: ${srcdir}/gen.c
${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
改为
gen: ${srcdir}/gen.c
${BUILD_CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}

cd ../..

在dhcp-4.2.5-P1目录下执行make指令

make DESTDIR=$PWD/tmp install

生成的东西在tmp/usr/local中

把文件复制到NFS
sudo cp bin/* /work/nfs_root/fs_mini_mdev_new/bin/
sudo cp sbin/* /work/nfs_root/fs_mini_mdev_new/sbin/
sudo cp etc/dhclient.conf.example //work/nfs_root/fs_mini_mdev_new/etc/dhclient.conf
sudo cp etc/dhcpd.conf.example //work/nfs_root/fs_mini_mdev_new/etc/dhcpd.conf

(client目录在dhcp-4.2.5-P1目录中)

sudo cp client/scripts/linux /work/nfs_root/fs_mini_mdev_new/etc/dhclient-script
chmod +x /work/nfs_root/fs_mini_mdev_new/etc/dhclient-script(执行dhclient wlan0的时候在/etc/dhclient.conf中会执行该脚本)
并修改
#!/bin/bash
改为
#!/bin/sh

c.2 使用:
mkdir -p /var/db
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0

wpa_cli -iwlan0 status  //查看是否连接
dhclient wlan0(-d选项可以打印执行信息,出错时使用)

(/etc/dhclient.conf  配置文件在执行的时候会运行/etc/dhclient-script这个脚本)

c.2 一接入WIFI网卡,就自动执行wpa_supplicant等
参考第2期视频第28课热拔插
cat /etc/mdev.conf
wlan0 0:0 777 * /sbin/auto_wifi.sh

cat /sbin/auto_wifi.sh
#!/bin/sh
if [ $ACTION = "add" ];
then
  wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0 //这个wpa_supplicant应用程序在执行的时候如果发现连接或者断开ap,会通过socket给wpa_cli应用程序发一个事件,wpa_cli就会运行脚本
  wpa_cli -a/sbin/wpa_action.sh -B  //可以参考wpa_supplicant 源码的readme,有介绍wpa_cli工具可以运行的sh脚本及示例脚本
else
  killall wpa_supplicant
  killall wpa_cli
  killall dhclient
fi

chmod +x /sbin/auto_wifi.sh

一连接上WIFI AP, 就自动执行dhclient
创建一脚本:
cat /sbin/wpa_action.sh
#!/bin/sh
IFNAME=$1//表示连接上那个网卡
CMD=$2//表示动作
if [ "$CMD" = "CONNECTED" ]; then
  echo connect $IFNAME, dhclient for it > /dev/console//仅打印
  dhclient $IFNAME
fi
if [ "$CMD" = "DISCONNECTED" ]; then
  echo disconnect $IFNAME, kill dhclient for it > /dev/console
  killall dhclient
fi

chmod +x /sbin/wpa_action.sh

wpa_cli -a/sbin/wpa_action.sh -B

wpa_cli -a/sbin/wpa_action.sh -B指令的作用就是“网卡连接和断开的时候执行脚本,比如“在此执行wpa_cli -iwlan0 disconnect或者wpa_cli -iwlan0 reconnect都去触发,都可以执行/sbin/wpa_action.sh脚本”

3. 使用WIFI网卡的AP功能

参考: 移植hostapd,搭建无线热点 - 积水成渊 - 博客频道 - CSDN.NET.htm
http://blog.csdn.net/daydring/article/details/16337047

或者从wireless.kernel.org/en/users/documentation,在其中有个hostapd,打开浏览

3.1 下载源码: http://w1.fi/hostapd/
3.2 编译、安装
tar xzf hostapd-2.0.tar.gz
cd hostapd-2.0/
cd hostapd/
cp defconfig .config
修改.config, 加一行: CONFIG_LIBNL32=y
修改Makefile:
CC=arm-linux-gcc//并且删除上下的if、endif
make(出错cannot find -lnl,然后在hostapd顶层目录查找grep “\-lnl” * -nR,根据找到的信息发现其使用-lbl-3或者-lnl,在usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下查看,发现我们都使用的libnl-3,返回先去grep找到的文件,看在上面情况下会使用-lnl-3,不去用-lnl,发现需要定义CONFIG_LIBNL32,注意出错了从新编译需要先make clean)
make DESTDIR=$PWD/tmp install

把生成的hostapd hostapd_cli复制到NFS的bin目录

3.3 使用
a. hostapd的配置文件: WPA/WPA2(源码中有个hostapd.conf可供参考)
ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0(指定使用的网卡)
driver=nl80211(指定驱动)
ssid=S3C2440(指定网络名字)
channel=1

# 认证/加密方式
macaddr_acl=0(控制mac地址的过滤,其取值可查看源代码中hostapd.conf)
auth_algs=1(指定是open认证还是wep认证方式)
ignore_broadcast_ssid=0
wpa=3(指定wpa还是wpa2,或者两者都支持)
wpa_passphrase=baiwenwang(密码)
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP(WPA的加密方式)
rsn_pairwise=CCMP(WPA2的加密方式)

把配置文件存为/etc/myhostapd.conf
启动 hostapd: hostapd -B /etc/myhostapd.conf(此时手机还是无法连接成功获得ip)

b. 启动 dhcpd
修改配置文件/etc/dhcpd.conf(见上一节),添加:
subnet 192.168.1.0 netmask 255.255.255.0 {   
range 192.168.1.10 192.168.1.100;// 分配的ip地址范围
option domain-name-servers 192.168.1.1; //DNS
option routers 192.168.1.1;// 路由
}

创建空文件/var/db/dhcpd.leases:
> /var/db/dhcpd.leases

ifconfig wlan0 192.168.1.1
dhcpd -cf /etc/dhcpd.conf wlan0//启动

hostapd_cli -all_sta可以查看连接到ap的设备mac地址,再在/var/db/dhcpd.leases中可以通过mac地址查看到连接设备的ip

3.4 OPEN方式的配置文件
ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0
driver=nl80211
ssid=S3C2440
channel=1

# 认证/加密方式
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0

3.5 WEP方式的配置文件
ctrl_interface=/var/run/hostapd
#change wlan0 to your wireless device
interface=wlan0
driver=nl80211
ssid=S3C2440
channel=1

# 认证/加密方式
macaddr_acl=0
auth_algs=2
ignore_broadcast_ssid=0
wep_key0="baiwenwang123"
wep_default_key=0

3.6 修改/etc/mdev.conf自动启动AP模式
cat /etc/mdev.conf
wlan0 0:0 777 * /sbin/auto_wifi_ap.sh

cat /sbin/auto_wifi_ap.sh
#!/bin/sh
if [ $ACTION = "add" ];
then
hostapd -B /etc/myhostapd.conf
ifconfig wlan0 192.168.1.1
dhcpd -cf /etc/dhcpd.conf wlan0
else
killall hostapd
killall dhcpd
fi

注意事项:
对于包含了AR9271网卡驱动的内核,有一个问题:
在上电之前就接上了网卡,那么系统启动后无法识别出这个网卡。
解决方法:
1.上电后再接网卡
2.把驱动编译为模块,当系统启动后再insmod: 可以在上电之前就接网卡(在/etc/init.d/rcS中执行insmod)

insmod /ath9k_hw.ko
insmod /ath9k_common.ko
insmod /ath9k_htc.ko

可能原因:ath9k_htc.ko要用到固件, 但是固件要到根文件系统被挂载后才能访问

4. 仿手机写一个WIFI操作程序(反正wap_cli的命令)
有这几个功能:
a. 自动扫描WIFI热点
b. 点击某个WIFI热点后会去连接它, 必要时让你输入密码
c. 曾经连接过的WIFI热点会保留它的密码等信息, 以后会自动连接

wpa_supplicant <===== wpa_cli
依照wpa_cli, 给wpa_supplicant发各种命令, 比如:
scan
add_network, set_network, select_network
save_config

核心:wpa_cli 通过 wpa_request 向 wpa_supplicant 发出命令,并得到结果

wpa_cli常用操作指令:

list_network;//显示已保存过的wifi,第一列是标号,在后续都会用到;

add_network;//会创建一个新的标号,比如2

set_network 2 ssid "dswei";//设置标号2的ssid

set_network 2 psk "baiwenwang";//设置标号2的密码

enable_network 2 ;//使能标号2

select_network 2;//使用标号2的wifi网络,会连接

status;//查看当前是否已经连接了某个AP

save_config;//保存ap账号和密码,需要vi /etc/wpa_wpa2.conf  ,在ctrl_interface=.....上面添加一行update_config = 1,账号和密码会保存在/etc/wpa_wpa2.conf中

34、JZ2440上WIFI网卡使用的更多相关文章

  1. 使用WIFI网卡的AP功能

    前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...

  2. 使用WIFI网卡 dhcp动态获取IP

    前面几篇博客中,wifi网卡的ip都是手工设置的,本篇博客将来移植dhcp,使得wifi网卡可以动态的获取ip.路由等信息. 那我们去哪里下载dhcp源码呢?在pc机上执行dh +tab键,看一下有哪 ...

  3. 在单板上使用WIFI网卡的固件问题

    (在单板上使用WIFI网卡的固件问题)(我的wifi网卡是RT3070) (一般买的网卡说是支持LINUX免驱的话,那么在/lib/firmware/ 下一定有相应的固件) 我将USB网卡接入UBUN ...

  4. 手机连上wifi热点后自动弹窗的功能

    使用buildroot编译bind DNS服务器 用buildroot来制作文件系统很方便,编译出来的文件系统是直接可用的,不用添加脚本等麻烦的工作,很多的库和app都可以直接添加到文件系统里边,如常 ...

  5. S5PV210 移植无线wifi网卡 MT7601

    一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...

  6. 在ubuntu 18.04下,无线网卡无驱动,连不上wifi,显示wifi没有适配器的解决方法

    近来因为做东西要用到linux环境,所以自己的笔记本在win10的系统上又安装了ubuntu 18.04版本的双系统,但是安装好以后,没有无线网卡的驱动,显示wifi没有适配器等字样,很纠结,前后研究 ...

  7. 不止是联网!教你玩转PC自带Wi-Fi网卡

    前言:Wi-Fi对于现在的智能手机来说已经是再熟悉不过的配置了,而主板自带Wi-Fi网卡的设计也越来越普及,但有些玩家可能思维还停留在“Wi-Fi网卡 = 连无线网络用的网卡,我用有线就不需要”的层次 ...

  8. 使用wifi网卡笔记5---AP模式

    使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...

  9. 使用wifi网卡笔记4---工具dhcp及全自动使用wifi

    dhcp : 使得WIFI网卡动态获取IP ·1.源码获取 输入dh看有哪些应用程序,输入dhclient -v查看一下相关信息,源码获取的网址 2.开发环境配置 解压 tar xzf dhcp-4. ...

随机推荐

  1. C#开发 —— 泛型,文件

    泛型的目标是采用广泛适用和可交互性的形式来表示算法和数据结构 —— 参数化 泛型能子啊编译时提供强大的类型检查,减少数据类型之间的显式转换,装箱操作和运行时的类型检查 泛型的类型参数T可以被看作是一个 ...

  2. 【Codeforces Round #426 (Div. 2) A】The Useless Toy

    [Link]:http://codeforces.com/contest/834/problem/A [Description] [Solution] 开个大小为4的常量字符数组; +n然后余4,-n ...

  3. Android开源图表库XCL-Charts版本号公布及展示页

    XCL-Charts V2.1 Android开源图表库(XCL-Charts is a free charting library for Android platform.) XCL-Charts ...

  4. SDUTOJ 2711 4-2 电子时钟中的运算符重载

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUl9NaXNheWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  5. 使用gnu automake编译helloworld

    使用gnu automake编译helloworld 按照许多介绍automake基本步骤的教程中的说法,我在尝试使用automake编译helloworld示例程序的时候,仍然遇到了几个小坑,所幸后 ...

  6. Java 8 Stream Tutorial--转

    原文地址:http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ This example-driven tutori ...

  7. 今天看到可以用sqlalchemy在python上访问Mysql

    from sqlalchemy import create_engine, MetaData, and_ 具体的还没有多看.

  8. 计科1111-1114班第一次实验作业(NPC问题——回溯算法、聚类分析)

    实验课安排 地点: 科技楼423 时间:  计科3-4班---15周周一上午.周二下午 计科1-2班---15周周一下午.周二晚上(晚上时间从18:30-21:10) 请各班学委在实验课前飞信通知大家 ...

  9. [Node.js] Serve Static Files with Express

    In this lesson we will find out how to serve static assets (images, css, stylesheets, etc.) with Exp ...

  10. optionMenu-普通菜单使用

    首先结合如下的代码来看 package com.android.settings; import android.R.integer; import android.app.Fragment; imp ...