5996| 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的服务 [mw_shl_code=applescript,true]systemctl start rc-local[/mw_shl_code] 并检查服务状态 systemctl status rc-local 4、创建/etc/rc.local文件 [mw_shl_code=applescript,true]touch /etc/rc.local[/mw_shl_code] 5、赋可执行权限 [mw_shl_code=applescript,true]chmod +x /etc/rc.local[/mw_shl_code] 6、编辑rc.local,添加需要开机启动的任务 [mw_shl_code=applescript,true]echo ‘#!/bin/sh' > /etc/rc.local echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local[/mw_shl_code] 用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。现在写整理的时候才发现这句话,真想抽自己两巴掌。 所以正确的代码看这里: [mw_shl_code=applescript,true] #!/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')[/mw_shl_code] 运行成功之后,编写一个python脚本,我放在了jypyter_notebooks目录下。我是这么放的,如图。 为什么,因为PYNQ自带samba呀,右键新建超方便。 三、设置开启自启动服务 啊大坑来了,如果说前面是因为我犯蠢的话,设置自启动服务真的是让我这个小白完全秃头。 我找到的教程使用的方式是修改/etc/rc.local。那么就跟着照做呗。
Z2很方便不用putty登陆直接命令行就能用了,直接进入的是root用户。
直觉告诉我是/usr/bin/python3.6,(是他~就是他~我们的小哪吒.......串戏了)
感觉离成功很快了啊 然后...... (黑人问号脸???)没有文件???什么情况,小白表示慌了我该怎么办。
掏出谷歌搜索rc.local文件在哪里,答案几乎都是就在那呀???还好我还有骑驴大神可以问。 ok那么问题来了,systemd是什么,天要亡我么,我要放弃了么。no我继续抱住了谷歌的大腿。终于让我找到了。 可是小白表示我还是不敢动呀,没关系我还有个大腿可以抱,dengdengdeng亮出亮弟师傅。 emmmm?不行啊,没关系我看不懂,但我会截图。 拿出小本本记知识点, 那么这个时候重新查看systemctl status rc-local的时候就没有warning了。
小本本又掏出来,对于我这种小白来说,chmod是什么+x和755有什么区别。 师傅其实我可以百度的(马后炮),说那么多显的我很蠢怎么办(确实是蠢)
会vim的可以直接 vim都不会的怎么办(说谁呢,对没错就是我),没关系我还有师傅,诶师傅都懒得教我vim了,让我用echo。 [mw_shl_code=applescript,true]echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local[/mw_shl_code] 然后成功了嘛,并没有。于是我开始作死了。
在我找不到解决方法的时候,手贱了一下,由于我刚刚找到的教程有一步是我没有做的。 于是我就做了,这边提一句在上面start的步骤里,cat rc-local.service是显示不出来的,但是查看状态是成功打开的。现在cat倒是出来文字了。 1) [Unit] 区块:启动顺序与依赖关系。 2) [Service] 区块:启动行为,如何启动,启动类型。 3) [Install] 区块,定义如何安装这个配置文件,即怎样做到开机启动。 问题是,开始出现warning。 并且还是不能自启动,导致我不知道这一步是必要还是不必要的。不能自启动是因为我的rc.local还是写错的呀。
在我确定了文件路径没有问题,能够sh启动之后,终于发现原来是自己眼瞎。 还少一句,所以,应该是: [mw_shl_code=applescript,true]echo ‘#!/bin/sh' > /etc/rc.local echo “/usr/bin/python3.6 /home/xilinx/jupyter_notebooks/wifi.py" >> /etc/rc.local[/mw_shl_code] 单引号是因为双引号会把双引号里的内容编译,否则都可以。>>和>实现把前一个命令的输出重定向到后面的路径去,>>是追加,>是覆盖文件内容。 然后就成功啦,完结撒花~~~rerboot吧 写在最后的话 要是我会Linux应该就不用搞的那么累了,所以我还是先去好好学Linux吧。设置自启动,调用usb wifi,现在回过头来看其实挺简单的。换大神们早结束了。写那么吐槽就是在回顾一下自己有多蠢,有多粗心233333333 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed