COLUMN
【Linux Tipsシリーズ】平凡なソフトウェア開発者が自分Linuxを作ってみた ⑩
前回に引き続きBuildrootプラグインを使っていこうと思います。
Buildroot プラグインで出来ること
Buildrootプラグインを使用すると、以下に示すことがやり易くなります。
-
独自アプリケーションやライブラリのコンパイル
-
リモート実行
-
リモートデバッグ
このうち、「独自アプリケーションやライブラリのコンパイル」は、前回行いましたので、今回は「リモート実行」をしてみます。
Buildrootの設定変更
リモート実行を行うには、ターゲット上にアプリケーションをコピーするための機能である「sftp」を使えるようにする必要があります。
「sftp」を使用できるようにするには、「Dropbear」と「Green End SFTP Server」の軽量アプリケーションの組み合わせを使用するか、本格的な実装である「OpenSSH」を使用するかの二通りの方法があります。
当初は、本コラムでは軽量sshサーバーとして「Dropbear」を使用してきましたので、その環境に「Green End SFTP Server」を追加する方法を採用しようとしたのですが、「Green End SFTP Server」を有効にした状態でRaspberryPiイメージの生成を行うと、ビルドエラーが発生してしまいイメージファイルが生成されなかったため、本コラムでは「OpenSSH」を使用します。
「OpenSSH」を使用できるようにするには、Buildrootの設定の「BR2_PACKAGE_OPENSSH」を有効にして「make」を実行します。
Buildrootの設定を開き、「Networking application」にある「openssh」にチェックを付けて(図 1 OpenSSH有効化 参照)保存を行い「make」を実行します。
図 1 OpenSSH有効化
「make」が終了したら、生成されたイメージファイルをマイクロSDに書き込んでRaspberryPiを起動します。
OpenSSHが動いていない
RaspberryPiが起動したらログインし、sshサーバーが期待通りに動いている確認してみます。 Buildrootの設定から「Dropbear」を外していないので、どちらが動いているか確認し、「OpenSSH」が動いていない場合は、「OpenSSH」が動くように設定を変える必要があります。
動作しているアプリケーションを確認する「ps」コマンドを使用して、sshサーバーとして動いているアプリケーションを確認します(図 2 動作しているsshサーバー 参照)。
-
※
-
「OpenSSH」のアプリケーション名は、「sshd」となります。 「Dropbear」の方は「dropbear」というアプリケーション名になります。
図 2 動作しているsshサーバー
「Dropbear」の方が動いているので、「OpenSSH」が動くようにRaspberryPiの設定を変更します。
-
※
-
「Dropbear」を外した状態でイメージファイルを作っても、Buildrootの環境をクリーン(make clean の実行)して、イメージファイル全体を再構築しない限り、「Dropbear」は消えません。
OpenSSHを動かすには
OSが起動したときにアプリケーションを自動実行してもらうには、「/etc/init.d」ディレクトリにアプリケーション起動用のスクリプトを作成する必要があります。
「Dropbear」が自動実行されていますので、「Dropbear」用のスクリプトがあるはずですので、ディレクトリの内容を表示する「ls」コマンドを使用して確認してみます(図 3 自動実行アプリケーション一覧 参照)。
図 3 自動実行アプリケーション一覧
「S50dropbear」というファイルがありました。 このファイルが「Dropbear」用のスクリプトなのですが、「S50sshd」という「OpenSSH」用のファイルもあります。「OpenSSH」の起動は、「Dropbear」が先に起動したために失敗していますので、「Dropbear」の起動スクリプトを削除して「OpenSSH」が起動できるようにします。
-
※
-
「/etc/init.d」ディレクトリに配置する自動起動用スクリプトのファイル名には命名規則がありますが、本コラムでは命名規則やスクリプトの書き方等に関しては割愛させていただきます。
-
※
-
「OpenSSH」が起動に失敗している理由は、ログファイル(/var/log/messages)に記録されています。
「rm」コマンドを使用して「Dropbear」の起動スクリプトファイルの「S50dropbear」を削除します(図 4 Dropbearスクリプトの削除 参照)。
図 4 Dropbearスクリプトの削除
これで「OpenSSH」が起動するようになりましが、「OpenSSH」は「Dropbear」と違って標準の設定では「root」ユーザーでのログインが禁止されていますので設定を変更する必要があります。 また、本来の目的である「sftp」サーバー機能も標準設定では動作しないようになっています。
今回は「OpenSSH」の起動までとし、次回は「OpenSSH」の設定変更と「リモート実行」をしてみようと思います。
個別相談も承っております。下記よりお申し込みください。