Armadilloフォーラム

Armadillo-840内臓のSDカードのマウント/アンマウントをQtから制御する方法

akio_tsuchiya

2020年1月27日 19時38分

  Armadillo-840内臓のSDカードは、
  Armadillo-840のマニュアルによると、
  6.5.ストレージ の章に記述されている通り、
  「mount -t ext3 /dev/mmcblk0p2 /mnt」にて、
  SDカードの第二パーティーション領域を、
  Linuxのext3形式でマウントすることが可能となります。
  
  弊社では、Armadillo-840のSDカードを、
  rc.local(ArmadillのLinuxが起動直後に最初に読むScript)
  にて、内臓のSDカードマウントを行い、その後、ユーザーアプリの
  起動を行っています。
  
  しかし、SDカードと本体の接触不良等と思われる原因から、
  マウント状態が正常に保たれない状態に陥ることが発生いたします。
  
  この応急対策として、SDカードのマウント/アンマウントを、
  Qtで作成している弊社のユーザーアプリから行いたいと考えているのですが、
  そもそも、Armadillo-840の内臓SDカードのマウント/アンマウントを、
  Qtで構築したユーザーアプリで制御することは可能でしょうか?
  
  また、可能な場合は、どの様なコードを記述すればよいでしょうか?

コメント

at_makoto.sato

2020年1月28日 10時23分

佐藤です。

> Qtで構築したユーザーアプリで制御することは可能でしょうか?
QProcess で mount/umount コマンドを呼び出すことで対応できないでしょうか。
https://doc.qt.io/archives/qt-4.8/qprocess.html
上記ページ中にあるサンプルコードが参考になるかと思います。

akio_tsuchiya

2020年1月28日 14時02分

佐藤様
土屋です。

分かり易いご回答、本当にありがとうございます。

現在は、プログラムの実行前(実際には、OSの起動直後)に、デバイスをマウントしている為、
フォルダを記述するだけで、プログラム内部からアクセスが行えています。

しかし、これをプログラム内に持ってくると、当然ながら現在のファイルアクセス部分は
全て影響が発生します。

簡単に置き換えられる方法は無いですね。
しかし、ファイルアクセスは重要なため、じっくり検討します。

> 佐藤です。
>
> > Qtで構築したユーザーアプリで制御することは可能でしょうか?
> QProcess で mount/umount コマンドを呼び出すことで対応できないでしょうか。
> https://doc.qt.io/archives/qt-4.8/qprocess.html
> 上記ページ中にあるサンプルコードが参考になるかと思います。