LoginSignup
2
2

Raspberry PIのSDカードをRaspbian, TOPPERS/FMP, TOPPERS/SSP起動用に利用「名古屋のIoTは名古屋のOSで」

Last updated at Posted at 2018-02-20

Raspberry PIは買ったけど、Raspbianの導入に四苦八苦した人は、もう別のOSを入れたくないと思うかもしれません。
ちょっと考えてみてください。
HDDに複数のOSを入れられたのなら、SDにも複数のOSを起動用として利用できるのではと思いませんか?

用意するもの

Raspbianの起動するSDカード(16GB以上推奨)

TOPPERS/FMPのコンパイルしたもの<別記事>

TOPPERS/SSPのコンパイルしたもの<別記事>

SDカードを読み書きできるパソコン

Raspberry PIでも良い

作業手順<FMP編>

コマンドプロンプトの現在位置(current directory)はSDカードの根(root)にいるものとします。ここではMacintoshのターミナル(command)で説明します。bootというSDカードの根 (root)は/Volumes/bootです。Linuxではどうなるか調べてください。Docker側の入力促進状態(command)ではありません。
fmpディレクトリはdocker側の/home/administrator/worker/RPi64Toppers/にあるものとします。

Raspbianのルートディレクトリファイルの退避

$ mkdir RB
$ cp *.* RB

$は入力促進記号(command prompt)です。$を入力する必要はありません。入力促進記号の文字はOSの設定によって異なります。
mkdirは紙挟み(folder, directory)を作成する命令。

「RB」は名前が重複しなければ、どんな名前でも結構です。ただし、「com」「aux」「prn」「nul」などはMS-DOSで特定の装置に既定値として割り当てている名前で、Windowsなどに複写するとファイルの中身が消えるかエラーになる可能性があります。これらの名前は使わないようにしましょう。

ファイル名やフォルダー名にprnは使ってはいけない

cpは複写(copy)命令。
.」はすべてのファイルという意味の万能切り札(wild card)。

dockerのIDの確認(Host OS:ここではMac OS)

$ docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
f6069be2d268        dockertoppersssp_ssp        "/bin/bash"         2 hours ago         Up 2 hours                              dockertoppersssp_ssp_1
2a02eaf04fef        dockertoppersfmprpi64_fmp   "/bin/bash"         12 days ago         Up 12 days                              dockertoppersfmprpi64_fmp_1

dockerでコンテナとホストの間のファイルのコピー

$ mkdir fmp
$ docker cp 2a02eaf04fef:/home/administrator/worker/RPi64Toppers/fmp/build/fmp.bin /Volumes/boot/fmp
$ cp -r fmp .

これだけ。cpはcopy命令です。
docker cp DockerID:/ディレクトリ/ファイル 送り先フォルダ/(ファイル)

念のために、SDの中身を確認してください。
(ここではMacintosh osx 10.12.6利用しています。macosxが生成するものは表示していません。)

$ ls -al /Volumes/boot
total 5803
drwxrwxrwx  1 administrator  staff     1536  2 13 15:00 RP
-rwxrwxrwx@ 1 administrator  staff    52064  2 13 16:07 bootcode.bin
-rwxrwxrwx  1 administrator  staff       73  2  7 08:51 config.txt
drwxrwxrwx  1 administrator  staff      512  2 20 09:18 fmp
-rwxrwxrwx  1 administrator  staff    84472  2  7 09:18 fmp.bin
drwxrwxrwx  1 administrator  staff    10240 11 29 02:49 overlays
-rwxrwxrwx@ 1 administrator  staff  2821796  2 13 16:07 start.elf

Raspberry Pi以外で操作している場合は、

SDを「取り出し」を選択して、SDカードをRaspberry Piに挿し直して電源投入。

Raspbianで作業しているのであれば、

$ reboot

でTOPPERS/FMPが起動するはず。

作業手順<SSP編>

SDカードの根(root)にいるものとします。
SSPはdocker側のディレクトリ/home/administrator/worker/docker-toppers-ssp/ssp にあるものとします。すでにRaspbianの退避用フォルダが作ってあって、退避させている場合には次を飛ばしてください。

$ mkdir RB
$ cp *.* RB

$は入力促進記号(command prompt)です。$を入力する必要はありません。入力促進記号の文字はOSの設定によって異なります。
ここではMacintoshのターミナル(command)で説明します。Linuxでもほぼ同様です。Docker側の入力促進状態(command)ではありません。

dockerのIDの確認(Host OS:ここではMac OS)

$ docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS               NAMES
f6069be2d268        dockertoppersssp_ssp        "/bin/bash"         2 hours ago         Up 2 hours                              dockertoppersssp_ssp_1
2a02eaf04fef        dockertoppersfmprpi64_fmp   "/bin/bash"         12 days ago         Up 12 days                              dockertoppersfmprpi64_fmp_1

ssp用のフォルダも作っておきます。(sspを退避させる用)

$ mkdir ssp

ファイルの複写。ついでにfmpに合わせてssp.binにする。sspだけだとフォルダ名と紛らわしい。

$ docker cp f6069be2d268:/home/administrator/work/docker-toppers-ssp/workdir/build/ssp /Volumes/boot/ssp/ssp.bin
$ cp ssp .

これだけ。念のために、中身を確認してください。ファイルをコピーする場合は、ファイル名まで指定。
フォルダ名の最初は/が要るかどうか。
例えば、逆に、現在のフォルダにあるファイルを、dockerにコピーする場合,コピー先のファイル名を書く。

$ docker cp train.py e04975e7b61f:etc/init.d/train.py

ls

$ ls -al
total 5820
drwxrwxrwx  1 administrator  staff     1536  2 13 15:00 RP
-rwxrwxrwx@ 1 administrator  staff    52064  2 13 16:07 bootcode.bin
-rwxrwxrwx  1 administrator  staff       73  2  7 08:52 config.txt
drwxrwxrwx  1 administrator  staff      512  2 20 09:18 fmp
drwxrwxrwx  1 administrator  staff    10240 11 29 02:49 overlays
drwxrwxrwx  1 administrator  staff     1024  2 20 13:33 ssp
-rwxrwxrwx  1 administrator  staff   232420  2 20 13:34 ssp.bin
-rwxrwxrwx@ 1 administrator  staff  2821796  2 13 16:07 start.elf

Raspbianにいるのであれば、

$ reboot

でTOPPERS/SSPが起動します。Raspberry Pi以外で操作している場合は、
SDを「取り出し」を選択して、SDカードをRaspberry Piに挿し直して電源投入。

付録 Macintoshでは

cd /Volumes/boot

でRaspbianのSDの根(root)に行けます。<bootという名前でSDを作成した場合>

先にTOPPERSをいれた場合

先に TOPPERSをいれた場合には、一旦PC等にSDのファイルをコピーして、
Raspbianをいれてから、上記の操作の、退避・複写部分を実行してください。

参考文献

現在整理中。

<この項は書きかけです。順次追記します。>
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

文書履歴(document history)

ver. 0.01 初稿  20180220
ver. 0.02 ありがとう追記 20230513

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2