ARM版Ubuntu Serverのインストールも可能! 小さくてもパワフル、OpenBlocks AX3活用レシピ 4ページ
ARM版Ubuntu Serverを導入してみる
最近ではその消費電力の低さからARM CPUが注目されており、サーバーでの利用も実験的レベルではあるが進んでいる。これを受けて、Debian GNU/Linux以外でもARMアーキテクチャに対応するLinuxディストリビューションが登場している。その1つがUbuntuだ。Ubuntuでは現在、いくつかのARM系CPU搭載ボードPCに向けたLinuxカーネルおよびinitrdイメージファイルが公開されており、OpenBlocks AX3が採用しているARMADA XP向けのものも用意されている。
Ubuntuは近年ユーザーを増やしており、Debian GNU/Linuxよりもこちらを使いたい、という人もいるのではないだろうか。そこで、以下ではOpenBlocks AX3にUbuntu Serverをインストールする手順を紹介する。なお、OpenBlocks AX3でのUbuntu Serverの利用はぷらっとホームの正式サポート外となるため注意してほしい。
TFTPサーバーの設定
ARM版Ubuntu Serverでは、TFTPを使用したネットワークブートを使ってインストーラを起動する。OpenBlocks AX3のブートローダであるU-Bootにはデフォルトでネットワークブート機能が用意されているので、これを利用する。
ネットワークブートを行うには、まずTFTPサーバーを用意する必要がある。TFTPサーバーの設定はここでは詳しくは説明しないが、たとえばCent OSでは次のような手順でTFTPサーバーをインストールできる。
# yum install tftp-server # /sbin/chkconfig tftp on # /sbin/service xinetd restart
次に、Ubuntu wikiのインストール方法解説ページからリンクをたどり、ARMADA XP用のカーネルイメージ(uImageファイル)とinitrdイメージ(uInitrdファイル)をダウンロードする。UbuntuのWebサイトから直接ダウンロードしても構わない。
ダウンロードした2つのファイルをTFTPサーバーの公開ディレクトリにコピーし、TFTPクライアントからファイルをダウンロードできるように設定する。たとえば公開ディレクトリが「/var/lib/tftpboot/」(CentOSでデフォルトの公開ディレクトリ)である場合、次のようにする。
# cp uImage uInitrd /var/lib/tftpboot/
OpenBlocks AX3でネットブートを行う
TFTPサーバーの準備ができたら、シリアルコンソールに接続した状態でOpenBlocks AX3を起動し、「Hit any key to stop autoboot:」というメッセージが表示されたところで適当なキーを押す。
BootROM 1.15 Booting from NOR flash DDR3 Training Sequence - DEBUG - 1 DDR3 Training Sequence - DEBUG - 2 : : USB 0: Host Mode USB 1: Host Mode USB 2: Device Mode Power Off External Interface Modules Detected: MMC: MRVL_MMC: 0 Net: egiga0 [PRIME], egiga1, egiga2, egiga3 Hit any key to stop autoboot: 0 ←ここで何かキーを押す Marvell>>
すると、「Mervell>>」というプロンプトが表示され、ブートシェルを利用できるようになる。続いて「dhcp」コマンドを実行し、DHCP経由でIPアドレスを取得する。
Marvell>> dhcp BOOTP broadcast 1 *** Unhandled DHCP Option in OFFER/ACK: 44 *** Unhandled DHCP Option in OFFER/ACK: 44 DHCP client bound to address 172.17.4.99
「tftpboot 0x2000000 <TFTPサーバーのIPアドレス>:/uImage」コマンドを実行し、カーネルイメージをロードする。たとえばTFTPサーバーのIPアドレスが「172.17.4.79」だった場合、次のようになる。
Marvell>> tftpboot 0x2000000 172.17.4.79:/uImage Using egiga0 device TFTP from server 172.17.4.79; our IP address is 172.17.4.99 Filename '/uImage'. Load address: 0x2000000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ############################# done Bytes transferred = 5194176 (4f41c0 hex)
また、同様にしてinitrdイメージもロードする。「tftpboot」のあとに続くアドレス(イメージをロードするアドレス)が先と異なるので注意してほしい。
Marvell>> tftpboot 0x1100000 172.17.4.79:/uInitrd Using egiga0 device TFTP from server 172.17.4.79; our IP address is 172.17.4.99 Filename '/uInitrd'. Load address: 0x1100000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ########### done Bytes transferred = 4930820 (4b3d04 hex)
カーネルのブート引数は「bootargs」変数で指定する。setenvコマンドを使って、この変数にブート引数を設定する。
Marvell>> setenv bootargs "console=ttyS0,115200 earlyprintk=ttyS0 pm_disable"
最後にbootmコマンドでカーネルをブートする。
Marvell>> bootm 0x2000000 0x1100000
これでUbuntu Serverのインストーラが起動するはずだ(図20)。あとは画面に従って操作を進めて行けば良い。Ubuntu Serverのインストールプロセスはx86/x86_64版Ubuntu Serverとほぼ同じだ。
ディスクのパーティションについては、ディスク全体を使用する設定を選択しておけば良いだろう(図21)。
Ubuntuではセキュリティアップデートを自動的にインストールするかどうかを指定する画面では、Canonicalが提供する監視サービス「Landscape」を選択することも可能だ(図22)。
インストールが完了すると、「Finish the installation」と表示される(図23)。筆者の環境では、インストールの開始からこの画面が表示されるまで、およそ40分ほどかかっていた。
インストールの完了後は、ブートシェルにアクセスしてインストールしたカーネルを起動するように設定を変更する必要がある。インストールの完了後再起動を行い、ブート画面の「Hit any key to stop autoboot:」でキーを押し、ブートシェルに再度アクセスする。プロンプトが表示されたら、次のようにコマンドを実行する。
Marvell>> setenv bootcmd "ide reset;ext2load ide 0:1 0x2000000 uImage;ext2load ide 0:1 0x1100000 uInitrd;setenv bootargs console=ttyS0,115200 earlyprintk=ttyS0 root=/dev/sda2 ro pm_disable;bootm 0x2000000 0x1100000" Marvell>> save Saving Environment to Flash... . done Un-Protected 1 sectors . done Un-Protected 1 sectors Erasing Flash... . done Erased 1 sectors Writing to Flash... .0.done . done Protected 1 sectors . done Protected 1 sectors Marvell>> reset
初めの「setenv bootcmd」行は、カーネルの読み込み手順をを指定するものだ。次に「save」コマンドを実行して設定をフラッシュROMに保存し、「reset」コマンドで再起動を行っている。
再起動が完了すると、問題がなければシリアルコンソールにUbuntuのブート画面が表示され、ログインプロンプトが表示されるはずだ(図24)。
ARM版Ubuntu Serverも、x86/x86_64版のUbuntu Serverと同様の手順で利用が可能だ。apt-getを使ったパッケージの更新やインストールも行える。
さまざまに活用できるOpenBlocks AX3
OpenBlocks AX3はコンパクトかつ低消費電力ながら、さまざまに利用できる処理性能を持っているのが特徴だ。そのため、たとえばルーターとして使うにしても、VPNやWebサーバー、ファイルサーバーといった付加機能を同時に1台で運用できる。ファンレスであるため、小規模オフィスや自宅オフィスでも使いやすい。
また、Ubuntu Serverではクラスタ/プライベートクラウド関連の機能が充実しているため、OpenBlocks AX3をクラウドのインフラとして使用するのも面白いかもしれない。OpenBlocks AX3はこれ以外にも多くの用途が考えられる、非常に柔軟なサーバーマシンであるといえよう。
ぷらっとホーム
http://www.plathome.co.jp/
OpenBlocks
http://openblocks.plathome.co.jp/