在PYNQ-Z2上实现开机自启动USB wifi
本帖最后由 苏木桀 于 2019-4-28 12:07 编辑在PYNQ-Z2上实现开机自启动USB wifi
在找PYNQ-Z2的教程的时候,翻到了一篇教程《在PYNQ上使用USB wifi实现远程调试》。心想这个好啊,毕竟PYNQ的价格不算低,网线只能供一个电脑用,有wifi就能跟小伙伴在周日的蘑菇云软件学习的活动里共用一块板子了(诶突然就做起了宣传x)。突然就有了动力,说干就干,打开教程,第一步让我买个USB wifi网卡,emmmm好吧看来还要缓一缓得先有网卡呀。周五下午网卡终于到了,开开心心拆快递,然后噩梦就开始了......
废话不多说的简单教程
一、买一块USB wifi
网卡型号是RT5370
二、创建wifi脚本
脚本代码如下,参照\xilinx\jupyter_notebooks\common目录下就有一个USB wifi的demo
我将脚本放在了jypyter_notebooks:
三、设置开机自启动
1、打开命令行
2、使用whereis命令查看python3.6的绝对路径
3、打开rc-ocal的服务
systemctl start rc-local
并检查服务状态 systemctl status rc-local
4、创建/etc/rc.local文件
touch /etc/rc.local
5、赋可执行权限
chmod +x /etc/rc.local
6、编辑rc.local,添加需要开机启动的任务
echo ‘#!/bin/sh' > /etc/rc.local
echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local
用vim编辑也可以。
7、执行reboot重启系统
8、如果还不可以加一个步骤,我不知道这个步骤必要与否
相关链接
wifi官方文档
知乎上pynq连接usbwifi的教程
ubuntu18.04设置systemd教程
前方高能,一路碎碎念,大量文字即将出现,右上角叉叉快点起来,现在退出去还来得及!!!
超级坑的一路碎碎念
一、买一块USB wifi
我用的网卡型号是RT5370。为什么选用这个型号呢,因为官方文档推荐,作为一个小白,还是乖乖听话的好。
那么有坑么,有,我在寻找教程的时候看到别人踩坑了。
在找教程的时候,看到有人问为什么板子能识别RTL8188CUS但是不能使用。
此时应有掌声(啪啪啪)小白超听话所以USB wifi肯定能用。
所以欢迎大家用了别人其他模块告诉我结果呀。
二、创建wifi脚本
那么这一部分我踩了第一坑。大概只有我那么蠢的才会踩的坑。由于更新迭代,库可能会更新,所以大家认准自己手上PYNQ系统中\xilinx\jupyter_notebooks\common目录下就有一个USB wifi的demo
可能对方是Z1?反正我找到的教程代码是这样的(叉叉是我自己标注的,怕有人跟我一样写旧的)
其实作者很贴心的在前言就写了demo在哪但作为一个超级粗心的小白我没看orz。现在写整理的时候才发现这句话,真想抽自己两巴掌。
所以正确的代码看这里:
#!/usr/bin/python3.6
from pynq import Overlay
from pynq.lib import Wifi
port = Wifi()
#ssid = input("Type in the SSID:")
#pwd = input("Type in the password:")
port.connect('your ssid','your password')
运行成功之后,编写一个python脚本,我放在了jypyter_notebooks目录下。我是这么放的,如图。
为什么,因为PYNQ自带samba呀,右键新建超方便。
三、设置开启自启动服务
啊大坑来了,如果说前面是因为我犯蠢的话,设置自启动服务真的是让我这个小白完全秃头。
我找到的教程使用的方式是修改/etc/rc.local。那么就跟着照做呗。
[*]首先打开命令行
Z2很方便不用putty登陆直接命令行就能用了,直接进入的是root用户。
[*]使用whereis命令查看python3.6的绝对路径
直觉告诉我是/usr/bin/python3.6,(是他~就是他~我们的小哪吒.......串戏了)
[*]使用chmod修改/etc/rc.local设置文件权限
感觉离成功很快了啊
然后......
(黑人问号脸???)没有文件???什么情况,小白表示慌了我该怎么办。
[*]打开rc-ocal的服务
掏出谷歌搜索rc.local文件在哪里,答案几乎都是就在那呀???还好我还有骑驴大神可以问。
ok那么问题来了,systemd是什么,天要亡我么,我要放弃了么。no我继续抱住了谷歌的大腿。终于让我找到了。
可是小白表示我还是不敢动呀,没关系我还有个大腿可以抱,dengdengdeng亮出亮弟师傅。
emmmm?不行啊,没关系我看不懂,但我会截图。
拿出小本本记知识点,
那么这个时候重新查看systemctl status rc-local的时候就没有warning了。
[*]创建/etc/rc.local文件
[*]赋予可执行权限
小本本又掏出来,对于我这种小白来说,chmod是什么+x和755有什么区别。
师傅其实我可以百度的(马后炮),说那么多显的我很蠢怎么办(确实是蠢)
[*]在rc.local中添加语句
会vim的可以直接
vim都不会的怎么办(说谁呢,对没错就是我),没关系我还有师傅,诶师傅都懒得教我vim了,让我用echo。
echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local
然后成功了嘛,并没有。于是我开始作死了。
[*]不知道到底必要还是不必要的步骤
在我找不到解决方法的时候,手贱了一下,由于我刚刚找到的教程有一步是我没有做的。
于是我就做了,这边提一句在上面start的步骤里,cat rc-local.service是显示不出来的,但是查看状态是成功打开的。现在cat倒是出来文字了。
1) 区块:启动顺序与依赖关系。
2) 区块:启动行为,如何启动,启动类型。
3) 区块,定义如何安装这个配置文件,即怎样做到开机启动。
问题是,开始出现warning。
并且还是不能自启动,导致我不知道这一步是必要还是不必要的。不能自启动是因为我的rc.local还是写错的呀。
[*]rc.local多加入一句语句
在我确定了文件路径没有问题,能够sh启动之后,终于发现原来是自己眼瞎。
还少一句,所以,应该是:
echo ‘#!/bin/sh' > /etc/rc.local
echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local
单引号是因为双引号会把双引号里的内容编译,否则都可以。>>和>实现把前一个命令的输出重定向到后面的路径去,>>是追加,>是覆盖文件内容。
然后就成功啦,完结撒花~~~rerboot吧
写在最后的话
要是我会Linux应该就不用搞的那么累了,所以我还是先去好好学Linux吧。设置自启动,调用usb wifi,现在回过头来看其实挺简单的。换大神们早结束了。写那么吐槽就是在回顾一下自己有多蠢,有多粗心233333333
好艰辛的样子
页:
[1]