Libusb-1.0.18 编译
./configure –host=arm-linux-gnueabihf –prefix=/home/book/work/software/libusb-1.0.18/temp

checking libudev.h presence… no
checking for libudev.h… no
configure: error: “udev support requested but libudev not installed”

sudo apt-get install libudev-dev

Sudo apt-get update

book@ubuntu:~/work/software/libusb-1.0.18 dpkg−llibudev0Desired=Unknown/Install/Remove/Purge/Hold|Status=Not/Inst/Conf−files/Unpacked/halF−conf/Half−inst/trig−aWait/Trig−pend|/Err?=(none)/Reinst−required(Status,Err:uppercase=bad)||/NameVersionDescription+++−================================−================================−================================================================================iilibudev0175−0ubuntu9.10udevlibrarybook@ubuntu: /work/software/libusb−1.0.18 d p k g − l l i b u d e v 0 D e s i r e d = U n k n o w n / I n s t a l l / R e m o v e / P u r g e / H o l d | S t a t u s = N o t / I n s t / C o n f − f i l e s / U n p a c k e d / h a l F − c o n f / H a l f − i n s t / t r i g − a W a i t / T r i g − p e n d | / E r r ? = ( n o n e ) / R e i n s t − r e q u i r e d ( S t a t u s , E r r : u p p e r c a s e = b a d ) | | / N a m e V e r s i o n D e s c r i p t i o n + + + − ================================ − ================================ − ================================================================================ i i l i b u d e v 0 175 − 0 u b u n t u 9.10 u d e v l i b r a r y b o o k @ u b u n t u : / w o r k / s o f t w a r e / l i b u s b − 1.0.18 dpkg -l libudev0 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-================================-================================-================================================================================ ii libudev0 175-0ubuntu9.10 udev library book@ubuntu:~/work/software/libusb-1.0.18
book@ubuntu:~/work/software/libusb-1.0.18 book@ubuntu: /work/software/libusb−1.0.18 b o o k @ u b u n t u : / w o r k / s o f t w a r e / l i b u s b − 1.0.18 book@ubuntu:~/work/software/libusb-1.0.18
book@ubuntu:~/work/software/libusb-1.0.18$ dpkg -l libudev-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-================================-================================-================================================================================
ii libudev-dev 175-0ubuntu9.10 udev library (development files)

./configure –host=arm-linux-gnueabihf –prefix=/home/book/work/software/libusb-1.0.20/temp –disable-udev
Make
Make install
将编译好的库 复制到工具链中
book@ubuntu:~/work/software/libusb-1.0.20/temp/include/libusb-1.0 sudocplibusb.h/usr/arm−linux−gnueabihf/include/−rfbook@ubuntu: /work/software/libusb−1.0.20/temp/lib s u d o c p l i b u s b . h / u s r / a r m − l i n u x − g n u e a b i h f / i n c l u d e / − r f b o o k @ u b u n t u : / w o r k / s o f t w a r e / l i b u s b − 1.0.20 / t e m p / l i b sudo cp libusb.h /usr/arm-linux-gnueabihf/include/ -rf book@ubuntu:~/work/software/libusb-1.0.20/temp/lib sudo cp * /usr/arm-linux-gnueabihf/lib -rf

复制到开发板的lib中。

U盘自动挂载
插入U盘后,控制台打印:
[ 330.371634] usb 1-1.2: new high-speed USB device number 4 using musb-hdrc
[ 330.748699] usb 1-1.2: New USB device found, idVendor=0bda, idProduct=0119
[ 330.755888] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 330.763526] usb 1-1.2: Product: USB2.0-CRW
[ 330.767794] usb 1-1.2: Manufacturer: Generic
[ 330.772255] usb 1-1.2: SerialNumber: 20090815198100000
[ 330.788154] scsi1 : usb-storage 1-1.2:1.0
[ 331.803886] scsi 1:0:0:0: Direct-Access Generic- SD/MMC 1.00 PQ: 0 ANSI: 0 CCS
[ 332.470007] sd 1:0:0:0: [sdb] 1984000 512-byte logical blocks: (1.01 GB/968 MiB)
[ 332.478656] sd 1:0:0:0: [sdb] Write Protect is off
[ 332.484569] sd 1:0:0:0: [sdb] No Caching mode page present
[ 332.490296] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 332.500849] sd 1:0:0:0: [sdb] No Caching mode page present
[ 332.506636] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 332.516993] sdb: sdb1
[ 332.532309] sd 1:0:0:0: [sdb] No Caching mode page present
[ 332.538060] sd 1:0:0:0: [sdb] Assuming drive cache: write through
[ 332.544455] sd 1:0:0:0: [sdb] Attached SCSI removable disk

用 fdisk -l
Disk /dev/sdb: 1015 MB, 1015808000 bytes
255 heads, 63 sectors/track, 123 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 124 991968+ c Win95 FAT32 (LBA)
Partition 1 has different physical/logical endings:
phys=(122, 254, 63) logical=(123, 127, 4)

用挂接命令:
Mount /dev/sdb1 /tmp/u

卸载:退出/tmp/u目录,执行
Umount /tmp/u
利用mdev.conf 配置文件 自动挂载U盘和SD卡
leds?[123]? 0:0 777 * /bin/add_remove_led.sh (韦东山教程文档)
(加载驱动时,将文件权限更改为可读可写,并执行脚本)
把命令写入一个脚本:
add_remove_led.sh

!/bin/sh

if [ ACTION=“add”];thenechocreate/dev/ A C T I O N = “ a d d ” ] ; t h e n e c h o c r e a t e / d e v / ACTION = “add” ]; then echo create /dev/MDEV > /dev/console;
else
echo remove /dev/$MDEV > /dev/console;
fi
2. U盘自动加载
sda[1-9]+ 0:0 777 * /bin/add_remove_udisk.sh

!/bin/sh (add_remove_udisk.sh)

if [ ACTION=“add”];thenmount/dev/ A C T I O N = “ a d d ” ] ; t h e n m o u n t / d e v / ACTION = “add” ]; then mount /dev/MDEV /mnt;
else
umount /mnt;
Fi

  1. Udev 脚本学习:
    mdev.conf的格式:
    : [<@| |∗>]deviceregex:正则表达式,表示哪一个设备uid:ownergid:组IDoctalpermissions:以八进制表示的属性@:创建设备节点之后执行命令 | ∗ > ] d e v i c e r e g e x : 正 则 表 达 式 , 表 示 哪 一 个 设 备 u i d : o w n e r g i d : 组 I D o c t a l p e r m i s s i o n s : 以 八 进 制 表 示 的 属 性 @ : 创 建 设 备 节 点 之 后 执 行 命 令 |*> ] device regex:正则表达式,表示哪一个设备 uid: owner gid: 组ID octal permissions:以八进制表示的属性 @:创建设备节点之后执行命令 :删除设备节点之前执行命令
    *: 创建设备节点之后 和 删除设备节点之前 执行命令
    command:要执行的命令.

例子:
leds?[123]? 0:0 777 * if [ ACTION="add"];thenechocreate/dev/ A C T I O N =" a d d " ] ; t h e n e c h o c r e a t e / d e v / ACTION = "add" ]; then echo create /dev/MDEV > /dev/console; else echo remove /dev/ MDEV>/dev/console;fileds?[123]?0:0777∗/bin/addremoveled.shsda[1−9]+0:0777∗if[ M D E V > / d e v / c o n s o l e ; f i l e d s ? [ 123 ] ? 0 : 0 777 ∗ / b i n / a d d r e m o v e l e d . s h s d a [ 1 − 9 ] + 0 : 0 777 ∗ i f [ MDEV > /dev/console; fi leds?[123]? 0:0 777 * /bin/add_remove_led.sh sda[1-9]+ 0:0 777 * if [ ACTION = "add" ]; then mount /dev/$MDEV /mnt; else umount /mnt; fi

USB-WIFI调试:
1.配置内核:
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

把固件htc_9271.fw放到开发板/lib/firmware
Cp htc_9271.fw /home/book/work/rootfs_min/lib/firmware

2.安装iw 工具
2.1 安装iw依赖的 libnl库
tar xzf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
./configure –host=arm-linux –prefix=$PWD/tmp
修改 lib/addr.c 添加宏(宏来自内核源码)
make
make install

把编译出来的头文件应该放入:
/usr/arm-linux-gnueabihf-gcc/include
cd tmp/include/libnl3
sudo cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

把编译出来的库文件应该放入:

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

2.2 编译 iw 工具
获取iw工具
可以从https://www.kernel.org/pub/software/network/iw/下载iw-4.0.tar.gz
Makefile中定义了PKG_CONFIG_PATH,路径指向libnl库
export PKG_CONFIG_PATH=/home/book/work/software/wifi_source/01.iw/libnl-3.2.23/temp/lib/pkgconfig:$PKG_CONFIG_PATH
make CC=arm-linux-gnueabihf-gcc

iw list // 列出WIFI网卡的性能
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个密码
3.编译wpa_supplicant :
可用于上述4种”认证/加密”
3.1 先编译它的依赖libopenssl
tar xzf openssl-1.0.1d.tar.gz
cd openssl-1.0.1d/
./config shared no-asm –prefix= PWD/tmp修改Makefile:CC=arm−linux−gccAR=arm−linux−ar P W D / t m p 修 改 M a k e f i l e : C C = a r m − l i n u x − g c c A R = a r m − l i n u x − a r PWD/tmp 修改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

3.2 编译wpa_supplicant
要有一个配置文件.config
tar xzf wpa_supplicant-2.0.tar.gz
cd wpa_supplicant-2.0/wpa_supplicant/
cp defconfig .config
修改.config加上一行: CONFIG_LIBNL32=y
修改Makefile:
CC=arm-linux-gcc

编译出错提示 找不到 ssl.h
Makefile 增加一行 CFLAGS += -I/usr/arm-linux-gnueabihf/include/
make
make DESTDIR=$PWD/tmp install
把 wpa_cli wpa_passphrase wpa_supplicant 复制到 文件系统的sbin目录中。
文件系统中创建文件夹 mkdir -p /var/run/wpa_supplicant

(使用: 在examples 目录中有很多的配置文件,可用于open wep wep2 参考
book@ubuntu:~/work/software/wifi_source/02.wpa_supplicant/wpa_supplicant-2.0/wpa_supplicant/examples$ ls *.conf -l
-rw-rw-r– 1 book book 269 Jan 12 2013 ieee8021x.conf
-rw-rw-r– 1 book book 1144 Jan 12 2013 openCryptoki.conf
-rw-rw-r– 1 book book 133 Jan 12 2013 plaintext.conf
-rw-rw-r– 1 book book 2930 Jan 12 2013 udhcpd-p2p.conf
-rw-rw-r– 1 book book 170 Jan 12 2013 wep.conf
-rw-rw-r– 1 book book 284 Jan 12 2013 wpa2-eap-ccmp.conf
-rw-rw-r– 1 book book 181 Jan 12 2013 wpa-psk-tkip.conf )

在文件系统的etc 文件夹中 新建一配置文件 wpa_wpa2.conf
ctrl_interface=/var/run/wpa_supplicant
network={
ssid=”dswei”
psk=”baiwenwang123”
}

配置文件内容解释:
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

控制台执行
ifconfig wlan0 up
iw dev wlan0 scan // 扫描热点
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态

访问外网:
修改/etc/resolv.conf添加DNS:
nameserver 192.168.1.1

设置网关:
route add default gw 192.168.1.1

  1. 编译 安装 Dhcp
    c.1 编译、安装
    tar xzf dhcp-4.2.5-P1.tar.gz
    cd dhcp-4.2.5-P1
    ./configure –host=arm-linux-gnueabihf ac_cv_file__dev_random=yes

cd bind
修改Makefile:
./configure BUILD_CC=gcc ac_cv_file__dev_random=yes –host=arm-linux-gnueabihf –disable-kqueue

tar xzf bind.tar.gz
cd bind-9.8.4-P2
修改 lib/export/dns/Makefile.in
gen: srcdir/gen.c s r c d i r / g e n . c {srcdir}/gen.c {CC} ALLCFLAGS A L L C F L A G S {ALL_CFLAGS} {LDFLAGS} -o @ @ @ {srcdir}/gen.c LIBS改为gen: L I B S 改 为 g e n : {LIBS} 改为 gen: {srcdir}/gen.c
BUILDCC B U I L D C C {BUILD_CC} {ALL_CFLAGS} LDFLAGS−o L D F L A G S − o {LDFLAGS} -o @ srcdir/gen.c s r c d i r / g e n . c {srcdir}/gen.c {LIBS}

cd ../..
make DESTDIR=$PWD/tmp install

把文件复制到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

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
并修改

!/bin/bash

改为

!/bin/sh

命令:
dhclient wlan0 连上AP 后自动非配ip 和 路由
5.AR9271 驱动模块的编译:
对于包含了AR9271网卡驱动的内核,有一个问题:
在上电之前就接上了网卡,那么系统启动后无法识别出这个网卡。
解决方法:
1.上电后再接网卡
2.把驱动编译为模块,当系统启动后再insmod: 可以在上电之前就接网卡

可能原因:ath9k_htc.ko要用到固件, 但是固件要到根文件系统被挂载后才能访问
将 Atheros HTC based wireless cards support 编译成模块
DEVICES DRIVER
NETWORK device support
Wireles LAN
Atheros Wireless Cards
Atheros HTC based wireless cards support

 编译内核 make uImage编译模块 make modules cp drivers/net/wireless/ath/ath9k/*.ko  文件 copy 到文件系统中.init.d/rcs中脚本增加如下命令 :insmod ath9k_hw.koinsmod ath9k_common.koinsmod ath9k_htc.ko

写脚本,利用mdev使一接入WIFI网卡,就自动执行wpa_supplicant等
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_cli -a/sbin/wpa_action.sh -B
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= 1CMD= 1 C M D = 1 CMD=2
if [ “ CMD”=“CONNECTED”];thenechoconnect C M D ” = “ C O N N E C T E D ” ] ; t h e n e c h o c o n n e c t CMD” = “CONNECTED” ]; then echo connect IFNAME, dhclient for it > /dev/console
dhclient IFNAMEfiif[“ I F N A M E f i i f [ “ IFNAME fi if [ “CMD” = “DISCONNECTED” ]; then
echo disconnect $IFNAME, kill dhclient for it > /dev/console
killall dhclient
fi

chmod +x /sbin/wpa_action.sh

  1. Wpa_cli 常用命令

iw list // 列出WIFI网卡的性能
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个密码

wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0 //-B 后台执行 -c执行脚本 -d 调试信息 /etc/wpa_wpa2.conf
wpa_cli -iwlan0 status // 查看状态

连接WPA-PSK/WPA2-PSK加密的AP
  >add_network (假设返回2)
  >set_network 2 ssid “dswei”
  >set_network 2 psk “baiwenwang123”
  >enable_network 2

list_networks //列出配置文件中的网络
scan_results // 列出扫描到的wifi网络

7.Wifi 程序测试:
用以前的 server 、client程序,
Wifi 连接到tp-link路由, 关掉eth0 eth1网卡
Arm板 执行客户端: ./cli 192.168.1.199
Pc ubuntu 执行服务器 : ./ser

Libusb-1.0.18 编译 、Usb-wifi编译、脚步编写相关推荐

  1. 【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动

    1.附件中提供了RT3070驱动源码包DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.gz和编译好的驱动,这里选择使用taget_file.tar.gz中已经编译好的 ...

  2. ARM开发板使用USB WIFI模块实现上网

    一.搭建环境 1)软件环境:VMware15 + Ubuntu16.04 2)硬件模块:GEC6818开发板 + 雷凌RT3070USBWIFI模块 3)所有资料下载链接:资料下载:提取码:ixl3 ...

  3. RTL8188CUS usb wifi驱动移植到(arm-linux)

    一.开发环境 linux主机:ubuntu-18.04 交叉编译器:gcc version 4.6.2 20110630 (prerelease) wifi硬件:RTL8188CUS 迷你WIFI W ...

  4. 支持wince 系统的USB wifi 模组推荐

    雷凌Ralink 无线网卡RT3070 http://download.csdn.net/download/shc5840/4317216-- wince6.0 RT3070 RT2070 USB W ...

  5. Ubuntu 18.04安装openJDK7编译安卓6.0.0_r1

    最近在使用AOSP编译安卓6.0.0_r1源码,自己的机器是Ubuntu18.04 TLS,试了网上所有安装openjdk7的教程发现没有一个可以使用的,实属无奈只能自己动手解决这个问题完成了编译,教 ...

  6. 和菜鸟一起学android4.0.3源码之USB wifi移植心得

    转载地址:http://blog.csdn.net/eastmoon502136/article/details/7850157 一天又过去了,台风也走了有些时候了.想了想,自己还是冲动了一把,不该发 ...

  7. opencore0.6.3_Ubuntu 18.04 源码编译安装 PHP 7.3

    记录在Ubuntu 18.04下源码编译安装 PHP 7.3的过程步骤. 0.下载PHP源代码 首先需要从PHP官网下载PHP7.3.1的源代码,保存为php-7.3.1.tar.xz. http:/ ...

  8. OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装

    OpenCPN + Ubuntu 18.04 源码编译 文章目录 一.参考资料 二.源码编译流程 三.利用 IDE 编译 四.利用 IDE 调试 四.测试界面开发工具 一.参考资料 OpenCPN - ...

  9. 安卓10 linux内核,AndroidQ(10.0) 内核版本增加linux编译用户信息

    版本对比 O 版本设置界面中内核信息 Q 版本设置界面中内核信息 解决办法 frameworks\base\packages\SettingsLib\src\com\android\settingsl ...

最新文章

  1. Linux客户机访问FTP服务器常见的问题及解决办法
  2. captura录屏发生了一个错误_录屏教程的方法有哪些?学会这两种轻松搞定
  3. 2021下半年软考各省准考证打印时间
  4. [Python人工智能] 二.TensorFlow基础及一元直线预测案例
  5. 修改 gcc 和 g++ 的默认版本
  6. PyTorch 1.0 中文文档:torch.onnx
  7. 小米、360之后,货拉拉被曝已启动造车项目!官方回应
  8. 牛客 —— 湖南大学第十六届程序设计竞赛(重现赛)
  9. 简述数学建模的过程_数学建模研究过程指导(精编版) Part IV
  10. 图说:Windows 8如何关机、重启
  11. 从托管映像创建 VM
  12. PHP连接 SQLSERVER 注意事项(经典中的经典)
  13. opencv4 python电子书_OpenCV轻松入门面向Python下载-OpenCV轻松入门面向Python电子书pdf免费版-精品下载...
  14. TCP协议如何保证可靠传输
  15. 百度网盘破解版Pandownload开发者被抓
  16. iframe使用方法
  17. 使用微信扫描关注公众号登陆的方法
  18. e430c参数 thinkpad,联想ThinkPad E430c的详细参数
  19. python胶水语言为什么_为什么只有python是胶水语言?
  20. 【C语言】BC62统计数据正负数个数(DAY 4)

热门文章

  1. 快印通软件通过360软件安全认证中心认证
  2. 【笔记】ARM裸机程序开发_part2
  3. 关于软件设计:简述软件设计的23种模式
  4. 海布里的那只松鼠...那些阳光...
  5. QoS---拥塞管理、拥塞避免
  6. HPU暑期集训积分赛3
  7. 关于微服务项目中点赞模块的思考
  8. 【Redis-6.0.8】事件循环器AE(上)
  9. python登录网页版易信_易信电脑版
  10. java 取名字_Java入门小知识