Nejjednodušší (a nenáročný) způsob, jak získat vmlinux
pod Ubuntu je přidat úložiště 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
a nainstalujte symboly ladění jádra:
sudo apt-get update
sudo apt-get install linux-image-$(uname -r)-dbgsym
vmlinux
pak je najdete zde:
/usr/lib/debug/boot/vmlinux-$(uname -r)
Hm, jen jsem to chtěl vložit jako komentář k výše uvedené odpovědi od @paxdiablo, ale nemůžete najít tlačítko komentáře? Každopádně..
Jde o to, že vmlinuz
soubor je komprimovaný - a pro účely ladění potřebujete nekomprimovaný vmlinux
jeden (a nejlépe jeden postavený s ladicími symboly - což je výchozí vmlinuz
-es přicházející s Ubuntu nemají, protože jsou zbaveny symbolů).
Nyní je možné rozbalit vmlinuz
do vmlinux
soubor - to však není triviální; nejprve musíte najít bajtový offset v vmlinuz
kde začíná komprimovaný soubor, a poté použijte dd
a zcat
vybalit pouze nezbytnou část. Podrobně je to vysvětleno v:"[ubuntu] Jak vysledovat tuto chybu? - Fóra Ubuntu - příspěvek #4"; stručně, níže je můj příklad protokolu příkazů terminálu založený na tomto příspěvku:
$ 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
No, doufám, že to pomůže,
Na zdraví!
můžete si stáhnout zdrojový kód a zkompilovat svůj vlastní pomocí následujícího příkazu:
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
nebo si můžete stáhnout balíček ddeb zde a nainstalovat jej do sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb