SpinMrY 发表于 2020-1-26 19:14:27

优雅地使用计算器上网!(下) 定制你的 Linux for Nspire

本帖最后由 SpinMrY 于 2020-1-26 19:42 编辑

(距离上篇教程发布已经整整一个学期过去了,终于有时间填这个坑了)
注意:本篇教程是面向小白向的,但是仍建议有一定 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 版本了
https://s2.ax1x.com/2020/01/26/1m7pc9.png
执行/debootstrap/debootstrap --second-stage.进行第二部分配置
待到配置完成后,按照你的需求安装一些常用的软件包,rootfs 就制作完成了

0x02 配置 Linux 内核

首先确认你已经装好了交叉编译工具链 arm-none-eabi-gcc
关于不同 Linux 发行版安装工具链的方法请自行 Google
cd 到存放 Linux 内核源码的目录,执行 ARCH=arm make menuconfig 进入图形化配置界面
https://s2.ax1x.com/2020/01/26/1m4TZ8.png
设置交叉编译工具为 arm-none-eabi- 并设置目标内核的 CPU 架构与系统类型
https://s2.ax1x.com/2020/01/26/1m47dS.png
https://s2.ax1x.com/2020/01/26/1m4qiQ.png
配置互联网协议栈
https://s2.ax1x.com/2020/01/26/1m4HIg.png
配置网卡驱动
因为使用的是 MT7601 无线网卡,在内核内就有驱动支持,直接选定即可
如果你的无线网卡驱动没有内核支持,可以自行寻找源码编译
https://s2.ax1x.com/2020/01/26/1m4Iqf.png
按照你的需求配置一些其他设备的驱动与内核 module ,配置完成后保存配置文件并退出
https://s2.ax1x.com/2020/01/26/1m4LGj.png   
配置完成后,即可进入下一个环节

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 所在的目录*/
全速编译中
https://s2.ax1x.com/2020/01/26/1mHwxH.jpg   
等到全部编译完成之后,提取编译的 zImage 与 dtb文件
分别位于:
arch/arm/boot/zImage
arch/arm/boot/dts/cx.dtb   
之后就是按照上篇教程在计算器上使用了23333   
至此,本篇教程结束   


zyf722 发表于 2020-1-26 21:25:42

前排支持!

wu58430 发表于 2020-1-27 17:47:37

编译好了,计算器上装软件不方便,怎么在电脑上运行呢 ?

SpinMrY 发表于 2020-1-28 03:04:14

wu58430 发表于 2020-1-27 17:47
编译好了,计算器上装软件不方便,怎么在电脑上运行呢 ?

没太理解你想表达啥
如果你想事先在电脑上给计算器的Linux系统装软件的话,直接chroot进去就行了

wu58430 发表于 2020-1-28 17:29:29

SpinMrY 发表于 2020-1-27 21:04
没太理解你想表达啥
如果你想事先在电脑上给计算器的Linux系统装软件的话,直接chroot进去就行了 ...

知道了,谢谢

homo 发表于 2022-2-26 16:10:53

完成后就可以在NS上浏览cncalc论坛吗(狂喜)

xiongnemo 发表于 2022-2-28 17:00:07

Manjaro 好像无论是 AUR 还是本身的库都没找到 binfmt-support,谷歌过也无确切结果被什么替代了
页: [1]
查看完整版本: 优雅地使用计算器上网!(下) 定制你的 Linux for Nspire