编辑
2025-03-03
工作知识
0
请注意,本文编写于 95 天前,最后修改于 95 天前,其中某些信息可能已经过时。

目录

一:主线的字符终端
1.1 defconfig
1.2 编译内核
1.3 使用与缺点
二:使用cjktty
2.1 查看仓库
2.2 拉取patch
2.3 打补丁
2.4 开启配置
2.5 编译及使用

最近在某个项目上,需要使用字符终端的显示,并且还需要显示中文。通过网络发现,Framebuffer Console支持中文的功能默认却没在linux的主分支,但是github上有人在维护这个patch。https://github.com/zhmars/cjktty-patches 。鉴于此,本文介绍一下Framebuffer Console的配置方法以及cjktty的配置步骤

一:主线的字符终端

1.1 defconfig

# # Console display driver support # CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y

这样就打开了内核的字符终端

对应defconfig打开CONFIG_FRAMEBUFFER_CONSOLE即可

1.2 编译内核

make bindeb-pkg -j64

这里编译出来会产生如下包,安装即可

../linux-headers-5.10.66_5.10.66-13_arm64.deb ../linux-headers-5.10.66_5.10.66_arm64.deb ../linux-image-5.10.66_5.10.66-13_arm64.deb ../linux-image-5.10.66_5.10.66_arm64.deb ../linux-image-5.10.66-dbg_5.10.66-13_arm64.deb ../linux-image-5.10.66-dbg_5.10.66_arm64.deb ../linux-libc-dev_5.10.66-13_arm64.deb ../linux-libc-dev_5.10.66_arm64.deb

如果使用rk平台默认boot编译,可使用如下编译方法

export ARCH=arm64 export CROSS_COMPILE=aarch64-none-linux-gnu- export PATH=$PATH:$YOURSDK/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/ make rockchip_linux_defconfig make rk3588-evb1-lp4-v10-linux.img -j64

编译完成将生成boot.img

1.3 使用与缺点

在正常进入系统之后,通过组合按键

Ctrl+Alt+F{1-6} 即可进入字符终端界面

但是,默认的字符界面,没办法正常的显示中文。原系统的中文的文件显示乱码。于是找到了cjktty

二:使用cjktty

2.1 查看仓库

cjktty的patch仓库地址在 https://github.com/zhmars/cjktty-patches ,通过其README.md 可以发现其已经不断支持到最新内核上了

2.2 拉取patch

因为我们的内核版本是5.10,故拉取5.10的patch

wget https://raw.githubusercontent.com/zhmars/cjktty-patches/master/v5.x/cjktty-5.10.patch

2.3 打补丁

打补丁就简单了

patch -p1 < cjktty-5.10.patch

2.4 开启配置

CONFIG_FONT_CJK_16x16=y CONFIG_FONT_CJK_32x32=y

2.5 编译及使用

编译方法同上,使用时可以发现,该作者实际就是把两个原英文字符叠加成一个中文字符,从而显示了的中文字符