0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

ElfBoard 2023-12-06 16:07 次阅读
wKgZomVwKLSAbK00AAp9KkxDFW0692.png

自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。

wKgZomVwKOOAb9N_AAP2Bbyyz3c478.png

这样在安装的时候会安装到自己指定的目录(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;

wKgZomVwKQ2AJzXZAAQ6vK0fRTE817.png

为什么是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/

wKgaomVwKT6Afq5-AARPie6Whvw743.png

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

wKgaomVwKU-AKlSWAAD4wXlU04w151.png

5.修改busybox源码

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

找到31行和32行:

if (c >= 0x7f) break;

修改为:

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

找到45行:

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

修改为:

if (c < ' ')

效果如下:

wKgZomVwKYqALbQSAAHve4zfSeo397.png

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

找到1022行:

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

修改为:

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

找到1030行:

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

修改为:

if (c < ' ')

效果如下:

wKgaomVwKayAB_djAAID5Kx8R14288.png

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/

wKgZomVwKiOAKJL4AABmN_XVd2E875.png

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19008

    浏览量

    302983
  • 内核
    +关注

    关注

    3

    文章

    1362

    浏览量

    40218
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97159
收藏 人收藏

    评论

    相关推荐

    嵌入式学习-飞凌ElfBoard ELF 1板卡 - 使用elf1连接中文名称的WiFi

    1.在windows上新建一个txt文件,输入中文名字 2.将文件拷贝到开发板中,cat命令查看,在命令行可以正常
    发表于 07-05 09:57

    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

    除小型系统外,Hi3516DV300开发板还支持标准系统。此章节简要介绍如何使用命令行在Hi3516DV300开发板上进行标准系统的开发
    的头像 发表于 05-08 09:26 813次阅读
    鸿蒙OpenHarmony南向:【Hi3516标准系统入门(<b class='flag-5'>命令行</b>方式)】

    HarmonyOS开发:【基于命令行(安装库和工具集)】

    使用命令行进行设备开发时,可以通过以下步骤安装编译OpenHarmony需要的库和工具。
    的头像 发表于 04-25 21:03 365次阅读
    HarmonyOS<b class='flag-5'>开发</b>:【基于<b class='flag-5'>命令行</b>(安装库和工具集)】

    香港vps的centos如何切换命令行和桌面?

    要在CentOS上切换命令行和桌面环境,您可以通过以下步骤进行: 1、安装桌面环境:如果您的CentOS VPS上还没有安装图形桌面环境,您需要安装一个。一般来说,常用的桌面环境有GNOME、KDE
    的头像 发表于 04-10 17:41 568次阅读

    STM32G070RB使用jlink命令行下载无法识别芯片怎么解决?

    STM32G070RB 使用jlink命令行下载无法识别芯片,想手动添加芯片,请问哪里可以下载驱动.elf文件 或者有什么方法能够实现jlink命令行下载
    发表于 04-02 06:15

    ELF技术贴|如何在开发板实现对Java的支持

    Java作为一种功能强大且广泛应用的编程语言,具有广泛的适应性和实用性。在ELF1开发板上集成Java支持,无疑将赋予嵌入式开发者更广阔的选择空间,今天就为各位小伙伴详细解析如何在
    的头像 发表于 03-13 16:47 468次阅读
    <b class='flag-5'>ELF</b>技术贴|如<b class='flag-5'>何在</b><b class='flag-5'>开发板</b>上<b class='flag-5'>实现</b>对Java的支持

    在Linux上如何通过命令行来更改日期和时间?

    在Linux上如何通过命令行来更改日期和时间? 在Linux上,我们可以使用命令行工具来更改日期和时间。操作系统中有一个专门的命令被称为“date”命令,它允许我们更改系统的当前日期和
    的头像 发表于 01-16 17:10 2732次阅读

    ELF 1开发板试用】板载资源测试4:体验温湿度传感器

    命令行操作界面。 3、六轴传感器测试(1)温湿度传感器器AHT20在开发板的位置如图。 (2)将开发板平放,命令行执行
    发表于 12-18 11:09

    ELF 1开发板试用】板载资源测试3:OV5640 摄像头测试

    !七、实验总结1、从测试过程中理解了OV5640摄像头基础知识。2、从测试过程中理解了ELF 1开发板命令行操作方式。3、从测试过程中进一步
    发表于 12-15 22:49

    ELF 1开发板试用】板载资源测试2:体验六轴传感器

    、3张图)。 测试完毕,六轴传感器器ICM-20607功能正常!七、实验总结1、从测试过程中理解了六轴传感器器ICM-20607基础知识。2、从测试过程中理解了ELF 1开发板
    发表于 12-15 00:02

    嵌入式学习-ElfBoard ELF1开发板-命令行显示中文

    中文名称文件的U盘插到开发板上,进入U盘挂载路径查看: root@ELF1:~# ls /run/media/sda1/
    发表于 12-14 15:02

    idea如何输入命令行参数

    在许多软件开发和系统管理的任务中,我们经常需要向应用程序传递命令行参数。命令行参数是在运行时传递给程序的值,用于指定程序的行为和配置选项。本文将详细介绍如何在不同的编程语言和操作系统中
    的头像 发表于 12-06 15:01 1072次阅读

    eclipse怎么使用命令行

    命令行中使用Eclipse来完成一些特定的任务。本文将详细介绍如何在命令行中使用Eclipse。 首先,我们需要确保已经正确安装了JDK(Java Development Kit)和Eclipse
    的头像 发表于 12-06 11:26 2415次阅读

    Uboot启动延时和读取命令行输入

    就会中断等待,进入命令行输入模式。 如果没有配置启动延时功能或者启动延时超过了设置的时间, U-Boot 运行启动命令行参数,启动命令参数在顶层配置文件中,由 CONFIG_BOOTCOMMAND 宏定义。 2.读取
    的头像 发表于 12-04 17:16 1481次阅读

    何在命令行中配置DDS

    DDS这么好,那该如何配置和使用呢?我们先带大家入个门。 案例一:在命令行中配置DDS 我们先来试一试在命令行中配置DDS的参数。 启动第一个终端,我们使用best_effort创建一个发布者节点
    的头像 发表于 11-24 18:03 930次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>命令行</b>中配置DDS