Linux 上に 68000 環境を作る
2004年12月20日
はじめに
このWebページでは,68000アセンブラの実験環境を,Linux 上に作る方法を解説している. OSとしては,FreeBSD を使う場合には、「FreeBSD 上で 68000 アセンブラの実験環境を作る Web ページ」を見て下さい。
このWebページに記載されている内容や,この Web ページを使ってダウンロー ドしたプログラムの使用によって生じたいかなる結果に対しても,Web ページ の作者は責任を負いません.利用は個人の責任において行ってください.
- 作業前には、必要なファイルをバックアップすること
 - 状況によっては、Linux の再インストールが必要になる。その覚悟をすること
 
このページで説明している.こと
68000 開発環境(クロスコンパイラと RTEMS)、68000エミュレータ、その他の基本 的なソフトのインストール手順を説明している.
-  System Environment/Libraries
- expat : A library for parsing XML
 - freetype : A free and portable TrueType fond rendering engine
 - fontconfig : font configuration and customization library (requires freetype)
 - libgcj : Java runtime library for gcc
 - libiconv
 - newlib
 
 -  System Environment/Base
- rpm : The RPM package management system (requires fileutils, gawk, mktemp, popt, shadow-utils)
 
 -  Applications/Text
- m4 : GNU macro processor
 
 -  Applications/Editors
- emacs :The libraries needed to run the GNU Emacs text editor (perl)
 
 -  Development/Tools
- apt-0.5.15cnc6-0.1.fc1.fr.i386.rpm
 - automake : GNU tool for automatically creating makefiles (requires perl)
 - autoconf : GNU tool for automatically configuring source code (requires gawk, m4, mktemp, perl)
 - binutils : GNU collection of binary utilities
 - bison : GNU general purpose parser generator
 - checkinstall
 - flex : GNU tool for creating scanners
 - gettext : GNU libraries and utilities for producing multi-lingual messages
 - libtool : GNU libtool, which simplifies the use of shared libraries (requires autoconf, automake, libtool-libs, m4, mktemp, perl)
 - make : GNU tool which simplifies the build process for users
 - patch : GNU patch command for modifying upgrading files
 - rpmbuild : Scripts end executable programs used to build packages (requires patch, perl, rpm)
 - texinfo : Tools needed to create Texinfo format documentation files
 
 -  Development/Debuggers
- gdb : GNU source-level debugger for C, C++ and other languages (requires info)
 
 -  Development/Language (68000クロス開発環境としても使用)
- perl : The perl programming language (requires perl)
 - gcc : GNU compiler collection (C, C++, Objective-C, Java, ...)
 - tcl : Tcl scripting language development environment
 - tk : Tk graphical toolkit for the Tcl scripting language (requires tcl)
 
 - bsvc : 68000 エミュレータ
 -  RTEMS : 68000 開発環境として使用
- rtems-4.6-apt-conf-0.0-0.noarch.rpm
 - rtems-4.6-autoconf-rtems-2.59-0.noarch.rpm
 - rtems-4.6-automake-rtems-1.7.2-2.noarch.rpm
 - rtems-4.6-rtems-base-binutils-2.13.2.1-2.i686.rpm
 - rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm
 - rtems-4.6-rtems-base-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm
 - rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm
 - rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm
 - rtems-4.6-rtems-base-gdb-5.2-1.i686.rpm
 - rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm
 
 
Linux のインストール
Linux のインストール、 Windowsなど他のOSとの 共存については Linux に関するドキュメント,サイト,書籍等を参考にして 個人の責任において行ってください.
インストール時の注意点
- X Window System は入れる
 -  Linux インストール時に C コンパイラを入れる
インストールタイプは、「Desktop」とかではなく「Workstation」を選 ぶ (プログラム開発環境が入るタイプを入れる)。 -  日本語が使えるように設定する。
日本の会社、団体が出している LINUX ディストリビューションなら、日 本語も使えるように、インストール時に指定できるはずです(Red Hat Linux バージョン 9 では日本語 OK でした)。 
「パッケージファイル」を使って、最小限のソフトをインストール
最初に行なうことは、次のソフトがインストールされているかを調べ、 もしインストールされていなければ、「パッケージファイル」を使って、インストールする.
- flex
 - bison
 - libiconv
 - gcc
 - rpmbuild
 - perl
 
すでにインストール済みかを調べる
LINUX のインストール時に自動でインストールされるものがあるので、まず、 インストールされているかを調べます.
インストールされているかを調べるには、 次のように、「rpm -qi expat」のように「rpm -qi <パッケージ名>」を実行する.
LANG=C rpm -qi flex rpm -qi bison rpm -qi libiconv rpm -qi gcc rpm -qi rpmbuild rpm -qi perl
「パッケージファイル」によるインストールを行なう
調べた結果、インストールされていないものがあったら、 「パッケージファイル」を探してきて、手動でインストールする.
必要な 「パッケージファイル」は http://fr2.rpmfind.net/linux/RPM/index.html などで探して、ダウンロード. その後、「rpm -i <パッケージファイル名>」でインストールするという手順である.
いちいち、マウスをクリックしたりするのが面倒なので、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 用です. もし他の linux で使う時は、 DOWNLOAD_URL_RPM_1, DOWNLOAD_URL_RPM_LIBICONV, MYRPM_FLEX, MYRPM_BISON, MYRPM_LIBICONV, MYRPM_GCC, MYRPM_RPMBUILD, MYRPM_PERL を適切に設定して下さい。
# # 設定 # # RedHat Linux 9 用の設定です # DOWNLOAD_URL_RPM_1, DOWNLOAD_URL_RPM_LIBICONV, MYRPM_FLEX, MYRPM_BISON, # MYRPM_LIBICONV, MYRPM_GCC, MYRPM_RPMBUILD, MYRPM_PERL を適切に設定して下さい。残りはそのままでも動くと思います # DOWNLOAD_URL_RPM_1, DOWNLOAD_URL_RPM_LIBICONV: RPM のダウンロード先 DOWNLOAD_URL_RPM_1=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS DOWNLOAD_URL_RPM_LIBICONV=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS # DOWNLOAD_URL_RPM_1=ftp://fr2.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS # DOWNLOAD_URL_RPM_LIBICONV=http://www.samba.gr.jp/pub/samba-3.0-ja/RPMS/RedHat9/LIBICONV/ MYRPM_FLEX=flex-2.5.4a-29.i386.rpm MYRPM_BISON=bison-1.35-6.i386.rpm MYRPM_LIBICONV=libiconv-1.8-1.i386.rpm MYRPM_GCC=gcc-3.2.2-5.i386.rpm MYRPM_RPMBUILD=rpm-build-4.2-0.69.i386.rpm MYRPM_PERL=perl-5.8.0-88.i386.rpm # # 作業手順 # LANG=C cd /tmp # RPM ファイルをダウンロード wget -S --passive-ftp $DOWNLOAD_URL_RPM_1/$MYRPM_FLEX wget -S --passive-ftp $DOWNLOAD_URL_RPM_1/$MYRPM_BISON wget -S --passive-ftp $DOWNLOAD_URL_RPM_LIBICONV/$MYRPM_LIBICONV wget -S --passive-ftp $DOWNLOAD_URL_RPM_1/$MYRPM_GCC wget -S --passive-ftp $DOWNLOAD_URL_RPM_1/$MYRPM_RPMBUILD wget -S --passive-ftp $DOWNLOAD_URL_RPM_1/$MYRPM_PERL # rpm -i でインストール rpm -i $MYRPM_FLEX rpm -i $MYRPM_BISON rpm -i $MYRPM_LIBICONV rpm -i $MYRPM_GCC rpm -i $MYRPM_RPMBUILD rpm -i $MYRPM_PERL
補足説明: 「パッケージファイル」について
ソフトが、インストールされていないとき、新たにインストールするために 「パッケージファイルを探してきて、適当なディレクトリにダウンロード」というのが一般的な手順である.
- rpmパッケージファイルはインストールされているOSに合うもの を選ぶ(Red Hat Linux 9の場合は*.i386.rpm, *.i586.rpm, *.i686.rpmなど)
 - rpm パッケージファイルは主に以下のサイトからダウンロードできる. rpmパッケージファイルをダウンロードする際、ソースファイル (*.src.rpm)ではないものを選ぶようにした (*.src.rpm はrpmコマンドのみではインストールできないので面倒になる と考えたので)。
 -  インストール法
ダウンロードしたディレクトリに移動して以下を実行
[root@localhost root]# rpm -i <パッケージファイル> <例> [root@localhost guest]# rpm -i imake-4.3.99.903-5.i686.rpm -  インストール時の注意点
-  「先に他のソフトがインストールされている必要があるソフト」もあるが、その場合は必要なソフトを先にインストールする
以下のようなエラーがでてきたら、必要なものを探してきて先にインストールする
[guest@localhost guest]$ rpm -i autoconf-2.59-2.2.0.ix86-debian3.0-openpkg.rpm 警告: autoconf-2.59-2.2.0.ix86-debian3.0-openpkg.rpm: V3 DSA signature: NOKEY, key ID 63c4cb9f エラー: Failed dependencies: OpenPKG is needed by autoconf-2.59-2.2.0 openpkg >= 2.2.0 is needed by autoconf-2.59-2.2.0 -  但し、互いに先にインストールする必要がある場合(Aをインストールする
にはBが必要で、BをインストールするにはAが必要)は"--nodeps"を
つけて実行する
例 [root@localhost root]# rpm -i --nodeps imake-4.3.99.903-5.i686.rpm
 -  ファイルの展開で既存ファイルがありエラーが出る場合は
"--replacefiles"を付けて実行する
例 [root@localhost root]# rpm -i --replacefiles imake-4.3.99.903-5.i686.rpm
 
 -  「先に他のソフトがインストールされている必要があるソフト」もあるが、その場合は必要なソフトを先にインストールする
 - 
    libiconvのrpmパッケージファイルで入っている Red Hat Linux version 9 に対応する
    は、次の URL からダウンロードしました。
http://www.samba.gr.jp/pub/samba-3.0-ja/RPMS/RedHat9/LIBICONV/
ここには libiconv以外のファイルはありませんでした。
 
checkinstall のインストール
次に、checkinstall をインストールする. checkinstall は、tarball から RPM パッケージを作ってくれるソフトです. 今後、わざわざ、自分の Linux バージョンに合致した RPMファイルを探して こなくても、「ソースファイルをダウンロード、コンパイルし、その後 RPM ファイルを作成して, インストールを行なう」ということができるようにします.
なお、checkinstall の動作には rpm-build が必要なので、もし、 checkinstall の動作がおかしかったら、「rpm -qi rpm-build」でインストー ル済みかどうかを確認してみましょう。
【関連する外部ページ】 : http://www.atmarkit.co.jp/flinux/rensai/linuxtips/530mkrpmfs.html
ダウンロード
下記のサイトより checkinstall-1.5.3.tgz をダウンロード
https://asic-linux.com.mx/~izto/checkinstall/download.php
インストール
以下の手順でインストール
cd /tmp rm -rf checkinstall-1.5.3 gtar -xvzof checkinstall-1.5.3.tgz cd /tmp/checkinstall-1.5.3 make make install checkinstall -R -y
checkinstall の使い方の例
checkinstall を使って、pkgconfig をインストールしてみました。
-----------------------------------------------------------------------
# tar -xvzf pkgconfig-0.15.0.tar.gz
# cd pkgconfig-0.15.0
# ./configure
# make
# checkinstall
   (省略)
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y
   (省略)
Please choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]? R
Please write a description for the package.
End your description with an empty line or EOF.
>>
This package will be built according to these values:
1 -  Summary: [ Package created with checkinstall 1.5.3 ]
2 -  Name:    [ pkgconfig ]
3 -  Version: [ 0.15.0 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ Applications/System ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ pkgconfig-0.15.0 ]
9 -  Alternate source location: [  ]
10 - Provides: [ pkgconfig ]
Enter a number to change any of them or press ENTER to continue:
Enter キーを押す
   (省略)
**********************************************************************
 Done. The new package has been installed and saved to
 /usr/src/redhat/RPMS/i386/pkgconfig-0.15.0-1.i386.rpm
 You can remove it from your system anytime using:
      rpm -e pkgconfig-0.15.0-1
**********************************************************************
# rpm -qi pkgconfig
Name        : pkgconfig                    Relocations: (not relocateable)
Version     : 0.15.0                            Vendor: (none)
Release     : 1                             Build Date: 2004年12月15日 11時20分08秒
Install Date: 2004年12月15日 11時20分09秒      Build Host: testlinux.db.is.kyushu-u.ac.jp
Group       : 開発/ツール                   Source RPM: pkgconfig-0.15.0-1.src.rpm
Size        : 136595                           License: GPL
mSignature   : (none)
Packager    : checkinstall-1.5.3
Summary     : コンパイルオプションを決定するツール
Description :
pkgconfig ツールはコンパイルオプションを決定します.必須の各ライブラリについて、
設定ファイルを読み込み、必要なコンパイラフラグとリンカフラグ
を出力します.
-----------------------------------------------------------------------
(注)
# checkinstall
でインストールできるのは、
# make install
コマンドでインストールするようなソフトです.
# make install_packages
など、別のコマンドが指定されている場合は、
# checkinstall make install_packages
などとします.
(README 参照)
各種ツール, ライブラリの整備
次に、各種ツール, ライブラリの整備を行なっていきます. 「パッケージファイル」を使ってインストールできるが(その手順は後述)、 「パッケージファイル」を探すのが面倒という理由で、 ソースファイルをダウンロード、コンパイルし、checkinstall を使っ てインストール という手順の方を先に説明しておきます(最新版が簡単にインストールできる). 「パッケージファイル」からのインストールについては、この後の補足説明をみて下さい。
次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 で動作確認しました。他の Linux では、 変数 ARCH を適切に設定するだけで、そのまま動くと思います.
(お断り) ここに記載のシェルスクリプト(ソースファイルをダウンロードし、コンパイル)をそのまま実行すると「Web ブラウザが起動できなくなる」などの症状が報告されている. そうした症状に対処できる自信(時間的余裕)がない場合には、 補足説明の方の「 どうしても「パッケージファイル」からインストールしたいときの手順」をお勧めしておきます.
#
# 設定
#
# 変数 ARCH を適切に設定してください
LANG=C
ARCH=i686-pc-linux-gnu
#ARCH=i386-redhat-linux
# ソースファイルのダウンロード先、ソースファイル名を指定している.
DOWNLOAD_URL_SRC=https://www.kkaneko.jp/computer/src/toollib
DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu
MYSRC_GNU1=" \
flex-2.5.4a.tar.gz \
gcc-core-3.4.3.tar.gz \
gcc-3.4.3.tar.gz \
emacs-21.3.tar.gz \
leim-21.3.tar.gz"
MYSRC_GNU2=" \
bison-1.875d.tar.gz \
libiconv-1.9.2.tar.gz \
m4-1.4.2.tar.gz \
automake-1.9.2.tar.gz \
autoconf-2.59.tar.gz \
binutils-2.15.tar.gz \
gettext-0.14.1.tar.gz \
libtool-1.5.10.tar.gz \
make-3.80.tar.gz \
patch-2.5.4.tar.gz \
texinfo-4.7.tar.gz \
readline-5.0.tar.gz \
gdb-5.2.1.tar.gz"
MYSRC_BASE=" \
expat-1.95.8.tar.gz \
freetype-2.1.9.tar.gz \
newlib-1.12.0.tar.gz"
MYSRC_BASE2=" \
fontconfig-2.2.3.tar.gz \
tcl-8.4.6.tar.gz \
tk-8.4.6.tar.gz"
# libgcj-3.4.3 rpmbuild
#
# 作業手順 
#
cd /tmp
# Download Source Files
echo Download...
for i in `echo $MYSRC_GNU1`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/$i );
done
for i in `echo $MYSRC_GNU2`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/$i );
done
for i in `echo $MYSRC_BASE`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_SRC/$i );
done
for i in `echo $MYSRC_BASE2`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_SRC/$i );
done
# Install
cd /tmp
# flex
cd /tmp
rm -rf flex-2.5.4
tar -xvzf flex-2.5.4a.tar.gz
cd flex-2.5.4
./configure
make
/usr/local/sbin/checkinstall -R -y
# gcc-core
cd /tmp
rm -rf gcc-3.4.3
tar -xvzf gcc-core-3.4.3.tar.gz
cd gcc-3.4.3
./configure --prefix=/usr/local --enable-languages="c" --mandir=/usr/local/share/man --infodir=/usr/local/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=$ARCH
make bootstrap
checkinstall -R -y
# gcc
cd /tmp
rm -rf gcc-3.4.3
tar -xvzf gcc-3.4.3.tar.gz
cd gcc-3.4.3
./configure --prefix=/usr/local --enable-languages="c,c++" --mandir=/usr/local/share/man --infodir=/usr/local/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=$ARCH
make bootstrap
checkinstall -R -y
# emacs, leim
cd /tmp
rm -rf emacs-21.3
gtar -xvzf emacs-21.3.tar.gz
gtar -xvzf leim-21.3.tar.gz
cd emacs-21.3
./configure  --with-gcc --with-mule --with-xll --with-site-lisp --with-xfs  --with-xim  --with-xpm --with-jpeg --with-tiff --with-giff --with-png
make
checkinstall -R -y
# other GNU softwares
cd /tmp
for i in `echo $MYSRC_GNU2`;
  do ( rm -rf /tmp/`basename $i .tar.gz`; tar -xvzf $i; \
    cd /tmp/`basename $i .tar.gz`; \
    ./configure; \
    make; \
    /usr/local/sbin/checkinstall -R -y ); 
done
# other basic softwares
cd /tmp
for i in `echo $MYSRC_BASE`;
  do ( rm -rf /tmp/`basename $i .tar.gz`; tar -xvzf $i; \
    cd /tmp/`basename $i .tar.gz`; \
    ./configure; \
    make; \
    /usr/local/sbin/checkinstall -R -y ); 
done
# fontconfig-2.2.3.tar.gz
cd /tmp
rm -rf fontconfig-2.2.3
tar -xvzf fontconfig-2.2.3.tar.gz
cd fontconfig-2.2.3
./configure
make
echo "all:" > doc/Makefile
echo "    echo " >> doc/Makefile
echo "install:" >> doc/Makefile
echo "    echo " >> doc/Makefile
/usr/local/sbin/checkinstall -R -y
# tcl-8.4.6.tar.gz
cd /tmp
rm -rf cd tcl8.4.6
tar -xvzf tcl-8.4.6.tar.gz
cd tcl8.4.6
cd unix
./configure
make
cd ..
mv unix tcl-8.4.6
ln -s tcl-8.4.6 unix
cd tcl-8.4.6
/usr/local/sbin/checkinstall -R -y
# tk-8.4.6.tar.gz
cd /tmp
rm -rf tk8.4.6
tar -xvzf tk-8.4.6.tar.gz
cd tk8.4.6
cd unix
./configure
make
cd ..
mv unix tk-8.4.6
ln -s tk-8.4.6 unix
cd tk-8.4.6
/usr/local/sbin/checkinstall -R -y
「何台もインストールしたい」という場合について。 1台目のインストール を終えた時に /usr/src/redhat/RPMS/i386 というような名前のディレクトリ に RPM 形式の「パッケージファイル」ができているので、ここにある 「パッ ケージファイル」を、2台目以降 のコンピュータにコピーして、「rpm -i <「パッケージファイル名」>」という 手順になる.
補足説明: どうしても「パッケージファイル」からインストールしたいときの手順
ここでは、各種ツール, ライブラリを、「パッケージファイル」からインストー ルする手順を説明している. すでに、上記の手順でインストールが済んでいるなら、ここは飛ばして、 「CPU シミュレータ bsvc」に進んで下さい。
すでに手元に「パッケージファイル」がある、というようなときは、上記の手 順では無くて、「パッケージファイル」からインストールしてもよいでしょう。
すでにインストール済みかを調べる
LINUX のインストール時に自動でインストールされるものがあるので、まず、インストールされているかを調べ、 インストールされていなければ、手動でインストールするという手順を踏みます.
インストールされているかを調べるには、 「rpm -qi expat」のように「rpm -qi <パッケージ名>」を実行します
-   「インストール済みかを調べる」手順
LANG=C PRESOFTS="expat freetype fontconfig libgcj gettext libiconv newlib rpm apt autoconf automake binutils bison checkinstall flex gdb libtool make patch texinfo m4 perl g++ tcl tk emacs" echo "Software List" for i in `echo $PRESOFTS`; do ( rpm -qi $i | grep "Name" | awk '{print $3}'; rpm -qi $i | grep "Version" | awk '{print " " $3}' ); done 
「パッケージファイル」をダウンロードし、インストール
「パッケージファイル」を使ったインストールの手順を説明する. RPM ファイルを探して、 ダウンロードし、 「rpm -i <パッケージファイル名>」でインストールするという手順になる.
freetype, fontconfig, libgcj, rpm, m4, emacs, emacs-el, emacs-leim, automake, autoconf, binutils, gettext, libtool, make, texinfo, gdb, perl, tcl, tk については、 http://fr2.rpmfind.net/linux/RPM/index.htmlなどで、 簡単に見つかります。 これ以外のソフトについては、ソースファイルからコンパイルすることになり ます(該当は newlib)。
これも、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 用です. もし他の linux で使う時は、 DOWNLOAD_URL_RPM_2, MYRPM_SOFT2 を適切に設定して下さい。
#
# 設定
#
# RedHat Linux 9 用の設定です
# DOWNLOAD_URL_RPM_2, MYRPM_SOFT2 を適切に設定して下さい。残りはそのままでも動くと思います
#     DOWNLOAD_URL_RPM_22: RPM のダウンロード先
#     MYRPM_SOFT2 : インストールしたい RPM のリスト
# RedHat Linux 9 用
DOWNLOAD_URL_RPM_2=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS
# DOWNLOAD_URL_RPM_2=ftp://fr2.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS
MYRPM_SOFT2="expat-1.95.5-2.i386.rpm \
freetype-2.1.3-6.i386.rpm \
fontconfig-2.1-9.i386.rpm \
libgcj-3.2.2-5.i386.rpm \
rpm-4.2-0.69.i386.rpm \
m4-1.4.1-13.i386.rpm \
emacs-21.2-33.i386.rpm \
emacs-el-21.2-33.i386.rpm \
emacs-leim-21.2-33.i386.rpm \
automake-1.6.3-5.noarch.rpm \
autoconf-2.57-3.noarch.rpm \
binutils-2.13.90.0.18-9.i386.rpm \
gettext-0.11.4-7.i386.rpm \
libtool-1.4.3-5.i386.rpm \
make-3.79.1-17.i386.rpm \
patch-2.5.4-16.i386.rpm \
texinfo-4.3-5.i386.rpm \
gdb-5.3post-0.20021129.18.i386.rpm \
perl-5.8.0-88.i386.rpm \
tcl-8.3.5-88.i386.rpm \
tk-8.3.5-88.i386.rpm"
#
# 作業手順 
#
LANG=C
cd /tmp
# RPM ファイルをダウンロード
echo Download...
for i in `echo $MYRPM_SOFT2`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_RPM_2/$i );
done
# インストール済のソフトを確認
for i in `echo $MYRPM_SOFT2`;
  do ( rpm -qi `basename $i .i386.rpm` | grep "Name" | awk '{print $3}'; rpm -qi `basename $i .i386.rpm` | grep   "Version" | awk '{print "  " $3}' );
done
# rpm -i でインストール
echo Install...
for i in `echo $MYRPM_SOFT2`;
# rpm -i でインストール
  do ( rpm -i $i )
done
newlib をソースファイルからコンパイル、インストール
残りの作業は、newlib のインストールです.
これらは、RedHat Linux 9 の「パッケージファイル」が無かったので、 ソースファイルをダウンロード、コンパイルし、checkinstall を使ってインストールし ます.
これも、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 で動作確認しました。他の Linux でも、そのま ま動くと思います.
#
# 設定
#
# ソースファイルのダウンロード先、ソースファイル名を指定している.
# 問題が無ければ、このままで良いでしょう。
DOWNLOAD_URL_SRC=https://www.kkaneko.jp/computer/src/toollib
# DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu
MYSRC_NEWLIB="newlib-1.12.0.tar.gz "
#
# 作業手順 
#
LANG=C
cd /tmp
# ソースファイルをダウンロード
wget -S --passive-ftp $DOWNLOAD_URL_SRC/$MYSRC_NEWLIB
# インストール済のソフトを確認
rpm -qi `basename $MYSRC_NEWLIB .tar.gz`    | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYSRC_NEWLIB .tar.gz`    | grep   "Version" | awk '{print "  " $3}'
# インストール
cd /tmp
rm -rf `basename $MYSRC_NEWLIB .tar.gz`
tar -xvzf $MYSRC_NEWLIB
cd `basename $MYSRC_NEWLIB .tar.gz`
./configure
./etc/configure
make
/usr/local/sbin/checkinstall -R -y
68000 クロス開発環境
次に、GNU binutils, gcc, newlib, gdb を使って、68000 クロス開 発環境を作りま す。 binutils, gcc, newlib, gdb の順でインストールする. configure のオプションは、「./configure --prefix=/usr/local --target=m68k-coff」のようにして、その後、make, make install します.
DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu # binutils-2.15.tar.gz cd /tmp wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/binutils-2.15.tar.gz rm -rf binutils-2.15 tar -xvzf binutils-2.15.tar.gz cd binutils-2.15 ./configure --prefix=/usr/local --target=m68k-coff make make install # gcc-core-3.4.3.tar.gz cd /tmp wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-3.4.3.tar.gz rm -rf gcc-3.4.3 tar -xvzf gcc-core-3.4.3.tar.gz cd gcc-3.4.3 ./configure --prefix=/usr/local --enable-languages="c" --target=m68k-coff make make install # gcc-core-2.95.3.tar.gz cd /tmp wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-2.95.3.tar.gz rm -rf gcc-2.95.3 tar -xvzf gcc-core-2.95.3.tar.gz cd gcc-2.95.3 ./configure --prefix=/usr/local --enable-languages="c" --target=m68k-coff m68k-coff make make install # newlib-1.9.0.tar.gz cd /tmp wget -S --passive-ftp ftp://ftp.u-aizu.ac.jp/pub/gnu/cygnus/newlib/newlib-1.9.0.tar.gz rm -rf newlib-1.9.0 rm -rf newlib-m68k tar -xvzf newlib-1.9.0.tar.gz mkdir newlib-m68k cd newlib-m68k ../newlib-1.9.0/configure --prefix=/usr/local --target=m68k-coff make make install # gdb-5.2.1.tar.gz cd /tmp wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gdb-5.2.1.tar.gz rm -rf gdb-5.2.1 tar -xvzf gdb-5.2.1.tar.gz cd gdb-5.2.1 ./configure --prefix=/usr/local --target=m68k-coff make make install # binutils-2.15.tar.gz cd /tmp wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/binutils-2.15.tar.gz rm -rf binutils-2.15 tar -xvzf binutils-2.15.tar.gz cd binutils-2.15 ./configure --prefix=/usr/local --target=m68k-coff --with-headers=../newlib-1.9.0/newlib/libc/include --with-newlib make make install # gcc-3.4.3.tar.gz with newlib # これは未チェック cd /tmp # wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-3.4.3.tar.gz rm -rf gcc-3.4.3 tar -xvzf gcc-core-3.4.3.tar.gz cd gcc-3.4.3 ./configure --prefix=/usr/local --enable-languages="c" --target=m68k-coff --with-headers=../newlib-1.9.0/newlib/libc/include --with-newlib make make install # gcc-2.95.3.tar.gz with newlib # これは未チェック cd /tmp # wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-2.95.3.tar.gz rm -rf gcc-2.95.3 tar -xvzf gcc-core-2.95.3.tar.gz cd gcc-2.95.3 ./configure --prefix=/usr/local --enable-languages="c" --target=m68k-coff --with-headers=../newlib-1.9.0/newlib/libc/include --with-newlib make make install
68000 開発環境 RTEMS
68000 開発環境として RTEMS をインストールする. これは、RPM ファイルを ダウンロードし、 「rpm -i <パッケージファイル名>」でインストールするという手順になる.
-  参考 サイト
        
- RTEMS Web ページ https://www.rtems.com/index.php
 - ダウンロード先: ftp://ftp.rtems.com/pub/rtems/linux/redhat/7.3/i386/rpms/rtems-4.6
 - ftp://ftp.rtems.com/pub/rtems/snapshots/c_tools/source/
 - http://www.rtems.com/onlinedocs/releases/rtemsdocs-4.6.2/share/rtems/html/started/index.html
 
 
上記サイトより以下のファイルをダウンロードして、インストールすることに なる.
rtems-4.6-apt-conf-0.0-0.noarch.rpm rtems-4.6-autoconf-rtems-2.59-0.noarch.rpm rtems-4.6-automake-rtems-1.7.2-2.noarch.rpm rtems-4.6-rtems-base-binutils-2.13.2.1-2.i686.rpm rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm rtems-4.6-rtems-base-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm rtems-4.6-rtems-base-gdb-5.2-1.i686.rpm rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm
手順
インストールの手順は、次のようになる.
-  RTEMS のサイトのページで、必要なソフトを検索
(検索条件)
- RTEMS Version: 4.6.2
 - Target CPU Family: m68k, cpu32, coldfire
 - Development Host: GNU/Linux x86
 
rtems-4.6-rtems-base-binutils-2.13.2.1-2.i686.rpm rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm rtems-4.6-rtems-base-gcc-gcc3.2.3newlib1.11.0-4.i386.rpm rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm rtems-4.6-rtems-base-gdb-5.2-1.i686.rpm rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm
 -  インストール (rpm -i を使用)
/opt にインストールされるので、/opt を避けたいなら 「ln -s /usr/local /opt」を前もって実行しておく。これも、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 用です. もし他の linux で使う時は、 DOWNLOAD_URL_RPM_RTEMS, MYRPM_RTEMS を適切に設定して下さい。
# # 設定 # # RedHat Linux 9 用の設定です # DOWNLOAD_URL_RPM_RTEMS, MYRPM_RTEMS を適切に設定して下さい。残りはそのままでも動くと思います # DOWNLOAD_URL_RPM_RTEMS: RPM のダウンロード先 # MYRPM_RTEMS : インストールしたい RPM のリスト # RedHat Linux 9 用 DOWNLOAD_URL_RPM_RTEMS=https://www.kkaneko.jp/computer/linux/redhat/7.3/i386/RedHat/RPMS # DOWNLOAD_URL_RPM_RTEMS=ftp://ftp.rtems.com/pub/rtems/linux/redhat/7.3/i386/rpms/rtems-4.6 MYRPM_RTEMS="rtems-4.6-apt-conf-0.0-0.noarch.rpm \ rtems-4.6-autoconf-rtems-2.59-0.noarch.rpm \ rtems-4.6-automake-rtems-1.7.2-2.noarch.rpm \ rtems-4.6-rtems-base-binutils-2.13.2.1-2.i686.rpm \ rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm \ rtems-4.6-rtems-base-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm \ rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm \ rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm \ rtems-4.6-rtems-base-gdb-5.2-1.i686.rpm \ rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm " # # 作業手順 # LANG=C cd /tmp # Download echo Download... for i in `echo $MYRPM_RTEMS`; do ( wget -S --passive-ftp $DOWNLOAD_URL_RPM_RTEMS/$i ); done # Install ln -s /usr/local /opt echo Install... for i in `echo $MYRPM_RTEMS`; do ( rpm -i $i ) done
 
CPU シミュレータ bsvc
CPU シミュレータ bsvc をインストールする. ソースファイルをダウンロード、コンパイルし、checkinstall を使ってインストールする.
-  参考 サイト
        
- ftp://ftp.redlinelabs.com/pub/bsvc/
 - http://www.ibilio.org/pub/linux/system/emulators/bsvc-2.1-src.tar.gz
 - bsvc-2.1-src.tar.gz
 
 
インストール上の注意点
RedHat 9 では、bsvc のソースファイルは、そのままではコンパイル できません。変更が3箇所あります.
-  「(void*)」 を外す (1箇所)
/usr/local/bsvc/src/Tools/xtermpipe/xtermpipe.cxx -  「extern "C" { int kill(pid_t pid, int sig); };」を入れる (2箇所)
/usr/local/bsvc/src/sim68000/devices/M68681.cxx, /usr/local/bsvc/src/sim68360/devices/M68681.cxx 
インストール手順
bsvc をコンパイルするのに、gcc バージョン3 よりも gcc バージョン 2 の 方が便利のようなので、下記の手順で、gcc バージョン3 を消して、 gcc バージョ ン 2 をインストールしている.
#
# 設定
#
# ソースファイルのダウンロード先、ソースファイル名を指定している.
# 問題が無ければ、このままで良いでしょう。
DOWNLOAD_URL_JIKKEN_SRC=https://www.kkaneko.jp/~kaneko/as/jikken/src
MYSRC_BSVC=bsvc-2.1-src.tar.gz
DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/pub/FreeBSD/ports/distfiles
MYSRC_GCC2=gcc-2.95.3.tar.bz2
#
# 作業手順 
#
LANG=C
ARCH=i686-pc-linux-gnu
#ARCH=i386-redhat-linux
cd /tmp
# ソースファイルをダウンロード
wget -S --passive-ftp $DOWNLOAD_URL_JIKKEN_SRC/$MYSRC_BSVC
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/$MYSRC_GCC2
# インストール済のソフトを確認
rpm -qi `basename $MYSRC_BSVC .tar.gz`    | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYSRC_BSVC .tar.gz`    | grep   "Version" | awk '{print "  " $3}'
rpm -qi `basename $MYSRC_GCC2 .tar.gz`    | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYSRC_GCC2 .tar.gz`    | grep   "Version" | awk '{print "  " $3}'
# gcc-2.95.3 インストール
cd /tmp
rm -rf `basename $MYSRC_GCC2 .tar.bz2`
tar -xvjf $MYSRC_GCC2
cd `basename $MYSRC_GCC2 .tar.bz2`
./configure --prefix=/usr/local --enable-languages="c,c++" \
    --mandir=/usr/local/share/man --infodir=/usr/local/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=$ARCH
cd `basename $MYSRC_GCC2 .tar.bz2`/texinfo
make
cd `basename $MYSRC_GCC2 .tar.bz2`;
make bootstrap
checkinstall -R -y
#
# bsvc インストール
#
# (1) Makefile.common
cd /usr/local
rm -rf `basename $MYSRC_BSVC -src.tar.gz`
tar -xvzf /tmp/$MYSRC_BSVC
ln -s `basename $MYSRC_BSVC -src.tar.gz` bsvc
cd bsvc/src
cat Makefile.common | sed’s/\/home\/bwmott\//projects\/bsvc\/development\/bsvc/\/
usr\/local\/bsvc/g' > /tmp/a
cp /tmp/a Makefile.common
# Redhat Linux では
# /usr/local/bsvc/src/Tools/xtermpipe/xtermpipe.cxx中の(void*)を外し,
# /usr/local/bsvc/src/sim68000/devices/M68681.cxx
# /usr/local/bsvc/src/sim68360/devices/M68681.cxx
# 中にextern "C" {int kill(pid_t pid, int sig);};を入れる.
# このままでは,/usr/local/bin/sim68000はないため,
# /usr/local/bsvc/src/Makefile.commonを開き,
# INSTALL_DIR= /usr/local/bin とし,sim68000のインストール先を変更する.
cd /usr/local/bsvc/src
make PROJECT_BASE=/usr/local/bsvc
cd /usr/local/bsvc-2.1/src
checkinstall -R -y make PROJECT_BASE=/usr/local/bsvc install
# ここで,/usr/local/bin/sim68000を実行しても,以下のエラー文が表示される.
#  /usr/local/bin/sim68000/: error while loading shared libraries: libstdc++-lib6.3-2.so.3: cannot open shared object file: No such file or Directory
#  libstdc++-lib6.3-2.so.3があるディレクトリは,/usr/local/libである.そこで,
#  /etc/ld.so.confに,/usr/local/libを最初の行に追加して再起動する.
# さらに,ln -s /usr/local/lib/libstdc++-lib6.3-2.so.3 /usr/lib として,シンボリックリンクを張る.
# 再度,/usr/local/bin/sim68000を実行すると,READYと表示されるはずである.
動作確認
動作確認します./usr/local/bin/sim68000 を実行して、エラーが発生しないことを確認します.
/usr/local/bin/sim68000
エラーが出たら、/etc/ld.so.conf の設定が正しいかを確認するなど、適切な 処置を行なって下さい。
専用ファイルのインストール
68000 アセンブラプログラムをエミュレータで動作させるために専用 のスクリプトファイルを用意している. これらのファイルをインストールすることによって, m68k-asとm68k-emu 命令が使えるようになる. 各自の責任でお使い下さい.
m68k-5.0.tgz を入手します # cd ~/ # tar zxvfp m68k-5.0.tgz
次にインストールを実行する.
cd m68k-5.0 ./install.sh /usr/local/bin/bin のファイル(もしあれば)を /usr/local/bin にコピーし直す
このスクリプトはlib以下を/usr/local/lib に,bin以下を/usr/local/binにコピーします. xterm(kterm)のウィンドウを開きなおしてm68k-as,m68k-emuが実行できることを確認します.
次に /usr/loca/bin/m68k-emu ファイルを開き, exec wish8.0jp -f/usr/local/bin/bsvc/bsvc.tk と表記されている部分を、環境にあわせて適切に(exec wish -f/usr/local/bin/UI/bsvc.tkのように)変更する
/usr/local/bin/m68k-asファイルを開き,
#GLD=$PREFIX/m68k-coff-ld #GAS=$PREFIX/m68k-coff-as GLD=$PREFIX/m68k-rtems-ld GAS=$PREFIX/m68k-rtems-as
と表記されている部分を,
GLD=$PREFIX/m68k-coff-ld GAS=$PREFIX/m68k-coff-as #GLD=$PREFIX/m68k-rtems-ld #GAS=$PREFIX/m68k-rtems-asと変更する.