在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將BusyBox移植到RT-Thread Smart下

RTThread物聯網操作系統 ? 來源:RTThread物聯網操作系統 ? 作者:RTThread物聯網操作 ? 2021-07-02 11:52 ? 次閱讀

BusyBox 是一個集成了數百個常用Linux/Unix命令和工具的軟件。BusyBox 包含了一些簡單的工具,例如ls、cat和echo等等,還包含了一些更大、更復雜的工具,例grep、find、mount以及telnet。有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell。

這篇文章將介紹把BusyBox移植到RT-Thread Smart下。

準備工作

以busybox-1.32.0為例,下載源碼包:

1$ mkdir -p userapps/gnu-apps/busybox

2$ wget https://busybox.net/downloads/busybox-1.32.0.tar.bz2

移植腳本

與上篇文章有些許不同的是,busybox自帶Makefile,所以需要給Makefile里面的一些變量替換成交叉編譯環境變量,下面會通過一個patch文件實現。

首先還是創建一份簡單的build.sh腳本:

1#!/bin/sh

2 3APP_NAME=“busybox” 4VERSION=“1.32.0” 5APP_DIR=${APP_NAME}-${VERSION}

6 7# userapps is ROOTDIR

8ROOTDIR=${PWD}/。./。.

910# set env

11export RTT_EXEC_PATH=${ROOTDIR}/。./tools/gnu_gcc/arm-linux-musleabi_for_x86_64-pc-linux-gnu/bin

12export PATH=$PATH:$RTT_EXEC_PATH:$RTT_EXEC_PATH/。./arm-linux-musleabi/bin

1314# get src

15tar xjf ${APP_DIR}.tar.bz2

16cd ${APP_DIR}

1718# patch Makefile

19patch -Np1 -i 。./makefile.patch

2021# get default config

22cp 。./def_config .config

2324make V=1

makefile.patch文件如下:

1--- busybox-1.32.0/Makefile.orig 2020-12-24 12:51:40.752730739 +0800 2+++ busybox-1.32.0/Makefile 2020-12-24 12:55:44.162093866 +0800 3@@ -4,6 +4,21 @@

4 EXTRAVERSION =

5 NAME = Unnamed

6 7+

8+CROSS_COMPILE= arm-linux-musleabi-

9+

10+PWD := $(shell pwd)

11+# userapp dir

12+ROOTDIR := $(PWD)/。./。./。.

13+RT_DIR=$(ROOTDIR)/sdk/rt-thread

14+INC_DIR=${ROOTDIR}/sdk/include

15+LIB_DIR=${ROOTDIR}/sdk/lib

16+

17+CFLAGS = -march=armv7-a -marm -msoft-float -D__RTTHREAD__ -Wall -O2 -n --static -I. -I$(RT_DIR)/include -I$(RT_DIR)/components/dfs -I$(RT_DIR)/components/drivers -I$(RT_DIR)/components/finsh -I$(RT_DIR)/components/net -I${INC_DIR}

18+

19+LDFLAGS = -L. -L${LIB_DIR} -T $(ROOTDIR)/linker_scripts/arm/cortex-a/link.lds -march=armv7-a -marm -msoft-float -L$(RT_DIR)/lib -Wl,--whole-archive -lrtthread -Wl,--no-whole-archive -n --static -Wl,--start-group -lrtthread -Wl,--end-group

20+

21+

22 # *DOCUMENTATION*

23 # To see a list of typical targets execute “make help”24 # More info can be located in 。/README

Busybox在編譯之前最好通過“make menuconfig”配置一下需要編譯的指令,這里為了方便提供一個配置好的def_config文件,在上面的build.sh腳本里面會用到。

文件比較長,請將以下鏈接復制至外部瀏覽器打開,打開后可直接下載文件:

https://gitee.com/rtthread/rt-smart-notes/tree/master/examples/busybox

編譯:

1userapps/gnu-apps/busybox$ ls

2build.sh busybox-1.32.0.tar.bz2 def_config makefile.patch

3userapps/gnu-apps/busybox$ sh build.sh

使用BusyBox

在Linux上使用BusyBox,一般的方式會是建立一個個的符號鏈接,例如把ls通過符號鏈接的方式鏈接到busybox,這樣在調用ls時,實際上會被調用到busybox。只是對于main(int argc, char** argv)來說,這個argv[0]是‘ls’。

當然busybox也支持直接調用busybox,并把命令附加在后面的方式,例如:

1msh /》 busybox.elf ls -l

因為RT-Thread及RT-Thread Smart并不支持符號鏈接,所以還只能采用后面的形式。

BusyBox包含有很多個指令,可以通過執行“make menuconfig”來配置需要編譯的指令。

查看busybox當前可使用的命令可以使用`--help‘ 選項:

查看具體某個指令的使用幫助,如 ls 的:

更多指令

為確保一些特定的指令正常運行,需要在kernel配置里面打開null、random、zero等設備;并確保/etc/resolv.com和/etc/hosts文件存在。

1msh /》 busybox.elf cat /etc/resolv.conf

2nameserver 114.114.114.11434msh /》 busybox.elf cat /etc/hosts

5127.0.0.1 localhost

busybox是一套很精簡的工具集,已經在rt-smart上驗證過的命令包括(但不限于):

歸檔類工具,例如 tar/unzip/bzip2/bunzip2/bzcat/gzip/gunzip/zcat/xz/unxz/xzcat 等;

核心類工具,例如 cat/cp/dd/echo/head/ls/mv/mkdir/pwd/rm/tail/uname/wc 等;

編輯類工具,例如 vi/diff/cmp/awk/sed 等;

網絡類工具,例如ftpd/tcpsvd/ftpgt/ftpput/tftp/nslookup/telnet/httpd/wget 等

文章出處:【微信公眾號:RTThread物聯網操作系統

責任編輯:gt


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2927

    文章

    45910

    瀏覽量

    388291
  • Linux
    +關注

    關注

    87

    文章

    11465

    瀏覽量

    212830
  • 操作系統
    +關注

    關注

    37

    文章

    7097

    瀏覽量

    124974

原文標題:如何把Linux工具里的“軍刀”BusyBox移植到RT-Thread Smart?

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    RT-Thread審核團招募: 深度參與開源RTOS社區治理與演進

    全球開發者招募:RT-Thread審核團(ReviewTeam)正式開放申請!在開源的世界里,代碼審查(CodeReview)是保證軟件質量、促進技術交流的關鍵環節。RT-Thread作為全球領先
    的頭像 發表于 05-21 18:02 ?474次閱讀
    <b class='flag-5'>RT-Thread</b>審核團招募: 深度參與開源RTOS社區治理與演進

    如何將RT-Thread移植NXP MCUXPressoIDE上

    RT-Thread默認支持的IDE只有IAR 和 Keil, 那如何將RT-Thread移植NXP MCUXPressoIDE上呢?本文內
    的頭像 發表于 02-13 10:37 ?1749次閱讀
    <b class='flag-5'>如何將</b><b class='flag-5'>RT-Thread</b><b class='flag-5'>移植</b><b class='flag-5'>到</b>NXP MCUXPressoIDE上

    RT-Smart首次線下培訓,鎖定2024 RT-Thread開發者大會!

    2024年RT-Thread開發者大會將于12月21日正式拉開帷幕!本次大會以“開源共生商業共贏”為主題,RT-Thread攜手合作伙伴、客戶伙伴、行業專家,以及全球開發者,共同探索如何在開源
    的頭像 發表于 12-11 18:41 ?1487次閱讀
    <b class='flag-5'>RT-Smart</b>首次線下培訓,鎖定2024 <b class='flag-5'>RT-Thread</b>開發者大會!

    RT-Thread上CAN實踐

    開箱測試RT-Thread官方已完成了對英飛凌XMC7200EVK的移植,通過shell可以看到做好了uart3的console。本文介紹如何進行RT-ThreadCan
    的頭像 發表于 11-13 01:03 ?1920次閱讀
    <b class='flag-5'>RT-Thread</b>上CAN實踐

    開源共生 商業共贏 | RT-Thread 2024開發者大會報名啟動!

    親愛的RT-Thread開發者我們很高興地宣布,一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread開發者大會)正式啟動報名!2024RT-Threa
    的頭像 發表于 10-29 08:06 ?867次閱讀
    開源共生 商業共贏 | <b class='flag-5'>RT-Thread</b> 2024開發者大會報名啟動!

    Nordic-RT-Thread5.1.0移植筆記

    Nordic-RT-Thread5.1.0移植筆記
    的頭像 發表于 10-16 08:09 ?1148次閱讀
    Nordic-<b class='flag-5'>RT-Thread</b>5.1.0<b class='flag-5'>移植</b>筆記

    【成都】9月21日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:RT-Thread24年全球巡回培訓覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入式開發,以及和工程師們線下交流的絕佳機會
    的頭像 發表于 09-13 08:09 ?1434次閱讀
    【成都】9月21日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    如何在RT-thread studio的裸機例程上移植freertos?

    如何在RT-thread studio的裸機例程上移植freertos
    發表于 09-13 06:32

    【大連】9月7日RT-Thread巡回線下培訓-OpenMV機器視覺

    親愛的RT-Thread社區成員們:2024年RT-Thread全球開發者線下培訓拉開帷幕啦!24年全球巡回培訓覆蓋超10座城市及國家,為開發者提供一個深入學習RT-Thread嵌入
    的頭像 發表于 09-01 08:02 ?3044次閱讀
    【大連】9月7日<b class='flag-5'>RT-Thread</b>巡回線下培訓-OpenMV機器視覺

    【QEMU系列】不用開發板運行RT-Thread指南-ARM架構

    成為一個門檻。本文詳細介紹如何在QEMU虛擬機的Vexpress-A9平臺上運行RT-Thread,幫助開發者在沒有實際硬件開發板的情況,輕松體驗和學習RT-Th
    的頭像 發表于 08-09 08:35 ?1458次閱讀
    【QEMU系列】不用開發板運行<b class='flag-5'>RT-Thread</b>指南-ARM架構

    2024 RT-Thread全球巡回 線下培訓火熱來襲!

    親愛的RT-Thread社區成員們:我們非常高興地宣布,2024年RT-Thread全球開發者線下培訓即將拉開帷幕!24年全球巡回培訓覆蓋超10座城市及國家,為開發者提供一個深入學習RT-T
    的頭像 發表于 08-07 08:35 ?2434次閱讀
    2024 <b class='flag-5'>RT-Thread</b>全球巡回 線下培訓火熱來襲!

    【好書推薦】RT-Thread設備驅動開發指南

    近年來國內芯片產業和物聯網產業的快速崛起,行業發展迫切需要更多人才,尤其需要掌握嵌入式操作系統等底層技術的人才。隨著RT-Thread被更廣泛地應用于行業中,開發者對嵌入式驅動開發的需求越來越
    的頭像 發表于 08-01 08:35 ?1174次閱讀
    【好書推薦】<b class='flag-5'>RT-Thread</b>設備驅動開發指南

    RT-Thread 新里程碑達成——GitHub Star 破萬!

    RT-Thread實時操作系統開源項目在GitHub上的star數量突破一萬!截止發文,RT-Thread作為實時操作系統在業界Star數量排名第一!倉庫地址:https://github.com
    的頭像 發表于 07-04 08:35 ?712次閱讀
    <b class='flag-5'>RT-Thread</b> 新里程碑達成——GitHub Star 破萬!

    lvgl移植RT-Thread Nano后進入硬件錯誤中斷的原因?

    使用的是RT-Thread Nano的最新版,第一次移植,不知道是不是因為這個lvgl只能移植標準版里? 嘗試過給lvgl的線程分配更大的棧,但是依舊會卡死在硬件錯誤中斷里。但只要把
    發表于 07-04 07:40

    基于 RT-Thread專業版的EtherCAT主站方案

    (一)方案介紹本方案基于RT-Thread專業版,在RT-Thread端集成EtherCAT主站協議,通過EtherCAT對伺服電機或遠程IO進行實時控制,具備傳輸速度快,實時性高,擴展設備靈活等
    的頭像 發表于 06-19 08:35 ?1701次閱讀
    基于 <b class='flag-5'>RT-Thread</b>專業版的EtherCAT主站方案
    主站蜘蛛池模板: 色吊丝中文字幕 | 久久久久免费观看 | 久久亚洲视频 | 中文字幕一区二区三区5566 | 2021日本三级理论影院 | 特黄特a级特别特级特毛片 特黄特色大片免费播放路01 | 天天综合欧美 | 特别毛片 | 色最快国产 | 8050午夜网 | 日韩一级欧美一级在线观看 | 在线视频亚洲一区 | 六月综合网 | 亚洲三级小视频 | 亚洲激情视频 | 99涩涩| 色的视频网站 | 久久久久大香线焦 | 亚洲婷婷综合网 | 网站毛片| 夜夜爱夜夜做 | 99久久国产免费中文无字幕 | 国产在线97色永久免费视频 | 天天天天添天天拍天天谢 | 欧美三级一区 | 性做久久久久久网站 | 天天澡天天摸天天添视频 | 亚洲伦理一区 | 人人搞人人干 | 久久女人网| 国产大片91精品免费观看不卡 | 午夜日韩在线 | 99久久99久久久99精品齐 | 天天射天天射天天干 | 欧美一级黄色影片 | 久久国产免费福利永久 | 91大神免费视频 | 成年男人午夜片免费观看 | 男啪女色黄无遮挡免费视频 | 国产美女视频黄a视频全免费网站 | 97夜夜操 |