软件名称
kernel-6.7.3-cjktty
应用平台
Linux(开发者在 Ubuntu 22.04 LTS 上进行了测试,本人在 LinuxMint 21.3 上进行了测试,皆工作正常
推荐类型
【用户推荐】
一句简介
已经打好 cjktty 补丁的 Linux 内核(内核版本: 6.7.3),可直接在 tty 终端中显示中日韩文字,无需手动重新编译内核。
项目地址
这里有已经构建好了的打了cjktty中文补丁的6.7.3内核源码和成品。
开发者提供了 deb 和 rpm 两种格式的软件包。
使用方法提要
根据自己的系统,下载并安装开发者提供的 deb 或 rpm 格式的所有软件包并安装。
重新启动计算机。
已发现问题
我在使用该内核后,发行 VirtualBox 无法运行,错误提示如下:
The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please reinstall virtualbox-dkms package and load the kernel module by executing
'modprobe vboxdrv'
as root.
If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.
经分析是因为没有正确安装该内核对应的头文件(kernel-headers),导致启用新内核后 VirtualBox 的内核模块没有重新编译,因此无法启动虚拟机。
w568w
(w568w)
2024 年6 月 21 日 04:45
2
应该是没有安装 VirtualBox 必需的 DKMS 模块导致的。理论上安装/更新内核或模块时,包管理器会自动触发重新编译安装,但不知道为何你这里安装内核时没有触发。
可以尝试卸载 virtualbox 重装。
VIctoryRoad:
cjktty 补丁
这个体验怎么样?我现在用的是
Linux KMS/DRM based virtual Console Emulator
添加背景图片之后界面会闪烁,用中文字体时汉字会发虚,非常恼人:
有时候桌面环境挂了可能需要用一下 tty ,tty 上汉字全是方格子看着确实有点难受 (¯―¯٥)
1 个赞
w568w:
这个体验怎么样?
我用这个修改后的内核,文字显示正常,没有遇到过字体发虚的情况(我没有设置背景图片,内核的 tty 终端似乎也不支持设置背景图片)。
另外,您所描述的情况可能是字体的问题,您可以尝试换一种字体,比如文泉驿等宽微米黑。我之前使用 fbterm,系统默认的中文字体似乎是宋体,也会出现发虚的问题。换成文泉驿等宽微米黑后就好多了。我这里没推荐其他字体,是因为 “文泉驿等宽微米黑” 的字体名称中没有空格,而且兼容中文。其他的字体,尤其是名称中有空格的字体,不知道为什么经常无法被 fbterm 的配置文件识别到。
主要是防患于未然。一旦图形化服务器崩溃了,或因为其他原因无法进入图形化界面,那么就必须在 tty 下工作了。其实在 tty 下还是可以做好多工作的,比如:
之前某个程序出了个 bug,导致 X 完全卡死。但只要转到 tty1,并用 htop 杀死有问题的进程,问题就解决了。
还有一次系统盘满了,无法进入桌面环境。解决方法是在 tty 中删除 /home/
下的一些大文件。
另外,有时候我在 tty 下待着,也是因为在这种纯文本的环境中工作有一种不被打扰的感觉。
感谢您的指点,我回去看了一下,确实如此。
应该是因为我没有安装该内核的头文件,导致自动重新编译机制没有生效。我在安装开发者提供的头文件时系统报错了,不知道是什么原因,等过两天有空的时候回去好好看一看。
可以试试 guake 这样的下拉式终端模拟器,设置成全屏使用就很有沉浸感,还能按快捷键打开。
谢谢!不过其实我使用 tty 的目的主要是为了应急,一旦图形化界面崩溃了就只能用 tty 了。我的系统语言设置的是中文,很多命令行软件也是用中文显示的(比如 apt、man、nano)
,如果图形化界面崩溃了、tty 也无法显示中文,那就真的束手无策了。
原来如此,我用的是英文所以没遇到这样的问题。我刚刚试着在 tty 切换语言,能行。
export LANG=en_US.utf8
1 个赞
是的,我所说的就是这个。 不过您说它本来就能显示中文,我感觉可能是如下原因:
您使用的发行版本预装了 fbterm 这类的不借助 X 或 Wayland 即可运行的终端模拟器。
您使用的发行版本已经将 cjk 显示补丁整合进内核之中了。据说统信 UOS 的内核就是已经打好这种补丁的。TurboLinux 似乎也已经打好这种补丁了。
我用过的发行版本(Ubuntu、Debian、Linux Mint、Fedora)默认情况下都不支持在 tty 中显示中文。如果您使用的 Linux 系统可以,不妨介绍一下是哪个发行版本,使用的是什么版本的 Linux 内核。
终端界面似乎不需要重新编译内核就可以显示中文吧?使用 locale 命令查看自己的字符集,默认一般是 en_US.utf8,可以考虑用 dpkg-reconfigure locales
重新配置字符集,安装 zh_CN.UTF-8 并设置为默认字符集即可。
内核这个一般跟着发布版本的官方走,尽量不要自己替换,稳定性不能保证, Linux 实际上是一个内核带着几千上万个软件包一起走,官方会测试内核和这些软件包之间的兼容性,单独替换内核容易出奇怪的问题的
多谢您的建议!不过我按照您的操作,对 locales 进行了设置,但仍然无法在 tty 终端 中显示中文,目前我这边的情况如下图所示:
如此看来,最简单的在终端中显示汉字的方法,可能还是用 fbterm。不过问题也不大,反正这个需求也只是为了应急。
能显示方块就已经很接近了,这个很可能是中文字体不完整造成的,我这里用的是 debian12,用下面的命令安字体:
apt install locales
apt install fonts-arphic-bkai00mp fonts-arphic-bsmi00lp fonts-arphic-gbsn00lp fonts-arphic-gkai00mp fonts-dejavu-core fonts-wqy-zenhei
你可以根据自己的系统替换,安装完成后重新登录试试
1 个赞
非常感谢您的热心解答!不过恕我直言,您可能理解错了,我所说的终端不是运行在图形化界面中的终端模拟器,而是 Linux 内核的 tty 终端。
下面这张图是在另一台未使用 cjktty 内核补丁的电脑上的 tty 终端中截取的图片,使用的截图工具是 fbgrab,未运行 Xorg 或 Wayland,无图形化界面,纯命令行界面:
下面这张图片则是在 Xorg 下截取的,可以看到所有汉字都能正常显示:
您提到的字体,都必须在图形化界面中使用,在 tty 命令行界面中是用不了的。而且有一种说法是,tty 命令行界面无法显示中文,是因为 tty 只能显示 1 个字节,不能显示多字节的 UTF-8 字符(比如汉字)。因此安装汉字字体是不能从根本上解决问题的。
明白了,这是我的问题,我用的大多数是启动时的 console 终端,或者ssh连接上去的伪终端,和你的内核 tty 不一样,实在抱歉
没关系的,虽然您的方法不能解决 tty 终端显示中文的问题,但的确是对付那些本地化做得比较差的发行版本的好方案。
aeghn
(aeghn)
2024 年7 月 2 日 06:13
21
楼主使用的上游,好像已经很久不更新了。
我已经去掉很久了,不知道楼主有没有其他上游推荐。
另外,6.7 也不是 LTS 分支吧,感觉楼主如果想维护一个这样的内核,不如维护 6.6 ?
您好,我不是该项目的维护人。如果您对该项目有什么建议,请移步该项目在 GitHub 的主页与项目维护人讨论。