问题描述

我正在尝试启动oprofile,并且在此步骤遇到了问题:

opcontrol --vmlinux=/path/to/vmlinux

Ubuntu没有名为vmlinux的软件包,当我执行locate vmlinux时,会得到很多文件:

/usr/src/linux-headers-2.6.28-14/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-14/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-14/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-14/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-14/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-14/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-15/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-15/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-15/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-15/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-15/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-15/include/asm-generic/vmlinux.lds.h
/usr/src/linux-headers-2.6.28-16/arch/h8300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-std.lds
/usr/src/linux-headers-2.6.28-16/arch/m68k/kernel/vmlinux-sun3.lds
/usr/src/linux-headers-2.6.28-16/arch/mn10300/boot/compressed/vmlinux.lds
/usr/src/linux-headers-2.6.28-16/arch/sh/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_32.lds
/usr/src/linux-headers-2.6.28-16/arch/x86/boot/compressed/vmlinux_64.lds
/usr/src/linux-headers-2.6.28-16/include/asm-generic/vmlinux.lds.h

我要寻找的是哪一个?

最佳方案

它应该在您的/boot目录中-mu Ubuntu实际上具有类似于vmlinuz-2.6.28-16-generic的压缩版本。

oprofile是否可以与这些功能配合使用不是我可以回答的问题。

次佳方案

在Ubuntu下获取vmlinux的最简单(非hacky)方法是到add ddebs repository:

echo "deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-security main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | \
sudo tee -a /etc/apt/sources.list.d/ddebs.listsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01

并安装内核调试符号:

sudo apt-get update
sudo apt-get install linux-image-$(uname -r)-dbgsym

然后可以在这里找到vmlinux

/usr/lib/debug/boot/vmlinux-$(uname -r)

第三种方案

嗯,只是想将其作为对@paxdiablo的上述答案的评论,但找不到评论按钮?无论如何..

事实是,压缩了vmlinuz文件-出于调试目的,您需要一个未压缩的vmlinux文件(最好是一个带有调试符号的文件-Ubuntu附带的默认vmlinuz-不含调试符号,因为它们被去除了符号) 。

现在,可以将vmlinuz解压缩到vmlinux文件中-但是,这并不容易。首先,您必须在vmlinuz中找到压缩文件开始的字节偏移,然后使用ddzcat仅解压缩必要的部分。详细地,这在“ [ubuntu] How to trace this bug? – Ubuntu Forums – post #4”中进行了解释。简而言之,以下是基于该帖子的示例终端命令日志:

$ od -A d -t x1 /boot/vmlinuz-$(uname -r) | grep '1f 8b 08 00' --colour
0013920 f3 a5 fc 5e 8d 83 70 23 3d 00 ff e0 *1f 8b 08 00*$ wcalc 13920+12= 13932$ dd if=/boot/vmlinuz-$(uname -r) bs=1 skip=13932 | zcat > vmlinux-$(uname -r)
4022132+0 records in
4022132+0 records out
4022132 bytes (4,0 MB) copied, 42,1695 s, 95,4 kB/sgzip: stdin: decompression OK, trailing garbage ignored$ file vmlinux-2.6.32-25-generic
vmlinux-2.6.32-25-generic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

好吧,希望这会有所帮助,

干杯!

第四种方案

您可以使用以下命令下载源代码并自行编译:

apt-get source linux-image-$(uname -r)
apt-get build-dep --no-install-recommends linux-image-$(uname -r)
cd linux-2.6.32/
fakeroot make -f debian/rules binary-generic skipdbg=false

或者您可以下载ddeb软件包here并通过sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb进行安装

参考资料

  • Where is vmlinux on my Ubuntu installation?

转载至https://ubuntuqa.com/article/8589.html

Ubuntu安装上的vmlinux在哪里?相关推荐

  1. ubuntu安装lrzsz报错“E: Unable to locate package”

    ubuntu安装上传文件包lrzsz的时候报错 "E: Unable to locate package" 先运行下面两个 apt-get update apt-get upgra ...

  2. Linux 探索之旅 | 第一部分第四课:磁盘分区 + 完成 Ubuntu 安装

    -- 作者 谢恩铭 转载请注明出处 内容简介 第一部分第四课:磁盘分区+完成Ubuntu安装 第一部分第五课预告:Unity桌面,人生若只如初见 磁盘分区+完成Ubuntu安装 上一课Linux探索之 ...

  3. 如何在Ubuntu/CentOS上安装Linux内核4.0

    如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的 ...

  4. Ubuntu安装遭遇 VMware上的Easy install模式

    2019独角兽企业重金招聘Python工程师标准>>> Ubuntu安装遭遇 VMware上的Easy install模式 [日期:2011-10-27] 来源:Linux社区  作 ...

  5. Docker-Compose简介与Ubuntu Server 上安装Compose

    Compose简介 Compose是Docker官方的开源项目,负责对Docker容器集群的快速编排. Compose是定义和运行多个Docker容器的应用. 举例来说: 一个项目除了Tomcat容器 ...

  6. 怎么在linux上装java,如何在Ubuntu Linux上安装Java

    介绍 如何在Ubuntu Linux上安装Java?尽管对于一个经验丰富的Linux系统管理员来说,这个主题是一个很容易理解的话题,但是对于初学者而言,在我需要什么版本的Java,如何安装它或如何在多 ...

  7. ubuntu 20上安装gdbgui

    ubuntu 20上自带的python已经符合gdbgui官方的要求,所以安装gdbgui只需要使用 安装pip3 sudo apt-get install python3-pip 再使用pip3安装 ...

  8. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

  9. 用虚拟机把ubuntu安装到TF卡上

    最近在学习Linux,考虑到将来可能不会带着自己的笔记本到处跑,而我又希望能随身带着个Ubuntu系统 ,总不能在别人的电脑上装个Linux系统吧.刚好最近入手了一张 Sandisk 16G clas ...

最新文章

  1. 关于端口映射的一个命令
  2. https HttpsURLConnection请求的单向认证
  3. ubuntu mysql增加用户_Ubuntu中给mysql添加新用户并分配权限
  4. CentOS升级gcc到4.8.2以支持C++11标准的方法
  5. Java中的数据库架构导航
  6. 打造大数据和AI能力底座 联通大数据深度参与“新基建”
  7. linux --常用命令
  8. El表达式和fn函数一起使用
  9. java判断回文用valueof_判断字符串是否是回文
  10. 坑爹的RockSaw和坑爹的windows7
  11. AMESim中Demo简介
  12. windows命令行压缩解压缩
  13. 商业数据可视化分析工具
  14. Java动态数组的实现
  15. 我国计算机科学与技术发展历史,计算机科学与技术的发展趋势探析
  16. 数据库kettle,datax,DBMigration,RazorSQL几款迁移工具使用感受(以及如何迁移表的结构如主键,索引,约束等)
  17. 叮咚~您的新年礼物到啦,请查收:虎来喽----Python打造虎年祝福神器
  18. [:, None]的作用是什么?
  19. 红外线遥控协议简介(NEC格式)
  20. 小米装linux系统教程视频,小米手机 连接在Ubuntu 下调试

热门文章

  1. JS slice()方法返回数组中指定元素
  2. matlab lda数据降维,LDA有标签数据降维
  3. 2012河北省职称计算机题,2012河北省职称计算机基础知识题库
  4. Linux系统开启端口
  5. c语言如何实现软件抗干扰,单片机软件系统抗干扰设计
  6. 脑洞大开,聊聊荒野乱斗英雄设计
  7. Photoshop CS5图层样式初学者必读(2)——投影和内阴影
  8. win8计算机无法安装打印机驱动程序,win8.1安装不了打印机驱动如何解决|win8.1安装不了打印机驱动的修复方法...
  9. elementui table在safari浏览器用了超过两行省略号样式错乱
  10. 【信号与系统】(二十三) z变换与z域分析——z变换及其性质