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

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

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

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

步驟一、修改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的功能選項

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

這樣在安裝的時候會安裝到自己指定的目錄(default ./_install)。這個選項一定要選,否則make install后busybox將安裝在原系統(tǒng)的/usr下,這將覆蓋掉系統(tǒng)原有的命令。選擇這個之后,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)其他選項采用默認(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)驗證

把含有中文名稱文件的U盤插到開發(fā)板上,進(jìn)入U盤掛載路徑查看:

root@ELF1:~#?ls /run/media/sda1/

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

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
FOATSCU-20D 1 L-com Inc Fiber Optic Attenuator,
暫無數(shù)據(jù) 查看
DP83869HMRGZT 1 Texas Instruments Extended temperature, high-immunity gigabit Ethernet PHY transceiver with copper & fiber interface 48-VQFN -40 to 125

ECAD模型

下載ECAD模型
$13.8 查看
ASV-50.000MHZ-EJ-T 1 Abracon Corporation XTAL OSC XO 50.0000MHZ HCMOS SMD

ECAD模型

下載ECAD模型
$0.82 查看

相關(guān)推薦

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