查看: 387|回复: 1

[入门教程] 在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的服务
[AppleScript] 纯文本查看 复制代码
systemctl start rc-local

并检查服务状态 systemctl status rc-local


4、创建/etc/rc.local文件
[AppleScript] 纯文本查看 复制代码
touch /etc/rc.local



5、赋可执行权限
[AppleScript] 纯文本查看 复制代码
chmod +x /etc/rc.local



6、编辑rc.local,添加需要开机启动的任务

[AppleScript] 纯文本查看 复制代码
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。现在写整理的时候才发现这句话,真想抽自己两巴掌。

所以正确的代码看这里:
[AppleScript] 纯文本查看 复制代码
#!/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。
[AppleScript] 纯文本查看 复制代码
echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local

然后成功了嘛,并没有。于是我开始作死了。

  • 不知道到底必要还是不必要的步骤

在我找不到解决方法的时候,手贱了一下,由于我刚刚找到的教程有一步是我没有做的。



于是我就做了,这边提一句在上面start的步骤里,cat rc-local.service是显示不出来的,但是查看状态是成功打开的。现在cat倒是出来文字了。



1) [Unit] 区块:启动顺序与依赖关系。

2) [Service] 区块:启动行为,如何启动,启动类型。

3) [Install] 区块,定义如何安装这个配置文件,即怎样做到开机启动。

问题是,开始出现warning。



并且还是不能自启动,导致我不知道这一步是必要还是不必要的。不能自启动是因为我的rc.local还是写错的呀。

  • rc.local多加入一句语句

在我确定了文件路径没有问题,能够sh启动之后,终于发现原来是自己眼瞎。



还少一句,所以,应该是:
[AppleScript] 纯文本查看 复制代码
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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

gada888  版主

发表于 2019-6-26 15:52:34

好艰辛的样子
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
关于楼主
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail