: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. logout命令用于退出当前登录的Shell

    logout命令用于退出当前登录的Shell

  2. fg、bg、jobs、&、 ctrl+z---系统任务

    系统任务有关的命令   一.& 这个用在一个命令的最后,可以把这个命令放到后台执行   二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停   一和二的区别(&放入后 ...

  3. 洛谷 P1177 【模板】快速排序(排序算法整理)

    P1177 [模板]快速排序 题目描述 利用快速排序算法将读入的N个数从小到大排序后输出. 快速排序是信息学竞赛的必备算法之一.对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成.( ...

  4. ORA-01031: 权限不足

    1.错误描写叙述 ORA-01031: 权限不足 2.错误原因 SQL> create user yhd identified by scott account unlock; create u ...

  5. VS:&quot;64位调试操作花费的时间比预期要长&quot;的一解决途径

    解决的方法之中的一个: 在命令提示符那里打入例如以下命令: netsh winsock reset catalog netsh int ip reset reset.log hit 重新启动电脑后,就 ...

  6. 交叉编译工具链bash: gcc:no such file or directory

    在进行交叉编译工具链安装时,有三种方法: 1.源码编译,手动安装 2.二进制可执行文件直接安装 3.直接解压工具链,手动修改环境变量 为了方便,我们多用方法3进行安装.但是问题来了,你的工具链制作时有 ...

  7. SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程

    spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环 ...

  8. eclipse git冲突解决

    1.工程->Team->同步: 2.从远程pull至本地,就会出现如下内容: 3.使用Merge Tool,执行第二项 4.再手动修改 4.修改后的文件需要添加到Git index中去: ...

  9. 洛谷 P1724 东风谷早苗

    P1724 东风谷早苗 题目描述 在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女.某一天,早苗终于入手了最新款的钢达姆模型.作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走,厉害吧 ...

  10. 华为OJ:字符串反转

    非常easy,逆向输出就好了. import java.util.Scanner; public class convertString { public static void main(Strin ...