我所使用的yocto版本是1.5.1,系统默认的locale是en_US,并不包含中文环境。但是在实际编译的过程中不仅仅是中文环境,其他环境的locale包也都被编译出来,只不过在制作安装镜像的时候没有加载中文环境的安装包而已。
有两种方法来安装中文环境:
1、在yocto编译配置文件中添加默认环境是中文环境,使得在制作镜像的时候将编译好的中文环境包打进去;
2、在yocto编译配置文件中添加一个支持中文环境的packagegroups,之后在制作镜像的配置文件中添加该中文环境的packagegroups;
3、在已有的yocto安装镜像中添加中文环境安装包;
下面我描述的过程是方法3,方法1和方法2后续回补上。在yocto编译目录中能够找到如下几个安装包(我的镜像使用的是deb包格式):
eglibc-binary-localedata-zh-cn_2.18-r0_armhf.deb
eglibc-binary-localedata-zh-cn.gb18030_2.18-r0_armhf.deb
eglibc-binary-localedata-zh-cn.gb2312_2.18-r0_armhf.deb
eglibc-binary-localedata-zh-cn.gbk_2.18-r0_armhf.deb
eglibc-charmap-gb18030_2.18-r0_armhf.deb
eglibc-charmap-gb-1988-80_2.18-r0_armhf.deb
eglibc-charmap-gb2312_2.18-r0_armhf.deb
eglibc-charmap-gbk_2.18-r0_armhf.deb
eglibc-charmap-utf-8_2.18-r0_armhf.deb
eglibc-localedata-i18n_2.18-r0_armhf.deb
eglibc-localedata-iso14651-t1_2.18-r0_armhf.deb
eglibc-localedata-iso14651-t1-common_2.18-r0_armhf.deb
eglibc-localedata-iso14651-t1-pinyin_2.18-r0_armhf.deb
eglibc-localedata-translit-circle_2.18-r0_armhf.deb
eglibc-localedata-translit-cjk-compat_2.18-r0_armhf.deb
eglibc-localedata-translit-compat_2.18-r0_armhf.deb
eglibc-localedata-translit-font_2.18-r0_armhf.deb
eglibc-localedata-translit-fraction_2.18-r0_armhf.deb
eglibc-localedata-translit-narrow_2.18-r0_armhf.deb
eglibc-localedata-translit-neutral_2.18-r0_armhf.deb
eglibc-localedata-translit-small_2.18-r0_armhf.deb
eglibc-localedata-translit-wide_2.18-r0_armhf.deb
eglibc-localedata-zh-cn_2.18-r0_armhf.deb
eglibc-locale-zh-cn_2.18-r0_armhf.deb
eglibc-utils_2.18-r1_armhf.deb
locale-base-zh-cn_2.18-r0_armhf.deb
locale-base-zh-cn.gb18030_2.18-r0_armhf.deb
locale-base-zh-cn.gb2312_2.18-r0_armhf.deb
locale-base-zh-cn.gbk_2.18-r0_armhf.deb
将这些安装包使用dpkg -i的方式安装到已有的镜像中。
除了上述这些安装包外,还需要安装中文字体包,我用的中文字体是文泉译,因此需要将文泉译字体复制到已有镜像的/usr/share/fonts/ttf/目录内,之后执行命令#fc-cache -fv来使能该中文字体。
最后一步需要配置环境变量LANG,export LANG=zh_CN.UTF-8
好了,yocto安装镜像的中文环境已经安装完毕。