加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 步驟一、修改busybox-1.24.1源碼
    • 步驟二、修改內(nèi)核
    • 步驟三、文件系統(tǒng)驗(yàn)證
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何在ELF 1開發(fā)板實(shí)現(xiàn)命令行顯示中文

2023/12/07
3346
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
自busybox1.17.0以后的版本對(duì)中文的支持進(jìn)行了限制,命令行不做修改是無法顯示中文的。今天小編就帶各位小伙伴了解一下如何實(shí)現(xiàn)在busybox1.17.0以上版本對(duì)命令行顯示中文的支持。

步驟一、修改busybox-1.24.1源碼

busybox源碼下載地址:www.busybox.net

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)

找到此選項(xiàng)按空格鍵切換狀態(tài),*為built-in。

這樣在安裝的時(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;

為什么是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/

(4)其他選項(xiàng)采用默認(rèn)配置,一路Exit,最后Yes保存。

5.修改busybox源碼

(1)修改./libbb/printable_string.c文件

找到31行和32行:

修改為:

找到45行:

修改為:

效果如下:

(2)修改./libbb/unicode.c文件

找到1022行:

修改為:

找到1030行:

修改為:

效果如下:

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

保存退出。

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/

完成以上三個(gè)步驟,就可以實(shí)現(xiàn)在ELF 1開發(fā)板中的命令行顯示中文,希望能對(duì)屏幕前的小伙伴提供幫助。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
SFH757V 1 Siemens Transmitter, 100Mbps, Through Hole Mount
暫無數(shù)據(jù) 查看
LAN8710A-EZC 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC32, 5 X 5 MM, 0.90 MM HEIGHT, ROHS COMPLIANT, QFN-32

ECAD模型

下載ECAD模型
$1.71 查看
6N137S 1 Everlight Electronics Co Ltd Logic IC Output Optocoupler, 1-Element, 5000V Isolation, 10MBps, ROHS COMPLIANT, SURFACE MOUNT, DIP-8
$0.59 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜