查看: 1063|回复: 0

[经验] 嵌入式学习-ElfBoard ELF1板卡-命令行显示中文

[复制链接]

该用户从未签到

发表于 2023-12-14 14:48:43 | 显示全部楼层 |阅读模式
分享到:
一、修改busybox-1.24.1源码
busybox源码下载地址:busybox
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
    图片1.png
    (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;
    图片2.png
    (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/
    图片3.png
    (4)其他选项采用默认配置,一路Exit,最后Yes保存。
    图片4.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 < ' ')
    效果如下:
    图片5.png
    (2)修改./libbb/unicode.c文件
    找到1022行:
    *d++ = (c >= ' ' && c < 0x7f) ? c : '?
    修改为:
    *d++ = (c >= ' '/*&& c < 0x7f*/) ? c : '?';
    找到1030行:
    if (c < ' ' || c >= 0x7f)
    修改为:
    if (c < ' ')
    效果如下:
    图片6.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/
    图片7.png

  • 回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 02:59 , Processed in 0.113925 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.