您尚未登录。

楼主 #1 2019-10-16 10:07:16

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

如何把esp32作为WiFi设备挂在到linux内核上

我想把esp32当作网卡挂到linux上不知道行不行?esp32和f1c100s通过串口通信,esp32就当是串口wifi透传作用。驱动是不是不好写,坛子里有做过linux驱动的大神吗?

离线

楼主 #3 2019-10-16 10:23:16

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

透传不是问题,自己写也行。关键是linux驱动

离线

楼主 #5 2019-10-16 11:02:48

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

晕哥 说:

不是,更直接来说是在linux把串口模拟成网卡来用

离线

楼主 #6 2019-10-16 11:10:13

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

网上搜了一下,找到一个我可以实现的方案:
1.linux下创建一个虚拟网卡
2.编写linux下网络转串口的透传驱动程序
3.linux串口连接esp32
4.最后实现linux通过esp32上网功能

最近编辑记录 kekemuyu (2019-10-16 11:11:28)

离线

楼主 #11 2019-10-16 14:18:24

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

小智 说:

不过esp32实现ppp协议,要自己搞,读协议,难度比较大偶,只能是linux省事,esp32费事了

esp32也需要ppp协议吗?这就有点麻烦了,我的设想是esp32做透传,只要实现linux网络转串口就行了

离线

楼主 #13 2019-10-16 14:26:45

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

有了更好的方案,不用psip,也不用ppp。就是在linux凭空模拟虚拟网卡设备,然后再做网络到串口的透传即可。
https://zhoujianshi.github.io/articles/ … index.html

最近编辑记录 kekemuyu (2019-10-16 14:27:12)

离线

楼主 #15 2019-10-16 14:37:32

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

晕哥 说:

优秀, 我说这篇文章怎么这么熟悉呢, 原来就在我的收藏夹 ^_^

那 WIFI配网和网络连接都在 ESP32 实现?

对,在esp32配好就行,更好的是linux驱动和esp32之间加点协议,在linux下就可配置了。我先在ubuntu下试下。

离线

楼主 #16 2019-10-16 14:56:35

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

这哥们的博客质量很高,原来这个方案人家已经实现了,请看:
https://zhoujianshi.github.io/articles/ … index.html

离线

楼主 #19 2019-10-16 15:32:31

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

小智 说:

不过有个小问题,这种虚拟网卡都是直接走的网卡数据吧,而不是tcp或者udp的数据,esp32能直接传输网卡数据?你这是最底层的网卡传输偶

多虑了,数据就是用户发送的数据不会携带tcp/udp任何多余信息的。

最近编辑记录 kekemuyu (2019-10-16 15:32:51)

离线

楼主 #20 2019-10-16 15:41:46

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

按照博客正确模拟出来了网卡,编译时有点小坑,就是

sg_dev = alloc_netdev(0, "eth_uart", ether_setup);

改为:

sg_dev = alloc_netdev(0, "eth_uart",1, ether_setup);

none_20191016-1538.png

离线

楼主 #21 2019-10-16 15:51:36

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

博客的虚拟网卡驱动做的很好,模拟出来网卡后,直接对文件/proc/eth_uart/uio的读写即可实现网络读写,从串口接收的数据写入文件实现网络数据的收,从文件读到的数据通过串口发送实现网络数据的发。到此本主题已基本实现,下一步可以移植到f1c100s了,这样f1c100s就可以通过esp32上网了。

最近编辑记录 kekemuyu (2019-10-16 15:52:16)

离线

楼主 #28 2019-10-21 10:17:28

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 844
积分: 725

Re: 如何把esp32作为WiFi设备挂在到linux内核上

经过后续研究发现esp32/esp8266等模块的透传方式都是基于指定ip和端口号的透传,这样就不能使用f1c100s任意上网了,真正意义上的串口wifi透传模块,就是串口数据直接通过wifi发送出去不经过socket包装,这样才能实现本方案。有种实现方法是用mt7688,在上面安装虚拟网卡来实现。

最近编辑记录 kekemuyu (2019-10-21 10:34:31)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn