GNU/Linux >> Belajar Linux >  >> Linux

Di mana vmlinux di instalasi Ubuntu saya?

Cara termudah (dan non-hacky) untuk mendapatkan vmlinux di bawah Ubuntu adalah menambahkan repositori ddeb:

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

dan instal simbol debug kernel:

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

vmlinux kemudian dapat ditemukan di sini:

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

Hm, hanya ingin menempatkan ini sebagai komentar atas jawaban @paxdiablo, tetapi tidak dapat menemukan tombol komentar? Bagaimanapun..

Masalahnya adalah vmlinuz file dikompresi - dan untuk keperluan debugging, Anda memerlukan vmlinux yang tidak terkompresi satu (dan sebaiknya yang dibangun dengan simbol debug - yang merupakan vmlinuz default -es datang dengan Ubuntu tidak memiliki, karena simbolnya dihilangkan).

Sekarang, Anda dapat membongkar vmlinuz menjadi vmlinux file - namun, itu tidak sepele; pertama Anda harus menemukan offset byte di vmlinuz tempat file terkompresi dimulai, lalu gunakan dd dan zcat untuk membongkar hanya bagian yang diperlukan. Secara rinci, ini dijelaskan di:"[ubuntu] Bagaimana cara melacak bug ini? - Forum Ubuntu - posting #4"; singkatnya, di bawah ini adalah contoh log perintah terminal saya, berdasarkan postingan itu:

$ 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

Nah, semoga ini membantu,

Semangat!


Anda dapat mengunduh sumber dan mengompilasinya sendiri menggunakan perintah berikut:

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  

atau Anda dapat mengunduh paket ddeb di sini dan menginstalnya dengan sudo dpkg -i linux-image-3.2.0-60-virtual-dbgsym_3.2.0-60.91_amd64.ddeb


Linux
  1. Instalasi Ubuntu 22.04 Cinnamon Desktop

  2. Instalasi Ubuntu 20.04 dari USB

  3. Instalasi Ubuntu 20.04 Cinnamon Desktop

  1. Instalasi Ubuntu 20.04 Tomcat

  2. Instalasi Server Ubuntu 20.04

  3. Instalasi Browser Chromium Ubuntu 20.04

  1. Instalasi Ubuntu 20.04 Kylin Desktop

  2. Instalasi Ubuntu 20.04 PostgreSQL

  3. Instalasi Ubuntu 20.04 FFmpeg