一次树莓派wifi 调试的过程
来源:互联网 发布:网络推广员是做什么的 编辑:程序博客网 时间:2024/06/07 22:13
前情提要
- 树莓派(以下简称 rpi) 的镜像是通过 buildroot 编译出来的。
- 生成 sdcard.img 通过 dd 命令写进 sd 卡中
- 之前没有处理过跟无线相关的东西,本次希望让树莓派可以使用无线(客户端)
- 由于采用 buildroot ,之前未处理,所以驱动基本都是模块,没有正式编译进内核
做过的事
- 编译内核时将 mac80211 选项加入 (Networking Support -> Wireless -> cfg80211)
- 没有作用
- 在看了无线芯版是
broadcom
之后,在内核编译中搜索这个关键字。 - 同时想到是不是模块没有加载进去,于是在
/lib/modules
目录下去找,在kernel/net/wireless
目录下找到了 lib80211 相关的,都modprobe
进去,没有效果。 - 又在
kernel/drivers/net/wireless
中找到了brcm
相关的驱动。 - 同时重新编译的内核,将
Device Drivers -> Network device support -> PHY Device support and infrastructure
里面的Broadcom PHYs
选中。并且将相关的都改成了编译到内核中而不是模块。 - 重启之后,
ifconfig
没有东西,但是在/sys/class/ieee80211
下面有phy0设备了。 - 接着查询网上 wifi相关工具和连接方法
- 通过 * iw dev wlan0 scan*可以扫描可连接的无线。
iwlist [dev] scan
命令也一样可以。 - 提示没有开启
wlan0
,于是ifconfig wlan0 up
再搜索,能找到 - 开始连接,连接使用
wpa_supplicant
命令,直接输入此命令就可以得到提示,提示的最后一行有现成的用法wpa_supplicant -B -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
wpa_supplicant.conf
是写好可以连接的无线有哪些,可以自行搜索用法。- 为了让它自动连接工可以用
ifconfig
看到,要加入到/etc/network/interfaces
配置文件中。并体配置文件的写法在网上搜索即可,或者照配置文件里面的eth0
来写 - 写好之后
/etc/init.dS30network restart
即可,就会在ifconfig
命令中看到。 - 再重启系统,一看还是有问题。主要在启动顺序上有问题
- 创建启动文件
S30wpa_supplicant
用于使能wlan0
,启动wpa_supplicant
。 - 同时加入
modprobe brcmfmac
,这是broadcom无线的驱动,可能是没有编译到内核中,要作为模块加载 - 再重启,可以了,自动连接了
总结
- 之所以有这些问题,是因为不是采用 rpi 自己的系统 ,系统是通过 buildroot编译而来,跟原生的系统可能会有些不同的地方。
- 如果在
iwlist wlan0 scan
的时候返回没有结果,这种情况可以先考虑是不是不止一个wlan
口,有可能生效的是其的口,可以尝试。
相关文件事例
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicantap_scan=1update_config=1network={ ssid="yourwifissid" psk="yourpassword"}
/etc/network/interfaces
# cat /etc/network/interfaces # interface file auto-generated by buildrootauto loiface lo inet loopback#auto eth0iface eth0 inet dhcp pre-up /etc/network/nfs_check wait-delay 15auto wlan0iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant.conf
/etc/init.d/S30wpa_supplicant
# cat /etc/init.d/S30wpa_supplicant #!/bin/sh## Start the wpa_supplicant....#dev=wlan0case "$1" in start) printf "Starting wpa_supplicant: " modprobe brcmfmac ifconfig $dev up /usr/sbin/wpa_supplicant -B -Dnl80211 -i$dev -c/etc/wpa_supplicant.conf [ $? = 0 ] && echo "OK" || echo "FAIL" ;; stop) printf "Stopping wpa_supplicant: " killall wpa_supplicant [ $? = 0 ] && echo "OK" || echo "FAIL" ;; restart|reload) "$0" stop "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1esacexit $?
阅读全文
0 0
- 一次树莓派wifi 调试的过程
- 一次调试内存泄漏的过程
- Odoo8的一次js前端调试过程
- Android wifi调试过程
- android上一次wifi模块调试经过
- 一次完整的IDA动态调试dex过程
- Android的wifi调试
- android的WiFi调试
- 一次郁闷的调试!
- xercesc的一次调试
- 一次非典型性JSF调试过程
- 开发过程中的一次GDB调试
- 一次非典型性JSF 调试过程--转载
- 串口WiFi的调试心得
- 博通wifi bcm43362kubg的调试
- Java虚拟机学习笔记-记录一次编译OpenJDK8与调试的过程
- 记录一次https的调试
- 一次渗透的具体过程
- 一个链表中包含环,请找出该链表的环的入口结点。
- 12月12日培训日记
- Python checkio "Ghosts age"解决方案
- 【Scikit-Learn 中文文档】寻求帮助
- linux上传文件
- 一次树莓派wifi 调试的过程
- capstone训练营2017-12-12
- UIButton 的使用
- SQL简介
- 帧动画
- Host '***' is not allowed to connect to this MySQL server
- MySQL查询语句集合
- CSS3边框旋转动画实现效果
- ubuntu 安装搜狗拼音