最痛苦的事莫过于--上班

最最痛苦的事莫过于--上班有网不能上

最最最痛苦的事莫过于--上班有网能上却没有wifi

最最最最痛苦的事莫过于--你有无线网卡却没有U口可插

最最最最最痛苦的事莫过于--有U口插却发现U口只在开发板上

最最最最最最痛苦的事莫过于--开发板上有u口但是跑的是linux

最最最最最最最痛苦的事莫过于--linux能驱动网卡,但是如何共享出wifi来啊

于是,,,,为了不让以上这些人继续痛苦,我尝试着解救一下他们!!!!!阿弥陀佛,保佑成功!!

准备:

当我发现自己有一个s5pv210开发板,有一个ralink 150M的无线网卡(办公柜里面找到的的应该是N多年前前辈留下的),然后,还有人一个

本以为很快就可以解决这个问题,没有想到,弄了我整整2天2夜(有了这个

iw ; openssl ; libnl;  hostapd ; iptables ;  udhcpd

还有内核支持配置(为了确保上面的东西能用,后面移植的时候会介绍到),没有linux内核源码的,慎重,喝喝。

动一次打一次,动一次打一次,地刺大慈,东磁大慈,悠悠岂可闹,let's go

第一步、检查你的网线网卡拥有够成为热点的能力

你是猴子请来的救兵吗?不是,我是iw

iw命令可以检测出你的网卡是否具有热点功能,但是iw没有在linux系统中自带,所以我们需要移植它

1、下载

到处找源码,最后在GIT中找到了

都说这里有,现在这个路径已经没有资源了http://linuxwireless.org/download/iw/iw-3.7.tar.bz2

可以在GIT中可以找到iw的源码

http://git.sipsolutions.net/iw.git/

通过GIT工具即可下载IW源码 (GIT工具的使用这里就不介绍了)

apt-get install git

完成下载后得到iw目录

观看REDEME发现需要依赖另外一个库 libnl

http://www.infradead.org/~tgr/libnl/

这里可以下载,当时下载的最新版本3.2,结果出现了问题(后面会提到),可以下载1.1版本就行了

解压libnl并编译

tar zxvf libnl-3.2.24.tar.gz

./configure --prefix=/绝对路径 CC=arm-linux-gcc --host=arm

make

make install

生成的库将在上面指定的 /绝对路径 中出现 ,待会用于连接

2、编译iw

需要配置环境变量,因为前面的库在编译的时候需要连接

例如: export PKG_CONFIG_PATH=绝对路径/lib/pkgconfig:$PKG_CONFIG_PATH

在iw解压好的目录下执行下面两条命令(注意export的路径要和你生成libnl库的路径一致)

export PKG_CONFIG_PATH=/home/edu/share/wifi/iw/nlinstall/lib/pkgconfig:$PKG_CONFIG_PATH

make CC=arm-linux-gcc

不需要make install的不出问题就完成事情了

如果编译不过 可以用root用户编译

通常是不会有问题的,但是我的出问题了

错误

CC info.o

info.c: In function 'print_phy_handler':

info.c:499: error: implicit declaration of function 'htole16'

make: *** [info.o] 错误 1

根据提示找到函数,发现我的系统中没有 htole16这个函数,我的libnl版本太高了,学过网络的知道这是大小端转换函数,直接使用thos()代替了里面的两个函数就可以了,当然也可以使用低版本对应的nl库(这个没有尝试)

3、将编译生成的iw文件,拷贝到开发板中就可以检查网卡是否支持热点了

./iw list (注意中间是空格)

如果提示找不到库,记得把libnl生成的库拷贝到开发板中/lib中来 记得加上cp -a参数

找到 对于网卡的模式提示

Supported interface modes:

* IBSS

* managed

* AP

* AP/VLAN

* WDS

* monitor

* mesh point

如果发现里面有AP选项,那么咱们进行下一步,如果没有,那么感觉淘一个吧,也就是运费的钱(小度的不要的干活,咱们没有驱动)!

发现有AP选项的,哈哈,恭喜可以进行wifi热点共享了,咱们下一步走

有了前面的检测,确定了我们的网卡是能够拥有热点共享功能的,但是如何让它共享出来呢?

于是有了这篇

hostapd    可以让我们的网线网卡变成热点

1、下载

git clone git://w1.fi/srv/git/hostap.git

得到hostap目录,但是里面wpa_supplicant and hostapd的结合在一起,我们这里只需要hostapd

所以进入hostap/hostapd目录下编译

发现它依赖另外两个库,一个是前面移植过的libnl,还有一个是openssl

libnl移植过了就不需要移植了,这里移植一下openssl

移植文档:http://www.voidcn.com/article/p-heqxcivr-rm.html

2、移植hostapd

cp defconfig .config

vi .config

修改如下:

修改Makefile 指定编译器为arm-linux-gcc 指定ssl和libnl头文件的路径

修改CC=arm-linux-gcc 并且添加四句话

注意,这里的路径一点是要你移植的ssl库和libnl库对应的路径

如此,编译make

便可以得到hostapd 拷贝至开发板,运行hostapd –v

如果提示找不到库,记得把libnl生成的库拷贝到开发板中/lib中来 记得加上cp -a参数

# ./hostapd -v

正确:

hostapd v2.2-devel

User space daemon for IEEE 802.11 AP management,

IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator

Copyright (c) 2002-2014, Jouni Malinen and contributors

可能出现的问题:

a、Can't open RFKILL control device: No such file or directory

呵呵,得配置内核了,要是没有内核源码那就麻烦了,嘿嘿

配置内核

--- Networking support │ │

│ │ Networking options ---> │ │

│ │ [ ] Amateur Radio support ---> │ │

│ │ < > CAN bus subsystem support ---> │ │

│ │ < > IrDA (infrared) subsystem support ---> │ │

│ │ < > Bluetooth subsystem support ---> │ │

│ │ -*- Wireless ---> │ │

│ │ < > WiMAX Wireless Broadband support ---> │ │

│ │ RF switch subsystem support --->!!这需要选择!!!

b、ioctl(SIOCGIFBR) failed: Package not installed

这回是桥接网络的问题,同样得配置内核

--- Networking support │ │

│ │ Networking options ---> │ │

---》 802.1d Ethernet Bridging!!选择就行了!!

配置好后编译内核,下载到开发班,再次运行hostapd没有问题了

那么到这里证明hostapd编译好了,但是使用它的时候还得添加一个配置文档

3、配置文档

其实hostapd最关键的就是配置文档了,所以得东西都在里面

文档位置,在我们/hostap/hostapd目录下,也就是编译好的hostapd目录,有一个文件hostapd.conf

没错,就是他,那么我们得修改一些东西

不过你不要自己去弄了,我弄一个配好的,你只需要修改

interface=wlan0//你无线网卡的设备名

wpa_passphrase=123456789 //密码

把命令和配置文档放一起,然后

#./hostapd hostapd.conf

搞定,这个时候你应该可以搜索到test热点了 这个热点的名字你也可以再配置文档中修改的

你用手机连接了,可以输入密码132456789进行连接,连接上了,但是提示获取IP失败

喝喝,你懂得,DHCP开始上场了

开发版linux随身wifi,让linux下无线网卡变身随身wifi相关推荐

  1. 用Linux玩开发版和用Windows,在Linux系统中使用Wine开发版可正常运行千牛PC Windows版...

    目前千牛PC版仅推出Windows及Mac版本,无Linux版本提供,但是你可以在Linux操作系统中使用Wine开发版来运行千牛PC Windows版,经在Deepin平台中测试可完美运行,实现起来 ...

  2. debian 开发版 移植_迅雷X Linux版(Debian系通用)

    近年来,随着美帝的不断打压,对我们的科技发展造成了很大的冲击,华为甚至因此不能制造芯片了,所以国产替代的概念就快速兴起,Linux作为排在Windows.MacOS之后的第三大操作系统,因为它开源.免 ...

  3. linux 共享wifi热点,Kali-linux下使用HostAPd创建wifi热点(AP)

    安装hostapd:apt-get install hostapd 2.配置hostapd.conf 这个文件里有大量配置信息,幸好我们一般能用到的就那几个(其中多数去掉注释,配置保持默认):inte ...

  4. 小米5怎样升级android,小米5开发版怎么升级Android 7.0?小米5开发版升级Android 7.0教程...

    Android 7.0系统已经陆续推送,今天小米5手机的Android 7.0终于公测了,虽然只限于开发版,但是小伙伴们总算有盼头了!小米5开发版怎么升级Android 7.0?下面小编为大家带来小米 ...

  5. w ndows10怎么接收无线,教你win10台式电脑没有无线网卡怎么连wifi

    无线网络现已很普及,只要在有wifi的区域内,手机或笔记本设备输入密码连接即可上网.好多用户在问win10台式电脑没有无线网卡怎么连wifi?其实台式机连接网卡之后就能够连接WiFi人,如果在没有无线 ...

  6. 【L】小米随身WiFi,Linux下AP热点驱动(开源)

    20200115 更新 此驱动版本是临时拼凑版本,不适合在商业环境下使用 详情请找官方版本,看现在应该是有官方版开放了.. ====================================== ...

  7. 在Linux下使用“360随身WiFi 2”

    某人说"360随身WiFi"价格还算良心,我也认同.昨天无意中看到2代开售,就随手撸了一个.当然,为了免邮费,不得不买了点别的东西凑单,于是还买了本价格是这个"360随身 ...

  8. 小米和360随身wifi在linux(Ubuntu)下作无线网卡教程

    平台: Ubuntu12.04  Ubuntu 13.04 说明: 随身wifi本身无线网卡,但是厂商修改了PID,使其系统无法自动识别驱动.而改用他自带的驱动软件作为Ap来使用. 在设备驱动管理,小 ...

  9. linux连接wpa wifi密码,Linux环境下使用WIFI模块:使用wpa_supplicant工具配置和连接WIFI-Go语言中文社区...

    使用wpa_supplicant工具配置和连接WIFI 实验版本及下载地址 wpa_supplicant:wpa_supplicant-2.7 链接: [http://w1.fi/wpa_suppli ...

最新文章

  1. easyexcel怎么设置表头宽度_easyexcel 自动设置列宽
  2. 在WPF中使用WinForm控件方法
  3. 【转载】YOLOV详解
  4. imessage_重新设计iMessage以获得更好的用户体验— UX案例研究
  5. microsoft visual c++ 编译c语言,Microsoft Visual C++ 程序的部署方法
  6. .net trim 替换指定字符_CAD二次开发实例:批量文本查找替换
  7. C++ 命名方式建议
  8. GDAL被java调用 Cannot find proj.db
  9. macos 管理员权限 黑苹果_Mac OS X 黑苹果系统安装驱动Kext方法
  10. awvs12 Server Exception_使用WebSocket搭建服务器server
  11. android怎么实现记住密码功能,Android实现用户登录记住密码功能
  12. 力学相关公式 传感器计算
  13. 扇贝 Service Mesh 发展历程
  14. JAVA音视频解决方案----JTT1078-2016文档梳理与一些难点梳理
  15. P2825 [HEOI2016/TJOI2016]游戏 (二分图最大匹配,预处理)
  16. jchdl - GSL实例 - Shifter
  17. 许远东:世界上只有2种流量,人找货和货找人,元宇宙机会在哪里
  18. SQL AlawaysOn 之二:添加组织和域用户
  19. 有时候,残酷,就是慈悲
  20. ipa文件在线上传工具,代替xcode

热门文章

  1. 关于security_huks安全模块的知识总结(一)
  2. GBase 8c产品简介
  3. echarts 报错Failed to execute 'createRadialGradient' on 'CanvasRenderingContext2D': The provided doubl
  4. 127.0.0.1 zxt.php_php单文件版在线代码编辑器使用方法
  5. Golang学习(十五) 数组排序和二分查找
  6. 计算机音乐夜空,星空音乐在线点播系统
  7. java如何做聚类分析_K-means算法的Java实现 聚类分析681个三国武将
  8. Python私有属性与私有方法
  9. laravel 上传图片
  10. [指针八]有关指针的面试题