読者です 読者をやめる 読者になる 読者になる

Tech と Culture

テクノロジーとカルチャー

LEONシステム Linuxコンパイル GR-XC3S-1500(Xilinx)編 2

kernel コンフィグレーションのGUIが立ち上がりました。
kernelgui1.jpg

上の方の General machine setup の中に Grlib:Amba device driver configurationという項目が見えます。
そこをクリックすると、 /proc filesystem for ambaにチェックが入っていることが分かります。
そこはそのままで、その下の Print AMBA PnP infoにチェックが入ってないので入れます。
ここにチェックを入れておくと、立ち上げの時にAMBAバス構成の情報がコンソールに現れます。

さらに下のVendor Gaislerをクリックすると Grlib gpio driverにチェックが入っていませんが、GPIOはとりあえず使わないのでこのままにします。 Grlib apbuart driver と Grlib apbuart serial consoleにはチェックが入っています。コンソールはフレームバッファにするのですが、動作しなかった場合はUARTが重要な通信手段となる可能性があるのでチェックを入れたままにします。

Grlibの項目の下の方に Networkingという項目があります。Ethernet通信を行いますので Networking supportにはチェックを入れます。Unix domain sockets とTCP/IP networkingを有効にします。そこで出てくるkernel level autoconfigurationにもチェックを入れます。

次にDevice Driversの項目に入ります。
Memory Technology Devicesにチェックを入れます (すみません、ここら辺は詳細を良く分かってません。。。)。
Block Devices
Network device support にチェックを入れます。さらにその下の Ethernet(10 or 100Mbit)にチェックを入れます。その時出てくる Generic Media Independent interface device supportにもチェックを入れます。
Input Device support にチェックを入れます。さらにその下のKeyboardsにもチェックを入れます。
Input Device support の下にある、Hardware IO portsをクリックします。そこで出てくる grlib ps2 keyboard controllerにチェックを入れます。
さらに下の方に行って、Graphics supportをクリックします。そこで出てくる Support for frame buffer devicesにチェックを入れます。Gaisler svga framebuffer supportにもチェックを入れます。
Graphics supportの下にある、Console display driver supportをクリックします。そこで出てくる Frame buffer console supportにチェックを入れます。そこで出てくるSelect compiled-in-fontsをクリックします。さらにそこに出てくるVGA8x16 fontをクリックします。
Graphics supportの下に出てくる Logo configurationをクリックします。そこで出てくる Bootup logoにチェックを入れます。
さらに下の方にいって、File systemsをクリックします。そこで出てくる Second extended fs supportにチェックをいれます。
(kenrlコンフィグについては、私はあまり詳しくありません。間違いがあれば教えてください)

FileメニュからSaveした後にexitします。
最初にCustomize/vender user settingをyにしたので、次にユーザランドのアプリケーション設定GUIが自動的に立ち上がります。
usergui1.jpg
今回はとりあえずブートさせるだけなので、何も変更しません(例えばアプリケーションをデバッグする時などはgdbserverにチェックを入れます)。

コンフィグレーションGUIを立ち上げたターミナルに戻り make と打ち込むことによってlinuxのコンパイルが始まります。

これで、イメージはできたのですが、スタートアップの時にネットワークが接続されていた方が都合が良いので、少しファイルをいじります。
snapgear-2.6-p42/romfs/.... がイメージのルートファイルシステムとなります。
snapgear-2.6-p42/romfs/etc/init.d/rcS がブート時に読み込まれて実行されます。

中身を見てみると、ネットワークを立ち上げている部分がありますが、IPアドレスが私の環境では許されない値になっています。その一行を変更します。

/sbin/ifconfig eth0 up 192.168.24.80

これでブート終了時にネットワークにつながっているはずです。
ファイルを変更したので、イメージを作りなおします(カーネルのコンパイルは必要ありません)。
snapgear-2.6-p42 のディレクトリで以下のようにmakeします。

make image

これでイメージが作りなおされます。


それでは、以前コンパイル済みのイメージをブートしたのと同じ方法で、今回コンパイルしたイメージをブートしてみます。
今回は、コンソールがフレームバッファになり、キーボード入力はPS/2入力となりましたので、ディスプレイとキーボードを接続します。
Leon-board-pic.jpg

FPGAにハードウェアをマッピング済みであることを確認します(done LEDが点灯している)。

grmon/grmon-eval/linux/grmon-eval -nb -nswb -eth -ip 192.168.24.10

と入力してDebug support Unitと通信を確立します。
無事接続されたら、以下のようにコンパイルしたイメージを転送し、実行します。

load snapgear-2.6-p42/images/image.dsu
run

しばらく経つと、、、、、

linuxbooting.jpg

ディスプレイに見慣れたペンギンマークが現れて、ブートメッセージが流れていきます。
最後にコマンド受付状態になります。
ホストコンピュータに向けた ping コマンドをキーボードから入力して実行すると無事にネットワークが接続されていることが分かります。

Linux ブート成功!!!