我想把esp32当作网卡挂到linux上不知道行不行?esp32和f1c100s通过串口通信,esp32就当是串口wifi透传作用。驱动是不是不好写,坛子里有做过linux驱动的大神吗?
离线
透传不是问题,自己写也行。关键是linux驱动
离线
是说AT库吗: https://whycan.cn/t_3015.html
不是,更直接来说是在linux把串口模拟成网卡来用
离线
网上搜了一下,找到一个我可以实现的方案:
1.linux下创建一个虚拟网卡
2.编写linux下网络转串口的透传驱动程序
3.linux串口连接esp32
4.最后实现linux通过esp32上网功能
最近编辑记录 kekemuyu (2019-10-16 11:11:28)
离线
不过esp32实现ppp协议,要自己搞,读协议,难度比较大偶,只能是linux省事,esp32费事了
esp32也需要ppp协议吗?这就有点麻烦了,我的设想是esp32做透传,只要实现linux网络转串口就行了
离线
有了更好的方案,不用psip,也不用ppp。就是在linux凭空模拟虚拟网卡设备,然后再做网络到串口的透传即可。
https://zhoujianshi.github.io/articles/ … index.html
最近编辑记录 kekemuyu (2019-10-16 14:27:12)
离线
优秀, 我说这篇文章怎么这么熟悉呢, 原来就在我的收藏夹 ^_^
那 WIFI配网和网络连接都在 ESP32 实现?
对,在esp32配好就行,更好的是linux驱动和esp32之间加点协议,在linux下就可配置了。我先在ubuntu下试下。
离线
这哥们的博客质量很高,原来这个方案人家已经实现了,请看:
https://zhoujianshi.github.io/articles/ … index.html
离线
不过有个小问题,这种虚拟网卡都是直接走的网卡数据吧,而不是tcp或者udp的数据,esp32能直接传输网卡数据?你这是最底层的网卡传输偶
多虑了,数据就是用户发送的数据不会携带tcp/udp任何多余信息的。
最近编辑记录 kekemuyu (2019-10-16 15:32:51)
离线
按照博客正确模拟出来了网卡,编译时有点小坑,就是
sg_dev = alloc_netdev(0, "eth_uart", ether_setup);
改为:
sg_dev = alloc_netdev(0, "eth_uart",1, ether_setup);
离线
博客的虚拟网卡驱动做的很好,模拟出来网卡后,直接对文件/proc/eth_uart/uio的读写即可实现网络读写,从串口接收的数据写入文件实现网络数据的收,从文件读到的数据通过串口发送实现网络数据的发。到此本主题已基本实现,下一步可以移植到f1c100s了,这样f1c100s就可以通过esp32上网了。
最近编辑记录 kekemuyu (2019-10-16 15:52:16)
离线
经过后续研究发现esp32/esp8266等模块的透传方式都是基于指定ip和端口号的透传,这样就不能使用f1c100s任意上网了,真正意义上的串口wifi透传模块,就是串口数据直接通过wifi发送出去不经过socket包装,这样才能实现本方案。有种实现方法是用mt7688,在上面安装虚拟网卡来实现。
最近编辑记录 kekemuyu (2019-10-21 10:34:31)
离线