> 教程
查看: 243|回复: 0

[入门教程] 在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

截图201904281011444236.png

我将脚本放在了jypyter_notebooks:

截图201904281017009537.png

三、设置开机自启动

1、打开命令行
截图201904281017136399.png


2、使用whereis命令查看python3.6的绝对路径
截图201904281017286866.png

3、打开rc-ocal的服务
[AppleScript] 纯文本查看 复制代码
systemctl start rc-local

并检查服务状态 systemctl status rc-local
截图201904281017356218.png

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

截图201904281018094304.png

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

截图201904281018209489.png

6、编辑rc.local,添加需要开机启动的任务
截图201904281018372554.png
[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、如果还不可以加一个步骤,我不知道这个步骤必要与否
截图201904281019073620.png

相关链接
wifi官方文档
知乎上pynq连接usbwifi的教程
ubuntu18.04设置systemd教程

前方高能,一路碎碎念,大量文字即将出现,右上角叉叉快点起来,现在退出去还来得及!!!

超级坑的一路碎碎念

一、买一块USB wifi

我用的网卡型号是RT5370。为什么选用这个型号呢,因为官方文档推荐,作为一个小白,还是乖乖听话的好。

截图201904281020566222.png

那么有坑么,有,我在寻找教程的时候看到别人踩坑了。

截图201904281021119879.png


在找教程的时候,看到有人问为什么板子能识别RTL8188CUS但是不能使用。
此时应有掌声(啪啪啪)小白超听话所以USB wifi肯定能用。
所以欢迎大家用了别人其他模块告诉我结果呀。

二、创建wifi脚本

那么这一部分我踩了第一坑。大概只有我那么蠢的才会踩的坑。由于更新迭代,库可能会更新,所以大家认准自己手上PYNQ系统中\xilinx\jupyter_notebooks\common目录下就有一个USB wifi的demo

截图201904281021436086.png

可能对方是Z1?反正我找到的教程代码是这样的(叉叉是我自己标注的,怕有人跟我一样写旧的)

截图201904281021523693.png

其实作者很贴心的在前言就写了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目录下。我是这么放的,如图。

截图201904281022228905.png
截图201904281022325659.png

为什么,因为PYNQ自带samba呀,右键新建超方便。

三、设置开启自启动服务

啊大坑来了,如果说前面是因为我犯蠢的话,设置自启动服务真的是让我这个小白完全秃头。

我找到的教程使用的方式是修改/etc/rc.local。那么就跟着照做呗。

  • 首先打开命令行

截图201904281022522371.png

Z2很方便不用putty登陆直接命令行就能用了,直接进入的是root用户。

  • 使用whereis命令查看python3.6的绝对路径

截图201904281023088054.png

直觉告诉我是/usr/bin/python3.6,(是他~就是他~我们的小哪吒.......串戏了)

  • 使用chmod修改/etc/rc.local设置文件权限

感觉离成功很快了啊

然后......

截图201904281023206737.png

(黑人问号脸???)没有文件???什么情况,小白表示慌了我该怎么办。

  • 打开rc-ocal的服务

掏出谷歌搜索rc.local文件在哪里,答案几乎都是就在那呀???还好我还有骑驴大神可以问。

截图201904281023326131.png

ok那么问题来了,systemd是什么,天要亡我么,我要放弃了么。no我继续抱住了谷歌的大腿。终于让我找到了。

截图201904281023416781.png


可是小白表示我还是不敢动呀,没关系我还有个大腿可以抱,dengdengdeng亮出亮弟师傅。

截图201904281023573114.png

截图201904281024034426.png

emmmm?不行啊,没关系我看不懂,但我会截图。

截图201904281024126049.png

拿出小本本记知识点,
那么这个时候重新查看systemctl status rc-local的时候就没有warning了。

  • 创建/etc/rc.local文件

截图201904281024279906.png

  • 赋予可执行权限

截图201904281024411373.png

小本本又掏出来,对于我这种小白来说,chmod是什么+x和755有什么区别。

截图201904281024523742.png

师傅其实我可以百度的(马后炮),说那么多显的我很蠢怎么办(确实是蠢)

  • 在rc.local中添加语句

会vim的可以直接 截图201904281025094900.png

vim都不会的怎么办(说谁呢,对没错就是我),没关系我还有师傅,诶师傅都懒得教我vim了,让我用echo。
[AppleScript] 纯文本查看 复制代码
echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local

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

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

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

截图201904281025289455.png

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

截图201904281025379641.png

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

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

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

问题是,开始出现warning。

截图201904281025503860.png

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

  • rc.local多加入一句语句

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

截图201904281026025940.png

还少一句,所以,应该是:
[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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

硬件清单

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

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

mail