由ESP8266引发的Cygwin安装不完全指北

一、背景

疫情在家无聊,没有实验室感觉手里空空的,在小破站看到各种ESP8266奇淫技巧,觉得甚是有趣,激发了我的折腾天性,遂打开了某宝。然而又因缩家里好几个月,实在囊中羞涩,只好锁定了一个12块钱包邮的裸机版,大众长相
ESP8266_IOLink
收到包裹后,插上数据线,便开始了原以为会很顺利的折腾史

二、ESP8266开发环境选择

不同于430/STM等那些主流的单片机,在Win平台上ESP8266并没有一个固定的IDE,广为流传的eclipse和AiThingk给出的开发包,其实都是eclipse编辑器调用xtensa编译器+xtensa链接器的本质,况且这个方式也都是要调用make的。ArduinoIDE也是Arduino编辑器调用编译链接器,而乐鑫给出的Lubuntu就直接是Linux开发方式了,这很好,让我们继续。

  1. Eclipse+编译链接器:都这个年代了,而且,,,个人觉得eclipse不好看。
  2. ArduinoIDE:Emmm怎么说呢,,,我觉得不好用。
  3. Lubuntu:我已经有Ubuntu实体机,为什么还要再装Lubuntu虚拟机。

此外,Esp8266还有另外2种解释型脚本语言开发方式,使用lua语言的nodeMCU固件以及使用python语言的microPython固件,而且随着机器人和ros平台的发展,据说microPython固件很有前景,不过这里我先不讨论。
好吧,其实上面那些都不是主要原因。我买ESP8266回来首先是想要做物联网的,那么在有一部手机然后Esp8266可以联网之后,还需要有中间服务器。而如果你没有自己的中间服务器的话,就要用主流的阿里云或者机智云。而如果你恰好又不想去研究他们服务器的通信协议的话,就得用他们提供的基础库,你就用不了python和lua,这也是我放弃python的原因。
阿里云和机智云的方案代码都是用make管理编译的,我选择了机智云的SOC方案下载代码,然后果断重启到我的Ubuntu开始折腾:下载编译链,装好python包(机智云里的脚本是python2写的,用python3里面的2to3.py转过去也有很多错,尝试之后我放弃了)然后先不改代码直接开始编译,可以看到原生的开发环境确实很快,分分钟就编译好了。
可是问题很快又来了,我买的板子是CH340的芯片,我已经编译换上了新的串口驱动,并且也已经成功下载进去了,各种波特率都没问题,然而换了几个串口助手都是乱码,并且,这些串口助手用的也太别扭了,python写的comtool也不好用,害,,,,

三、Cygwin折腾入坑

回到Windows上,最后,我注意到了Cygwin这个东西,wiki说这是一个win下的类linux环境,并且MinGW只是他的一个分支。遂兴冲冲的去下载下来开始安装,一路next,到源那里填入墙内的镜像源,网上很多人用网易的源,这里我推荐用清华的源

https://mirrors.tuna.tsinghua.edu.cn/cygwin/

我Ubuntu也是用的清华的源,可以看到有各种开源软件的镜像,特别全,也很新,每天都会同步,这里只是很小一部分,用到什么源就定位到什么文件夹里面,当然其他镜像源用法同理,我也是渐渐才发现清华这个镜像源的强大之处的,主页的侧边栏还单独有很多常用软件的安装包整理,非常的专业。
清华大学开源镜像
当然常用的还有其他很多源,阿里的源也非常不错,根据自己地区和网速选择即可,只是每个源丰富程度和更新会不一样,很多高校的源如下[截图自东软源主页http://mirrors.neusoft.edu.cn]
国内高校开源镜像站
可是在选择包的时候又不知道选什么了,网上没有人写过这里的准确描述,有的说按目录base和dev要全选,,,,好吧,装了一下午,折腾了几天不好用不说,占用了我磁盘10个G,果断又卸载了一下午。
为此,我重新装了很多次,算是搞明白了,就是在选择的安装目录下建了一个linux根文件系统,只不过是在NTFS分区下的,已经非常有子系统的意思了,WIN10的Linux子系统什么味道没尝过,不过Cygwin是真的好东西,只是这自带的包管理真的是太差劲了,apt才香。于是我开启了一遍正式全新的安装。

四、Cygwin全新安装

前面没变化,依旧打开那个安装器,选择好安装目录,建议目录不要太深,不要包含空格,最好也不要用中文。很好,依旧选择清华源,到了选择包时候,关键的时候到了,听我的,一个也不要选,连左下角的小方框都去掉,然后点到category,new那栏选择默认或者pass,总之就是一个包也不装,不要着急质疑我,我要装的干净清爽。点下一步,安装。这时候,他会安装一个最基本可以运行的环境,这就够了,因为这个包管理器我实在是一秒都不想多用了,我要用apt!
在这里插入图片描述
这样很快,立等可取,而且,大概只占用了300M左右空间。接下来,去github,或者墙内去gitee.com搜索cyg-apt,选择较新的一个项目将里面apt文件下载下来,或者复制后保存,这其实只是一个shell脚本,命名为apt然后保存到你的安装目录下的user/local/bin,接下来打开你桌面的cygwinTerminal,找不到的话打开安装目录下的bat脚本,cd到user/local/bin,为保存的apt脚本添加执行权限chmod +x apt
oh!大功告成,如果没错的话,输入apt mirror查看应该就是安装时候的源,以后也随时可以用它改源,更重要的是,你可以愉快的apt install make,以及vim, zsh, tmux,,,真的是想想就开心,用什么就装什么,干干净净,而且也是会自动安装依赖的。
如果要更换shell,在安装之后把安装目录下的bat脚本对应更改就可以,然后把桌面图标指向这个脚本,顺手还可以加个快捷键美滋滋,比如我用的是zsh,Cygwin.bat如下

@echo off
setlocal enableextensions
set TERM=
cd /d "%~dp0bin" && .\mintty zsh -l

另外,terminal启动的时候会加载windows本身的环境变量,也就是说,这两个环境并不是孤立的,比如说,我的python就是装在win上面的,于是,我把根目录下的/bin又加入了win的环境变量,好让他们相互调用哈哈哈。在这里,还要补充一个小技巧,windows修改系统环境变量后不用重启,只需要Win+R输入cmd打开cmd,输入path=m回车,其实可以等于任意值,然后退出再重新打开一次cmd,设置的系统环境变量就生效了,类似于Linux下每次打开Terminaal会加载Profile一样,不过此方法对系统变量有效,用户变量好像不管用,不过和重启比起来,这已经够了。

最后,我的机智云SOC代码也修改好并且连上了手机,可以愉快的IoT了。可惜贫穷的我只能控制一下板载的LED了,在GPIO2引脚上。

在这里插入图片描述
完。

猜你喜欢

转载自blog.csdn.net/baidu_31437357/article/details/106812872