只需4步,让OKA40i-C开发板的Linux系统拥有中文展现
假设你试着在Linux系统里面输进中文,那么将会有一片乱码闪现在你面前,那是因为Linux系统的默认语言是英文。但是假设能够展现中文的话,那么在利用过程中的便当水平必然会大大提拔。今天小编就通过飞凌嵌进式的OKA40i-C开发板来为各人演示让Linux系统展现中文的修改办法。
STEP 1
假设之前利用的是全源码编译体例对源码停止编译处置的,就能够间接往下走;假设之前有更改正源码部门,且利用的是单步编译,则需要从头解压一份OKA40i-C开发板的源码,进进该源码的lichee文件夹,施行sudo ./build.sh停止一次全编译,耗时会有点长,需要耐烦的期待。
STEP 2
在新的源码全编译的过程中,到之前利用的源码里面做一些预备工做吧;如果更改正程中碰着只读等权限问题,翻开的时候加上sudo就好了。
01.
起首在lichee下面找到linux-3.10/.config那个设置装备摆设文件,将里面的iso8859-1全数替代成utf8,就像下面如许,一共有两处。行前面的“-”表达往掉,“+”表达添加上。
FAT利用的默认输进/输出字符集:
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
展开全文
挂载文件系统时利用的默认NLS
-CONFIG_NLS_DEFAULT=" iso8859-1"
+CONFIG_NLS_DEFAULT="utf8"
02.
out/sun8iw11p1/linux/common/buildroot/target/etc/inputrc
在上方lichee中的文件中添加两行号令:
03.
lichee/out/sun8iw11p1/linux/common/buildroot/target/root
然后到上方途径下创建一个.vimrc文件,翻开.vimrc文件,在里面添加上三行号令:
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=utf8
STEP 3
如今,新的源码已经全数编译完成了,在新源码的里面找到busybox-1.25.1那个文件夹。进进以下途径:
lichee/out/sun8iw11p1/linux/common/buildroot/build/busybox-1.25.1
01.
施行make menuconfig ARCH=arm进进busybox的图形化编纂界面。
Busybox Settings --- General Configuration ---
[*] Enable locale support (system needs locale for this to work)
[*] Support Unicode
[*] Use libc routines for Unicode (else uses internal ones)
(65533) Character code to substitute unprintable characters with
(195102) Range of supported Unicode characters
更改好之后一路Exit退出,最初抉择yes保留设置装备摆设。
02.
然后更改busybox-1.25.1文件夹途径下的文件
libbb / printable_string.c,
搜刮0x7f,删除以下两行:
将那里更改为
-if (c ' ' || c = 0x7f)
+if (c ' ')
03.
更改libbb/unicode.c文件,先找到如许一段:static char* FAST_FUNC。然后将里面的1022行和1030行停止修改:
将*d++ = (c = ' ' c 0x7f) ? c : '?';
修改为*d++ = (c = ' ') ? c : '?';
将if (c ' ' || c = 0x7f)
修改为if (c ' ')
修改完成之后,删除.stamp_built文件和.stamp_target_installed文件,返回到lichee文件夹下面,从头停止全编译sudo ./build.sh操做。
在out/sun8iw11p1/linux/common/buildroot/target/bin途径后面会生成一个busybox的可施行文件,将那个喊busybox的可施行文件替代到需要中文源码的不异途径下面——
lichee/out/sun8iw11p1/linux/common/buildroot/target/bin里面。
STEP 4
最初,在需要中文的那一份源码里面停止内核编译,打包文件系统,打包镜像操做,再将镜像烧录到OKA40i-C开发板里面就能够展现中文了。
sudo ./build.sh -m kernel
sudo ./build.sh -m pack_rootfs
sudo ./build.sh pack
最初我们来验证一下。能够看到此时已经能够间接停止中文输进了,而且和windows对接的中文文件能够间接展现查看。
结语
Linux系统中文展现的更改其实就是更改内核的字符集和翻开busybox的展现封锁,第一次编译好后,以后需要中文的busybox能够间接利用此次的busybox停止替代,节约了良多的工做量。更改完成之后就能够在OKA40i-C开发板的Linux系统上面编纂和查看中文了。