はじめに
前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」で,ZYBO上でのLinux起動に成功しましたので,使用するルートファイルシステムをUbuntuのものに変更してみました.
そもそも,私はまだLinuxやルートファイルシステム自体をよく理解していません.
本記事のタイトルからして適切なのか不安ですが,追々勉強して,理解しながら訂正や追記をしていきたいと思います.
下記記事を参考に作業しました.
開発環境
仮想マシン上のUbuntu 14.04 LTS 32bitで作業しました.
OS |
Ubuntu 14.04 LTS 32bit |
作業ログ
1. microSDHCのフォーマット
前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」の内容を終えていることが前提となっています.
ディレクトリ構造については,各自の環境に置き換えて読み進めてください.
microSDHC内のデータは,バックアップしておいてください.
Ubuntuであれば,microSDHCを挿入すると,自動認識してファイルマネージャが開くのではないかと思います.
特に使用しませんので,ファイルマネージャは閉じても大丈夫です(下図は,Mac OS Xライクな外観にしたUbuntuのウィンドウです).
lsblkコマンドでmicroSDHCのマウント位置を調べました.
私の環境では,/dev/sdbでした.
fdiskを開始し,pコマンドで既存パーティションを表示した後,dコマンドで既存パーティションを削除しました.
第1パーティション(プライマリ,64MByte)を作成しました.
nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'1'でパーティション番号を1に設定しました.
最初セクタは入力せず,Lastセクタは'+64M'としました.
第2パーティション(プライマリ,残りの領域)を作成しました.
nコマンドで新規パーティションの作成を開始し,'p'でパーティションタイプをプライマリに,'2'でパーティション番号を2に設定しました.
最初セクタとLastセクタは入力しませんでした.
第1パーティションのシステムタイプをFAT32に変更し(tコマンド),ブート可能フラグを付加しました(aコマンド).
パーティションテーブルの書込みを実行しました.
書込み後,パーティションテーブルの再読込みでエラーが発生しました.
partprobeコマンドを実行しても駄目でした.
一度,microSDHCをアンマウント(取り外し)し,再度挿入することで解決しました.
一応,再度パーティションテーブルを書込みしました.
パーティション名を設定し,ファイルシステムを作成しました.
2. ルートファイルシステムの書込み
ルートファイルシステムの書込みを行いました.
下記はコマンド実行ログです.
事前に,ディレクトリ「zybo_ubuntu」を作成し,前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成した「BOOT.bin」をコピーしておきました.
tarコマンドは,実行に6分程度かかりました.
3. BOOT.binとuImageの書込み
BOOT.binとuImage(前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で作成)をZYBO_BOOTに書き込みました.
4. devicetree.dtbの書込み
前回記事「Embedded Linux Hands-on Tutorial for the ZYBOをやってみました」内で使用した「zynq-zybo.dts」をコピーし,編集しました.
「zynq-zybo.dts」の変更箇所は42行目と55行目の計2箇所です.
5. uEnv.txtの書込み
「uEnv.txt」を作成し,ZYBO_BOOTにコピーしました.
「uEnv.txt」の内容は下記のとおりです.
6. 実機テスト
Linuxが起動しました!下記はTera Term上のログです.
7. apt-get
「ZYBO用のEmbedded Linux をブートするSDカードの作り方」にしたがい,Tera Term上で下記コマンドを実行しておきました.