組み込み系のスキルアップに向けて(第4話)

Raspberry PiにUbuntu Serverをインストールしてヘッドレス起動

第3話までで、Raspberry Pi 3 Model BにRaspberry Pi OS (64 bit)をインストールして、基本的な起動確認しました。その際Raspberry Piにはディスプレイ、キーボード、マウス等の接続が必要でした。

今回は元々ターゲットとしていたOSであるUbuntu Serverというものをインストールして、さらに、ヘッドレス(Raspberry Piには電源とLANケーブルだけ接続)で起動してみたいと思います。

micro SDカードは使い回そうと思うので、Raspberry Pi OSは消えてしまう前提で実施します。どんなものが入ってたのか後で調べるかもしれないのでPCのフォルダに退避させました。

Ubuntu Serverをmicro SDカードに書き込む

第2話でRaspberry Pi OSを書き込んだ時と同様、PCにmicro SDカードを挿入しRaspberry Pi Imagerを起動し「OSを選ぶ」をクリックし、今回は「Other general-purpose OS」をクリックします。

すると「Ubuntu」がありました。これをクリックします。

すると、いくつか出てきますが、ターゲットの「Ubuntu Server 20.04.4 LTS」の64bitのものをクリックします。ちなみにLTSとは下のメニュー画像にも記載されてるようにlong-term support、つまり長期保証版のことで最新版よりもバグが少ないようです(正確には最新版はLTS版対して新規に追加した機能があるのでそこにバグが潜んでいる可能性が高い)

その後は書き込みですが
※ここでは書き込まずに、以下の「設定ボタン」に進んでください。私は気づかずに書き込んでしまったので、その時の状況もここに書いておきます。

今回の書き込み/確認は約35分かかりました。Raspberry Pi OSは約12分だったので3倍くらい長くなってます。サイズは0.7GBと同じなので、ダウンロードサイトの違いかもしれません。

と、ここでImargerのwindowの右下に「設定ボタン」らしきものがあるのに気づきました。とりあえずクリックすると

なんかリーモートアクセスの為の設定っぽいものが出てきたので、とりあえず「ホスト名」、「SSHを有効化する」、「ユーザー名とパスワードを設定する」にチェックを入れ、パスワードのみ適当に入れて保存しました。その他はあらかじめ入力されていたものそのままです。

これで再度書き込もうとするが、「書き込む」ボタンがクリックできなくなっています。先ほど書き込みを行ったので、自動的に取り出し処理がなされていたからです。一度micro SDカードを抜き、再度挿入します。この状態ではまだ「書き込む」ボタンは押せないので、再度「ストレージを選ぶ」でmicro SDカードを選択します。すると「書き込む」ボタンが押せるようになります。
※ここで再書き込みでなく初回書き込みの場合は、上記の取り出し等はせずに書き込み可能です。

ここで、上記のSSH等の設定前後で書き込まれるファイルの何が変わるのかを調べる為に、今のmicro SDカードの中身をPCのフォルダにコピーしました。そして「書き込む」をクリック。今度は何故か12分くらいで完了しました。

SSH等の設定前後に何が変わったのか。前後のファイル全てをフリーソフト「DF」で比較すると「user-data」というファイルのみが中身が違っていました。上記で設定したホスト名やユーザー名等が記入されているようでした。

他のサイトを見るとmicro SDカードに手動で「/boot」フォルダを追加作成して、その中に「ssh」という名前の空のファイルを作成する必要があるとのことですが、2022/4/11の時点で最新のv1.7.2のImagerのこの設定機能だけでリモートアクセスが可能が調べてみるために、このままmicro SDカードをRaspberry Piに挿入して起動してみます。その前に、

Raspberry Piに割り当てられるIPアドレスを調べる準備

Raspberry Piの電源を入れる前にPCでDOSプロンプトから以下のコマンドを実行します。

  • ipconfig (ローカルネットワーク内のPCのIPアドレスを調べます。例 192.168.1.4)
  • ping 192.168.1.255 (上記の結果の例です。結果次第で255より前は置き換えてください)
  • arp -a (ローカルエリア内に接続されている機器のIPアドレスの一覧が表示されます)

タイムアウトになるので、「Ctrl」+「C」キーで中断します。

上記画像では物理アドレス(MACアドレス)が見えないように加工してます。
準備はここまで。DOSプロンプト画面は閉じずに。

いよいよヘッドレス起動

Raspberry Piにmicro SDカードを挿入し電源を入れます。赤LEDは点灯、緑LEDがしばらくすると点滅を始めます。最初の起動は時間がかかるようで念のため10分程度待ってから再度PCのDOSプロンプトから以下のコマンドを実行します。

  • ping 192.168.1.255 (環境次第で255より前は置き換えてください)
  • arp -a

前回のIPリストに対して、1つアドレスが増えているはずです。それがRaspberry Piに割り当てられるIPアドレスになります。

私の環境では192.168.1.9に割り当てられたようです。

「ping」のコマンドを使ってやっていたことは、ローカルネットワーク内の接続機器に一斉にアクセスを行っていました。そして「arp」コマンドでは、最近アクセスしたローカルネットワーク機器内のIPアドレス一覧を表示してくれます。これをRaspberry Piの接続の前後で実施することで、ディスプレイやキーボード無しでも、Raspberry Piに割り当てられたIPアドレスを調べることになります。

一度割り当てられたら、電源OFF/ONしてもIPアドレスは変わらないようです。

PCからリモートアクセス

windows PCからRaspberry Piにアクセスする為に、私はフリーソフトの「Tera Term」を使用します。起動して「ファイル」メニューの「新しい接続」を選択すると以下のメニューが出ます。

「ホスト」の項目にRaspberry Piに割り当てられたIPアドレスを入力し、「サービス」の項目で「SSH」を選択します。すると右側の「TCPポート#(P)」は自動的に「22」が入力されます。この状態で「OK」ボタンをクリック。

「継続」をクリック。

「ユーザ名」「パスフレーズ」にはPaspberry Pi Imagerの設定した、「ユーザー名」「パスワード」を入力します。今回は「ユーザー名」はデフォルトの「pi」から変えてません。

「OK」ボタンをクリック。

無事にリモートログインできました。特にmicro SDカードに手動で追加フォルダやファイルを作成しなくても大丈夫でした。ちなみに、上記画面で何も表示されない場合があり「Enter」を押すと表示されました。

今回はここまで。次回(第5話)ではクロスコンパイル環境の構築を行います。

コメント

タイトルとURLをコピーしました