Arduino LCD模块,以及网卡驱动的坑

编程日常东方Project

最近突然对嵌入式开发感兴趣了,花了20块去某宝淘来了LCD模块。

2.4inch Arduino Display

翻出吃了四年灰的Arduino UNO,然后将LCD接上去,合体!(犯中二病ing...)说起来,我之所以选中这个LCD是因为它能直接插在Arduino UNO上面,而不需要额外接线之类的麻烦活,同时也方便携带。

这个模块的缺点是像素格式是RGB565,不过对这个小小屏幕来说也够用了,反正看上去又没啥区别。只是转换格式会稍微麻烦一点,不过LCDWiki的库也提供了格式转换,挺方便。

但我最后还是选择用FFmpeg把图片转成原始RGB565数据流,然后扔到SD卡里交给Arduino来读取并显示(

最后效果如下所示:

PID:98736308

嘿嘿嘿恋恋真可爱

同时还有LCDWiki提供的示例:


接下来讲讲在服务器上遇到的网卡驱动的大坑。

前几天我打算给服务器装个桌面环境,以备特殊情况之需(我安装系统时没选中任何桌面环境)。接下来往终端跑了sudo apt install task-xfce-desktop

安装完之后,重启,进入系统,登录,然后对眼前的景象开始迷惑起来了。

“奇怪,我记得Xfce桌面不长这样子的啊??”

登出去,发现是系统上面同时装了LXQt和Xfce,然后默认启动了LXQt...我才想起来自己之前装过LXQt,但是装到一半就放弃了。接下来我准备把LXQt给清理掉。

Bash
sudo apt purge lxqt-* sudo apt autopurge

之后发现了一个奇怪的现象,我后续的apt操作都无法正常完成。我以为是Clash出问题了,于是查看Clash服务的状态,却发现Clash仍然在正常运行。之后在我不断的排查下发现是网卡驱动出问题了。

这下坏了,之前有一次重装系统也是因为不小心删了某些软件包把网卡驱动整没了。我开始在Google上搜索解决方案,看到了一些可能管用的方法。

首先是安装rtl8168-dkms,但由于网络已经炸了,没法用apt。我考虑过重装系统、用U盘把deb包复制过去然后用dpkg来安装、用LiveCD来修复,最后我选择用U盘复制文件,这样比较方便一些。折腾完rtl8168-dkms之后,我发现任务栏的网卡图标恢复正常了,网络也能ping通,但是curl却连不上百度。

这一下给我整迷糊了,后来在不断折腾中发现这个dkms不管用,而且最离谱的是,你去ping任何一个地址都能通,哪怕这个地址不可达,而且和哪个主机建立连接都会被中断连接。

后来我接着去搜解决方案,有个方案是下载驱动源码然后编译安装。我决定尝试一下,实在不行就重装系统。接着又是用U盘在两台机子间拷贝文件,给服务器安装了编译工具、Linux头文件。

编译安装之后,奇迹出现了。网卡恢复了正常,能连接互联网,UptimeBot也发来了服务上线通知。这痛苦的时光总算结束了。

之后我都不敢再随便运行apt autopurge了,真是太尼玛可怕啦(缩)