首页 > 其他分享 >TQ3568 Buildroot文件系统终端上支持中文显示调试方法

TQ3568 Buildroot文件系统终端上支持中文显示调试方法

时间:2023-07-20 16:03:53浏览次数:35  
标签:libbb busybox set Buildroot 文件系统 char UNICODE TQ3568 CONFIG

TQ3568 Buildroot文件系统终端上支持中文显示调试方法


TQ3568 Buildroot文件系统终端上支持中文显示调试方法_文件系统



修改busybox配置单

如果是buildroot 则 make busybox-menuconfig ARCH=arm64diff --git a/rootfs/buildroot/package/busybox/busybox.config b/rootfs/buildroot/package/busybox/busybox.config
index 02b1ee1..abc857e 100644
--- a/rootfs/buildroot/package/busybox/busybox.config
+++ b/rootfs/buildroot/package/busybox/busybox.config
@@ -26,14 +26,14 @@ CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_BUSYBOX=y
CONFIG_FEATURE_INSTALLER=y
# CONFIG_INSTALL_NO_USR is not set
-# CONFIG_LOCALE_SUPPORT is not set
-# CONFIG_UNICODE_SUPPORT is not set
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
# CONFIG_UNICODE_USING_LOCALE is not set
-# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
-CONFIG_SUBST_WCHAR=0
-CONFIG_LAST_SUPPORTED_WCHAR=0
+CONFIG_FEATURE_CHECK_UNICODE_IN_ENV=y
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=40907
# CONFIG_UNICODE_COMBINING_WCHARS is not set
-# CONFIG_UNICODE_WIDE_WCHARS is not set
# 这个好像可以不用.
+CONFIG_UNICODE_WIDE_WCHARS=y
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
@@ -805,13 +805,13 @@ CONFIG_ARPING=y

TQ3568 Buildroot文件系统终端上支持中文显示调试方法_git_02


修改busybox源码

busybox-1.34.1From eb3ae4ea53dde8018524a0ed9dc08a65625197cc Mon Sep 17 00:00:00 2001
From: "hero.huang"<[email protected] style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">
Date: Wed, 23 Aug 2017 11:33:47 +0800
Subject: [PATCH 3/4] busybox: support chinese display in terminal

Signed-off-by: hero.huang<[email protected] style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">
---
libbb/printable_string.c | 4 +---
libbb/unicode.c | 4 ++--
2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/libbb/printable_string.c b/libbb/printable_string.c
index a814fd0..f4c7b00 100644
--- a/libbb/printable_string.c
+++ b/libbb/printable_string.c
@@ -28,8 +28,6 @@ const char* FAST_FUNC printable_string2(uni_stat_t *stats, const char *str)
}
if (c < ' ')
break;
- if (c >= 0x7f)
- break;
s++;
}

@@ -42,7 +40,7 @@ const char* FAST_FUNC printable_string2(uni_stat_t *stats, const char *str)
unsigned char c = *d;
if (c == '\0')
break;
- if (c < ' ' || c >= 0x7f)
+ if (c < ' ')
*d = '?';
d++;
}
diff --git a/libbb/unicode.c b/libbb/unicode.c
index e98cbbf..677db1f 100644
--- a/libbb/unicode.c
+++ b/libbb/unicode.c
@@ -1027,7 +1027,7 @@ static char* FAST_FUNC unicode_conv_to_printable2(uni_stat_t *stats, const char
while ((int)--width >= 0);
break;
}
- *d++ = (c >= ' ' && c < 0x7f) ? c : '?';
+ *d++ = (c >= ' ') ? c : '?';
src++;
}
*d = '\0';
@@ -1035,7 +1035,7 @@ static char* FAST_FUNC unicode_conv_to_printable2(uni_stat_t *stats, const char
d = dst = xstrndup(src, width);
while (*d) {
unsigned char c = *d;
- if (c < ' ' || c >= 0x7f)
+ if (c < ' ')
*d = '?';
d++;
}
--
2.20.1

设置文件系统

1.设置环境变量

export LC_ALL="zh_CN.UTF-8" export LANG="zh_CN.UTF-8"

2.确认文件系统中ls是不是指向 busybox3.增加挂载时字符选择diff --git a/buildroot-201611/target/user_rootfs_extra/etc/udev/scripts/mount.sh b/buildroot-201611/target/user_rootfs_extra/etc/udev/scripts/mount.sh
index 29a4f48..817a4aa 100755
--- a/buildroot-201611/target/user_rootfs_extra/etc/udev/scripts/mount.sh
+++ b/buildroot-201611/target/user_rootfs_extra/etc/udev/scripts/mount.sh
@@ -31,7 +31,7 @@ automount() {
# grant it with w/r/x permissions.
case $ID_FS_TYPE in
vfat|fat)
- MOUNT="$MOUNT -o umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`"
+ MOUNT="$MOUNT -o iocharset=utf8,umask=007,gid=`awk -F':' '/^disk/{print $3}' /etc/group`"
;;
# TODO
*)

其它问题

理论上应该可以了,如果不行试下:1.minicom上有可能不支持utf-8显示,可以使用命令 minicom -D /dev/ttyUSB0 -R utf82.在内核配置要加上CONFIG_NLS=y,CONFIG_NLS_UTF8=y,CONFIG_NLS_CODEPAGE_936=y(这个最好也加上)



标签:libbb,busybox,set,Buildroot,文件系统,char,UNICODE,TQ3568,CONFIG
From: https://blog.51cto.com/u_16053284/6787345

相关文章

  • Linux磁盘专题-linux文件系统详解
    这可是我几年前的杰作笔记呀.....当初手写计算都会,现在忘光光....物理硬盘Block的概念和作用硬盘底层一次IO就是读、写一次扇区,一个扇区默认是512Byte。读写大量文件如果以扇区为单位会很慢、性能不好,所以出现了逻辑块的概念(logicblock),也就是硬盘Block。逻辑块Block是......
  • 记一次CentOS7.7文件系统只读Read-only file system 并且/dev/只有一个设备文件 null
    环境VMwareWorkstationPro15.5操作系统CentOS7.7现象:处理方法1.单用户修复文件系统失败2.救援模式备份数据失败3.把不能正常启动的磁盘,挂载到正常启动虚拟机,扫描逻辑卷,激活,挂载(1)把有问题的磁盘挂载到正常启动的机器上选择需要修复的盘......
  • 1.3 Linux文件系统
    一、Linux文件系统结构Linux下都是文件,所以没有Windows一样的盘,有的只有文件夹。cd/    //进入根目录ls     //查看根目录"/"下的文件及文件夹/bin   :存储了很多系统命令,/usr/sbin也存储了许多系统命令。/sbin  :超级用户root的根目录文件。/root......
  • 正点原子Ubuntu入门005---Ubuntu文件系统结构
    一、根目录 ---  /二、Ubuntu文件系统结构/bin   存放二进制可执行文件,这些命令再单用户模式下也能够使用。可以被root和一般的账号使用。/boot  Ubuntu内核和启动文件,比如vmlinuz-xxx。gurb引导装载程序/cdrom光盘文件/dev存放设备的驱动文件/etc存放一......
  • 解决root用户对HDFS文件系统没有权限的问题
    解决root用户对HDFS文件系统没有权限的问题说明:HDFS文件系统的目录基本都属于supergroup超级用户组,所以就把用户添加到该用户组,即可解决很多权限问题。第一步:在Linux执行如下命令增加supergroup用户组groupaddsupergroup第二步:然后将用户root增加到supergroup用户组......
  • "Tarfs"是一个内存文件系统,它使用TAR(Tape Archive)文件格式来实现在内存中创建一个虚拟
    "Tarfs"是一个内存文件系统,它使用TAR(TapeArchive)文件格式来实现在内存中创建一个虚拟的文件系统。TAR文件格式是一种常见的存档文件格式,用于将多个文件和目录组合成单个文件。Tarfs通过将TAR文件加载到内存中,并在内存空间中模拟文件和目录结构,实现了一个简单的文件系统。它允许......
  • Linux_硬盘和文件系统_操作步骤和排查方式
    -技术背景DRIVEOrin™的AI计算与完整传感器套件-提供每秒254TOPS(万亿次运算)DRIVEAtlanDRIVEThor-计划于2025年开始量产2000万亿次浮点运算性-MobileyeEyeQ51.操作系统车端--EXTLINUXisaSyslinuxvariantwhichbootsfromaLinuxfilesystem.###操作......
  • 嵌入式linux根文件系统镜像制作
    原文:https://zhuanlan.zhihu.com/p/568784791在嵌入式linux平台中,大部分工作则是填充根文件系统,在开发中,根文件系统一般都是以目录的方式放在开发宿主机上。当根文件系统填充完成后,我们需要将其打包成xxx.img或者其他的镜像格式。本文以xxx.img镜像格式为例,描述如何将根文件......
  • 从零开始构建根文件系统
    原文:https://blog.csdn.net/oqqHuTu12345678/article/details/125342676以下内容源于网络资源的学习与整理,如有侵权请告知删除。 在前面的理论分析的基础上,我们开始从零开始构建一个根文件系统。构建根文件系统的步骤:首先,在形式上创建一些空目录。然后,利用busybox软件来生成......
  • Buildroot创建ramdisk、ext4、ubifs镜像,以及mkfs.ext4/mkfs.ubifs/cpio的使用
    通过mkfs.ext4和mkfs.ubifs可以生成ext4和ubi格式的文件系统文件。Buildroot中创建文件系统文件即借助这两个命令。1.mkfs.ext4mkfs.ext4以及mkfs.ext2/mkfs.ext3都指向mke2fs,用于创建ext4格式的文件系统。Usage:mkfs.ext4[-c|-lfilename][-bblock-size][-Ccluster-si......