U-Boot中文打字机
演示

之前的努力
- 四通MS-2401. 以及difan写的四通打字机WASM全模拟器.
- CJKTTY Kernel: 参看我的RPi编译内核指南 很快. 注意HiDPI屏幕要把32x32的字体也编进去
- 仿UCDOS的FEP们: uim-fep或我Vibe出来的基于Golang的wubi-fep
- fbterm, kmscon: fbterm太丑,纯白色无法显示; kmscon太卡,影响心情
- Distraction-free typewriter: Alphasmart, Pomera,
- Vim五笔输入法: https://github.com/scateu/ywvim, 使用AI对性能提升了不少
特性
- 作为U-Boot的子命令,可选编译进去
- 可以写TF卡(VFAT或EXT4)
- 不需要硬盘,全在Flash里面.
- 三秒开机 适用于”灵感!憋不住了!”场景
- 完全没有电源管理,一直用到没电.不用担心灵感来了机器还在休眠,机器只可能没电,不可能在唤醒或启动中!
大致的安装过程
以Chromebook(gru kevin)为例:
- 拆开后壳,拆开主板,把写保护螺丝拿掉,参看我的blog的文章
- 使用flashrom烧进预编译好的rom. 见U-Boot中文打字机项目的Release页
- 插张TF卡. 完成
- 开机提示”press any key to stop autoboot in 1..0”时迅速按个键. 进入U-boot的命令行,敲
typewriter即可默认打开TF卡(FAT格式)的a.txt;- 其它屏幕下方有帮助
- 按
C-r可以出一个列表,会把TF卡里的文件都列出来,方便切换. - 有Readline式行快捷键,但Alt键似乎还不可用
- 自己再想办法安装系统. 或者不要装系统了
自己编译的大致过程
libreboot基本上就是一些helper,本质上你是要先编译一个coreboot,然后再编U-Boot作为payload,还要处理dtb设备树之类的东西.最后把U-Boot作为载荷放进coreboot里.
- 下载libreboot的src包
- 使用
./mk来安装依赖,然后配置一下默认的板卡,以及设置一下环境变量,使用40个CPU核心编译 - 使用
./mk -m U-Boot gru_kevin来配置一下U-Boot的各个开关. 可以提速. 在项目的README里都有. 还可以配置BOOTCMD和AUTOBOOT等待时长.注意: libreboot不允许U-Boot运行的时候改BOOTCMD等变量,无法保存.估计是没地方写入.写盘上容易把盘写坏了. ./mk -c coreboot gru_kevin可以编出rom.然后烧入. 注意U-Boot可能需要去把编译产物全清了,否则编coreboot的时候不会去重新取.
注意: CH341A的Flash programmer,在Linux下需要编一下驱动.ko.原生的串口驱动不能被flashrom所识别. 使用Raspberry Pi,或Pico也都可以烧.
不足
- CPU转速似乎还是很高
- 在Samsung Chromebook Plus上不能直接写eMMC的FAT分区,会把结构写坏掉.
- U-Boot+Coreboot编出来很容易超过8MB Flash限制,要么换大Flash,要么把U-Boot里的
UEFI子功能和网络子功能关掉不编译.