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

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

    关注

    5186

    文章

    20143

    浏览量

    328672
  • 内核
    +关注

    关注

    4

    文章

    1436

    浏览量

    42481
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113165
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板实现I2C功能复用

    等。由于此项配置的具体实现因SoC平台而异,本文特以【RK3588】ELF 2开发板上的I2C6引脚为例,系统说明从硬件规格查询到软件驱动配置的完整步骤。
    的头像 发表于 12-04 10:10 1561次阅读
    ElfBoard技术贴|如<b class='flag-5'>何在</b>【RK3588】<b class='flag-5'>ELF</b> 2<b class='flag-5'>开发板实现</b>I2C功能复用

    【飞凌T527N开发板试用】CAN的使用

    使用CAN接口demo测试 这是一个错误的连接示范,gnd是必须连接的,开发板每组can(包括gnd)都是隔离的。 qt demo 接收端 can0接口:打开CAN应用如图设置 命令行demo 发送
    发表于 08-19 17:27

    所见即所得——Luban-Lite VS Code插件让开发实现命令行自由”

    NEWS所见即所得!Luban-LiteVSCode插件指南亲爱的开发者朋友们,你是否还在为嵌入式开发中频繁切换命令行而抓狂?配置环境参数如“走迷宫”,编译烧录还需切换AiBurn?今天,匠芯创为您
    的头像 发表于 08-07 15:38 811次阅读
    所见即所得——Luban-Lite VS Code插件让<b class='flag-5'>开发</b><b class='flag-5'>实现</b>“<b class='flag-5'>命令行</b>自由”

    在友晶DE1-SOC开发板实现Chirikov标准映射求解器

    该项目是在友晶DE1-SOC开发板实现Chirikov标准映射的求解器,并将其应用于图像加密和解密的概念验证。
    的头像 发表于 07-07 15:22 1626次阅读
    在友晶DE<b class='flag-5'>1</b>-SOC<b class='flag-5'>开发板实现</b>Chirikov标准映射求解器

    ElfBoard技术贴|如何在【RK3588】ELF 2开发板上进行根系统的定制

    apt-get 等命令支持在线安装软件,但存在明显缺陷:重新烧写镜像后软件会丢失,需再次安装。 这在批量部署多块开发板时,工作量巨大。因此,将软件预先集成到镜像中,实现烧录后无需重新安装,成为亟待解决的问题。
    的头像 发表于 07-02 16:33 2750次阅读
    ElfBoard技术贴|如<b class='flag-5'>何在</b>【RK3588】<b class='flag-5'>ELF</b> 2<b class='flag-5'>开发板</b>上进行根系统的定制

    浅谈wsl --update` 命令行选项无效的解决方案

    PS C:\Users\Administrator> wsl --update >> 命令行选项无效: --update
    的头像 发表于 06-27 10:28 9817次阅读

    飞凌嵌入式ElfBoard ELF 1板卡-uboot移植之LCD测试

    修改完成上述代码之后,编译uboot,单独替换u-boot.imx(参考《01-0 ELF1ELF1S开发板_快速启动手册_V1》4.4节),启动之后按空格键进入uboot
    发表于 06-10 08:52

    飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之FLEXCAN

    sync操作后重启开发板:我们使用CAN1和CAN2进行对测。将开发板的 CAN1与CAN2 的H与H相连,L与L相连。板子启动之后,在命令行
    发表于 02-26 14:03

    ElfBoard技术贴|如何在ELF 1开发板上交叉移植Qt

    在嵌入式系统开发领域,针对特定硬件平台进行Qt框架的移植与适配是一项关键技术任务。作为业界主流的跨平台应用开发框架,Qt凭借其完善的图形界面支持能力,在嵌入式开发图形界面应用程序中占据重要地位。本文将基于
    的头像 发表于 02-24 16:18 1036次阅读
    ElfBoard技术贴|如<b class='flag-5'>何在</b><b class='flag-5'>ELF</b> <b class='flag-5'>1</b><b class='flag-5'>开发板</b>上交叉移植Qt

    ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动

    接上文【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目 Linux 系统下 init 系统 大多数 Linux 发行版的 init 系统是和 System V 相兼容
    发表于 02-11 11:24

    ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯按钮项目

    接上文[【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目(https://bbs.elecfans.com/jishu_2475305_1_1.html) 红绿灯按钮
    发表于 02-06 15:39

    ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

    接上文[【ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-灯闪(https://https://bbs.elecfans.com/jishu_2474874_1_1
    发表于 02-06 11:55

    ELF 2学习板试用】命令行功能测试-shell脚本进行IO控制-灯闪

    文件 有2方式调试硬件 命令行功能测试和桌面功能测试 我准备在Linux5.10主板命令行启动后网络SSH 下用shell脚本进行控制部分硬件测试。从IO控制-灯闪开始。 ELF 2开发板
    发表于 01-25 15:30

    ELF 2学习板试用】ELF2开发板开箱体验及基本使用环境搭建

    OTG烧录软件(烧录成功) 图13 烧录ubuntu2204的命令行页面 开发板启动与网络连接 开发板启动(串口登录) 使用Type-C线连接ELF 2板卡的DEBUG接口与电脑的
    发表于 01-19 22:41

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-运动追踪之开发板测试

    )。 (二)将ELF 1开发板资料包\\03-例程源码\\03-1 命令行例程源码\\11_elf1
    发表于 12-05 10:31