本帖最后由 水精灵 于 2023-12-14 14:37 编辑

一、修改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


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.