Linux 之搭建 arm 的 qemu 模拟器
目录
- 1. Linux 之搭建 arm 的 qemu 模拟器
1. Linux 之搭建 arm 的 qemu 模拟器
OS: kali
1. 安装交叉编译工具、GDB 和 QEMU
# sudo apt-get install qemu debootstrap qemu-user-static
# sudo apt-get install qemu-system-arm
# sudo apt-get install gdb-multiarch //支持多架构 cpu 的 gdb
# sudo apt-get install gcc-arm-linux-gnueabi //安装 arm-linux-gcc 交叉编译器
# sudo apt-get install g++-arm-linux-gnueabi //安装 arm-linux-g++交叉编译器2. 下载、解压 linux5.0 内核
<0>. 下载: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.7.tar.xz
# xz -d linux5.0.tar.xz
# tar -xvf linux5.0.tar<1>. 编译
最顶层的 Makefile 文件里面, 做如下修改:
# emacs Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
Or
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm<2>.arch/arm/configs 目录里的各个厂商的内核配置文件, 这个文件非常重要, 并做如下操作
# sudo apt-get install bison libncurses5-dev u-boot-tools bc
# make vexpress_defconfig<3>. 配置 kernel 内核
# make menuconfig<4>. 编译 kernel
# make LOADADDR=0X60003000 uImage -j4
or
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
# make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm3. 下载 busybox 制作根文件系统
<1>. 下载编译 busybox
# wget https://busybox.net/downloads/busybox-1.30.1.tar.bz2 --no-check-certificate
# tar -jxvf busybox-1.30.1.tar.bz2
# emacs Makefile
# make defconfig
# make CROSS_COMPILE=arm-linux-gnueabi-
# make CROSS_COMPILE=arm-linux-gnueabi- install4. 开始制作根文件系统
1. 创建必要的目录
# mkdir rootfs
# cd rootfs
# mkdir rootfs /lib
# mkdir rootfs /dev2. 拷贝 busybox 编译生产的目录和文件, 编译器自带的 lib
# cp busybox-1.25.0/_install/* -r rootfs/
# cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
3. 创建 4 个 tty 终端设备
# sudo mknod rootfs/dev/tty1 c 4 1
# sudo mknod rootfs/dev/tty2 c 4 2
# sudo mknod rootfs/dev/tty3 c 4 3
# sudo mknod rootfs/dev/tty4 c 4 4
4. 生成 512M 大小的镜像, 并拷文件系统树到镜像文件中
# dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=512
# mkfs.ext3 a9rootfs.ext3 //把 a9rootfs.ext3 格式化为 ext3 文件系统
# mkdir tmpfs
# mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
# cp -r rootfs/* tmpfs/
# sudo umount tmpfs
//启动 qemu arm 文件系统
# qemu-system-arm -M vexpress-a9 -m 1024M -kernel ~/tools/linux-5.0.7/arch/arm/boot/zImage -dtb ~/tools/linux-5.0.7/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 console=ttyAMA0" -sd a9rootfs.ext3
后续可以把 gdb 移植上去, 就可以调试学习 ARM 汇编指令了。
相关文章:
Linux 之搭建 arm 的 qemu 模拟器
目录 1. Linux 之搭建 arm 的 qemu 模拟器 1. Linux 之搭建 arm 的 qemu 模拟器 OS: kali 1. 安装交叉编译工具、GDB 和 QEMU # sudo apt-get install qemu debootstrap qemu-user-static # sudo apt-get install qemu-system-arm # sudo apt-get install gdb-multiarch //支持…...

uinapp微信小程序隐私政策授权
🚀 隐私弹窗效果图: 1、启用隐私相关功能在manifest.json文件中配置 usePrivacyCheck: true "mp-weixin" : {"__usePrivacyCheck__" : true, },2、创建组件 <template><view><!-- 隐私政策弹窗 --><uni-popu…...
使用Java工作流简单介绍
本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…...

数字媒体技术基础之:ICC 配置文件
ICC 配置文件(也称为 ICC 色彩配置文件或 ICC 色彩描述文件)是由国际色彩联盟(International Color Consortium, ICC)制定的一种标准文件格式,用于在不同的设备和软件之间保持颜色的一致性。 ICC 配置文件包含有关设备…...

解析SD-WAN组网方式及应用场景,全面了解典型案例
随着企业业务高速发展,跨区域开展业务首要解决的难题是构建各站点能互联互通的网络,然而目前大多数企业在广域网优化的问题上依旧碰壁,主要原因是企业广域网面临的挑战并不能马上得到解决。 传统网络互联方案无论是IPsec还是专线,…...

中小学智慧校园电子班牌管理系统源码
智慧校园云平台电子班牌系统,利用先进的云计算技术,将教育信息化资源和教学管理系统进行有效整合,实现基础数据共享、应用统一管理。借助全新的智能交互识别终端和移动化教育管理系统,以考勤、课表、通知、家校互通等功能为切入点…...

日常踩坑-[sass]Error: Expected newline
在学习sass的时候,运行时发现报错 经过网上冲浪知道,原来在声明语言的时候 lang 不能声明为 sass ,而是 scss ,这就有点坑了 原因: scss是sass3引入进来的,scss语法有"{}“,”;"而sass没有,所以…...

UI设计感蓝色商务数据后台网站模板源码
蓝色商务数据后台网站模板是一款适合网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。 演示下载 qnziyw点cn/wysc/qdmb/20852点html...

二、计算机组成原理与体系结构
(一)数据的表示 不同进制之间的转换 R 进制转十进制使用按权展开法,其具体操作方式为:将 R 进制数的每一位数值用 Rk 形式表示,即幂的底数是 R ,指数为 k ,k 与该位和小数点之间的距离有关。当…...
MySQL-sql的优化
表的设计优化索引优化SQL语句优化主从复制、读写分离分库分表 表的设计优化(参考阿里开发手册) 比如设置合适的数值(tinyint int bigint),要根据实际情况选择 比如设置合适的字符串类型(char和varchar) char定长效率高,varchar可变长度,效…...

一致性哈希在分库分表的应用
文章目录 前言分库分表方法一致性哈希介绍分库分表的应用 总结 前言 大家应该都知道一些哈希算法,比如MD5、SHA-1、SHA-256等,通常被用于唯一标识、安全加密、数据校验等场景。除此之外,还有一种应用是对某个数据进行哈希取模映射到一个有限…...

PostCSS通过px2rem插件和lib-flexible将px单位转换为rem(root em)单位实现大屏适配
目录 文档postcss中使用postcss-plugin-px2rem安装postcss-plugin-px2rem示例默认配置 webpack中使用postcss-plugin-px2rem项目结构安装依赖文件内容 大屏适配参考文章 文档 类似的插件 postcss-plugin-px2rem https://www.npmjs.com/package/postcss-plugin-px2remhttps://g…...

什么是缓冲区溢出?
缓冲区溢出 1. 什么是缓冲区溢出2. 缓冲区溢出攻击的类型3. 攻击者如何利用缓冲区溢出4. 如何防止缓冲区溢出攻击 1. 什么是缓冲区溢出 (1)缓冲区 缓冲区是一块连续的计算机内存区域,用于在将数据从一个位置移到另一位置时临时存储数据。这…...

论文浅尝 | ChatKBQA:基于微调大语言模型的知识图谱问答框架
第一作者:罗浩然,北京邮电大学博士研究生,研究方向为知识图谱与大语言模型协同推理 OpenKG地址:http://openkg.cn/tool/bupt-chatkbqa GitHub地址:https://github.com/LHRLAB/ChatKBQA 论文链接:https://ar…...
软件测试的目的---防范项目风险
软件测试的目的到底是什么一直是困扰开发人员和测试人员的一个问题, 项目管理人员希望测试能够保证软件项目的成功 开发人员希望希望测试可以让他们理直气壮的说,他们的软件是没有问题的,从而证明他们的工作成果 软件测试经典理论说,测试无法证明软件是没有问题,而只能证明软…...
自己动手写编译器:创建由 C 语言编译而成的语法解析器
在上一章节,我们完成了由 c 语言设计的输入系统,本节我们看看如何在前一节的基础上完成一个由 c 语言设计并编译出来的词法解析器。整个解析器的基本设计思路是: 1,由我们上一节设计的输入系统将字符串从文件中读入。 2࿰…...
接口设计-增删改查
关于增删改查的 接口设计,比较简单,有一些固定的做法可以使用。 查询列表 查询列表的接口,带上分页的入参: pageNo,pageSize,非必选,并设置默认值。 入参为 dto,根据 dto 从数据库…...
持续持续集成部署-k8s-配置与存储-配置管理:Secret 的应用
持续持续集成部署-k8s-配置与存储-配置管理:Secret 的应用 1. 简介2. 创建 Secret3. docker-registry 的使用1. 简介 与 ConfigMap 类似,用于存储配置信息,但是主要用于存储敏感信息、需要加密的信息,Secret 可以提供数据加密、解密功能。 在创建 Secret 时,要注意如果要…...
ZYNQ7020开发(一):开发环境搭建
文章目录 一、配置Ubuntu 编译环境二、安装Petalinux三、安装JTAG驱动四、安装Vitis一、配置Ubuntu 编译环境 虚拟机环境:VMware Workstation 16 Pro 16.1.0 build-17198959Ubuntu 版本:No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 L…...
Spring Boot插件化开发概念原理及实现
Spring Boot 是一个开源的Java框架,它简化了基于Spring框架的应用程序的开发和部署过程。它提供了一种快速、简单的方式来构建独立的、可执行的Spring应用程序。在Spring Boot中,插件化开发是一种强大的开发模式,它允许开发人员将应用程序的不…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
Docker 镜像上传到 AWS ECR:从构建到推送的全流程
一、在 EC2 实例中安装 Docker(适用于 Amazon Linux 2) 步骤 1:连接到 EC2 实例 ssh -i your-key.pem ec2-useryour-ec2-public-ip步骤 2:安装 Docker sudo yum update -y sudo amazon-linux-extras enable docker sudo yum in…...

【计算机网络】SDN
SDN这种新型网络体系结构的核心思想:把网络的控制层面与数据层面分离,而让控制层面利用软件来控制数据层面中的许多设备。 OpenFlow协议可以被看成是SDN体系结构中控制层面与数据层面之间的通信接口。 在SDN中取代传统路由器中转发表的是“流表”&…...
AI 时代下语音与视频伪造的网络安全危机
引言 在人工智能技术的推动下,语音合成、视频生成等技术取得了突破性进展,Deepfake、AI 语音克隆等工具让语音和视频伪造变得愈发简单且逼真。这些技术在娱乐、影视等领域带来便利的同时,也被不法分子利用,引发了一系列网络安全问…...