Saltar al contenido

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

Solución:

La forma más fácil (y no pirateada) 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 comentario? De todos modos..

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

Ahora, es posible desembalar un vmlinuz en un vmlinux archivo – sin embargo, eso no es trivial; primero tienes que encontrar un byte offset en vmlinuz donde comienza el archivo comprimido, y luego use dd y zcat desembalar solo la parte necesaria. En detalle, esto se explica en: “[ubuntu] ¿Cómo rastrear este error? – Ubuntu Forums – post # 4 “; en resumen, a continuación se muestra mi registro de comandos 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 la fuente y compilar la suya 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 sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *