优雅地使用计算器上网!(下) 定制你的 Linux for Nspire
(距离上篇教程发布已经整整一个学期过去了,终于有时间填这个坑了)
注意:本篇教程是面向小白向的,但是仍建议有一定 Linux 基础的计算器玩家尝试 本篇教程将教你如何从零开始定制 Nspire 能使用的 Linux 系统,包括制作 rootfs,配置并编译内核与各类驱动模块
0x00 准备工作
需要准备的东西:
一份 Linux Kernel 源码,可以在 https://kernel.org/
下载
(需要注意的是,Linux 内核在 4.14 以后的版本中对 Nspire 的支持有些许问题,故建议下载 4.14 以及之前的 longterm 版本)
一台 Linux 系统的点好,并需要配置好交叉编译工具链
一个 4G 以上容量的 U 盘
0x01 制作 rootfs
关于 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
内核的处理器,故选择此版本
在等待这条命令执行完毕后,使用 chroot
切换根目录环境至目标 rootfs 切换完成后,因为安装了 qemu-user-static
, 可以看到 CPU 已经变成虚拟的 armv7l 版本了
执行/debootstrap/debootstrap --second-stage.
进行第二部分配置
待到配置完成后,按照你的需求安装一些常用的软件包,rootfs 就制作完成了
0x02 配置 Linux 内核
首先确认你已经装好了交叉编译工具链 arm-none-eabi-gcc
关于不同 Linux 发行版安装工具链的方法请自行 Google
cd
到存放 Linux 内核源码的目录,执行 ARCH=arm make menuconfig
进入图形化配置界面
设置交叉编译工具为 arm-none-eabi-
并设置目标内核的 CPU 架构与系统类型
配置互联网协议栈
配置网卡驱动 因为使用的是 MT7601 无线网卡,在内核内就有驱动支持,直接选定即可 如果你的无线网卡驱动没有内核支持,可以自行寻找源码编译
按照你的需求配置一些其他设备的驱动与内核 module ,配置完成后保存配置文件并退出
配置完成后,即可进入下一个环节
0x03 编译 Linux 内核与 Modules
首先编译 Linux 内核
执行 ARCH=arm make -j*你的 CPU 线程数量*
编译
比如一颗 4 核心 8 线程的 CPU,执行 ARCH=arm make -j8
注:如果报错找不到编译器,请查看你的交叉编译工具链的目录是否在 PATH
中
编译完内核后,继续编译内核模块
执行 ARCH=arm make modules_install INSTALL_MOD_PATH=/*rootfs 所在的目录*/
全速编译中
等到全部编译完成之后,提取编译的 zImage
与 dtb
文件
分别位于:
arch/arm/boot/zImage
arch/arm/boot/dts/cx.dtb
之后就是按照上篇教程在计算器上使用了23333
至此,本篇教程结束