yoctoプロジェクト

さてFPGAのブログの筈ですが
現在抱えてる問題から解決していくので
yoctoプロジェクトのビルドの仕方から書いていきます

yoctoプロジェクトは、linuxをビルドする為の基本的なレシピを用意し
各プラットフォームでのlinuxの導入を助ける為のプロジェクトです

何故FPGAのブログなのに、linuxから始まるかと言うと
1.筆者は既にFPGAについては大分経験してきた為、FPGAのベーシックは既に学習している(そのうちおさらいとしてブログに書きます)
2.FPGAにARMが乗る様になって、ARMの機能を生かすためにARM-Linuxを導入する手引きが早晩必要になる

 と言った理由からです

【環境設定】
1.VM-Ware
 Linuxコンパイルの為にはLinuxが必要になるのですが
 今どきその為だけにPCを一台用意して・・・って事はしないので
 VM-Ware-Playerをインストールします
https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/14_0

2.Ubuntu 16.04
ubuntu-ja-16.04-desktop-amd64.iso

https://www.ubuntulinux.jp/download/ja-remix
辺りからダウンロードしてVM-Wareにインストールしています

【必要なモジュールのインストール】

aptコマンドを使って、以下のモジュールをインストールする

> sudo apt install -y gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm make xsltproc docbook-utils fop dblatex xmlto autoconf automake libtool libglib2.0-dev libarchive-dev python-git

【yoctoプロジェクトのクローン】

yoctoプロジェクトのgitリポジトリをクローンしてきます

> git clone https://git.yoctoproject.org/git/poky

バージョンを2.2にします

> cd poky

> git checkout -b yocto-2.2 yocto-2.2

このバージョンはパッチが手に入る最新が2.2の様だったからです

パッチをダウンロードします
> cd ..
> git clone https://github.com/ubinux/smart2/ -b master-next
> cd poky

 pokyのディレクトリでpatchを当てます

> patch -p1 < ../smart2/patches-yocto/for_2.2/0001-rpm-The-config-file-of-rpm-will-be-installed-into-SD.patch

> patch -p1 < ../smart2/patches-yocto/for_2.2/0002-change-SRC_URI-switch-to-smart2.patch

>patch -p1 < ../smart2/patches-yocto/for_2.2/0003-Add-dependencies-for-smart-nativesdk.patch

 

【bitbake】

現在いるディレクトリがpokyならビルド環境を整えるためにoe-init-build-env を読み込みます、引数は無くても良いですが、何をビルドしてるか分かる様に擦る為にbuild.qemux86を引数にします

> source oe-init-build-env build.qemux86

build.qemux86と言うディレクトリが出来て、そこに移動しています

> bitbake  core-image-sato

として、bitbakeを実行します、PCの性能に拠りますが5時間~10時間くらいかかるので

夕方仕掛けて、翌朝確認するくらいのイメージです

その後、

> bitbake core-image-sato -c populate_sdk

を実行、これも1時間くらいはかかります

ビルドが終わったらrunquemコマンドでモジュールを(仮想PC上の)仮想PCで実行します、IPアドレスを確認して、ホストPCとsshも出来ました

 

 

 

【参考URL】
https://www.aps-web.jp/academy/linux_cycl/02/
ほぼ、ここの丸パクリです、自分のブログとして、記述するのは
この後の工程などにつなげたいからです