STEP 1
如果之前使用的是全源码编译方式对源码进行编译处理的,就可以直接往下走;如果之前有更改过源码部分,且使用的是单步编译,则需要重新解压一份OKA40i-C开发板的源码,进入该源码的lichee文件夹,执行sudo ./build.sh进行一次全编译,耗时会有点长,需要耐心的等待。
h/ \5 }0 x P2 CSTEP 2
在新的源码全编译的过程中,到之前使用的源码里面做一些准备工作吧;要是更改过程中遇到只读等权限问题,打开的时候加上sudo就好了。
- r: I# R/ t5 b5 e( U% S, l01.
首先在lichee下面找到linux-3.10/.config这个配置文件,将里面的iso8859-1全部替换成utf8,就像下面这样,一共有两处。行前面的“-”表示去掉,“+”表示添加上。
* N$ I. S$ E8 z( v( A: zFAT使用的默认输入/输出字符集:
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"

挂载文件系统时使用的默认NLS
-CONFIG_NLS_DEFAULT=" iso8859-1"
+CONFIG_NLS_DEFAULT="utf8"
5 D) d$ U2 W7 [
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
5 F% ]) k: G7 o- d: @01.
执行make menuconfig ARCH=arm进入busybox的图形化编辑界面。
6 H2 n- _* L, G3 W, dBusybox Settings ---> General Configuration --->
(65533) Character code to substitute unprintable characters with
(195102) Range of supported Unicode characters
7 w% @. r+ r0 h7 x7 w更改好之后一路Exit退出,最后选择yes保存配置。
( I+ |+ l% {8 F02.
然后更改busybox-1.25.1文件夹路径下的文件libbb / printable_string.c,
搜索0x7f,删除以下两行:

将这里更改为
-if (c < ' ' || c >= 0x7f)
+if (c < ' ')
0 g- D$ D6 Q. X9 V" h03.
更改libbb/unicode.c文件,先找到这样一段:static char* FAST_FUNC。然后将里面的1022行和1030行进行修改:
将*d++ = (c >= ' ' && c < 0x7f) ? c : '?';
修改为*d++ = (c >= ' ') ? c : '?';
将if (c < ' ' || c >= 0x7f)
修改为if (c < ' ')
$ Z# b. {* u5 a! C: M- [修改完成之后,删除.stamp_built文件和.stamp_target_installed文件,返回到lichee文件夹下面,重新进行全编译sudo ./build.sh操作。
* s+ f4 H+ l2 M5 k在out/sun8iw11p1/linux/common/buildroot/target/bin路径后面会生成一个busybox的可执行文件,将这个叫busybox的可执行文件替换到需要中文源码的相同路径下面——
lichee/out/sun8iw11p1/linux/common/buildroot/target/bin里面。
% c$ d4 ]3 p% ~+ \2 m( K9 T7 a
STEP 4
最后,在需要中文的那一份源码里面进行内核编译,打包文件系统,打包镜像操作,再将镜像烧录到OKA40i-C开发板里面就可以显示中文了。
sudo ./build.sh -m kernel
sudo ./build.sh -m pack_rootfs
sudo ./build.sh pack
6 w1 H! ?' m& `, [+ n6 J最后我们来验证一下。可以看到此时已经可以直接进行中文输入了,并且和windows对接的中文文件可以直接显示查看。

" O% ?1 K# X/ }) f7 u结语
Linux系统中文显示的更改其实就是更改内核的字符集和打开busybox的显示封锁,第一次编译好后,以后需要中文的busybox可以直接使用这次的busybox进行替换,节省了很多的工作量。更改完成之后就可以在OKA40i-C开发板的Linux系统上面编辑和查看中文了。
7 b [& q4 q' A9 f5 C( O
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |