Armadilloフォーラム

SDカードのext4のフォーマット(mkfs)とfsckの実施方法

sakashita_spc

2018年7月9日 10時00分

現在、Amadillo-840でシステムの構築を行っています。以下の環境を利用しています。
SDK:atmark-dist-20170726.tar.gz & linux-3.4-at24.tar.gz
userland : romfs-a840-v1.12.img.gz

この環境で、
mkfs,fsckはあるのですが、どちらもbusybox内部の機能であり、busybox版ではext2までの
サポートと認識しています。
ext4でのサポート方法を教えていただけないでしょうか。
現在のシステムでは以下のようになっています。
[root@armadillo840-0 (ttySC2) /sbin]# ls mkfs* -al
lrwxrwxrwx 1 root root 14 Sep 27 2016 mkfs.ext2 -> ../bin/busybox*
lrwxrwxrwx 1 root root 14 Sep 27 2016 mkfs.minix -> ../bin/busybox*
lrwxrwxrwx 1 root root 7 Sep 27 2016 mkfs.msdos -> mkdosfs*
lrwxrwxrwx 1 root root 7 Sep 27 2016 mkfs.vfat -> mkdosfs*
[root@armadillo840-0 (ttySC2) /sbin]# ls /sbin/mke2fs -al
lrwxrwxrwx 1 root root 14 Sep 27 2016 /sbin/mke2fs -> ../bin/busybox*

以上、よろしくお願いします。

コメント

sakashita_spc

2018年7月9日 22時50分

お世話になります。

下記サイトから、ソースをDownloadして、crossbuildして、動作させてみました。
http://e2fsprogs.sourceforge.net/ 

問題なさそうなのです。(このサイトで問題ないでしょうか?)Versionは1.44.3でした。
現在
atmark-dist-20170726.tar.gz
の環境でusrlandを構築しており、
user/e2fsprogs
がありました。(Ver1.25)
このディレクトをビルドして、userland(romfs)に導入する方法はどうすればいいでしょうか?

以上、よろしくお願いします。

> 現在、Amadillo-840でシステムの構築を行っています。以下の環境を利用しています。
> SDK:atmark-dist-20170726.tar.gz & linux-3.4-at24.tar.gz
> userland : romfs-a840-v1.12.img.gz
>
> この環境で、
> mkfs,fsckはあるのですが、どちらもbusybox内部の機能であり、busybox版ではext2までの
> サポートと認識しています。
> ext4でのサポート方法を教えていただけないでしょうか。
> 現在のシステムでは以下のようになっています。
> [root@armadillo840-0 (ttySC2) /sbin]# ls mkfs* -al
> lrwxrwxrwx 1 root root 14 Sep 27 2016 mkfs.ext2 -> ../bin/busybox*
> lrwxrwxrwx 1 root root 14 Sep 27 2016 mkfs.minix -> ../bin/busybox*
> lrwxrwxrwx 1 root root 7 Sep 27 2016 mkfs.msdos -> mkdosfs*
> lrwxrwxrwx 1 root root 7 Sep 27 2016 mkfs.vfat -> mkdosfs*
> [root@armadillo840-0 (ttySC2) /sbin]# ls /sbin/mke2fs -al
> lrwxrwxrwx 1 root root 14 Sep 27 2016 /sbin/mke2fs -> ../bin/busybox*
>
> 以上、よろしくお願いします。

at_kojiro.yamada

2018年7月10日 12時46分

> お世話になります。
>
> 下記サイトから、ソースをDownloadして、crossbuildして、動作させてみました。
> http://e2fsprogs.sourceforge.net/ 
>
> 問題なさそうなのです。(このサイトで問題ないでしょうか?)Versionは1.44.3でした。

そちらのサイトで問題ありません。

> 現在
> atmark-dist-20170726.tar.gz
> の環境でusrlandを構築しており、
> user/e2fsprogs
> がありました。(Ver1.25)
> このディレクトをビルドして、userland(romfs)に導入する方法はどうすればいいでしょうか?

Atmark Dist にアプリケーションを追加する基本的なやり方、
Atmark Dist のビルドの仕組みについては
atmark-dist 開発者ガイドで解説しています。
https://manual.atmark-techno.com/dist/atmark-dist_developers_guide_ja-1…

「第10章 新規アプリケーションの追加方法」のように
userディレクトリ以下に新しいバージョンのe2fsprogsを追加し
各Makefileにromfs:ターゲットを記述していけばいいはずです。

romfsターゲットの処理内容は、もともとatmark-distに含まれているuser/e2fsprogsディレクトリ以下のMakefileが参考になると思います。

sakashita_spc

2018年7月11日 17時51分

連絡ありがとうございます。

開発ガイド参考にさせていただきます。

追加で1点教えてください。
userディレクトリーにないopensourceなどのアプリケーションを登録する場合、opensourceの一般的なビルド方法として、
configure->make->make install
となると思います。
configureで作成したMakefileを登録して、romfsのエントリーを作成すれば、make menuconfigのちの、makeでromfsにインストール
されると考えていいでしょうか?その場合、configureで注意すべきポイントがあれば教えてください。

以上、よろしくお願いします。

> > お世話になります。
> >
> > 下記サイトから、ソースをDownloadして、crossbuildして、動作させてみました。
> > http://e2fsprogs.sourceforge.net/ 
> >
> > 問題なさそうなのです。(このサイトで問題ないでしょうか?)Versionは1.44.3でした。
>
> そちらのサイトで問題ありません。
>
> > 現在
> > atmark-dist-20170726.tar.gz
> > の環境でusrlandを構築しており、
> > user/e2fsprogs
> > がありました。(Ver1.25)
> > このディレクトをビルドして、userland(romfs)に導入する方法はどうすればいいでしょうか?
>
> Atmark Dist にアプリケーションを追加する基本的なやり方、
> Atmark Dist のビルドの仕組みについては
> atmark-dist 開発者ガイドで解説しています。
> https://manual.atmark-techno.com/dist/atmark-dist_developers_guide_ja-1…
>
> 「第10章 新規アプリケーションの追加方法」のように
> userディレクトリ以下に新しいバージョンのe2fsprogsを追加し
> 各Makefileにromfs:ターゲットを記述していけばいいはずです。
>
> romfsターゲットの処理内容は、もともとatmark-distに含まれているuser/e2fsprogsディレクトリ以下のMakefileが参考になると思います。
>

at_kojiro.yamada

2018年7月12日 10時46分

> 連絡ありがとうございます。
>
> 開発ガイド参考にさせていただきます。
>
> 追加で1点教えてください。
> userディレクトリーにないopensourceなどのアプリケーションを登録する場合、opensourceの一般的なビルド方法として、
> configure->make->make install
> となると思います。
> configureで作成したMakefileを登録して、romfsのエントリーを作成すれば、make menuconfigのちの、makeでromfsにインストール
> されると考えていいでしょうか?その場合、configureで注意すべきポイントがあれば教えてください。

そのとおりです。

configureで注意すべき点は以下の2点です。

- Armadillo-840のarchtecture(armhf)向けにクロスコンパイルされるようにすること
- make installでatmark-dist/romfsディレクトリ以下にインストールされるようにすること

1つ目は必須です。これは既にクロスコンパイルされているとのことなので問題ないかと思います。

2つ目は、必須ではありませんが、やっておくとromfsターゲットを記述するのが楽になります。
(romfs: installとするだけでよくなります。)
これをやらない場合は、生成されたファイル(ディレクトリ)を個別に$(ROMFSINST)でromfsディレクトリにインストールしていくことになります。

at_kojiro.yamada

2018年7月12日 11時12分

> 2つ目は、必須ではありませんが、やっておくとromfsターゲットを記述するのが楽になります。
> (romfs: installとするだけでよくなります。)

すみません。
configureの話から変わって、
configureでMakefileを生成した後の話です。

make installでromfsディレクトリ以下にインストールされるようになっていれば、
Makefileにromfsターゲットの記述が、romfsターゲットを install ターゲットに依存させるだけでよいので、簡単になります
と言う意味です。

sakashita_spc

2018年7月12日 23時49分

いただいた内容をベースに作成していこうと思います。

以上、ありがとうございました。

> > 2つ目は、必須ではありませんが、やっておくとromfsターゲットを記述するのが楽になります。
> > (romfs: installとするだけでよくなります。)
>
> すみません。
> configureの話から変わって、
> configureでMakefileを生成した後の話です。
>
> make installでromfsディレクトリ以下にインストールされるようになっていれば、
> Makefileにromfsターゲットの記述が、romfsターゲットを install ターゲットに依存させるだけでよいので、簡単になります
> と言う意味です。