如果你試著在Linux系統(tǒng)里面輸入中文,那么將會有一片亂碼呈現(xiàn)在你面前,這是因為Linux系統(tǒng)的默認語言是英文。但是如果可以顯示中文的話,那么在使用過程中的便利程度一定會大大提升。今天小編就通過飛凌嵌入式的OKA40i-C開發(fā)板來為大家演示讓Linux系統(tǒng)顯示中文的修改方法。

STEP 1
如果之前使用的是全源碼編譯方式對源碼進行編譯處理的,就可以直接往下走;如果之前有更改過源碼部分,且使用的是單步編譯,則需要重新解壓一份OKA40i-C開發(fā)板的源碼,進入該源碼的lichee文件夾,執(zhí)行sudo ./build.sh進行一次全編譯,耗時會有點長,需要耐心的等待。
STEP 2
在新的源碼全編譯的過程中,到之前使用的源碼里面做一些準(zhǔn)備工作吧;要是更改過程中遇到只讀等權(quán)限問題,打開的時候加上sudo就好了。
01.
首先在lichee下面找到linux-3.10/.config這個配置文件,將里面的iso8859-1全部替換成utf8,就像下面這樣,一共有兩處。行前面的“-”表示去掉,“+”表示添加上。
FAT使用的默認輸入/輸出字符集:
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_DEFAULT_IOCHARSET="utf8"

掛載文件系統(tǒng)時使用的默認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
然后到上方路徑下創(chuàng)建一個.vimrc文件,打開.vimrc文件,在里面添加上三行命令:
set fileencodings=utf-8,gb2312,gbk,gb18030 set termencoding=utf-8 set encoding=utf8

STEP 3
現(xiàn)在,新的源碼已經(jīng)全部編譯完成了,在新源碼的里面找到busybox-1.25.1這個文件夾。進入以下路徑:
lichee/out/sun8iw11p1/linux/common/buildroot/build/busybox-1.25.1
01.
執(zhí)行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的可執(zhí)行文件,將這個叫busybox的可執(zhí)行文件替換到需要中文源碼的相同路徑下面——
lichee/out/sun8iw11p1/linux/common/buildroot/target/bin里面。

STEP 4
最后,在需要中文的那一份源碼里面進行內(nèi)核編譯,打包文件系統(tǒng),打包鏡像操作,再將鏡像燒錄到OKA40i-C開發(fā)板里面就可以顯示中文了。
sudo ./build.sh -m kernel sudo ./build.sh -m pack_rootfs sudo ./build.sh pack
最后我們來驗證一下。可以看到此時已經(jīng)可以直接進行中文輸入了,并且和windows對接的中文文件可以直接顯示查看。


結(jié)語
Linux系統(tǒng)中文顯示的更改其實就是更改內(nèi)核的字符集和打開busybox的顯示封鎖,第一次編譯好后,以后需要中文的busybox可以直接使用這次的busybox進行替換,節(jié)省了很多的工作量。更改完成之后就可以在OKA40i-C開發(fā)板的Linux系統(tǒng)上面編輯和查看中文了。
-
Linux
+關(guān)注
關(guān)注
87文章
11469瀏覽量
212904 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5565瀏覽量
102732 -
系統(tǒng)
+關(guān)注
關(guān)注
1文章
1029瀏覽量
21729
發(fā)布評論請先 登錄
Linux開發(fā)板調(diào)屏方法,實戰(zhàn)經(jīng)驗讓您少走彎路

NXP i.MX 91開發(fā)板#支持快速創(chuàng)建基于Linux?的邊緣器件

Linux文件系統(tǒng)打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

Linux開發(fā)板CAN總線測試方法,觸覺智能RK3568開發(fā)板演示

【正點原子】全志T113-i開發(fā)板資料震撼來襲!異核開發(fā)、工控設(shè)計方案!
Linux系統(tǒng)更換開機logo方法教程,觸覺智能RK3562開發(fā)板演示

Made with KiCad(九十四):M5Pi Linux嵌入式開發(fā)板

瑞芯微主板/開發(fā)板Linux系統(tǒng)播放音頻方法,觸覺智能RK3562開發(fā)板演示

評論