今回は残課題の⑨を調査します。

【関連記事】


【キーワード】
deb
  • 2019/8/27
⑨image以外のカーネルパッケージ(*.deb)の詳細を知りたい

【PC-Linuxビルド】(2019/07/09:ビルド後編)でimageのdebパッケージをdpkgでインストールしたが、firmware、headers、デバッグシンボルを含むimage、linux-libc-devを調べたい。
  • debパッケージの中身を見るにはどうすればよいか
【PC-Linuxビルド】(2019/07/09:ビルド後編)を実施すると、/usr/srcにdebパッケージが5つ生成されます。
linux-firmware-image-3.14.79-pavement1234_3.14.79-1_amd64.deb ③
linux-headers-3.14.79-pavement1234_3.14.79-1_amd64.deb 
linux-image-3.14.79-pavement1234-dbg_3.14.79-1_amd64.deb ④
linux-image-3.14.79-pavement1234_3.14.79-1_amd64.deb ①
linux-libc-dev_3.14.79-1_amd64.deb 
debパッケージの展開を読み、debの展開方法を知る。

①カーネルイメージ
$ sudo ar vx linux-image-3.14.79-pavement1234_3.14.79-1_amd64.deb
x - debian-binary テキストファイル。中に2.0と書いてある。
x - control.tar.gz 
x - data.tar.xz
control.tar.gzを展開。
$ sudo tar xvf control.tar.gz
./
./postrm
./control
./prerm
./postinst
./preinst
./md5sums
data.tar.xzを展開。
$ sudo tar xvf data.tar.xz
./
./lib/
./lib/modules/
./lib/modules/3.14.79-pavement1234/
./lib/modules/3.14.79-pavement1234/modules.builtin.bin
./lib/modules/3.14.79-pavement1234/modules.dep
./lib/modules/3.14.79-pavement1234/modules.symbols
./lib/modules/3.14.79-pavement1234/modules.softdep
./lib/modules/3.14.79-pavement1234/modules.symbols.bin
./lib/modules/3.14.79-pavement1234/modules.devname
./lib/modules/3.14.79-pavement1234/modules.order
./lib/modules/3.14.79-pavement1234/kernel/
(途中省略)
./lib/modules/3.14.79-pavement1234/modules.alias.bin
./lib/modules/3.14.79-pavement1234/modules.alias
./lib/modules/3.14.79-pavement1234/modules.builtin
./lib/modules/3.14.79-pavement1234/modules.dep.bin
./etc/
./etc/kernel/
./etc/kernel/prerm.d/
./etc/kernel/preinst.d/
./etc/kernel/postinst.d/
./etc/kernel/postrm.d/
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-image-3.14.79-pavement1234/
./usr/share/doc/linux-image-3.14.79-pavement1234/copyright
./usr/share/doc/linux-image-3.14.79-pavement1234/changelog.Debian.gz
./boot/
./boot/vmlinuz-3.14.79-pavement1234
./boot/config-3.14.79-pavement1234
./boot/System.map-3.14.79-pavement1234
②カーネルヘッダー

かならずこの3ファイルが展開されるのね。
$ sudo ar vx linux-headers-3.14.79-pavement1234_3.14.79-1_amd64.deb
x - debian-binary テキストファイル。中に2.0と書いてある。
x - control.tar.gz 
x - data.tar.xz

control.tar.gzを展開。
$ sudo tar xvf control.tar.gz
./
./control
./md5sums

data.tar.xzを展開。
$ sudo tar xvf data.tar.xz
./
./lib/
./lib/modules/
./lib/modules/3.14.79-pavement1234/
./usr/
./usr/src/
./usr/src/linux-headers-3.14.79-pavement1234/
./usr/src/linux-headers-3.14.79-pavement1234/tools/

(途中省略)
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-headers-3.14.79-pavement1234/
./usr/share/doc/linux-headers-3.14.79-pavement1234/copyright
./usr/share/doc/linux-headers-3.14.79-pavement1234/changelog.Debian.gz
./lib/modules/3.14.79-pavement1234/build

③ファームウェア

$ sudo ar vx linux-headers-3.14.79-pavement1234_3.14.79-1_amd64.deb
x - debian-binary テキストファイル。中に2.0と書いてある。
x - control.tar.gz 
x - data.tar.xz

control.tar.gzを展開(②と同じ)。
$ sudo tar xvf control.tar.gz
./
./control
./md5sums

data.tar.xzを展開。
$ sudo tar xvf data.tar.xz
./
./lib/
./lib/firmware/
./lib/firmware/3.14.79-pavement1234/
./lib/firmware/3.14.79-pavement1234/yamaha/
(途中省略)
./usr/
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-firmware-image-3.14.79-pavement1234/
./usr/share/doc/linux-firmware-image-3.14.79-pavement1234/copyright
./usr/share/doc/linux-firmware-image-3.14.79-pavement1234/changelog.Debian.g

④デバッグ版カーネルイメージ

$ sudo ar vx linux-image-3.14.79-pavement1234-dbg_3.14.79-1_amd64.deb
x - debian-binary
 テキストファイル。中に2.0と書いてある。
x - control.tar.gz
x - data.tar.xz

control.tar.gzを展開(③と同じ)。
$ sudo tar xvf control.tar.gz
./
./control
./md5sums

data.tar.xzを展開
$ sudo tar xvf data.tar.xz
./
./usr/
./usr/lib/
./usr/lib/debug/
./usr/lib/debug/lib/
./usr/lib/debug/lib/modules/
./usr/lib/debug/lib/modules/3.14.79-pavement1234/
./usr/lib/debug/lib/modules/3.14.79-pavement1234/kernel/
./usr/lib/debug/lib/modules/3.14.79-pavement1234/kernel/sound/

(途中省略)
./usr/lib/debug/lib/modules/3.14.79-pavement1234/vmlinux
./usr/lib/debug/boot/
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-image-3.14.79-pavement1234-dbg/
./usr/share/doc/linux-image-3.14.79-pavement1234-dbg/copyright
./usr/share/doc/linux-image-3.14.79-pavement1234-dbg/changelog.Debian.gz
./usr/lib/debug/vmlinux-3.14.79-pavement1234
./usr/lib/debug/boot/vmlinux-3.14.79-pavement1234

⑤Cランタイム

$ sudo ar vx linux-libc-dev_3.14.79-1_amd64.deb
x - debian-binary テキストファイル。中に2.0と書いてある。
x - control.tar.gz 
x - data.tar.xz

control.tar.gzを展開。
$ sudo tar xvf control.tar.gz
./
./control
./md5sums

data.tar.xzを展開。
$ sudo tar xvf data.tar.xz
./
./usr/
./usr/include/
./usr/include/sound/
(途中省略)
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-libc-dev/
./usr/share/doc/linux-libc-dev/copyright
./usr/share/doc/linux-libc-dev/changelog.Debian.gz

取り急ぎ展開できた。/lib/modules、/etc、/usr/share、/usr/lib、/lib/firmware、/usr/srcに展開されるようだ。困ったらここを見てデバッグしよう。

  • debパッケージ作成方法
debパッケージ作成方法をステップバイステップでまとめましたに、debパッケージの作り方が書いてある。これを読むことで、make deb-pkgで生成されたパッケージがどうやって作られているかわかるに違いない。近々debパッケージを作ってみようと思う。

続く
FB_IMG_1566690212544



詳解 Linuxカーネル 第3版
Daniel P. Bovet
オライリー・ジャパン
2007-02-26


組み込みLinuxシステム構築 第2版
Karim Yaghmour
オライリージャパン
2009-10-26


Linuxデバイスドライバ 第3版
Jonathan Corbet
オライリージャパン
2005-10-22



スポンサードリンク