news 2026/3/29 19:34:49

Buildroot系统adb环境下-各种命令结果乱码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Buildroot系统adb环境下-各种命令结果乱码

记录一次Buildroot系统adb环境下-各种命令结果乱码

文章目录

  • 前言-需求-场景
  • 一、实际效果-问题
  • 二、解决方案
  • 三、修改后效果
  • 四、知识点扩展
    • 1、核心概念与特点
      • 自动化构建:
      • 高度可定制与精简:
      • 生成完整镜像:
      • 不用于通用桌面/服务器发行版:
    • 2、主要组件(它帮你构建了什么)
    • 3、与 Yocto / OpenEmbedded 的对比
  • 总结

前言-需求-场景

  • 自己玩开发板,学习Linux系统知识点,用的是讯为开发板。
  • 自己在Windows 电脑上按照虚拟机,编译讯为提供的RK-Linux 源码来编译Buildroot 系统进行Linux 驱动学习
  • 编译好固件,烧录到RK主板上。adb shell 进入系统adb 环境

一、实际效果-问题

发现问题
命令返回结果都出现了乱码 、命令回车也会乱码、有符号,如下:


二、解决方案

这样导致自己无法正常输入命令和查看实际结果,非常不方便,就是无法开发了。

如下解决方案,大家可以尝试一下。

# 临时解决 ls-l--color=never # 永久解决(添加到~/.bashrc 或/etc/profile) echo"alias ls='ls --color=never'">>/etc/profile source/etc/profile

如果零时解决,效果如下:

三、修改后效果


四、知识点扩展

对于初学者来说,都没法理解Buildroot,它是做什么的都不知道。 我们只知道 ubuntu/Hot Red 服务器等基础知识点,这里顺便讲解下,方便自己理解。

Buildroot 是一个嵌入式 Linux 系统构建工具。它的核心功能是自动化、简化从零开始构建一个完整的、可启动的嵌入式 Linux 系统的过程。

你可以把它想象成一个高度定制化的“Linux 系统工厂”。

1、核心概念与特点

自动化构建:

  • 从源码开始,自动下载、配置、编译、安装。

  • 包含 交叉编译工具链(在性能强大的开发主机上,编译出能在目标嵌入式设备上运行的程序)、Linux 内核、根文件系统(包含所有库和应用程序)。

高度可定制与精简:

  • 采用 菜单配置界面(类似 Linux 内核的 make menuconfig),允许你精确选择需要的每一个软件包(如 Busybox、Dropbear、Qt5 等)、库和功能。

  • 最终生成的系统只包含你明确选择的东西,没有多余软件,因此体积可以非常小(小到几兆字节),非常适合资源受限的嵌入式设备。

生成完整镜像:

最终输出是可直接烧写到设备存储中的完整系统镜像,例如:

  • rootfs.tar(根文件系统归档)

  • sdcard.img(可直接写入 SD 卡或 eMMC 的磁盘映像)

  • 内核镜像、引导加载程序等。

不用于通用桌面/服务器发行版:

与 Ubuntu、Debian、OpenWrt 不同,Buildroot 不提供包管理机制。系统构建完成后,如果想增删软件,通常需要重新配置并完整构建整个系统。它的目标是生成一个固定的、针对特定应用的固件。

2、主要组件(它帮你构建了什么)

一个由 Buildroot 构建的典型系统包含:

  • 交叉编译工具链:构建过程的第一步,或使用预制的工具链。

  • Bootloader:如 U-Boot、GRUB(可选,也可用现成的)。

  • Linux 内核:包含你为特定硬件选择的驱动和配置。

  • 根文件系统:

核心工具:通常使用Busybox(一个集成了数百个常用Unix命令的单一精简可执行文件)。C库:如 glibc、musl(更小)、uclibc-ng。 用户所需的应用程序和库:如Web服务器、数据库、图形界面库、自定义业务程序等。
  • 根文件系统类型:可以生成 ext4、jffs2、squashfs 等多种格式,以适应不同的存储介质

3、与 Yocto / OpenEmbedded 的对比

这是嵌入式 Linux 领域另一个著名的构建框架。

特性BuildrootYocto / OpenEmbedded
核心目标简单、快速地构建固定的嵌入式系统。高度灵活、可扩展,用于构建复杂的、可维护的 Linux 发行版。
复杂度相对简单,学习曲线平缓。非常强大和复杂,学习曲线陡峭。
包管理无。系统构建后无法动态更新单个包。有完整的包管理系统(如 rpm、ipk),支持运行时安装、升级、移除软件包。
构建时间通常更快,因为工具链和包的选择更直接。首次构建极慢(需要构建自己的工具链和一切),但增量构建和 SDK 生成能力强。
适用场景产品功能相对固定,需要快速迭代出单一固件的中小项目。产品线复杂,需要为多种硬件平台生成不同变体,且需要长期维护和分发包的大型项目。
配置界面主要使用 make menuconfig。使用 BitBake 食谱文件(.bb 文件)和层(layers)来管理元数据。

简单比喻:

  • Buildroot 像一家精品餐厅,为你精心制作一道固定的套餐。好吃、高效,但菜品不可拆分。

  • Yocto 像一个大型食品工业园,拥有全套生产线和供应链,可以按需生产各种食品并配送到各处。


总结

  • 环境是开发的前提
  • 这里自己是通过AI 搜索,多次尝试的,最终解决
  • 如果遇到类似问题,可以借鉴,但是不同系统可能命令不一致,需要针对性看。
  • 理解Buildroot 是做什么的,我们为什么学习它
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/25 16:02:53

Paraformer处理速度只有3x实时?GPU升级到RTX 4090性能提升实测

Paraformer处理速度只有3x实时?GPU升级到RTX 4090性能提升实测 1. 引言:我们真的需要更快的语音识别吗? 你有没有遇到过这种情况:录了一段5分钟的会议音频,上传到系统后,等了将近一分钟才出结果。虽然已经…

作者头像 李华
网站建设 2026/3/17 1:03:47

如何持续、安全地向大模型注入新知识?

向大模型持续、安全地注入新知识,核心是解决“知识时效性更新”与“原有能力保护”的平衡问题,同时规避过拟合、事实偏差、灾难性遗忘等风险。需结合参数更新、非参数补充、安全管控三大体系,形成全流程解决方案。 一、核心技术路径&#xf…

作者头像 李华
网站建设 2026/3/26 16:08:49

服务器断开连接还能运行?nohup命令的作用解析

服务器断开连接还能运行?nohup命令的作用解析 在使用AI系统或任何长时间运行的服务时,你可能遇到过这样的困扰:通过SSH连接到远程服务器启动了一个程序,但一旦关闭终端或者网络中断,程序就自动停止了。明明计算任务还…

作者头像 李华
网站建设 2026/3/29 9:55:04

如何提升YOLO11训练速度?数据加载优化实战教程

如何提升YOLO11训练速度?数据加载优化实战教程 YOLO11 是当前目标检测领域中极具代表性的新一代模型,延续了 YOLO 系列“快速、准确、轻量”的核心优势,并在架构设计、特征提取与多尺度融合方面进行了深度优化。相比前代版本,它在…

作者头像 李华
网站建设 2026/3/27 0:53:04

ms-swift实战应用:打造专属AI助手只需一个脚本

ms-swift实战应用:打造专属AI助手只需一个脚本 1. 引言:为什么你需要一个定制化的AI助手? 你有没有想过,拥有一个完全属于自己的AI助手是什么体验?它不仅知道你是谁、理解你的表达习惯,还能在你写文案时给…

作者头像 李华
网站建设 2026/3/26 21:09:18

Z-Image-Turbo部署避坑:系统盘重置会丢失权重

Z-Image-Turbo部署避坑:系统盘重置会丢失权重 你兴冲冲地在CSDN算力平台拉起一台搭载RTX 4090D的GPU实例,选中「集成Z-Image-Turbo文生图大模型(预置30G权重-开箱即用)」镜像,点击部署——5分钟后终端亮起&#xff0c…

作者头像 李华