はじめに
- yoctoに初めて弄る方向け
- bitbakeしてみたが、どこに成果物があるのかよくわからんという方向け
まずは、bitbakeしてみよう
- ★行のall succeededが出てれば、bitbakeは成功
takeshi@X250:~/yocto/poky$ source oe-init-build-env
(略)
takeshi@X250:~/yocto/poky/build$ bitbake core-image-minimal
(略)
★NOTE: Tasks Summary: Attempted 2654 tasks of which 2644 didn't need to be rerun and all succeeded.
Summary: There was 1 WARNING message shown.
重要そうな成果物はtmp/deploy
の下にある
takeshi@X250:~/yocto/poky/build$ ls tmp/deploy/
images licenses rpm
- images
- rootfs(/下の全てのファイル)やlinuxカーネルが置いてある
- あなたが今一番必要としているものはおそらくこれ
- licenses
- bitbakeして作られたソフトに関するOSSライセンス情報が置かれている
- ソフト出荷する際のOSSライセンス準拠のためには、おそらくこのディレクトリのもの参照することになる
- rpm
- bitbakeして作られたソフトに関するパッケージが置かれている
- 今回は触れない
tmp/deploy/imagesの下はどのようになっているか?
- 様々なファイルがあるが、あなたが必要としているのはおそらく以下のファイル
- core-image-minimal-qemux86-64.tar.bz2
- tar.bz2形式のrootf
- tarコマンド等で既存のrootfsに上書きするような際に使用する
- core-image-minimal-qemux86-64.ext4
- ext4形式のrootfs
- ddコマンド等である領域にベタ書きするような際に使用する
- bzImage
- Linuxカーネル本体
- 上記rootfsからカーネルイメージだけを取り出したもの
- カーネルのみを書き換えたい際に使用する
- core-image-minimal-qemux86-64.tar.bz2
takeshi@X250:~/yocto/poky/build/tmp/deploy/images/qemux86-64$ ls -al
合計 27848
drwxr-xr-x 2 takeshi takeshi 4096 6月 10 03:41 .
drwxrwxr-x 3 takeshi takeshi 4096 6月 10 03:18 ..
lrwxrwxrwx 2 takeshi takeshi 75 6月 3 01:25 bzImage -> bzImage--5.2.17+git0+b867b78b50_255a750d28-r0-qemux86-64-20220602143045.bin
-rw-r--r-- 2 takeshi takeshi 8106656 6月 3 01:25 bzImage--5.2.17+git0+b867b78b50_255a750d28-r0-qemux86-64-20220602143045.bin
lrwxrwxrwx 2 takeshi takeshi 75 6月 3 01:25 bzImage-qemux86-64.bin -> bzImage--5.2.17+git0+b867b78b50_255a750d28-r0-qemux86-64-20220602143045.bin
-rw-rw-r-- 2 takeshi takeshi 1292 6月 10 03:19 core-image-minimal-qemux86-64-20220609181733.qemuboot.conf
-rw-r--r-- 2 takeshi takeshi 12279808 6月 10 03:19 core-image-minimal-qemux86-64-20220609181733.rootfs.ext4
-rw-r--r-- 2 takeshi takeshi 833 6月 10 03:19 core-image-minimal-qemux86-64-20220609181733.rootfs.manifest
-rw-r--r-- 2 takeshi takeshi 3251838 6月 10 03:19 core-image-minimal-qemux86-64-20220609181733.rootfs.tar.bz2
-rw-r--r-- 2 takeshi takeshi 174877 6月 10 03:41 core-image-minimal-qemux86-64-20220609181733.testdata.json
lrwxrwxrwx 2 takeshi takeshi 56 6月 10 03:19 core-image-minimal-qemux86-64.ext4 -> core-image-minimal-qemux86-64-20220609181733.rootfs.ext4
lrwxrwxrwx 2 takeshi takeshi 60 6月 10 03:19 core-image-minimal-qemux86-64.manifest -> core-image-minimal-qemux86-64-20220609181733.rootfs.manifest
lrwxrwxrwx 2 takeshi takeshi 58 6月 10 03:19 core-image-minimal-qemux86-64.qemuboot.conf -> core-image-minimal-qemux86-64-20220609181733.qemuboot.conf
lrwxrwxrwx 2 takeshi takeshi 59 6月 10 03:19 core-image-minimal-qemux86-64.tar.bz2 -> core-image-minimal-qemux86-64-20220609181733.rootfs.tar.bz2
lrwxrwxrwx 2 takeshi takeshi 58 6月 10 03:19 core-image-minimal-qemux86-64.testdata.json -> core-image-minimal-qemux86-64-20220609181733.testdata.json
-rw-rw-r-- 2 takeshi takeshi 7487446 6月 3 01:25 modules--5.2.17+git0+b867b78b50_255a750d28-r0-qemux86-64-20220602143045.tgz
lrwxrwxrwx 2 takeshi takeshi 75 6月 3 01:25 modules-qemux86-64.tgz -> modules--5.2.17+git0+b867b78b50_255a750d28-r0-qemux86-64-20220602143045.tgz
tmp/deploy/licensesの下はどのようになっているか?
- レシピ(.bb)ごとにディレクトリがある
takeshi@X250:~/yocto/poky/build$ ls tmp/deploy/licenses/
Display all 220 possibilities? (y or n)
acl/ json-c-native/ nss-native/
alsa-lib-native/ kern-tools-native/ openssl/
(略)
- ディレクトリの中身には、ライセンスファイル等が置かれている
takeshi@X250:~/yocto/poky/build$ ls tmp/deploy/licenses/acl/
COPYING COPYING.LGPL generic_GPLv2 generic_LGPLv2.1 recipeinfo
- あなたが一番参照することになるのは、イメージ名(イメージ名-アーキテクチャ-日付)のディレクトリの中のlicense.manifestである。
- 今回はcore-image-minimalがイメージ名
takeshi@X250:~/yocto/poky/build$ ls tmp/deploy/licenses/core-image-minimal-qemux86-64-20220609181733/
image_license.manifest license.manifest package.manifest
- license.manifestには、イメージに含まれるパッケージ名とレシピ名とライセンス情報がまとめて記載されている。
- あなたは、この情報を参照して、OSSライセンスを準拠するために何が必要であるかをおそらく判断することになる。
takeshi@X250:~/yocto/poky/build$ cat tmp/deploy/licenses/core-image-minimal-qemux86-64-20220609181733/license.manifest
PACKAGE NAME: base-files
PACKAGE VERSION: 3.0.14
RECIPE NAME: base-files
LICENSE: GPLv2
PACKAGE NAME: base-passwd
PACKAGE VERSION: 3.5.29
RECIPE NAME: base-passwd
LICENSE: GPLv2+
(略)