如何在ELF 1开发板实现命令行显示中文原创

发布时间:2023-12-14 11:00:00
显示中文 命令行修改

步骤一、修改busybox-1.24.1源码

busybox源码下载地址:www.busybox.net

1.解压busybox-1.24.1.tar.bz2

elf@ubuntu:~$ tar xvf busybox-1.24.1.tar.bz2

2.进入解压之后的busybox-1.24.1文件夹

elf@ubuntu:~$ cd busybox-1.24.1/

3.保留默认配置

elf@ubuntu:~/busybox-1.24.1$ make defconfig  

4.进行图形界面编辑

elf@ubuntu:~/busybox-1.24.1$ make menuconfig 

(1)出现图形界面选择编译进busybox的功能选项

Busybox Settings--->General Configuration--->[*] Don't use /usr

找到此选项按空格键切换状态,*为built-in。

这样在安装的时候会安装到自己指定的目录(default ./_install)。这个选项一定要选,否则make install后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令。选择这个之后,make install后会在busybox目录下生成_install的目录,里面有busybox和指向它的链接。

 

2)在busybox中添加locale support支持

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)  (63)Character code to substitute unprintable characters with修改为(65533)Character code to substitute unprintable characters with(767) Range of supported Unicode characters修改为(195102)Range of supported Unicode characters;

为什么是195102?中文在Unicode中的位置查了一下最高到U+2FA1D,随便给这个值改了一个大于2FA1D(195101)的值。

 

(3)添加编译过程中所需库文件路径

Busybox Settings---> Build Options--->() Cross Compiler prefix回车输入/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi---->() Path to sysroot 回车输入/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi/--->() Additional CFLAGS 回车输入-mfloat-abi=hard--->() Additional LDLIBS 回车输入-L/opt/fsl-imx-x11/4.1.15-2.0.0/sysroots/x86_64-pokysdk-linux/usr/bin/

(4)其他选项采用默认配置,一路Exit,最后Yes保存。

5.修改busybox源码

1)修改./libbb/printable_string.c文件

找到31行和32

if (c >= 0x7f)                        break;

修改为:

 /*if (c >= 0x7f)*/                        /*break;*/

找到45行:

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

修改为:

if (c < ' ')

效果如下:

(2)修改./libbb/unicode.c文件

找到1022行:

*d++ = (c >= ' ' && c < 0x7f) ? c : '?

修改为:

*d++ = (c >= ' '/*&& c < 0x7f*/) ? c : '?';

找到1030行:

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

修改为:

if (c < ' ')

效果如下:

6.编译、安装

elf@ubuntu:~/busybox-1.24.1$ make 

elf@ubuntu:~/busybox-1.24.1$ make install (由于前面没设置安装位置将默认安装在本文件夹的_install文件夹下)

7.移植busybox到文件系统

(1)拷贝_install/bin下的busybox到文件系统的/bin目录下

root@ELF1:~# rm /bin/busybox

root@ELF1:~# cp /run/media/sda1/busybox /bin

 

(2)给予权限

root@ELF1:~# chmod 777 /bin/busybox

 

(3)删除旧链接文件

root@ELF1:~# rm /bin/ls

 

(4)形成新的链接文件

root@ELF1:~# ln -s /bin/busybox /bin/ls

步骤二、修改内核

1.执行环境变量

elf@ubuntu:~/linux-4.1.15-elf1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

2.生成.config文件

elf@ubuntu:~/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig

3.进入图形配置界面

elf@ubuntu:~/linux-4.1.15-elf1$ make menuconfig

File systems --->DOS/FAT/NT Filesystems--->(437) Default codepage for FAT修改为(936) Default codepage for FAT--->(iso8899-1) Default iocharset for FAT修改为(utf8) Default iocharset for FAT
File systems --->Native language support--->(cp437) Default NLS Option修改为(utf8) Default NLS Option---><*>Simplified Chinese charset (CP936, GB2312)

保存退出。

4.编译

elf@ubuntu:~/linux-4.1.15-elf1$ cp .config arch/arm/configs/imx6ull_elf1_defconfig

elf@ubuntu:~/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig

elf@ubuntu:~/linux-4.1.15-elf1$ make zImage

 

5.将新的内核拷贝到开发板替换旧的内核

root@ELF1:~# cp /run/media/sda1/zImage /run/media/mmcblk1p1/

root@ELF1:~# sync

断电重启。

 

步骤三、文件系统验证

把含有中文名称文件的U盘插到开发板上,进入U盘挂载路径查看:

root@ELF1:~# ls /run/media/sda1/

完成以上三个步骤,就可以实现在ELF 1开发板中的命令行显示中文,希望能对屏幕前的小伙伴提供帮助。

其它推荐:

推荐阅读:

/* 53客服*/ /* 百度统计*/ /* 百度站长*/