当前位置: 首页 > 面试题库 >

如何使用QEMU调试Linux内核模块?

黄沈浪
2023-03-14
问题内容

我正在从事学术项目,该项目修改了一些Kernel Networking代码并包含了新代码Kernel module

我正在使用QEMU加载修改后的内核并进行测试。

但是,我发现某些操作系统需要完整的操作系统才能.img进行调试。
没有它可能吗?

或者,这是可以与Kernel 2.6一起用于系统的发行版。除了运行程序的功能(包括网络支持)以外,发行版不需要具有任何功能。


问题答案:

我认为最简单的方法是使用buildroot
http://buildroot.uclibc.org/

克隆它,将其配置为使用您的自定义内核(默认用户空间适合开始使用,您可能以后需要更改它)。

它将构建您的内核和根文件系统。整个过程大约需要半小时,其中二十分钟是在编译怪物

我的运行行看起来像:qemu-system-i386 -hda rootfs.ext2-内核bzImage -m 512M-追加“ root = / dev
/ sda console = ttyS0” -localtime -serial stdio

以及有关分接头设备的更多选项



 类似资料:
  • 问题内容: 我是内核开发的新手,我想知道如何使用QEMU和gdb运行/调试Linux内核。我实际上正在阅读罗伯特·洛夫(Robert Love)的书,但不幸的是,它没有帮助读者了解如何安装适当的工具来运行或调试内核。因此,我要做的是遵循本教程http://opensourceforu.efytimes.com / 2011/02 / kernel-development-debugging-usi

  • 我是新来的。我正在尝试在 qemu 内部启动一个为 powerpc 编译的 Linux 内核映像。我在网上遵循了指南,但我被困住了,我真的不知道下一步该怎么办。 从这里开始,它什么也不做,我可以进入监控模式,但什么也不做。什么也没发生。我甚至试图将fs复制到img文件,希望smt会发生,但什么也没有发生。如果我在没有nograph选项的情况下运行命令,vnc只会显示一个带有bios版本的白色屏幕和

  • 问题内容: Linux内核开发人员如何在提交代码后在本地测试他们的代码?他们是否使用某种单元测试,构建自动化?测试计划? 问题答案: linux内核非常重视社区测试。 通常,任何开发人员都会在提交之前测试他们自己的代码,并且经常会使用Linus的内核开发版本,或者与他们的工作相关的项目使用其他不稳定/开发树之一。这意味着他们经常同时测试自己的变更和其他人的变更。 正式的测试计划的方式往往不多,但是

  • 主要内容:initramfe虚拟文件系统GRUB 加载了内核之后,内核首先会再进行二次系统的自检,而不一定使用 BIOS 检测的硬件信息。这时内核终于开始替代 BIOS 接管 Linux 的启动过程了。 内核完成再次系统自检之后,开始采用动态的方式加载每个硬件的模块,这个动态模块大家可以想象成硬件的驱动(默认 Linux 硬件的驱动是不需要手工安装的,如果是重要的功能,则会直接编译到内核当中;如果是非重要的功能,比如硬件驱动会编译为模块

  • 提示 视频 PPT 下载 本文的目的和背景 VS Code(全称 Visual Studio Code)是一个轻量且强大的代码编辑器,支持 Windows,OS X 和 Linux。内置 JavaScript、TypeScript 和 Node.js 支持,而且拥有丰富的插件生态系统,可通过安装插件来支持 C++、C#、Python、PHP 等其他语言。 本文主要介绍在 Windows 平台使用

  • 问题内容: 在Linux内核上进行实时调试最常用的方法和工具为何?我知道例如Linus。反对这种针对Linux内核的调试,或者至少是反对这种调试,因此在那些年里,在这种意义上没有做太多事情,但是老实说,自2000年以来已经过去了很多时间,我很想知道关于Linux的观念是否已改变项目以及当前使用哪些当前方法在Linux内核上进行实时调试(本地或远程)? 欢迎参考有关所提到的技术和工具的演练和教程。