分析原因有: 1.Debian的源里面没有ap-hotspot的包,而Ubuntu有。我在Debian上是在百度搜索了一个DEB安装上的,所有可能是版本冲突。 2.AP-hotspot在Debian上有兼容问题。 3.由于我在Ubuntu下无线网卡驱动是修改了设置,而在Debian中是编译安装了新的网卡驱动,可能存在AP-hotspot和网卡驱动的兼容问题。 在Debian下,Gnome自带的热点管理器默认的是AP模式,不再是Ubuntu下的AD-hoc模式,所以用gnome的热点管理器也可以正常工作的。 不过有以下问题: 1.热点采用WEP加密,远不如WPA2方式安全。 2.密码随机,不能自己更改。 3.没有提示,设备断开或者连入,或者管理设备都没有。 4.感觉信号比用hotspod建立的差。
所以在将就了几天后决定还是回到AP-hostpod。(链接到github) 然而:
While it may still work, AP-Hotspot is abandoned. That's because there are too many things that depend on the hardware and since I can only test it on one device, that makes the script unreliable for others and for me, pretty much impossible to fix some issues.大意是:AP-hotspot已经被废弃了,尽管它仍然能正常工作。由于作者只能在一台电脑上测试,但是这个软件的运行很大程度上依靠着硬件的使用。(也就是作者发现这个在其他电脑上会出现各种各样的问题)。于是作者就废止了这个项目,重新发行了新的creat_ap项目。(应该是代码重构了?)。然而作者只说了它在Ubuntu上运行良好(这难道又会开坑吗)For a more currently maintained project, take a look at create_ap. https://github.com/oblique/create_ap
Automatically creates an infrastructure (Access Point mode) wireless hotspot in Ubuntu that should work with Android and Windows Phone devices
好,我决定尝试一波。跳转到Creat_ap 看了一下依赖,其核心依然是依赖于hotspod,由于手上并没有ubuntu,不过我怀疑它是否真的能在ubuntu上运行良好。毕竟AP-hostspot必须锁hotspot版本才能运行的惨痛案例现在还没解决呢。 上代码
cd /tmp#我喜欢在tmp下进行操作
git clone https://github.com/oblique/create_ap
cd create_ap
make install
#Archlinux可以用yaourt -S create_ap安装
#如果这里有依赖缺失的话就sudo apt-get install -f吧 我这里依赖是齐全的
然后输入代码:
create_ap wlan0 eth0 MyAccessPoint MyPassPhrase
就可以启动了,wlan0和eth0对应的都是设备,不需要修改。
你以为这样就解决了?too young too simple,sometimes naive 我潇洒的敲完命令,然后回车,果断拿出手机准备连热点了。然而十秒钟过去了,并没有任何反应。 仔细阅读了下返回信息,先不说三个warning,大意是你的网卡“not fully support”,还好,不是"not support"。 再往下
RTNETLINK answers: Operation not possible due to RF-kill
直接Impossible了好吗!我这种萌新完全傻眼了。百度了一波,意料之中的没有任何有价值的信息,没错,百度就是这么垃圾。 还是谷歌吧。具体过程略过,筛选出来两篇文章,一个是arch社区的,一个是关于ubuntu的个人博客记载的。
[SOLVED] Wireless hard Blocked && rfkill not found Linux WiFi: operation not possible due to RF-kill
不多说,上代码吧。
sudo apt-get install rfkill #安装rfkill
sudo rfkill list all# 列出所有状态
0: hp-wifi: Wireless LAN
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
根据archlinux社区某网友的解释,soft block是指系统控制wifi的开关,blocked表示禁止软件随意开启关闭wifi。而Hard block是指buttons on your computer to control。就是这里的soft block阻止了热点的启动。
这个就好解决了。
rfkill unblock wifi
再列出来看看,是不是全是unlock了。
然后我在github中看到一条命令可以指定某网卡运行,于是输入代码
create_ap --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase
然而出现了错误,提示
Error: Failed to run hostapd, maybe a program is interfering.
然后给出的意见
rfkill unblock wlan```
于是我又运行了这两条命令,然后按照常规办法
```create_ap wlan0 eth0 MyAccessPoint MyPassPhrase```
这次终于看见wlan0: AP-ENABLED 了 打开手机,找到热点了。成功连上。
再补充一点,ap-hotspot启动后关闭终端不会影响热点,而creat-ap关闭终端后热点就关掉了。
于是我写了个脚本
```bash
vim ~/openap.sh
#输入 sudo nohup create_ap wlan0 eth0 XXXXX XXXXXX & 后台运行
sudo chmod +x /home/panda/openap.sh
这样启动的时候就可以不用输入代码了~
备注:不小心前台运行了,如何把一个进程转入后台运行
ctrl+z #挂起
bg1#将该终端丢入后台运行,作业号为1
fg1#把作业号1的任务调入前排
可以用kill 1 杀掉该作业
在编写脚本时候/运行命令的时候,可以用nohup command & 来后台运行某程序,终端关闭会继续运行。