嵌入式爱好者

A40i开发板中的linux系统中文显示

2022-9-30 10:18| 发布者: xing星| 查看: 743| 评论: 0

类目: 知识库  >  A40i/T3系列产品     文档编号: 774

1.如果之前是使用的全源码编译方式对源码进行编译处理,可以直接往下走;如果之前有更改过源码部分,然后使用的单步编译,可以重新解压一份开发板的源码,进入该源码的lichee文件夹,执行sudo ./build.sh进行一次全编译,时间有点长,需要耐心的等待。


2.在新的源码全编译的过程中,到之前使用的源码里面做一些准备工作吧;要是更改过程中遇到只读等权限问题,打开的时候加上sudo就好了。

2.1首先在lichee下面找到linux-3.10/.config这个配置文件,将里面的iso8859-z全部替换成utf8,就像下面这样,一共有两处。行前面的“-”表示去掉,“+”表示添加上。

FAT使用的默认输入/输出字符集

-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"

挂载文件系统时使用的默认NLS

-CONFIG_NLS_DEFAULT=" iso8859-1"

+CONFIG_NLS_DEFAULT="utf8"

2.2然后在lichee中的out/sun8iw11p1/linux/common/buildroot/target/etc/inputrc文件中添加两行命令;

set meta-flag on

# 禁止第8(最高位)剔除

set convert-meta off

2.3然后将lichee下的out/sun8iw11p1/linux/common/buildroot/target/usr/share/vim/vim80/文件夹中的vimrc_example.vim文件复制到out/sun8iw11p1/linux/common/buildroot/target/root下面,并改名为.vimrc

打开.vimrc文件,在里面添加上三行命令

set fileencodings=utf-8,gb2312,gbk,gb18030

set termencoding=utf-8

set encoding=utf8


3.现在新的源码已经全编译完成了吧,那么在新源码的里面找到busybox-1.25.1这个文件夹进入路径lichee/out/sun8iw11p1/linux/common/buildroot/build/busybox-1.25.1

3.1执行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保存配置

 

3.2然后更改busybox-1.25.1文件夹路径下的libbb/printable_string.c文件,搜索0x7f

删除这两行

-if (c >= 0x7f)

-break;

将这一行改为

-if (c < ' ' || c >= 0x7f)

+if (c < ' ')

3.3更改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里面。

 

4.最后在需要中文的那一份源码里面进行内核编译,打包文件系统,打包镜像操作;镜像烧录到开发板里面就可以显示中文了

sudo ./build.sh -m kernel

sudo ./build.sh -m pack_rootfs

sudo ./build.sh pack

3

已解决

未解决

只是看看

刚表态过的朋友 (3 人)

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2025-5-10 02:25

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部