Debian 折腾小记

由于近日武汉肺炎疫情严重,学校严禁提前返校,因此原本 2/5 左右回学校写论文的计划不得不取消,只好窝在家里看文献(划水)。看着看着眼睛就开始疼了,最开始觉得是笔电上没配置 MacType 的问题,结果配置了半天也折腾不好,想了想不如干脆直接上 Linux 得了(才不是因为 Mac 买不起)

想了想 openSUSE + KDE 用过蛮久的了,除了略有卡顿倒是没什么不好;RetHat 系碰过觉得也就那样;Ubuntu 碰都不想碰,Debian 在服务器上用的挺多的;Arch 不敢造次。考虑到国内发包都以 Ubuntu 的 deb 为主,我也不太喜欢衍生发行版,干脆试试 Debian + Gnome3。试过之后发现 Gnome3 咋用咋不爽,比如 Telegram Desktop 的那个图标莫名其妙点不下去,Application Menu 弄不到顶部去,Dock 想放到下面都要装插件……

算了,重装上 KDE!于是有了这篇记录,主要涉及以下内容:

  • 系统安装
  • KDE 简单定制
  • 显示配置与 Gamma(ThinkPad 系瞎眼屏用)
  • 应用程序音量控制
  • 蓝牙耳机及 aptX 编码器
  • vanilla texlive 与 Debian 集成
继续阅读“Debian 折腾小记”

说说 github.com/pkg/sftp 与 TCP stall

好久没写过东西了,最近一直在折腾 Golang,今天难得想起来了,就稍微写一点。

最近有个需求,要通过 SFTP 把文件传到指定服务器上,于是就用了 github.com/pkg/sftp 这么一个库。然而,这个库存是存在一些坑的,比如某个版本 sftp.File.Write 写超过 4MiB 的文件时,Kill 远程 sshd 后会导致 Close 时死锁;又比如更新代码后,Kill 了远端之后有时 ReadFrom 返回 Writer EOF,有时返回 nil;再比如模拟弱网时发生了 TCP Stall,传输就永远的卡死了,如果此时对端认为 TCP 超时,则该 TCP 将永远不会被释放。

继续阅读“说说 github.com/pkg/sftp 与 TCP stall”

调整Linux磁盘分区大小

装系统的时候脑子疼,给了56GB的根分区,40GB的home,24GB的opt。现在发现,home和opt快满了,根分区剩了一大堆,只好调整一下了。

好在,我的根分区是btrfs,opt是ext4,home是xfs,都能够支持缩放。这次的主要目的是缩小根分区,扩大opt分区,home就不动了,改天把Android SDK丢到opt应该就没事了。

继续阅读“调整Linux磁盘分区大小”

解决Linux首次登陆无法打开应用程序,与注销后再次登陆无声音的问题

实验室的台式机一直有点毛病,开机后首次登陆,桌面本身能够打开,KDE上次登出前保留的那些窗口也能打开,但无法打开新窗口。在上次登出时保留的那个Konsole中启动xclock,得到错误如下:

Xlib: Invalid MIT-MAGIC-COOKIE-1 balabalabala

另外,只有第一次登陆声音是正常的,再次登陆后就会出现音频服务未启动。我本来以为是Linux对双显+HDMI音频支持的不好,再加上也不是很频繁,就一直没仔细看。然而这周问题出的却相当频繁,所以我觉得有必要处理一下了。

继续阅读“解决Linux首次登陆无法打开应用程序,与注销后再次登陆无声音的问题”

所以说,电脑城里面不是老爸的店,绝对不能去啊!

电脑城各种忽悠你加钱换型号,或者以次充好,又或者是卖假货之类的情况早有耳闻。随着这几年监管变得严格,以及线上渠道的冲击,情况比之前略有好转,不过在忽悠买家方面却依旧是一如既往。

然而最近由于某些原因,还是不得不去了两趟电脑城。具体的经过后面会讲,这里先说结论:

  1. 电脑城去不得,除非你老爸在那边开店,京东可是有7天无理由退换,目前来看是最靠谱的;
  2. 越是靠近门口地段越好的店越去不得,记住店的租金是从你买电脑的钱里摊出来的;
  3. 越是殷勤招徕你的店越去不得,记住你要为他们的店员工资买单;
  4. 电脑城永远不会明码标价,标价牌写的都十分简单,而且有时候零售型号与网售型号不同,你永远都不知道一款型号的一般价格,淘宝和京东则稍好;
  5. “我在电脑城有熟人”这种想法要不得,就我几个朋友买电脑的经验来看,大部分熟人就是拿来坑的;
  6. 不要相信店家所说的帮你装系统装这装那,他们才懒得好好给你装,拿个“万能”系统给你写进去完事,然后“又不是不能用”,再说拿过去装也很麻烦,不如找个熟悉的朋友帮你,一顿饭;
  7. 技术支持啊,电话支持啊,不用在乎的,现在你是大爷,买完了店家就是大爷了,除非你隔三差五来买电脑,要不然谁会管你。

继续阅读“所以说,电脑城里面不是老爸的店,绝对不能去啊!”

使用硬件 I2C + DMA 操作液晶屏 (STM32)

由于项目不允许阻塞的液晶屏 I/O 操作,因此需要使用硬件 I2C + DMA 来进行。其实中断方式也可以,不过中断的时候依旧要占用 CPU 周期,不如 DMA 来的实在。再说以前也没用过 DMA,正好有个机会不妨试试看。

参考微雪课堂的文章:http://www.waveshare.net/study/article-645-1.html

微雪用的是硬件 USART + DMA,不过道理是一样的嘛,拿来参考就是。

继续阅读“使用硬件 I2C + DMA 操作液晶屏 (STM32)”