加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 步骤一、修改busybox-1.24.1源码
    • 步骤二、修改内核
    • 步骤三、文件系统验证
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

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

2023/12/07
3635
阅读需 10 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
自busybox1.17.0以后的版本对中文的支持进行了限制,命令行不做修改是无法显示中文的。今天小编就带各位小伙伴了解一下如何实现在busybox1.17.0以上版本对命令行显示中文的支持。

步骤一、修改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的功能选项

找到此选项按空格键切换状态,*为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行:

修改为:

找到45行:

修改为:

效果如下:

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

找到1022行:

修改为:

找到1030行:

修改为:

效果如下:

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

保存退出。

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开发板中的命令行显示中文,希望能对屏幕前的小伙伴提供帮助。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TJA1051T/E/1J 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下载ECAD模型
$0.39 查看
MOC207R2M 1 Fairchild Semiconductor Corporation Transistor Output Optocoupler, 1-Element, 2500V Isolation, LEAD FREE, PLASTIC, SOIC-8
$0.76 查看
FTLF8528P3BNV 1 Finisar Corporation Transceiver, 840nm Min, 860nm Max, 8500Mbps(Tx), 8500Mbps(Rx), LC Connector, Panel Mount, ROHS COMPLIANT, PACKAGE-20
$236.73 查看

相关推荐

电子产业图谱