起因:
想用电脑开个热点分享wifi给手机用,但是装了Arch之后,没有装wifi网卡驱动,今天折腾了一整天终于装好了,虽然。。。并不能开热点,原因是BCM43142类型的Linux网卡驱动不支持AP模式。但是还是记录一下,我的解决方案是准备买一块无线网卡。
期间尝试:
1.算是失败尝试吧:
一篇国外的博客:Installing broadcom bcm43142 Wireless driver for linux
卡在了驱动编译那里,就是命令:
$ tar -xjvf hybrid-v35-nodebug-pcoem-6_30_223_141.tar.gz
$ make
报了两个错,不知道该怎么办,然后发现了这篇中文的:
fedora21/beta 安装bcm43142无线网卡驱动
这篇文章解决了编译驱动过程中的几个问题,照着做就好了。
然后发现多了一块网卡名叫enp7s0,我非常奇怪为什么不是无线网卡常用的命名,比如wlp7s0,然后为了把无线网驱wl.ko模块添加到开机启动的服务中,就建立一个服务文件/usr/lib/systemd/system/rc-local.service
内容是:
[Unit]
Description="/etc/rc.local Compatibility"
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
然后建立一个该服务要读取的脚本文件:
/etc/rc.local,内容是:
modprobe wl
并加上可执行权限: sudo chmod +x /etc/rc.local
然后执行命令sudo systemctl enable rc-local.service
这样,就可以开机加载无线网卡驱动模块了,但是问题就是:
我的网卡的名字是enp7s0,是以太网卡,并不是wireless,奇怪,用create_ap去创建热点时候,当然报错说:enp7s0 is not a wifi interface.
所以我以上所有操作都算是失败了。
2.算是成功尝试吧:
有关arch无线网卡驱动的一两句话
照着这个做,没有什么问题就搞定了,结果如下:
最下面的那个wlp7s0就是无线网卡了。
然而。。。当我使用create_ap创建热点的时候,发现BCM43XX系列的无线网卡驱动是不可以在linux下开热点的。。。我怎么可能甘心?
我想使用iwconfig来查看是不是真的不可以,结果发现没有iwconfig命令,于是在csdn下了源码,make,然后把编译生成的iwconfig拷到/bin下面,把依赖的库文件libiw.so.29拷到/lib下面,那么iwconfig命令就可以使用了。
使用命令sudo iwconfig wlp7s0 mode Master
查看报错说:Error for wireless request "Set Mode" (8B06) :
SET failed on device wlp7s0 ; Invalid argument.
结局:
成功装上了无线网驱,但是不可以开热点,解决方案是另行购买一块无线网卡。