我想把esp32当作网卡挂到linux上不知道行不行?esp32和f1c100s通过串口通信,esp32就当是串口wifi透传作用。驱动是不是不好写,坛子里有做过linux驱动的大神吗?
离线
我记得ESP32有个AT固件,就是干这个活的
离线
透传不是问题,自己写也行。关键是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)
离线
http://atrey.karlin.mff.cuni.cz/seminar/OLD/Papers95/serial/slip.html
SLIP 或者 PPP 那种方式对吗?
离线
可以参考linux挂载sim800吧,sim800c可以挂载到linux,用ppp拨号,自己编写esp32的固件模拟sim800c的指令,做一个假的sim800c模块
最近编辑记录 小智 (2019-10-16 13:46:49)
离线
可以参考linux挂载sim800吧,sim800c可以挂载到linux,用ppp拨号,自己编写esp32的固件模拟sim800c的指令,做一个假的sim800c模块
对, 这个就是 PPP 点对点协议
https://blog.csdn.net/LucasDove/article/details/41243685
https://www.elementzonline.com/blog/PPP-internet-using-SIMCOM-SIM800-modem
离线
不过esp32实现ppp协议,要自己搞,读协议,难度比较大偶,只能是linux省事,esp32费事了
离线
不过esp32实现ppp协议,要自己搞,读协议,难度比较大偶,只能是linux省事,esp32费事了
esp32也需要ppp协议吗?这就有点麻烦了,我的设想是esp32做透传,只要实现linux网络转串口就行了
离线
对,将ppp协议改为支持底层AT指令,要对PPP协议很熟,改驱动,难度比较大,,,,,,,
离线
有了更好的方案,不用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的数据,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)
离线
看到这里, 我都有点小激动, 小手跃跃欲试。
楼主干得漂亮!
离线
给楼主点赞,好玩!
最近编辑记录 ifree64 (2019-10-19 22:53:18)
离线
用esp8089的驱动啊,就是esp8266+驱动内置固件这种方案的,esp32还是贵了点
离线
经过后续研究发现esp32/esp8266等模块的透传方式都是基于指定ip和端口号的透传,这样就不能使用f1c100s任意上网了,真正意义上的串口wifi透传模块,就是串口数据直接通过wifi发送出去不经过socket包装,这样才能实现本方案。有种实现方法是用mt7688,在上面安装虚拟网卡来实现。
最近编辑记录 kekemuyu (2019-10-21 10:34:31)
离线