ubuntu22.04安装qemu-9.1并在i.MX6上运行linux kernel 6.11

1. qemu-stable-9.1源码编译安装

1.1. 下载qemu源码的stable-9.1分支

仓库地址

mkdir qemu_9.1
cd qemu_9.1
git clone https://gitlab.com/qemu-project/qemu.git --branch=stable-9.1 --depth=5
git submodule update --init --recursive
cd qemu

1.2. 安装依赖

参考文档

sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build
sudo apt-get install git-email
sudo apt-get install libaio-dev libbluetooth-dev libcapstone-dev libbrlapi-dev libbz2-dev
sudo apt-get install libcap-ng-dev libcurl4-gnutls-dev libgtk-3-dev
sudo apt-get install libibverbs-dev libjpeg8-dev libncurses5-dev libnuma-dev
sudo apt-get install librbd-dev librdmacm-dev
sudo apt-get install libsasl2-dev libsdl2-dev libseccomp-dev libsnappy-dev libssh-dev
sudo apt-get install libvde-dev libvdeplug-dev libvte-2.91-dev libxen-dev liblzo2-dev
sudo apt-get install valgrind xfslibs-dev 
sudo apt-get install libnfs-dev libiscsi-dev

文档中没有提及的依赖

sudo apt install python3-venv python3-pip tomli flex bison

1.3. 编译qemu

如果这个过程还缺什么依赖,可以根据提醒自行安装,或者问AI

mkdir build
cd build
../configure
make qemu-system-arm -j6

2. linux kernel 6.11编译dtb和zImage

2.1. 下载kernel源码

仓库地址

cd ..
git clone https://github.com/torvalds/linux.git --branch=v6.11 --depth=1
cd linux

2.2. 编译dtb和zImage

安装交叉编译工具链

sudo apt install gcc-arm-linux-gnueabihf

编译

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
make imx_v6_v7_defconfig
make -j6

3. 启动内核

模拟在Freescale sabrelite开发板上运行,不需要uboot也可以,参考文档
这里没有指定根文件系统,所以卡在了kernel panic

../qemu/build/qemu-system-arm -M sabrelite -smp 4 -m 1G \-display none -serial null -serial stdio \-kernel ./arch/arm/boot/zImage \-dtb ./arch/arm/boot/dts/nxp/imx/imx6q-sabrelite.dtb \-append "root=/dev/ram"

4. 总结

再编译一份根文件系统就可以愉快的学习驱动框架了,如果玩开发板的话,前期需要大量的工作在部署开发环境和uboot和kernel的移植,而qemu可以避开这些问题直接进入驱动学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程——线程池

目录 前言 一、什么是线程池 1.引入线程池的原因 2.线程池的介绍 二、标准库中的线程池 1.构造方法 2.方法参数 (1)corePoolSize 与 maximumPoolSize (2)keepAliveTime 与 unit (3)workQueue&am…

Redis集群分片存储最佳实践,手把手搭建Redis集群

目录 一、Redis集群介绍1、设计目标2、为什么需要分片存储 二、官网集群方案三、搭建集群1、准备6个独立的Redis服务2、通过redis-cli工具创建集群3、检验集群4、集群重新分片5、故障转移测试6、集群扩容7、集群节点删除 四、集群关心的问题五、集群功能限制 一、Redis集群介绍…

第11天理解指针

目录 数组指针 指针数组 字符指针数组 二维字符数组 const 修饰变量为常量 指针常量 常量指针 typedef 重命名数据类型 关于typedef的一般理解 具体示例分析 复杂示例分析 总结回顾--指针的奥秘:深入理解内存地址与数据存储 一、指针的本质 二、地址类…

使用Python实现智能火山活动监测模型

一、引言 火山爆发是自然界最具破坏力的事件之一,其对人类的影响可以从气候、空气质量到生命安全等多个方面产生深远影响。传统的火山监测依赖地质学家在现场采集数据,而现代科技的发展让远程监测成为可能。通过深度学习和数据分析技术,我们可以使用Python构建一个智能火山…

蓝桥杯题目理解

1. 一维差分 1.1. 小蓝的操作 1.1.1. 题目解析: 这道题提到了对于“区间”进行操作,而差分数列就是对于区间进行操作的好方法。 观察差分数列: 给定数列:1 3 5 2 7 1 差分数列:1 2 2 -3 5 6 题目要求把原数组全部…

C++[CSP-J 2023] 公路讲解

题目&#xff1a;2023CSP-J公路 思路&#xff1a;贪心 我们可以在草稿纸上列一列&#xff0c;滤清思路&#xff0c;这道题没什么难度的&#xff01; 代码&#xff1a; #include<bits/stdc.h> using namespace std; long long n,d,a[100005],v[100005],s[10005],id1; …

基于SpringBoot的高校体测管理系统设计与实现(源码+定制+开发)高校体测记录系统设计、高校体测信息管理平台、智能体测管理系统开发、高校体测记录系统设计

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

25届电信保研经验贴(自动化所)

个人背景 学校&#xff1a;中九 专业&#xff1a;电子信息工程 加权&#xff1a;92.89 绩点&#xff1a;3.91/4.0 rank&#xff1a;前五学期rank2/95&#xff0c;综合排名rank1&#xff08;前六学期和综合排名出的晚&#xff0c;实际上只用到了前五学期&#xff09; 科研…

海外云手机实现高效的海外社交媒体营销

随着全球化的深入发展&#xff0c;越来越多的中国企业走向国际市场&#xff0c;尤其是B2B外贸企业&#xff0c;海外社交媒体营销已成为其扩大市场的重要手段。在复杂多变的海外市场环境中&#xff0c;如何有效提高营销效率并降低运营风险&#xff0c;成为了众多企业的首要任务。…

计算机三级嵌入式知识点总结(一)

IP地址分类:A、B、C类,以及D类(组播地址)和E类(备用)。(4个字节,32位二进制) A类:二进制表示中最高位为0,第1字节为网络号(网络地址),第2、3、4字节为主机号。(00000000~01111111)B类:二进制表示中最高两位为1,0,第1、2字节为网络号,第3、4字节为主机号。(…

路由器 相关知识

一、路由器是什么 参考&#xff1a;图解系列--路由器和它庞大的功能_路由功能-CSDN博客 路由器是指&#xff1a;主要负责 OSI参考模型中网络层的处理工作&#xff0c;并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网&#xff0c;…

Java基础(7)图书管理系统

目录 1.前言 2.正文 2.1思路 2.2Book包 2.3people包 2.4operation包 2.5主函数 3.小结 1.前言 哈喽大家好吖&#xff0c;今天来给前面Java基础的学习来一个基础的实战&#xff0c;做一个简单的图书管理系统&#xff0c;这里边综合利用了我们之前学习到的类和对象&…

Java中的设计模式:单例模式详解

摘要 单例模式&#xff08;Singleton Pattern&#xff09;是Java中最常用的设计模式之一&#xff0c;属于创建型模式。它的主要目的是确保一个类在系统中只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。 1. 单例模式的定义 单例模式确保一个类只有一个实例&…

爬虫ip技术未来发展趋势

各位朋友&#xff0c;大家好&#xff01;有伙伴问爬虫技术未来会有更好的发展么&#xff0c;那今天小蝌蚪来跟大家聊聊爬虫技术未来的发展趋势分享一下行业咨询。 大家在日常工作和生活中&#xff0c;都希望事情能更省心、高效吧&#xff1f;未来的爬虫技术就朝着这个方向发展…

sheng的学习笔记-AI基础-正确率/召回率/F1指标/ROC曲线

AI目录&#xff1a;sheng的学习笔记-AI目录-CSDN博客 分类准确度问题 假设有一个癌症预测系统&#xff0c;输入体检信息&#xff0c;可以判断是否有癌症。如果癌症产生的概率只有0.1%&#xff0c;那么系统预测所有人都是健康&#xff0c;即可达到99.9%的准确率。 但显然这样的…

在Keil调试内存中的程序

在Keil调试内存中的程序 目录 在Keil调试内存中的程序1. 问题引出2. 测试工程3. 工程和Keil配置 实验环境&#xff1a; MCU&#xff1a;STM32F103C8T6 (Flash 64K RAM 20K)Keil&#xff1a;uVision V5.27.0.0仿真器&#xff1a;ST-Link 参考源码&#xff1a;https://download.c…

股票交易量化模型:如何构建与优化?

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

Redis 集群 总结

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 集群 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 集群 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis & 集群…

导出问题处理

问题描述 测试出来一个问题&#xff0c;使用地市的角色&#xff0c;导出数据然后超过了20w的数据&#xff0c;提示报错&#xff0c;我还以为是偶然的问题&#xff0c;然后是发现是普遍的问题&#xff0c;本地环境复现了&#xff0c;然后是&#xff0c;这个功能是三套角色&…

Modern CMake 简明教程(8)- 集成Qt

在项目中集成 Qt 库需要先使用 find_package 查找 Qt 的安装位置。对于 Qt4, CMake 使用 Module 模式进行查找(FindQt4.cmake 由 CMake 提供),而 对于 Qt5、Qt6,则是使用 Config 模式进行查找,相应的 config 文件位于类似下面的目录中 D:\Qt\5.15.2\msvc2019\lib\cmake。…