《【北京迅为】itop-3568 开发板文件系统构建手册v1.0.pdf》学习笔记

上篇笔记中编译的 Buildroot 根文件系统默认不支持中文(不过 cat 和 vi 可以显示中文),这篇文章将介绍两种让 Buildroot 下的 busybox 支持中文字符显示的方法。

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

方式一,修改 busybox 源码

修改 busybox 源码这个方法已经在前面的笔记中有提及,具体步骤见: Busybox 制作最小文件系统——设置支持中文,这里不重复操作,Buildroot 的 busybox 源码路径为 output/build/busybox.1.35.0。

方式二,更改 busybox 配置

修改 busybox-menuconfig

打开终端,进入 Buildroot 根目录,输入 make busybox-menuconfig,打开 busybox 配置菜单,进入第一个选项(Settings),然后打开 Support Unicode 配置(Settings 菜单的最后一项):

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

打开 Support Unicode 后,会出现若干个子选项(上图的后七个都是新增子选项),子选项需要修改以下三处内容:

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

第一处是开启检测 $LANG 等环境变量(后面需要用到),第二处是修改 busybox 支持的 Unicode 字符的 ASCII 码范围,填 0 表示不设限制(见下图),第三处是允许宽字符(用多个字节来代表的字符称之为宽字符,中文也属于宽字符)。

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

修改完成后,保存退出。

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

重新编译 Buildroot

在 Buildroot 根目录依次输入 make busyboxmake,完成 busybox 和 Buildroot 的编译。

烧录镜像到开发板

这一步直接参考上一篇笔记最后一节 制作文件系统镜像

设置开发板编码格式

系统镜像烧录到开发板后,还需要设置 $LANG 环境变量,在 /etc/profile 文件最后一行添加 export LANG=zh_CN.UTF-8

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

如果没有设置 $LANG,ls 命令依然不会显示中文字符:

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

修改 /etc/profile 后,需要运行 source /etc/profile 或者重启系统,使修改生效,

itop-3568 开发板文件系统构建学习笔记(6)Buildroot 根文件系统支持中文-LMLPHP

此时 ls 已经可以正常显示中文字符。

03-13 22:12