GNU/Linux >> Tutoriales Linux >  >> Linux

¿Dónde está vmlinux en mi instalación de Ubuntu?

La forma más fácil (y no complicada) de obtener vmlinux en Ubuntu es agregar el repositorio ddebs:

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.list

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01

e instale los símbolos de depuración del kernel:

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

vmlinux entonces se puede encontrar aquí:

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

Hm, solo quería poner esto como un comentario a la respuesta anterior de @paxdiablo, pero no puede encontrar el botón de comentarios. De todos modos..

El caso es que el vmlinuz el archivo está comprimido, y para fines de depuración, necesita un vmlinux sin comprimir uno (y preferiblemente uno creado con símbolos de depuración, que el vmlinuz predeterminado -es que vienen con Ubuntu no tienen, ya que están despojados de símbolos).

Ahora, es posible descomprimir un vmlinuz en un vmlinux archivo - sin embargo, eso no es trivial; primero tienes que encontrar un desplazamiento de bytes en vmlinuz donde comienza el archivo comprimido y luego use dd y zcat desembalar sólo la parte necesaria. En detalle, esto se explica en:"[ubuntu] ¿Cómo rastrear este error? - Foros de Ubuntu - publicación #4"; en resumen, a continuación se muestra mi registro de comando de terminal de ejemplo, basado en esa publicación:

$ 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/s

gzip: 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

Bueno, espero que esto ayude,

¡Salud!


puede descargar el código fuente y compilar el suyo usando el siguiente comando:

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  

o puede descargar el paquete ddeb aquí e instalarlo mediante sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb


Linux
  1. Instalación de Ubuntu 22.04 Cinnamon Desktop

  2. Instalación de Ubuntu 20.04 desde USB

  3. Instalación de Ubuntu 20.04 Cinnamon Desktop

  4. Instalación de Ubuntu 20.04 Tomcat

  5. Instalación del servidor Ubuntu 20.04

Instalación de Ubuntu 22.04 VLC

Instalación de Ubuntu 22.04 Eclipse

Instalación de Ubuntu 22.04 PostgreSQL

Instalación del navegador Ubuntu 22.04 Chromium

Pasos de instalación de VirtualBox 5.0 en Ubuntu 15.04 / 14.04

Instalación del servidor Samba en Ubuntu 14.10