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 时,她已没有除收藏与折腾外的价值,但笔者仍感叹于她的工业设计与她背后开源社区的默默付出。
(距离上篇教程发布已经整整一个学期过去了,终于有时间填这个坑了)
注意:本篇教程是面向小白向的,但是仍建议有一定 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
内核的处理器,故选择此版本
RT,在刚接触 Nspire 上运行 Linux 的时候就在想,是否可以在计算器上移植一个网卡驱动来实现计算器上网?外国论坛和油管上也有计算器上网的视频。然而无论是 cncalc 还是其他国内的计算器社区都对此很少有研究。在自己尝试过 Hackspire 上的 Linux 教程以后,发现它的内核已经很久没有更新过,且 rootfs 完全无法正常启动。正好这两天暑假抽出了时间,准备开始从零开始自己搭建一个计算器 Linux 内核并且做出一个比较完整的运行环境。经过三个晚上的努力,终于跑起来了 Linux 4.4.185 + Debian 10 + MT7601U 无线网卡驱动,成功实现计算器上网!(在此感谢在编译内核中给我很大帮助的dalao @FlyGoat)
在上半篇文章中,我打算主要展示运行效果以及怎样在 Nspire 计算器上运行已经制作好的内核和 rootfs,于是具体内核的编译细节,网卡驱动移植以及 rootfs 制作将放到下半篇文章中。
( ps : 本人刚刚接触嵌入式 Linux,如有词语使用不当还请轻喷 Orz )