組込みマイコンの中での安価で、機能が充実しており、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パーティションを約512MBでファイルシステムをFAT32にする
- 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の動作は確認しています.
以上