当前位置: 首页 > news >正文

ubuntu主机搭建sysroot交叉编译环境

ubuntu主机搭建sysroot交叉编译环境

主机是 ubuntu22.04 x86-64

hostubuntu22.04
host-archx86-64
host-cpui9-13900k

目标板是香橙派5b ,ubuntu22.04,aarch64 ,cpu rk3588s

targetubuntu22.04
target-archaarch64
target-cpurk3588s

安装 qemu-user-static

进入 chroot 环境,必须的仿真环境 qemu-user-static

sudo apt-get update
sudo apt-get install qemu-user-static

复制一份目标镜像,用于交叉编译开发环境

sudo dd if=Orangepi5b_1.0.8_ubuntu_jammy_desktop_xfce_linux6.1.43.img of=Orangepi5b.img bs=4M status=progress

扩大镜像

sudo qemu-img resize Orangepi5b.img +40G

你已经成功地扩展了 .img 文件的大小,但还需要调整分区表以利用新增的空间:

1. 映射 .img 文件

.img 文件重新映射到环回设备:

sudo losetup -P /dev/loop21 Orangepi5b.img

2. 使用 fdisk 扩展分区

  1. 打开 fdisk

    sudo fdisk /dev/loop21
    
  2. 打印当前分区表

    • 输入 p 查看当前分区表。
  3. 删除最后一个分区

    • 输入 d 删除分区,选择分区号 2(即 Orangepi5b.img2)。
  4. 创建新的分区

    • 输入 n 创建新的主分区。
    • 选择分区号 2。
    • 回车,使用默认的起始扇区。
    • 回车,接受默认值,结束扇区设置为最大。
  5. 保存并退出

    • 输入 w 保存更改并退出 fdisk

3. 检查并修复文件系统

使用 e2fsck 检查并修复文件系统,刚才的分区2:

sudo e2fsck -f /dev/loop21p2

4. 扩展文件系统

使用 resize2fs 扩展文件系统:

sudo resize2fs /dev/loop21p2

5. 挂载文件系统,进入 chroot 环境:

挂载文件系统:

sudo mount /dev/loop21p2 /media/wmx/opi_root
sudo mount --bind /proc /media/wmx/opi_root/proc
sudo mount --bind /sys /media/wmx/opi_root/sys
sudo mount --bind /dev /media/wmx/opi_root/dev
sudo mount --bind /dev/pts /media/wmx/opi_root/dev/pts

将 QEMU 的静态二进制文件拷贝到目标文件系统中

sudo cp /usr/bin/qemu-aarch64-static /media/wmx/opi_root/usr/bin/

进入 chroot 环境

sudo chroot /media/wmx/opi_root /bin/bash

6. 检查可用空间

chroot 命令行:

root@wmx-pc:/home/orangepi/workspace# df -h
文件系统          大小  已用    可用  已用% 挂载点
/dev/loop21p2    47G  6.8G   39G   16%  /

成功地扩展分区并调整文件系统,从而在 chroot 环境中创建工作空间

7 搭建工作环境

下载llvm aarch64架构的编译工具链,复制到工作空间中

主机命令行:

cp -rv LLVM-ET-Arm-19.1.1-Linux-AArch64.tar.xz /media/wmx/opi_root/workspace

复制main.cpp到工作空间中

主机命令行:

cp -rv main.cpp /media/wmx/opi_root/workspace

其中main.cpp:

#include <iostream>
using namespace std;
int main(){std::cout<<"Hello World!";return 0;
}

chroot 命令行:

cd /home/orangepi/workspace
export PATH=$PATH:/home/orangepi/workspace/LLVM-ET-Arm-19.1.1-Linux-AArch64/bin# 编译
clang++ -I/usr/include/c++/11 -I/usr/include/aarch64-linux-gnu/c++/11   -L/usr/lib/gcc/aarch64-linux-gnu/11/  main.cpp -o main

运行,验证是aarch64程序

root@wmx-pc:/home/orangepi/workspace# ./main 
Hello World!
root@wmx-pc:/home/orangepi/workspace# file main
main: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, not stripped

8 退出 chroot

chroot 命令行:

exit

9 关闭所有挂载点

sudo umount /media/wmx/opi_root/proc
sudo umount /media/wmx/opi_root/sys
sudo umount /media/wmx/opi_root/dev/pts
sudo umount /media/wmx/opi_root/dev
sudo umount /media/wmx/opi_root
sudo losetup -d /dev/loop21

相关文章:

ubuntu主机搭建sysroot交叉编译环境

ubuntu主机搭建sysroot交叉编译环境 主机是 ubuntu22.04 x86-64 hostubuntu22.04host-archx86-64host-cpui9-13900k 目标板是香橙派5b &#xff0c;ubuntu22.04,aarch64 ,cpu rk3588s targetubuntu22.04target-archaarch64target-cpurk3588s 安装 qemu-user-static 进入 …...

Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码...

全文链接&#xff1a;https://tecdat.cn/?p38195 股票市场在经济发展中占据重要地位。由于股票的高回报特性&#xff0c;股票市场吸引了越来越多机构和投资者的关注。然而&#xff0c;由于股票市场的复杂波动性&#xff0c;有时会给机构或投资者带来巨大损失。考虑到股票市场的…...

实验三 JDBC数据库操作编程(设计性)

实验三 JDBC数据库操作编程&#xff08;设计性&#xff09; 实验目的 掌握JDBC的数据库编程方法。掌握采用JDBC完成数据库链接、增删改查&#xff0c;以及操作封装的综合应用。实验要求 本实验要求每个同学单独完成&#xff1b;调试程序要记录调试过程中出现的问题及解决办法…...

各种环境换源教程

目录 pip 换源相关命令永久换源1. 命令行换源2. 配置文件换源 临时换源使用官方源使用镜像源 报错参考 npm换源相关命令永久换源1. 命令行换源2. 配置文件换源 pip 换源 相关命令 更新 pip 本身 首先&#xff0c;为了确保你使用的是最新版本的 pip&#xff0c;可以通过以下命…...

Rust项目中的Labels

姊妹篇: Go项目中的Labels 按照issue数量从多到少排序: https://github.com/rust-lang/rust/labels?page2&sortcount-desc https://github.com/rust-lang/rust/labels/A-contributor-roadblock 第1页: 标签/中文说明数字T-compiler/编译器Relevant to the compiler tea…...

Jmeter的安装和使用

使用场景&#xff1a; 我们需要对某个接口进行压力测试&#xff0c;在多线程环境下&#xff0c;服务的抗压能力&#xff1b;还有就是关于分布式开发需要测试多线程环境下数据的唯一性。 解决方案: jmeter官网连接&#xff1a;Apache JMeter - Apache JMeter™ 下载安装包 配…...

初识Electron 进程通信

概述 Electron chromium nodejs native API&#xff0c;也就是将node环境和浏览器环境整合到了一起&#xff0c;这样就构成了桌面端&#xff08;chromium负责渲染、node负责操作系统API等&#xff09; 流程模型 预加载脚本&#xff1a;运行在浏览器环境下&#xff0c;但是…...

go语言中的通道(channel)详解

在 Go 语言中&#xff0c;通道&#xff08;channel&#xff09; 是一种用于在 goroutine&#xff08;协程&#xff09;之间传递数据的管道。通道具有类型安全性&#xff0c;即它只能传递一种指定类型的数据。通道是 Go 并发编程的重要特性&#xff0c;能够让多个 goroutine 之间…...

【JS】内置类型的相关问题

我是目录 引言内置类型undefined与nullnull和undefined的区别字符串转换为字符串数字0.1+0.2不等于0.3NaNBigInt大数相加问题原生函数(封箱与解封)判断类型的方法typeofinstanceofObject.prototype.toString.callconstructor类型转换toStringtoNumbertoBoolean显式强制类型转…...

Mac上无法访问usr/local的文件

sudo chmod 755 /usr/loca 最后用百度提供的方法解决了...

http 常见状态码

1xx 信息&#xff0c;表示临时响应并需要请求者继续执行操作 2xx 成功&#xff0c;操作被成功接收并处理 3xx 表示要完成请求&#xff0c;需要进一步操作。通常&#xff0c;这些状态码用来重定向 4xx 客户端错误&#xff0c;请求包含语法错误或无法完成请求 5xx 服务…...

代码训练营 day59|并查集

前言 这里记录一下陈菜菜的刷题记录&#xff0c;主要应对25秋招、春招 个人背景 211CS本CUHK计算机相关硕&#xff0c;一年车企软件开发经验 代码能力&#xff1a;有待提高 常用语言&#xff1a;C 系列文章目录 第59天 &#xff1a;第十一章&#xff1a;图论part05 文章目录…...

Node.js——fs模块-路径补充说明

1、相对路径&#xff1a; ./座右铭.txt 当前目录下的座右铭.txt座右铭.txt 等效于上面的写法../座右铭.txt 当前目录的上一级目录中的座右铭.txt 2、绝对路径 D&#xff1a;/Program File Windows系统下的绝对路径/usr/bin Linux系统…...

华为ENSP--ISIS路由协议

项目背景 为了确保资源共享、办公自动化和节省人力成本&#xff0c;公司E申请两条专线将深圳总部和广州、北京两家分公司网络连接起来。公司原来运行OSFP路由协议&#xff0c;现打算迁移到IS-IS路由协议&#xff0c;张同学正在该公司实习&#xff0c;为了提高实际工作的准确性和…...

论软件可靠性设计及其应用

摘要 2023 年 3 月&#xff0c;我所在的公司承接了某智慧加油站平台的建设工作。该项目旨在帮助加油站提升运营效率、降低运营成本和提高销售额。我在该项目中担任系统架构设计师&#xff0c;负责整个项目的架构设计工作。 本文结合我在该项目中的实践&#xff0c;详细论述了…...

Android中桌面小部件framework层使用到的设计模式

在Android中&#xff0c;桌面小部件&#xff08;App Widget&#xff09;的Framework层采用了多种设计模式&#xff0c;以实现模块化、可维护性和高效的交互。 以下是Android桌面小部件Framework层中常用的设计模式及其具体应用&#xff1a; 1. 观察者模式&#xff08;Observe…...

【JavaEE进阶】HTML

本节⽬标 认识 HTML 的基本结构, 学习常⽤的 HTML 标签. 一 HTML基础 1.什么是HTML HTML(Hyper Text Markup Language), 超⽂本标记语⾔. 超⽂本: ⽐⽂本要强⼤. 通过链接和交互式⽅式来组织和呈现信息的⽂本形式. 不仅仅有⽂本, 还可能包含图⽚, ⾳频, 或者⾃已经审阅过它…...

ElasticSearch 添加IK分词器

ElasticSearch 添加IK分词器 前言一、IK分词器的算法二、Ik分词器的下载安装&#xff08;Winows 版本&#xff09;三、Ik分词器的下载安装&#xff08;Linux 版本&#xff09;四、验证测试&#xff08;postman工具&#xff09;测试 ik_smart 分词算法测试 ik_max_word 分词算法…...

可视化建模与UML《顺序图实验报告》

旷野的规则是永不回头。 一、实验目的&#xff1a; 1、熟悉顺序图的构件事物。 2、熟悉发送者与接受者的关系 3、熟练掌握描绘顺序图 4、加深对顺序图的理解和应用能力 二、实验环境&#xff1a; window7 | 10 | 11 EA15 三、实验内容&#xff1a; 据如下描述绘制顺序图&…...

Mac的极速文件搜索工具,高效管理文件

Mac的资源管理可以说是许多转Mac的朋友用不明白的一点了&#xff0c;访达怎么用&#xff0c;文件怎么找&#xff0c;为什么找不到&#xff0c;非常的头大 All作为Mac上的极速文件搜索管理工具&#xff0c;有效的为文件查找困难的用户解决难题 基于极速搜索引擎&#xff0c;快…...

DOM 浏览器

DOM 浏览器 引言 DOM(文档对象模型)是浏览器中处理HTML和XML文档的标准方式。它允许开发人员通过编程方式访问和操作网页内容。本文将详细介绍DOM的概念、其在浏览器中的运用以及相关的编程技巧。 DOM简介 什么是DOM? DOM(Document Object Model)是一种跨平台和语言独…...

私有化部署智能助手:基于开源项目smarty-gpt的本地化AI对话平台搭建指南

1. 项目概述&#xff1a;当智能助手遇上本地化部署最近在折腾一个挺有意思的开源项目&#xff0c;叫citiususc/smarty-gpt。乍一看名字&#xff0c;你可能觉得这又是一个基于GPT的聊天机器人&#xff0c;没什么新意。但如果你深入了解一下&#xff0c;就会发现它的定位非常独特…...

深度学习表示学习:特征学习与迁移学习

深度学习表示学习&#xff1a;特征学习与迁移学习 1. 技术分析 1.1 表示学习概述 表示学习是自动学习数据特征的过程&#xff1a; 表示学习层次原始数据 → 低级特征 → 中级特征 → 高级特征 → 任务预测关键:层次特征提取端到端学习迁移能力1.2 表示学习方法 方法特点监督程度…...

学生综合素质评价系统设计实现【附程序】

✨ 长期致力于综合素质评价、AHP层次分析、BP神经网络、遗传算法研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;三层指标体系构建与AHP动态权重分配&…...

VTube Studio完整指南:从零开始打造你的虚拟主播形象

VTube Studio完整指南&#xff1a;从零开始打造你的虚拟主播形象 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio 想要成为一名虚拟主播&#xff0c;却担心技术门槛太高&#xff1f;VTube St…...

GPT4All-Chat本地部署与性能优化深度解析

GPT4All-Chat本地部署与性能优化深度解析 【免费下载链接】gpt4all-chat gpt4all-j chat 项目地址: https://gitcode.com/gh_mirrors/gp/gpt4all-chat GPT4All-Chat是一款基于GPT-4架构的本地化AI对话应用&#xff0c;采用C和Qt框架构建&#xff0c;支持跨平台运行&…...

C++ 约束模板参数Concepts详解

一、Concepts的概念与用法1、概念是什么C Concepts 是 C20 引入的一套“模板参数约束机制”。它的核心作用是&#xff1a;明确描述模板参数必须满足什么能力让模板报错更早、更清晰让重载选择更符合直觉替代很多过去用 SFINAE、enable_if、检测惯用法硬凑出来的写法一句话理解&…...

087、机器人运动学:雅可比矩阵

087、机器人运动学:雅可比矩阵 一、一个让我熬夜三天的调试故事 去年做六轴协作机器人末端力控的时候,遇到一个诡异的问题:机器人末端在某个位姿下,明明关节速度指令给得很平滑,末端速度却突然跳变,导致力控震荡。当时我盯着示波器上的速度曲线,百思不得其解——运动学…...

STM32单片机如何用IRIG-B解码模块实现10ns级高精度授时(附完整驱动代码)

STM32单片机如何用IRIG-B解码模块实现10ns级高精度授时&#xff08;附完整驱动代码&#xff09; 在工业自动化、电力系统同步、通信基站等对时间精度要求苛刻的领域&#xff0c;微秒级甚至毫秒级的时钟同步已经无法满足需求。IRIG-B作为一种标准时间码格式&#xff0c;通过解码…...

TSL2561高精度光照传感器在可穿戴设备中的集成与应用指南

1. 项目概述&#xff1a;为可穿戴设备注入“视觉”在智能硬件和物联网项目里&#xff0c;让设备“看见”环境光&#xff0c;是实现人机环境智能交互的第一步。无论是根据环境亮度自动调节屏幕的智能手表&#xff0c;还是能感知昼夜变化自动调整工作模式的园艺监测设备&#xff…...