ubuntu 环境下soc 使用qemu
构建vexpress-a9的linux内核
安装依赖的软件
sudo apt install u-boot-tools
sudo apt install gcc-arm-linux-gnueabi
sudo apt install g++-arm-linux-gnueabi
sudo apt install gcc
#编译内核
下载 linux-5.10.14
linux-5.10.148.tar.gz
配置
sudo tar -xvf linux-5.10.148.tar.gz
cd linux-5.10.148.tar.gz
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig -j4
sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all
/**********************/ 得到编译文件:
arch/arm/boot/zImage
arch/arm/boot/dts/vexpress-v2p-ca9.dtb
qemu 启动linux内核
cd linux-5.10.148.tar.gz
sudo qemu-system-arm -M vexpress-a9 -m 128M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0"
# 这里注意文件的路径,是在linux-5.10.148源码目录执行的。
# -M vexpress-a9 模拟vexpress-a9单板,你能够使用-M ?參数来获取该qemu版本号支持的全部单板
# -m 128M 单板执行物理内存128M
# -kernel arch/arm/boot/zImage 告诉qemu单板执行内核镜像路径
# -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb 告诉qemu单板的设备树(必须加入)
# -nographic 不使用图形化界面,仅仅使用串口
# -append "console=ttyAMA0" 内核启动參数。这里告诉内核vexpress单板执行。串口设备是哪个tty。
如何退出qemu
ctrl + a 放开后,再按下x
构建busybox
下载 busybox-1.35.0
busybox-1.35.0
配置 编译 安装 busybox
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig #默认配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig # 配置菜单
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- # 编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install # 安装 busybox/_install
制作rootfs
cd rootfs
sudo cp -rfd ../busybox-1.35.0/_install/* .
sudo mkdir lib
sudo cp -p /usr/arm-linux-gnueabi/lib/* ./lib
静态创建设备文件
制作节点:
cd /rootfs
sudo mkdir dev
sudo mknod -m 666 tty1 c 4 1
sudo mknod -m 666 tty2 c 4 2
sudo mknod -m 666 tty3 c 4 3
sudo mknod -m 666 tty4 c 4 4
sudo mknod -m 666 console c 5 1
sudo mknod -m 666 null c 1 3
# ls
console null tty1 tty2 tty3 tty4
#cd /rootfs
# cp /etc . -arf
# ls
bin dev etc lib linuxrc sbin usr
制作镜像
制作SD卡文件系统镜像并将rootfs烧写到SD卡,生成镜像: count(镜像文件大小,根据实际情况设置,小了会报错)
dd if=/dev/zero of=rootfs.ext3 bs=1M count=64 //创建镜像文件rootfs.ext3 大小为64m
mkfs.ext3 rootfs.ext3 //格式化为ext3:共64M,注意必须大于rootfs文件夹的大小。建议用ext4,u-boot基本命令不支持ext3
挂载镜像文件拷贝rootfs内容
mount -t ext3 rootfs.ext3 /mnt/ -o loop //挂载镜像文件到 /mnt路径
sudo mount -t ext3 rootfs.ext3 /mnt/ -o loop
sudo cp -r rootfs/* /mnt
umount /mnt //卸载镜像文件
qemu 启动linux内核和跟文件系统
sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/ZImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 rw console=ttyAMA0" -sd /home/li/qemu/rootfs.ext3
相关文章:
ubuntu 环境下soc 使用qemu
构建vexpress-a9的linux内核 安装依赖的软件 sudo apt install u-boot-tools sudo apt install gcc-arm-linux-gnueabi sudo apt install g-arm-linux-gnueabi sudo apt install gcc#编译内核 下载 linux-5.10.14 linux-5.10.148.tar.gz 配置 sudo tar -xvf linux-5.10.1…...
Centos安装、迁移gitlab
Centos安装迁移gitlab 一、下载安装二、配置rb修改,起服务。三、访问web,个人偏好设置。四、数据迁移1、查看当前GitLab版本2、备份旧服务器的文件3、将上述备份文件拷贝到新服务器同一目录下,恢复GitLab4、停止新gitlab数据连接服务5、恢复备…...
【Python机器学习】朴素贝叶斯——使用Python进行文本分类
目录 准备文本:从文本中构建词向量 训练算法:从词向量计算概率 测试算法:根据现实情况修改分类器 准备数据:文档词袋模型 要从文本中获取特征,需要先拆分文本。这里的特征是来自文本的词条,一个词条是字…...
【linux】Shell脚本三剑客之grep和egrep命令的详细用法攻略
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
Spring条件装配:灵活配置你的应用
文章目录 摘要1. 条件装配概述1.1 什么是条件装配1.2 为什么需要条件装配 2. 使用Conditional注解2.1 Conditional注解简介2.2 编写自定义条件类2.3 应用Conditional注解 3. 内置的条件注解3.1 ConditionalOnClass3.2 ConditionalOnMissingBean3.3 ConditionalOnProperty 4. 使…...
【前端 08】简单学习js字符串
JavaScript中的String对象详解 在JavaScript中,字符串(String)是一种非常基础且常用的数据类型,用于表示文本数据。虽然JavaScript中的字符串是原始数据类型,但它们的行为类似于对象,因为JavaScript为字符…...
【LLM】-07-提示工程-聊天机器人
目录 1、给定身份 1.1、基础代码 1.2、聊天机器人 2、构建上下文 3、订餐机器人 3.1、窗口可视化 3.2、构建机器人 3.3、创建JSON摘要 利用会话形式,与具有个性化特性(或专门为特定任务或行为设计)的聊天机器人进行深度对话。 在 Ch…...
AvaloniaUI的学习
相关网站 github:https://github.com/AvaloniaUI/Avalonia 官方中文文档:https://docs.avaloniaui.net/zh-Hans/docs/welcome IDE选择 VS2022VSCodeRider 以上三种我都尝试过,体验Rider最好。VS2022的提示功能不好,VSCode太慢,…...
刷题——快速排序
【全网最清晰快速排序,看完快排思想和代码全部通透,不通透你打我!-哔哩哔哩】 https://b23.tv/8GxEKIk 代码详解如上 #include <iostream> using namespace std;int getPort(int* a, int low, int high) {int port a[low];while(low…...
VPN,实时数据显示,多线程,pip,venv
VPN和翻墙在本质上是不同的。想要真正实现翻墙,需要选择部署在墙外的VPN服务。VPN也能隐藏用户的真实IP地址 要实现Python对网页数据的定时实时采集和输出,可以使用Python的定时任务调度模块。其中一个常用的库是APScheduler。您可以编写一个函数&#…...
自然语言处理(NLP)
自然语言处理(NLP)是计算机科学与人工智能领域的一个重要研究方向,它致力于让计算机能够理解、分析、处理和生成人类语言。在NLP领域,存在着许多常见的任务,这些任务通常对应着不同的算法和技术。以下将详细列举几个NL…...
Spring Boot集成Spire.doc实现对word的操作
1.什么是spire.doc? Spire.Doc for Java 是一款专业的 Java Word 组件,开发人员使用它可以轻松地将 Word 文档创建、读取、编辑、转换和打印等功能集成到自己的 Java 应用程序中。作为一款完全独立的组件,Spire.Doc for Java 的运行环境无需安装 Micro…...
在Spring Boot中优化if-else语句
在Spring Boot中,优化if-else语句是提升代码质量、增强可读性和可维护性的重要手段。过多的if-else语句不仅会使代码变得复杂难懂,还可能导致代码难以扩展和维护。以下将介绍七种在Spring Boot中优化if-else语句的实战方法,每种方法都将结合示…...
【Django】开源前端库bootstrap,常用
文章目录 下载bootstrap源文件到本地项目引入bootstrap文件 官网:https://www.bootcss.com/V4版本入口:https://v4.bootcss.com/V5版本入口:https://v5.bootcss.com/ 这里使用成熟的V4版本,中文文档地址:https://v4.b…...
2024后端开发面试题总结
一、前言 上一篇离职贴发布之后仿佛登上了热门,就连曾经阿里的师兄都看到了我的分享,这波流量真是受宠若惊! 回到正题,文章火之后,一些同学急切想要让我分享一下面试内容,回忆了几个晚上顺便总结一下&#…...
opencascade AIS_Manipulator源码学习
前言 AIS_Manipulator 是 OpenCASCADE 库中的一个类,用于在3D空间中对其他交互对象或一组对象进行局部变换。该类提供了直观的操控方式,使用户可以通过鼠标进行平移、缩放和旋转等操作。 详细功能 交互对象类,通过鼠标操控另一个交互对象…...
Hadoop、Hive、HBase、数据集成、Scala阶段测试
姓名: 总分:Hadoop、Hive、HBase、数据集成、Scala阶段测试 一、选择题(共20道,每道0.5分) 1、下面哪个程序负责HDFS数据存储( C ) A. NameNode B. Jobtracher C. DataNode D. Sec…...
go语言day19 使用git上传包文件到github Gin框架入门
git分布式版本控制系统_git切换head指针-CSDN博客 获取请求参数并和struct结构体绑定_哔哩哔哩_bilibili (gin框架) GO: 引入GIn框架_go 引入 gin-CSDN博客 使用git上传包文件 1)创建一个github账户,进入Repositories个人仓…...
Ubuntu升级软件或系统
Ubuntu升级软件或系统 升级Ubuntu系统通常是一个相对简单的过程,但在进行操作之前,请务必备份重要数据以防万一。下面是升级Ubuntu系统的一般步骤: 使用软件更新工具升级系统 打开终端: 按下 Ctrl Alt T 组合键打开终端。 更…...
【Redis】Centos7 安装 redis(详细教程)
查看当前 Redis 版本: 当前的 redis 版本太老了,选择安装 Redis5。 一、使用 yum 安装 1、首先安装 scl 源 yum install centos-release-scl-rh 由于我之前已经安装过了,所以加载速度比较快,且显示已经安装成功,是最…...
从新手到老手:四类Ozon卖家选品工具选择指南
选品工具没有“最好”,只有“最匹配你当前阶段”。四类卖家,四种方案。市面上的Ozon选品工具,功能各有侧重。有的擅长给数据,有的擅长给结论,有的擅长管店铺。不同阶段的卖家,痛点不同,适合的工…...
Java基础全套教程(三)—— 控制语句、方法、递归算法
Java基础全套教程(三)—— 控制语句、方法、递归算法 本章是Java编程从基础语法走向逻辑编程的核心转折点。前面我们学习了变量、数据类型、运算符,只能实现简单的顺序执行代码。而真正的程序,需要具备判断能力、重复执行能力、代…...
OpenManus-RL:基于强化学习优化大语言模型智能体决策的完整框架
1. 项目概述与核心价值如果你正在关注大语言模型智能体领域,尤其是如何让模型从“会聊天”进化到“会做事”,那么OpenManus-RL这个项目绝对值得你投入时间研究。它不是一个简单的工具库,而是一个由UIUC-Ulab和MetaGPT团队联合发起的、以直播形…...
从用户体验出发:手把手教你用uniapp的showLoading/showToast/showModal设计友好交互
从用户体验出发:手把手教你用uniapp的showLoading/showToast/showModal设计友好交互 在移动应用开发中,交互设计的好坏直接影响用户留存率。数据显示,超过60%的用户会因为糟糕的交互体验而卸载应用。作为开发者,我们不仅要关注功能…...
EmbedClaw:RAG应用中文本智能分块与向量化检索的工程实践
1. 项目概述:一个面向嵌入向量检索的“机械爪”最近在折腾RAG(检索增强生成)应用,发现向量数据库的检索效果,很大程度上取决于你“喂”进去的文本是怎么被切成一块一块的(也就是分块,Chunking&a…...
iOS设备支持文件管理解决方案:如何解决Xcode开发环境兼容性问题
iOS设备支持文件管理解决方案:如何解决Xcode开发环境兼容性问题 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport iOSDeviceSupport项目为iOS开发者提供了全面的设备支…...
基于MCP的任务编排框架:让AI代理动态规划与执行复杂工作流
1. 项目概述:一个面向AI代理的任务编排与执行框架最近在折腾AI应用开发,特别是想让大语言模型(LLM)能更“自主”地完成一些复杂任务时,发现了一个绕不开的痛点:任务编排。你给模型一个目标,比如…...
淘宝要接入AI购物助手:以后买东西,可能不是搜索,而是“让AI帮你挑”
最近AI圈有一个很值得关注的新热点。据路透社5月10日报道,阿里巴巴正准备把通义千问Qwen接入淘宝,让用户可以通过和AI聊天的方式浏览、比较和购买商品,而不是像以前那样自己一个个翻商品列表。报道还提到,Qwen应用将接入淘宝和天猫…...
Sora 2与3D Gaussian结合实战指南(工业级部署避坑手册)
更多请点击: https://intelliparadigm.com 第一章:Sora 2与3D Gaussian结合的工业级部署全景图 Sora 2作为OpenAI新一代视频生成模型,在长时序建模与物理一致性方面取得显著突破;而3D Gaussian Splatting(3DGS&#x…...
信息安全工程师-网络安全风险评估(上篇):框架、流程与量化基础
一、引言 (一)核心定位与定义 网络安全风险评估是信息安全管理体系的核心方法论,在软考信息安全工程师考试中属于信息安全管理模块的高频考点,占比约 8-10 分。其标准定义为:依据 GB/T 20984-2007《信息安全技术 信息…...
