| 1 |
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| 2 |
<html lang="ja"> |
| 3 |
<head> |
| 4 |
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> |
| 5 |
<META name="date" content="2002-05-02T22:34:18+09:00"> |
| 6 |
<title>uClinux-H8 Kernel Re-build</title> |
| 7 |
</head> |
| 8 |
<body> |
| 9 |
<h1>カーネル再構築について</h1> |
| 10 |
<p> |
| 11 |
手順は通常のカーネル再構築と同じですが、 |
| 12 |
uClinux H8/300Hに固有な部分が数点あリます。<br> |
| 13 |
ので、その部分の解説です。 |
| 14 |
</p> |
| 15 |
<hr> |
| 16 |
<h2>コンフィグレーション</h2> |
| 17 |
<p> |
| 18 |
ごく普通に、make config/menuconfig/xconfigで、設定してください。<br> |
| 19 |
ただし、menuconfig以外は使ったことがないので、途中でエラーになる可能性もあります。 |
| 20 |
</p> |
| 21 |
uClinux H8/300Hに固有な項目は次のものがあります。 |
| 22 |
<ul> |
| 23 |
<li>Target Selection<br> |
| 24 |
ターゲットを選択します。該当する物がない場合は、genericを選んでください。 |
| 25 |
<li>Platform Depend Setup<br> |
| 26 |
Target Selectionでgenericを選んだ場合に出てきます。<br> |
| 27 |
ターゲットの詳細を設定します。 |
| 28 |
<ul> |
| 29 |
<li>CPU<br> |
| 30 |
ターゲットボードのCPUを選択します。 |
| 31 |
<li>Clock Frequency<br> |
| 32 |
CPUに供給されるクロックの周波数を入力します。<br> |
| 33 |
1000で割った値を入力してください。 |
| 34 |
<li>Kernel execute from<br> |
| 35 |
ROM/RAMのどちらで動かすか選択してください。 |
| 36 |
</ul> |
| 37 |
<li>ROM disk memory block device<br> |
| 38 |
ROM Diskです。標準のルートデバイスなので、基本的には必要です。 |
| 39 |
<li>Cirrus Logic cs8900 ethernet<br> |
| 40 |
移植していないので、動きません。 |
| 41 |
<li>SMC 9194 ethernet<br> |
| 42 |
同じく、動きません。 |
| 43 |
<li>NE2000/NE1000 ISA ethernet<br> |
| 44 |
設定項目が追加されています。 |
| 45 |
<ul> |
| 46 |
<li>NE2000 (or Compatible) Base Address<br> |
| 47 |
ベースアドレスを設定してください。 |
| 48 |
<li>NE2000 (or Compatible) Used IRQ<br> |
| 49 |
NICの割り込み出力が接続されているIRQを設定してください。 |
| 50 |
</ul> |
| 51 |
<li>Hitachi SCI serial support<br> |
| 52 |
CPU内蔵のSCIドライバです。入れない場合、メッセージが何も出てこなくなります。<br> |
| 53 |
<li>Serial Console Channel<br> |
| 54 |
カーネルからのメッセージを流すSCIのチャネル番号を入力してください。<br> |
| 55 |
<li>Console Baudrate<br> |
| 56 |
コンソールのボーレートを設定します。<br> |
| 57 |
ちなみに、コンソールに使わないチャネルは、9600BPSで初期化されます。 |
| 58 |
<li>Watchdog Timer Support<br> |
| 59 |
使えません。内蔵WDTは周期が短すぎて使えないので、 |
| 60 |
このまま消えてなくなるかもしれません。 |
| 61 |
</ul> |
| 62 |
他は、普通のlinuxカーネルと同じ機能です。 |
| 63 |
<hr> |
| 64 |
<h2>ldscriptの修正</h2> |
| 65 |
<p> |
| 66 |
arch/h8300/platform/h8300h/{terget名}/{rom,ram}.ldです。<br> |
| 67 |
MEMORYセクションをターゲットに合わせて修正してください。 |
| 68 |
</p> |
| 69 |
領域の定義は、次のようになってます。 |
| 70 |
<ul> |
| 71 |
<li>rom.ld<br> |
| 72 |
<table> |
| 73 |
<tr><td>vector</td><td>ベクタテーブルです</td></tr> |
| 74 |
<tr><td>rom</td><td>ROM領域です</td></tr> |
| 75 |
<tr><td>erom</td><td>ROM領域の最終アドレスを定義します</td></tr> |
| 76 |
<tr><td>ram</td><td>RAM領域です</td></tr> |
| 77 |
<tr><td>eram</td><td>RAM領域の最終アドレスを定義します</td></tr> |
| 78 |
</table> |
| 79 |
特に変わった所はありません。 |
| 80 |
<li>ram.ld (for aki3068net)<br> |
| 81 |
<table> |
| 82 |
<tr><td>ram</td><td>カーネル用コード+データ領域です</td></tr> |
| 83 |
<tr><td>rdisk</td><td>ディスクイメージ用領域です</td></tr> |
| 84 |
<tr><td>uram</td><td>ユーザー領域です</td></tr> |
| 85 |
<tr><td>eram</td><td>RAM領域の最終アドレスを定義します</td></tr> |
| 86 |
<tr><td>iram</td><td>CPU内蔵RAMを定義します</td></tr> |
| 87 |
</table> |
| 88 |
CPU内蔵RAMは、ブートローダーとの連動用です。 |
| 89 |
</ul> |
| 90 |
<p> |
| 91 |
カーネルコンフィグレーションで変更できるようになればいいんですが、 |
| 92 |
今の所、直接変更する必要があります。 |
| 93 |
</p> |
| 94 |
<hr> |
| 95 |
<h2>コンパイル</h2> |
| 96 |
ごく普通に、 |
| 97 |
<pre> |
| 98 |
make dep |
| 99 |
make clean |
| 100 |
make linux |
| 101 |
</pre> |
| 102 |
でカーネルが出来ます。<br> |
| 103 |
圧縮したカーネルを作っても、展開して起動する手段を用意していないので、 |
| 104 |
意味がありません。<br> |
| 105 |
ここで出来てくるのはcoffのバイナリなので、SRECやRaw Binaryが必要な場合は、 |
| 106 |
手動でobjcopyを実行してください。 |
| 107 |
<hr> |
| 108 |
<a href="http://sourceforge.jp/projects/uclinux-h8/">Project Page</a><br> |
| 109 |
<address><a href="mailto:ysato@users.sourceforge.jp">Yoshinori Sato</a></address> |
| 110 |
</body> |
| 111 |
</html> |