0x00 前言
笔者是一个无可救药的复古 Unix&RISC 厨,因此对上世纪很多 Unix 系统都在使用的桌面环境 Common Desktop Environment
甚是喜欢。这几天清点家里的电子垃圾的时候想起手中还有一台搭载 Loongson 2F 处理器的 福珑2F6003
盒子,于是便萌生了在这台可爱的 MIPS 小机器上跑起 CDE 的想法。
笔者是一个无可救药的复古 Unix&RISC 厨,因此对上世纪很多 Unix 系统都在使用的桌面环境 Common Desktop Environment
甚是喜欢。这几天清点家里的电子垃圾的时候想起手中还有一台搭载 Loongson 2F 处理器的 福珑2F6003
盒子,于是便萌生了在这台可爱的 MIPS 小机器上跑起 CDE 的想法。
笔者很久以前就偏爱各类全键盘移动设备(如 UMPC 和 PDA),尤其是搭载 RISC 处理器与 Unix-like 系统的 PDA。今年年初有幸捡漏收到的这台由 CEC 代理的国行 Sharp Zaurus SL-5600 算是笔者心中比较理想的设备。
Sharp Zaurus SL-5600 在 2003 年发售。由于其搭载 Linux 系统与其强大的可扩展性,一经发售她便成为了很多 Geek 与 Hacker 的掌中玩物,她在当时有很多定制的开源系统与软件。相比于前一代的 SL-5500,她的 CPU 有了巨大的提升(由 StrongARM [email protected]
升级至 Intel XScale [email protected]
)。时过境迁,当 PDA 随着智能手机的兴起而没落时,Zaurus 也早已被大众所遗忘。十七年后,笔者拿到这台和自己年龄差不多大的 PDA 时,她已没有除收藏与折腾外的价值,但笔者仍感叹于她的工业设计与她背后开源社区的默默付出。
写这玩意的初衷是我所在的某个群搭建了私有的 Mattermost 聊天环境来防御天朝网络环境日益严重的自我审查
程序一共有两个部分, QQ 部分依旧使用的是我们的老朋友Coolq HTTP API
通过 http api 进行发送,通过 Websocket 接受消息推送
Mattermost 部分同样是监听 Websocket 服务器并进行转发
当初写这个脚本时踩了很多关于 Python 多进程和协程的奇怪的坑,下面的代码为啥能正常跑我完全不知道(划掉)
下面是效果
(距离上篇教程发布已经整整一个学期过去了,终于有时间填这个坑了)
注意:本篇教程是面向小白向的,但是仍建议有一定 Linux 基础的计算器玩家尝试 本篇教程将教你如何从零开始定制 Nspire 能使用的 Linux 系统,包括制作 rootfs,配置并编译内核与各类驱动模块
需要准备的东西:
一份 Linux Kernel 源码,可以在 https://kernel.org/
下载
(需要注意的是,Linux 内核在 4.14 以后的版本中对 Nspire 的支持有些许问题,故建议下载 4.14 以及之前的 longterm 版本)
一台 Linux 系统的点好,并需要配置好交叉编译工具链
一个 4G 以上容量的 U 盘
关于 rootfs 是什么,你可以自行查阅 Wikipedia (逃)
首先你需要安装 debootstrap
等工具,以 Manjaro 系统为例:
sudo pacman -S binfmt-support qemu-user-static debootstrap
其中,debootstrap
是用来制作 rootfs 的工具,而 qemu-user-static
则允许你 chroot 到不同体系结构的 rootfs 中
安装完成后,挂载准备好的 U 盘到任意位置,执行
sudo debootstrap --arch=armel --foreign buster /*挂载 U 盘的位置*/ https://mirrors.ustc.edu.cn/debian
其中,
buster
代表你制作的 rootfs 系统的版本(Debian 10)
armel
全称是 arm eabi little endian,代表你制作的 rootfs 软件包的体系结构,因为 Nspire 使用的是一颗 arm926ejs
内核的处理器,故选择此版本
很经典的一道题了,然而以前一直懒得做Orz 离散化+树状数组求逆序对