步骤一、修改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的功能选项
找到此选项按空格键切换状态,*为built-in。
这样在安装的时候会安装到自己指定的目录(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;
为什么是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/
(4)其他选项采用默认配置,一路Exit,最后Yes保存。
5.修改busybox源码
(1)修改./libbb/printable_string.c文件
找到31行和32行:
修改为:
找到45行:
修改为:
效果如下:
(2)修改./libbb/unicode.c文件
找到1022行:
修改为:
找到1030行:
修改为:
效果如下:
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
步骤二、修改内核
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
保存退出。
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
断电重启。
步骤三、文件系统验证
root@ELF1:~# ls /run/media/sda1/
完成以上三个步骤,就可以实现在ELF 1开发板中的命令行显示中文,希望能对屏幕前的小伙伴提供帮助。