SH7764 Linux Setup Manual    2007年11月9日改定 本資料では、7764用Linuxの開発環境の構築、コンパイル方法および、 SH-LINUXの起動方法について説明します。 [Setup Procedure] 1 Host PC ホストPC環境として、Fedora Core 2 または Fedora Core 4の x86 Linux PCを準備してください 2 Toolchain 次のコマンドを実行し、toolchain_345.tar.gzを展開し、 SH4用GNUツール及び開発用パッケージをインストールします。 Ex) # cp toolchain_345.tar.gz /work-directory # cd /work-directory # rpm -ivh binutils-sh4* # rpm -ivh gcc-sh4* # rpm -ivh gdb-sh4* # rpm -ivh -ignorearch *-devel* # export PATH=/usr/local/bin:$PATH 3 Bootloader 3.1 Extend Bootloader 作業ディレクトリに、次のようにしてIPLソースを展開します。 Ex) # cp ipl+eth.tar.gz /work-directory # cd /work-directory # tar zvxf ipl+eth.tar.gz 3.2 Bootloader compiling SH-IPLのコンパイル方法は次の通りです。 # cd ipl+eth-1.2_ms7764/ # make 4 Root file system NFS起動用のルートファイルシステム rootfs.tar.gz を、 /tftpboot/192.168.0.100に展開します。 Ex) # mkdir /tftpboot/192.168.0.100 # cp rootfs.tar.gz /work-directory # cd /work-directory # tar zvxfC rootfs.tar.gz /tftpboot/192.168.0.100 5 Linux-kernel 5.1 Extend Linux-kernel 作業ディレクトリに、次のようにしてカーネルソースを展開します。 Ex) # cp linux-2.6.16.29.tar.gz /work-directory # cd /work-directory # tar zvxf linux-2.6.16.29.tar.gz 5.2 Kernel environment initialization # mv current.config .config # mv make ARCH=sh CROSS_COMPILE=sh4-linux- oldconfig 5.3 Kernel configuration # make ARCH=sh CROSS_COMPILE=sh4-linux- xconfig 5.4 Kernel compiling # make ARCH=sh CROSS_COMPILE=sh4-linux- zImage 6 ALSA-driver 6.1 Extend ALSA-driver 作業ディレクトリに、次のようにしてサウンドドライバソースを展開します。 Ex) # cp alsa-driver.tar.gz /work-directory # cd /work-directory # tar xzf alsa-driver.tar.gz 6.2 ALSA-driver compiling サウンドドライバのコンパイル方法は次の通りです。 開発環境に応じたMakefileの作成 # ./configure \ --with-kernel=/work-directory/linux-2.6.16.29 \ --with-build=/work-directory/linux-2.6.16.29 \ --with-cross=sh4-linux- \ --with-isapnp=no \ --with-cards=panther # mv Makefile.conf Makefile.conf.orig # sed -e s/sh4-linux-// Makefile.conf.orig > Makefile.conf コンパイル # make ARCH=sh CROSS_COMPILE=sh4-linux- # export INSTALL_MOD_PATH=/tftpboot/192.168.0.100 # export DESTDIR=$INSTALL_MOD_PATH # make ARCH=sh CROSS_COMPILE=sh4-linux- install 7 Linux evaluation environment 7.1 Setting Linux PC for "NFS boot" SH7764ボードへ、/tftpboot/192.168.0.100/zImageをダウンロードするには、 bootdまたはdhcpdによりSH7764ボードへIPアドレスをアサインし、ダウンロードします。 bootpdを使用する場合のbootptabの設定例を以下に示します。 ※bootpdはFedoraには入っておりませんので別途インストールする必要が あります /etc/bootptabの設定 SH7764:\ sm=255.255.255.0:\ ha=00:00:87:d6:0e:26:\ ip=192.168.0.100:\ hd=/tftpboot/192.168.0.100:\ bf=zImage:\ rp=/tftpboot/192.168.0.100 sm:サブネットマスク ha:ターゲットのMACアドレス ip :ターゲットに割り当てたいIPアドレス hd:カーネルがあるディレクトリ bf :カーネルの名前 rp :ルートとしてマウントするディレクトリ /etc/exportsに/tftpboot/192.168.0.100を追加し、ルートファイルシステムを NFSでマウントできるように設定します /etc/exportsの設定     /tftpboot/192.168.0.100 192.168.0.100(rw,no_root_squash,async) 設定後、NFS及び、xinetdを再起動してください 7.3 NFS Boot method ボードの電源をONすると、ターミナルソフトに以下のような SH-IPL起動メッセージが出力されます。 SH-IPLに対してnコマンドを入力し、カーネルをネットワーク経由で ダウンロードします。ダウンロードが出来たら、zコマンドを入力して カーネルを起動します。 SH Linuxは、ホストPC上の/tftpboot/192.168.0.100をルートファイルシステム として起動します。 起動時にはカーネルからメッセージが出力されます。 SH IPL+eth version 1.2.0-sh7764, Copyright (C) 2000 Free Software Foundation, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details type `w'. This is free software, and you are welcome to redistribute it under certain conditions; type `l' for details. mac address:00:00:87:d6:0e:26 > n n Booting from network! Searching for server (BOOTP/DHCP)... IP Address: 192.168.0.100 Server: 192.168.0.3 Kernel to load: "/tftpboot/192.168.0.100/zImage" Loading Kernel: /tftpboot/192.168.0.100/zImage [84800000].................. ........................................................................... ........................................................................... ........................................................................... ........................................................................... ........................................................................... ....................SUM: b7e1710 done > z [ 2007年11月9日更新ファイルについて ] 更新したファイルについて説明します。 1. linux-2.6.16.29.tar.gz 1.1 Configuration detect check interval(msec) を3000から250に変更しました。 但し、detect check in highspeed device disconnect を選択しておりませんので、 interval check 処理は現在の設定では使用しておりません。 1.2 arch/sh/kernel/process.c (71行目〜) 未定義のビットアクセス処理を削除しました。 1.3 arch/sh/boards/renesas/panther/setup.c (22行目〜) I2C の semaphore 定義を追加しました。 1.4 drivers/i2c/busses/i2c-panther.c (24行目〜) semaphore 、busbusy check 、NACKエラー時のリトライ処理を追加しました。 1.5 drivers/video/panther_fb.c (1469行目〜) ディスプレイリストを cache flush した後に synco するように修正しました。 2. rootfs.tar.gz gdb 、gdbserver を追加しました。 3. alsa-driver-1.0.14rc2.tar.gz 3.1 alsa-driver-1.0.14rc2/alsa-kernel/sh/panther-pcm.c (235行目〜) semaphore 、busbusy check 処理を追加しました。