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と変更する.