![wKgZomVwKLSAbK00AAp9KkxDFW0692.png](https://file1.elecfans.com/web2/M00/B4/A5/wKgZomVwKLSAbK00AAp9KkxDFW0692.png)
自busybox1.17.0以后的版本對(duì)中文的支持進(jìn)行了限制,命令行不做修改是無法顯示中文的。今天小編就帶各位小伙伴了解一下如何實(shí)現(xiàn)在busybox1.17.0以上版本對(duì)命令行顯示中文的支持。
步驟一、修改busybox-1.24.1源碼
1.解壓busybox-1.24.1.tar.bz2
elf@ubuntu:~$ tar xvf busybox-1.24.1.tar.bz2
2.進(jìn)入解壓之后的busybox-1.24.1文件夾
elf@ubuntu:~$ cd busybox-1.24.1/
3.保留默認(rèn)配置
elf@ubuntu:~/busybox-1.24.1$ make defconfig
4.進(jìn)行圖形界面編輯
elf@ubuntu:~/busybox-1.24.1$ make menuconfig
(1)出現(xiàn)圖形界面選擇編譯進(jìn)busybox的功能選項(xiàng)
Busybox Settings --->General Configuration --->[*] Don't use /usr
找到此選項(xiàng)按空格鍵切換狀態(tài),*為built-in。
![wKgZomVwKOOAb9N_AAP2Bbyyz3c478.png](https://file1.elecfans.com/web2/M00/B4/A5/wKgZomVwKOOAb9N_AAP2Bbyyz3c478.png)
這樣在安裝的時(shí)候會(huì)安裝到自己指定的目錄(default ./_install)。這個(gè)選項(xiàng)一定要選,否則make install后busybox將安裝在原系統(tǒng)的/usr下,這將覆蓋掉系統(tǒng)原有的命令。選擇這個(gè)之后,make install后會(huì)在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](https://file1.elecfans.com/web2/M00/B4/A6/wKgZomVwKQ2AJzXZAAQ6vK0fRTE817.png)
為什么是195102?中文在Unicode中的位置查了一下最高到U+2FA1D,隨便給這個(gè)值改了一個(gè)大于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](https://file1.elecfans.com/web2/M00/B2/DE/wKgaomVwKT6Afq5-AARPie6Whvw743.png)
(4)其他選項(xiàng)采用默認(rèn)配置,一路Exit,最后Yes保存。
![wKgaomVwKU-AKlSWAAD4wXlU04w151.png](https://file1.elecfans.com/web2/M00/B2/DE/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](https://file1.elecfans.com/web2/M00/B4/A6/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](https://file1.elecfans.com/web2/M00/B2/DF/wKgaomVwKayAB_djAAID5Kx8R14288.png)
6.編譯、安裝
elf@ubuntu:~/busybox-1.24.1$ make
elf@ubuntu:~/busybox-1.24.1$ make install(由于前面沒設(shè)置安裝位置將默認(rèn)安裝在本文件夾的_install文件夾下)
7.移植busybox到文件系統(tǒng)
(1)拷貝_install/bin下的busybox到文件系統(tǒng)的/bin目錄下
root@ELF1:~# rm /bin/busybox
root@ELF1:~# cp /run/media/sda1/busybox /bin
(2)給予權(quán)限
root@ELF1:~# chmod 777 /bin/busybox
(3)刪除舊鏈接文件
root@ELF1:~# rm /bin/ls
(4)形成新的鏈接文件
root@ELF1:~# ln -s /bin/busybox /bin/ls
步驟二、修改內(nèi)核
1.執(zhí)行環(huán)境變量
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.進(jìn)入圖形配置界面
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.將新的內(nèi)核拷貝到開發(fā)板替換舊的內(nèi)核
root@ELF1:~# cp /run/media/sda1/zImage /run/media/mmcblk1p1/
root@ELF1:~# sync
斷電重啟。
步驟三、文件系統(tǒng)驗(yàn)證
把含有中文名稱文件的U盤插到開發(fā)板上,進(jìn)入U(xiǎn)盤掛載路徑查看:
root@ELF1:~#ls /run/media/sda1/
![wKgZomVwKiOAKJL4AABmN_XVd2E875.png](https://file1.elecfans.com/web2/M00/B4/A6/wKgZomVwKiOAKJL4AABmN_XVd2E875.png)
完成以上三個(gè)步驟,就可以實(shí)現(xiàn)在ELF 1開發(fā)板中的命令行顯示中文,希望能對(duì)屏幕前的小伙伴提供幫助。
-
嵌入式
+關(guān)注
關(guān)注
5093文章
19178瀏覽量
307717 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1382瀏覽量
40430 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5121瀏覽量
98216
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【ELF 2學(xué)習(xí)板試用】命令行功能測(cè)試-shell腳本進(jìn)行IO控制-燈閃
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動(dòng)追蹤之開發(fā)板測(cè)試
飛凌嵌入式ElfBoard ELF 1板卡-運(yùn)動(dòng)追蹤之開發(fā)板測(cè)試
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-使用AHT20進(jìn)行環(huán)境監(jiān)測(cè)之開發(fā)板測(cè)試
飛凌嵌入式ElfBoard ELF 1板卡-LCD顯示圖片編程示例之開發(fā)板測(cè)試
圖形用戶界面與命令行接口的比較
飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之開發(fā)板測(cè)試
嵌入式學(xué)習(xí)-飛凌ElfBoard ELF 1板卡 - 使用elf1連接中文名稱的WiFi
鴻蒙ArkUI-X跨平臺(tái)開發(fā):【命令行工具(ACE Tools)】
![鴻蒙ArkUI-X跨平臺(tái)<b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>命令行</b>工具(ACE Tools)】](https://file1.elecfans.com/web2/M00/E7/65/wKgaomZHTraAVXmkAABqDt1o7NY191.jpg)
鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(命令行方式)】
![鴻蒙OpenHarmony南向:【Hi3516標(biāo)準(zhǔn)系統(tǒng)入門(<b class='flag-5'>命令行</b>方式)】](https://file1.elecfans.com/web2/M00/E1/C7/wKgZomY52MmAS66XAAADCp1_zEY399.jpg)
香港vps的centos如何切換命令行和桌面?
STM32G070RB使用jlink命令行下載無法識(shí)別芯片怎么解決?
飛凌ElfBoard ELF 1板卡-如何在ELF 1開發(fā)板上實(shí)現(xiàn)對(duì)java的支持
ELF技術(shù)貼|如何在開發(fā)板上實(shí)現(xiàn)對(duì)Java的支持
![<b class='flag-5'>ELF</b>技術(shù)貼|如<b class='flag-5'>何在</b><b class='flag-5'>開發(fā)板</b>上<b class='flag-5'>實(shí)現(xiàn)</b>對(duì)Java的支持](https://file1.elecfans.com/web2/M00/C5/1A/wKgaomXxaDCADbm_AAA89wQPeVU499.png)
評(píng)論