自busybox1.17.0以后的版本对中文的支持进行了限制,命令行不做修改是无法显示中文的。今天小编就带各位小伙伴了解一下如何实现在busybox1.17.0以上版本对命令行显示中文的支持。
步骤一、修改busybox-1.24.1源码
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 = 0x7f)
修改为:
if (c = ' ' && c = ' '/*&& c < 0x7f*/) ? c : '?';
找到1030行:
if (c = 0x7f)
修改为:
if (c 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开发板中的命令行显示中文,希望能对屏幕前的小伙伴提供帮助。
高速PCB的元件布局原则
探讨略显神秘的毫米波系统
针对比特币分叉风险 多个交易平台准备暂停比特币充值及提现
RFID的采用在衣物的识别与管理发挥重要的作用
双重悬念!一加5新品发布会邀请函发出,“飘洋过海”是什么梗?
如何在ELF 1开发板实现命令行显示中文
苹果销售额连续四个季度同比下滑,面临华为、小米等中国企业的正面挑战
HRG创新平台开发出高仿真人形机器人将于明年10月份投入市场
人工智能的研究领域和实现方法
TI推出面向低成本电机应用的 InstaSPIN-FOC 无传感器电机控制技术
变频空调解读
02:汽车传感器的应用方案
深入了解Android Studio的最新功能
基于NFC电路使用的主要零部件
魅族Flow耳机拆解 做工如何
监狱看守所智能监控系统的功能特点及应用分析
AI芯片正酝酿什么样的变局?
fluke5720A/5700A校准仪使用注意事项
5G的全面商用会给智能家居带来很大的影响
国芯科技拟募资6亿元用于SoC芯片等项目