さて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/
ほぼ、ここの丸パクリです、自分のブログとして、記述するのは
この後の工程などにつなげたいからです