© 法政大学 理工学部 創生科学科 小林一行実験室

組込みマイコンの中での安価で、機能が充実しており、Linuxが動作可能なSH3マイコンであるSH7706LSRでDebianを動かすことができたので、そのやり方を解説します。かなり強引に動かしているため、起動時などにエラーが出ますが、一応、ネットワーク、SDカードなどを使うことができます。
Debian Linuxなので、ソースをクロスコンパイルすることなく、apt-get をすることで、Python、Perl、telnetサーバ,ftpサーバ,gccなどを動作させることができます。

SH7706LSR上でDebianを起動させる手順を以下に示します.
SDカードをfat32でフォーマットします.SDカードは、1G以上のものを用意してください.ここでは,2GのSDカードを用い動作確認をしています.
「マイコンピュータ」⇒「リムーバブル ディスク」⇒右クリック「フォーマット」⇒ファイルシステム「FAT32」⇒「開始」



関連ファイルとDebianアーカイブをフォーマットしたSDカードにコピーする
関連ファイル boot.exe / initrd.img / rootfs.img / vmlinux / rootfs.tar.gzをSDカードにコピーする


Debianアーカイブ debian-etch-sh3_20070713.tgz をSDカードにコピーする
※関連ファイルはMESからダウンロードする
※Debianアーカイブはsilicon linuxからダウンロードする

RAM上でLinuxを起動する

MES>mount mmc0
MES>cd /mmc0
MES>boot.exe r

※boot.exeコマンドの'r'はRAM上から起動するという意味


Linuxが起動したら、ユーザ「root」、パスワード「system0」でログインする
SH7706LSR上でSDカードのパーティションを設定する
SH7706LSRボード上でfdiskコマンドを使いパーティションを設定する

  1. 既存のパーティションを削除する
  2. 第1パーティションを約512MBでファイルシステムをFAT32にする
  3. 1.2で使用しなかった領域はすべて第2パーティションにあて、ファイルシステムはLinuxにする

 

#fdisk /dev/shmmc2
------- fdisk コマンド 開始 (赤字を入力)------------------ 
Command (m for help): p
Disk /dev/shmmc: 1995 MB, 1995440128 bytes
39 heads, 38 sectors/track, 2629 cylinders
Units = cylinders of 1482 * 512 = 758784 bytes
Device Boot      Start         End      Blocks  Id System
/dev/shmmc1              84         759      500916   b Win95 FAT32
/dev/shmmc2               1          83       61484  83 Linux 
Partition table entries are not in disk order
Command (m for help):d
Partition number (1-4): 1
Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (84-2629, default 84): Using default value 84
Last cylinder or +size or +sizeM or +sizeK (84-2629, default 2629): +512M
Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1-2629, default 1): Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-83, default 83): Using default value 83
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (Win95 FAT32 (LBA))
Command (m for help): p
Disk /dev/shmmc: 1995 MB, 1995440128 bytes
39 heads, 38 sectors/track, 2629 cylinders
Units = cylinders of 1482 * 512 = 758784 bytes
Device Boot      Start         End      Blocks  Id System
/dev/shmmc1               1         676      500897   c Win95 FAT32 (LBA)
/dev/shmmc2             677        2629     1447173  83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy
---- fdisk コマンド 終了 ----------------------------
# poweroff

fdiskコマンドで設定を終えたら、poweroffコマンドでLinuxシステムをシャットダウンする
SDカードを再フォーマットする SH7706LSRボードからSDカードを取り出して再度Windows上でフォーマットする(ファイルシステムはFAT32)
関連ファイルをSDカードへコピーする
Linuxパーティションをフォーマットする

#mke2fs -j /dev/shmmc2

ルートファイルシステムのインストールする

#mount /dev/shmmc2 /mnt
#cd /mnt
# tar zxvf /boot/debian-etch-sh3_20070713.tgz

展開が終了したら、SH7706用にカスタマイズしていきます.変更箇所は,
シリアルコンソールのポートの変更と,マウントのデバイスの変更を行います.
まず,/mnt/etc/inittabをttySC0→ttySC1に書き換えます.

#vi /mnt/etc/inittab

マウントのデバイスの変更は,ちょっと強引です.MAKEDEVの中を参考に作ってもよいのですがここでは,オリジナルを使います.
シリコンリナックスのものには,shmmcデバイスがないため,RAM上のデバイスをコピーします.
しかし,デバイスファイルであるため,直接はコピーできません.そこで一度,tarコマンドで固めてからコピーし,該当のところで解凍します.

デバイスファイルshmmc2を/devにコピーする
#cd /dev
#tar cvzf aaa.tar ./sshmc*
#mv aaa.tar /mnt/dev
#cd /mnt/dev
#tar zxvf aaa.tar ./

デバイスファイルをコピーしたら今度は,マウントデバイスの設定を書き換えます.
/mnt/etc/fstabの/dev/hda1を/dev/shmmc2に書き換えます.

#cd /mnt/etc
#vi fstab

アンマウントをしてpoweroffコマンドでLinuxをシャットダウンする 
#cd
#umount /mnt
#poweroff
LinuxをSDカードから起動する
#mount mmc0
#cd /mmc0
#boot.exe


起動途中でエラーや警告が表示されるが起動には問題ないので無視する

以下のプロンプトが表示されたら、「root」でログインできる(passは不要)

Debian GNU/Linux 4.0 ucat1 ttySC1

ucat1 login: root
Last login: Fri Jul 13 19:41:46 2007 on ttySC0
Linux ucat1 2.6.12.6 #1 Sun Apr 12 02:21:17 JST 2009 sh?!
で入ることができます.
あとは,
apt-update,apt-upgradeコマンドでファイルを更新して下さい.
一応,Pythonの動作は確認しています.
以上