如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?

rt_thread_smart移植步骤总结(基于imx6ull开发板) 计算偏移地址=内核虚拟地址初始地址(固定值)- 内存物理地址初始值(查找芯片手册)修改偏移地址:配置环境后进入imx6ull文件夹menuconfig命令修改The offset of kernel physical address and virtural address为0xC000 0000指定通用中断控制器地址,imx6ull的内存为512M,转换为十六进制位为512*1024*1024-1= 阅读详情

RT-Thread Smart 系列连载

序号内容
1《当“树莓派”遇上RT-Thread Smart——应用编程入门》
2《RT-Thread Smart和树莓派:wget & cURL网络客户端》
3《如何把Linux工具里的“军刀”BusyBox移植到RT-Thread Smart?》
4sdl图形类应用
5

dropbear及ssh server应用

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}/../..
 9
10# 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
13
14# get src
15tar xjf ${APP_DIR}.tar.bz2
16cd ${APP_DIR}
17
18# patch Makefile
19patch -Np1 -i ../makefile.patch
20
21# get default config
22cp ../def_config .config
23
24make 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.114
3
4msh /> 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 等

你可以添加微信17775982065为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群!

???? 点击阅读原文进入RT-Thread官网

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell 准备工作: 硬件: imx-rt1021野火开发板; 野火EC20模块; 云服务器ECS(具有公网IP,我这里用阿里云服务器)。 软件: RT-Thread操作系统在开发板上移植完成; EC20 USB驱动移植完成; PPP和LwIP移植完成; 开发板上telnet驱动移植完成(跟RT-Thread软件包netutils源码略有不同); 无线网卡设备远程登录Te... 阅读详情

相关推荐

深入解析RT-Thread Smart的动态ELF加载机制:从原理到实践

本文深入剖析了RT-Thread Smart微内核操作系统的动态ELF加载机制。通过与RT-Thread Standard标准版的架构对比,阐述了其基于MMU实现用户态隔离、动态加载ELF文件的核心原理,并详细解析了从文件解析、内存映射到进程创建与上下文切换的完整流程,为嵌入式开发者提供了从理论到实践的全面指南。

weixin_29161719的博客 542

RT-Thread Smart 简介①开发工具

RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,简称为 rt-smart,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间(32 位系统上是 4G 的独立地址空间)。RT-Thread Smart 源码位于 rt-thread 仓库 的 rt-smart 分支上。下载 rt-thread 源码后,需要切换到 rt-smart 分支上使用。

华为奋斗者精神 2902

smart-build是一款基于xmake实现的类buildroot的交叉构建系统,用于RT-ThreadSmart开源操作系统

smart-build 是一款基于 xmake 实现的类 buildroot 的交叉构建系统,用于 RT-Thread Smart 开源操作系统。可以编译基础的软件包(调用xmake & xrepo的方式),构建出基本的应用程序,并输出相关文件到根文件系统文件夹下。支持两种以上架构的编译工具链,目前支持: arm、aarch64;支持不同版本的软件包;支持 release/debug 模式编译;支持按静态库模式编译,支持按动态库模式编译;支持在最终输出到根文件系统时 strip 掉多余的符号信息;

[嵌入式系统-47]:RT-Thread -三种不同版本(Nano版本、标准版版本、Smart版本),展现了RTT三种不同的演化阶段,三种不同的应用场合

因此,随着时间的推移,嵌入式系统开始逐渐采用操作系统,如嵌入式 Linux、FreeRTOS、Micrium OS等,以提供更高级的抽象和功能,同时降低开发和维护的成本。用户程序在执行过程中如果需要操作系统的服务,就会触发从用户态到内核态的切换,以便访问操作系统提供的功能和资源。总的来说,RT-Thread Smart版本操作系统通过用户与内核的隔离和多进程间的隔离,提供了更加安全、稳定和灵活的系统架构,适用于对安全性和可维护性要求较高的应用场景。在早期,嵌入式系统通常是为了执行特定的任务而设计的,这些。

文火冰糖(王文兵)的博客 4530

绕过ROS2!在RDK X5上直接用Python调用海康相机C++ SDK的避坑指南

本文详细介绍了在RDK X5上绕过ROS2,直接使用Python调用海康相机C++ SDK的轻量化方案。通过Cython构建Python绑定,提取海康相机SDK核心组件,实现高效图像采集。文章涵盖环境准备、Cython接口设计、编译系统配置及性能优化技巧,特别适合ARM64平台开发者。

weixin_33712987的博客 248

深入解析Android SoundTrigger架构:从HIDL到AIDL的演进与实践

本文深入解析Android SoundTrigger架构,从HIDL到AIDL的演进与实践。SoundTrigger是Android系统中低功耗语音唤醒的关键技术,通过分层设计和硬件协同实现高效语音识别。文章详细介绍了核心组件、HIDL与AIDL的对比及优化技巧,帮助开发者掌握语音模型优化和功耗管理。

brown的博客 230

RT-Thread各版本简介及架构介绍

架构:RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。架构:支持架构:ARM:Cortex M0/ M3/ M4/ M7 等、RISC-V 及其他。功能:线程管理、线程间同步与通信、时钟管理、中

小超嵌入式笔记 7031

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 480

RT-Thread Smart 用户态开发体验

自 V5.0.0 起,rt-smart 分支已合并至 master 分支上,下载 rt-thread 源码后,无需再切换至 rt-smart 分支,但需要为 BSP 配置 Smart 内核。RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间。RT-Thread Smart 在硬件平台的基础上通过 MMU、系统调用的方式把整个系统分成了内核态及用户态。进入 userapps, 配置环境变量。

ErikChan的博客 1225

Clang Static Analyzer 使用教程:本地 + CMake + GitHub Actions 自动静态分析实战

本文介绍了ClangStaticAnalyzer静态代码分析工具的使用方法。该工具基于Clang/LLVM,可检测C/C++代码中的内存泄漏、空指针等常见错误。主要内容包括:安装指南(Ubuntu/macOS/Windows)、命令行使用方法、CMake项目集成方案、GitHub Actions自动化分析配置,以及HTML报告生成与查看。文章还提供了官方资源链接,帮助开发者系统掌握从本地调试到持续集成的完整静态分析工作流,提升代码质量保障能力。适用于需要在开发过程中实施静态分析的C/C++项目。

u014358031的博客 2156

DSH-Work:一个让DeepSeek下载即用的Harness客户端

使用大模型工具时,环境配置往往比模型本身更让人头疼。DeepSeek Harness作为一类封装层,将模型调用、上下文管理、参数控制等复杂细节统一收拢,对外提供简洁操作入口。开源的DSH-Work正是这样一款Harness客户端,它通过自带运行时与保守默认配置,实现了下载即用、免配环境的目标,让使用者无需掌握Python、CUDA等专业知识即可快速连接DeepSeek云端或本地服务。对于非技术背景的用户,它降低了AI工具的使用门槛;对于开发者,它把时间从环境排错中解放出来,更专注于提示词调优与工作流设计。无

weixin_29048309的博客 340

RT-Thread系列01——新建工程及工程目录

RT-Thread系列,创建工程及工程配置。

32Haozi 1923

使用Gitlab 搭建私有镜像仓库(外置Nginx)

为了让团队尽快使用Gitlab的CI进行工作,必须做好Gitlab的初始化工作,大家都知道拉取镜像由于某些原因,会比较慢,因此构建自己的私有镜像仓库就成为了关键的一步。当然私有镜像仓库的搭建有很多种方式,这里直接使用Gitlab提供的镜像仓库功能。一揽子解决方案比较香。gitlab真的越来越好用了,有了这个镜像仓,也没必要再使用三方的镜像仓库了。Devops 真好用!

网尘的技术专栏 1829

RT-Thread Smart 上手指南

RT-Thread Smart(简称rt-smart)是基于RT-Thread操作系统衍生的新分支,面向带MMU,中高端应用的芯片,例如ARM Cortex-A系列芯片,MIPS芯片,带...

FILLMOREad的博客 2万+

开源数字人、虚拟直播部署教程

对,你无看错,是欧美的。在直播带货案例里,我们把模型导入到ue4,我们给模型在ue4里预设了四个动作(站着、站着说话、坐着、坐着说话),三个表情(平静、开发、愤怒),三个镜头(全局、近矩说话、看显示器播放商品展示)。我们只需要把目标主播的直播给录制下来,提取样本数据,然后训练一个从粉丝的不同刺激的组合,到主播的不同响应方式的多元逻辑回归的数学模型参数即可。

南七小僧的学海无涯 4558

【OpenClaw从入门到精通】第26篇:从0到1构建OpenClaw二次发行版——企业专属AI平台实战指南(2026实测)

本文基于OpenClaw 2026.3.7开源内核,聚焦企业级AI平台的二次发行构建,从技术原理、实操流程到商业落地提供完整方法论。核心围绕“内核层-能力层-产品层”三层架构,详解源码编译、私有化部署、企业级特性开发(数据合规、国产化适配、业务系统集成)、产品化包装等关键步骤,并通过审计行业“智审助手”虚拟实战案例具象化落地路径。文章兼顾新手入门与进阶提升,提供可直接复用的代码、配置文件及执行结果,解决企业对AI Agent“开箱即用”“数据不出域”“业务适配”的核心诉求,助力开发者快速打造企业专属AI平台

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 710

探索新升级!在 ART-Pi Smart 体验 RT-Thread Smart v5.1.0

1.引言RT-Thread Smart v5.1.0 已经正式发布。这一版本在内核和功能上做了大量的改进与增强。我们可以在ART-Pi Smart开发板尽情探索这一新版更完善更强大的RT-Thread Smart操作系统。ART-Pi Smart开发板搭载了米尔科技的i.MX6ULL核心板,硬件设计和制作由韦东山团队完成,整体的BSP板级支持包由社区完成。这是首个运行 RT-Thread Smar...

rtthreadiotos的博客 1631

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

迅为RK3568开发板Busybox制作最小文件系统编译busybox

我们指定的“../system”目录里面,安装二进制文件到“../system”目录,如下图,输入命令“ make。至此我们由 busybox 制作的文件系统就制作好了。但是还需要一些步骤来对该文件系统进行完善。执行“make”进行编译,编译完成,接下来我们需要把编译生成的“二进制文件”安装到刚才。交叉编译需要根据自身情况,选择不同的编译器。以上选用的编译器用于编译。iTOP-RK3568 开发板。

mucheni的博客 749

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

RTOS专栏(一) —— rt-thread简单介绍和qemu使用

RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统(RTOS),具有完全的自主知识产权。支持多任务,任务和任务之间的调度通过任务调度器来实现,(实际上一个处理器核心在某一时刻只能处理一个任务,通过任务调度器看起来像一次性处理多个任务),在rt-thread中,任务是通过线程来实现的;RT-Thread 系统完全开源,遵循 Apache License 2.0 开源许可协议,可以免费在商业产品中使用,并且不需要公开私有代码,没有潜在商业风险。

weixin_37620587的博客 2842

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

[嵌入式系统-33]:RT-Thread -18- 新手指南:三种不同的版本、三阶段学习路径

RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,但允许多个任务同时运行并不意味着处理器在同一时刻真的执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务由于每次对一个任务的执行时间很短、任务与任务之间通过任务调度器进行非常快速地切换(调度器根据优先级决定此刻该执行的任务)所以给人造成多个任务在一个时刻同时运行的错觉。

文火冰糖(王文兵)的博客 3441

嵌入式图形解决方案升级!RT-Thread Smart成功支持ARM Mali GPU

睿赛德科技今日宣布,其微内核操作系统 RT-Thread Smart(简称:rt-smart)已支持Arm® Mali™ GPU,为实时操作系统在汽车、消费电子等GUI应用领域提供一个新的高性能图形解决方案。现今,高性能的 GPU 在车载仪表盘、环视控制器等GUI领域的应用越来越广泛。通过在高可靠性的实时系统上提供高性能的图形支持,车厂将能使用行业标准的 OpenGL ES 图形 API 进行开发...

rtthreadiotos的博客 2032

soem主站移植到rt thread smart操作系统

soem主站移植到rt thread smart操作系统

cln512的博客 5542

RT-Thread Standard与Smart版本深度解析:如何选择适合你的嵌入式操作系统

本文深度解析了RT-Thread Standard与Smart两个版本的核心差异。RT-Thread Standard面向资源受限的MCU,追求极致精简与实时性;而RT-Thread Smart则为带MMU的处理器设计,提供进程隔离与动态加载能力。文章通过技术对比与实战指南,帮助开发者根据硬件、实时性、安全性和扩展性需求,选择最适合的嵌入式操作系统版本。

weixin_29191081的博客 374

RT-Thread Standard与Smart版本深度对比:如何选择适合你的嵌入式开发方案?

本文深入对比了RT-Thread Standard与Smart两大版本的核心差异。Standard版采用紧密耦合的一体化架构,适合资源受限、功能固定的传统MCU开发;而Smart版引入内核与用户空间分离的微内核架构,提供更强的隔离性、安全性和模块化开发体验,但需要硬件支持MMU。文章从架构、内存管理、开发模式及性能等多维度剖析,并提供了基于硬件、项目复杂度与安全需求的清晰选择指南。

hp777的博客 529
上一篇: STM32的“GPU”——DMA2D实例详解
下一篇: 【AI简报20210702期】骁龙888 plus发布、RISC-V处理器大飞跃
RT-Thread物联网操作系统
博客等级 码龄6年 2万+粉丝 392原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值