金子邦彦研究室プログラミング68000アセンブラ(スライド資料,演習問題)Linux 上に 68000 環境を作る

Linux 上に 68000 環境を作る

2006年2月25日

はじめに

このWebページでは,68000アセンブラのクロス開発環境を,Linux 上に作る方法を解説している.

なお、OSとしては,FreeBSD を使う場合には、「FreeBSD 上で 68000 アセンブラの実験環境を作る Web ページ」を見て下さい。

このWebページに記載されている内容や,この Web ページを使ってダウンロー ドしたプログラムの使用によって生じたいかなる結果に対しても,Web ページ の作者は責任を負いません.利用は個人の責任において行ってください

なお、2005年8月バージョンの 「FreeBSD 上で 68000 アセンブラの実験環境を る Web ページ」も念のために残しているので、必要な人はそちらも 見て下さい

このページで説明している.こと

68000 開発環境(クロスコンパイラと RTEMS)、68000エミュレータ、その他の基本 的なソフトのインストール手順を説明している. 68000 の実機 (68000 搭載の実験ボード) に転送して動作するプログラムをコ ンパイルできるための設定手順である.

Linux のインストール

Linux のインストール、 Windowsなど他のOSとの 共存については Linux に関するドキュメント,サイト,書籍等を参考にして 個人の責任において行ってください.

インストール時の注意点

「パッケージファイル」を使って、最小限のソフトをインストール

最初に行なうことは、次のソフトがインストールされているかを調べ、 もしインストールされていなければ、「パッケージファイル」を使って、インストールする.

すでにインストール済みかを調べる

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=ftp://fr2.rpmfind.net/linux/redhat-archive/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

補足説明: 「パッケージファイル」について

ソフトが、インストールされていないとき、新たにインストールするために 「パッケージファイルを探してきて、適当なディレクトリにダウンロード」というのが一般的な手順である.

(2) yum の設定

  1. /etc/yum.repos.d/CentOS-Base.repo の設定

    /etc/yum.repos.d/CentOS-Base.repo を設定します. 設定例は https://www.kkaneko.jp/tools/linux/CentOS-Base.repo にあります

    上記の「設定例」を使用する場合

    cd /etc/yum.repos.d
    mv CentOS-Base.repo CentOS-Base.repo.BAK
    wget https://www.kkaneko.jp/tools/linux/CentOS-Base.repo
    cat /etc/yum.repos.d/CentOS-Base.repo
      # baseurl の行を確認 (正しくダウンロードできたことの確認)
    

    上記の「設定例」を使ったりせずに、1から手動で設定する場合

    vi /etc/yum.repos.d/CentOS-Base.repo
      # baseurl の行をすべて書き換える
    
  2. yum の接続先を設定するソフトをパッケージからインストールしておく.

    更新も自動で同時に行なわれる (1分ほど待つ).

    yum install centos-yumconf
    yum install yum-plugin-fastestmirror
     # Is this ok [y/N] と聞いてきたら適切に回答する
    
  3. /etc/yum.conf を編集し「plugins=1」という行を付け加える
    vi /etc/yum.conf
      # 「plugins=1」という行を付け加える
    
  4. /etc/yum.repos.d/CentOS-Base.repo

    もし, /etc/yum.repos.d/CentOS-Base.rpmnew が存在したら、次の操作で、/etc/yum.repos.d/CentOS-Base.repo にコピーする

    cd /etc/yum.repos.d
    ls
      # CentOS-Base.rpmnew が存在したら次のコマンドを実行
    cp CentOS-Base.rpmnew CentOS-Base.repo
    
  5. RPMforge の設定

    RPMforge が使えるように設定します.

    Web ページ: http://rpmforge.net/user/packages/rpmforge-release/ から Red hat Linux Enterprise Linux 4 for i386 (64 ビットの場合に限り x86_64) の rpmforge-release-???.rpm (dag の方) をダウンロードして、インストールする (rpm -i コマンドを使うなど)

    RPMForge は,現在,公開停止になっています

    その後、/etc/yum.repos.d/rpmforge.repo の mirrorlist の行は次のように変更する

    cd /etc/yum.repos.d
    vi rpmforge.repo
      # mirrorlist の行は次のように変更する (先頭の「#」が外れる)
    ---
    mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
    ---
    

    さらに、/etc/sysconfig/rhn/sources に次の行を付け加える

    cd /etc/sysconfig/rhn
    vi sources
      # 次の1行を付け加える
    ---
    yum rpmforge https://apt.sw.be/redhat/el4/en/$ARCH/dag/
    ---
    
  6. リポジトリ CentOS Extras の設定
    cd /etc/yum.repos.d
    wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
    wget http://centos.karan.org/kbsingh-CentOS-Misc.repo
    

    /etc/sysconfig/rhn/sources に次の2行を書き加える.

    cd /etc/sysconfig/rhn
    vi sources
      # 次の2行を付け加える
    ---
    yum kb-centos-extras http://centos.karan.org/el4/extras/stable/$ARCH/RPMS
    yum kb-centos-misc http://centos.karan.org/el4/misc/stable/$ARCH/RPMS
    ---
    
  7. 非公式レポジトリ DAG の設定

    /etc/yum.repos.d/dag.repo を次のように設定しておきます.

    [dag]
    name=Dag Repository for RedHat Enterprise Linux
    baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag/
    gpgcheck=1
    gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
    enabled=0
    

    上記の「設定例」を使用する場合

    cd /etc/yum.repos.d
    mv dag.repo dag.repo.OLD
    wget https://www.kkaneko.jp/tools/linux/dag.repo
    cat /etc/yum.repos.d/dag.repo
      # 正しくダウンロードできたことの確認
    

    関連する外部ページ】 「Fedora Coreの非公式リポジトリをyumで利用するには」 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/794uofrepo.html

  8. アップデート (yum を使用)

    下記の操作でアップデートを実施する (数分待ちます)

    yum check-update
    yum -y update
    

    (参考情報) サーバとして運用する予定が無ければ、アップデートの自動実行を設定(「chkconfig yum on ; /sbin/services yum start; 」)してもよいでしょう.

  9. /etc/ld.so.conf の編集

    /etc/ld.so.confを編集して、/usr/local/lib の1行を書き加える.

    vi /etc/ld.so.conf
     # 次の1行を書き加える
    -----
    /usr/local/lib
    -----
    

    /etc/ld.so.confの編集が終ったら, ldconfig コマンドを実行する

    /sbin/ldconfig
    
  10. 再起動し、エラーメッセージが出ないことの確認
    sync
    sync
    sync
    sync
    sync
    reboot
    

    これで yum の設定は終りました.

checkinstall のインストール

checkinstall をインストールする. checkinstall は、tarball から RPM パッケージを作ってくれるソフトです. 今後、わざわざ、自分の Linux バージョンに合致した RPMファイルを探して こなくても、「ソースファイルをダウンロード、コンパイルし、その後 RPM ファイルを作成して, その RPM を使ってインストールを行なう」ということができるようにします. (実は、ソースファイルはあっても、パッケージファイルが見つからない、と いうことはよくある)

checkinstall のインストールには gcc, rpm-build が必要です. 「gcc が無い」, 「rpm-buikd が無い」 ことが原因でエラーがもし出たら:

関連する外部ページ】「ソースファイルからRPMファイルを作成するには」 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/530mkrpmfs.html

関連する外部ページ】「checkinstall」 https://asic-linux.com.mx/~iztoc/heckinstall/download.php

インストール

下記のcheckinstall インストール用スクリプトを /bin/sh で実行 (次のコマンドを実行)

cd /tmp
rm -f checkinstall.sh
wget https://www.kkaneko.jp/tools/ubuntu/checkinstall.sh
/bin/sh checkinstall.sh

checkinstall インストール用スクリプトの中身は次の通り

#!/bin/sh
cd /tmp
# checkinstall-1.6.0.tgz を入手してから続行する
rm -rf checkinstall-1.6.0
gtar -xvzof checkinstall-1.6.0.tgz
cd /tmp/checkinstall-1.6.0
make
mkdir /usr/local/sbin
make install
mkdir /usr/src/redhat
mkdir /usr/src/redhat/SOURCES/
/usr/local/sbin/checkinstall -R -y
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/checkinstall-1.6.0.tar.gz ./checkinstall-1.6.0
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g'`/checkinstall-1.6.0-1.`/bin/arch | sed 's/686/386/g`.rpm

checkinstall の使い方の例

checkinstall を使って、pkgconfig をインストールしてみました。

-----------------------------------------------------------------------
# tar -xvzf pkg-config-0.19.tar.gz
# cd pkg-config-0.19
# ./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.19.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.19.0-1.i386.rpm

 You can remove it from your system anytime using:

      rpm -e pkgconfig-0.19.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.19.0-1.src.rpm
Size        : 136595                           License: GPL
mSignature   : (none)
Packager    : checkinstall-1.6.0
Summary     : コンパイルオプションを決定するツール
Description :
pkgconfig ツールはコンパイルオプションを決定します.必須の各ライブラリについて、
設定ファイルを読み込み、必要なコンパイラフラグとリンカフラグ
を出力します.
-----------------------------------------------------------------------

(注)
# checkinstall
でインストールできるのは、
# make install
コマンドでインストールするようなソフトです.
# make install_packages
など、別のコマンドが指定されている場合は、
# checkinstall make install_packages
などとします.
(README 参照)

(オプション) 日本語関係

Linux の種類によって日本語関係の設定方法が変わってくるため、簡単に説明 することはできません。下記は、日本語関係の設定のヒントとして Cent OS 4.3 で Anthy + uim のインストールと設定を行なう手順を示している.

  1. Anthy, uim をインストールする.

    下記のインストール用スクリプトを /bin/sh で実行 (次のコマンドを実行)

    cd /tmp
    rm -f anthy.sh
    wget https://www.kkaneko.jp/tools/ubuntu/anthy.sh
    /bin/sh anthy.sh
    

    インストール用スクリプトの中身は次の通り

    #!/bin/sh
    cd /tmp
    # uim-1.0.1.tar.gz を入手してから続行する
    rm -rf uim-1.0.1
    gtar -xvzof uim-1.0.1.tar.gz
    cd /tmp/uim-1.0.1
    ./configure
    make
    /usr/local/sbin/checkinstall -R -y
    cd /tmp
    tar -cvzf /usr/src/redhat/SOURCES/uim-1.0.1.tar.gz ./uim-1.0.1
    rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/uim-1.0.1-1.`/bin/arch | sed 's/686/386/g`.rpm
    
    cd /tmp
    # anthy-7500.tar.gz を入手してから続行する
    rm -rf anthy-7500
    gtar -xvzof anthy-7500.tar.gz
    cd /tmp/anthy-7500
    ./configure
    make
    /usr/local/sbin/checkinstall -R -y
    cd /tmp
    tar -cvzf /usr/src/redhat/SOURCES/anthy-7500.tar.gz ./anthy-7500
    rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/anthy-7500-1.`/bin/arch | sed 's/686/386/g`.rpm
    
  2. その後, いくつかのパッケージをインストールする
    yum install anthy anthy-el uim uim-anthy uim-gnome uim-gtk2
    
  3. .emacs ファイル(無ければ作る)に、次の1行を入れる
    cd
    vi .emacs
     # 次の1行を入れる
    (set-input-method "japanese-anthy")
    
  4. 入力メソッドの選択を行なう
    /usr/sbin/alternatives --config xinput-ja_JP
      # 「uim」の番号を入れる
    
  5. iiim, canna は明示的に停止しておく

    なお、上記の手順に従ってインストールしたときは iiim, canna が元から入っていないので、下記のコマンドを実行するとエラー が出ます (念のためじっこうしておく).

    /sbin/service iiim stop
    /sbin/chkconfig iiim off
    /sbin/service canna stop
    /sbin/chkconfig canna off
    
  6. 設定を行なう
    uim-toolbar-gtk &
    

基本ツール, ライブラリのインストール

下記にリストアップしたソフトのインストールを行なう (サーバ設定の下準備を兼ねる)

以下, (1) gcc 等のインストール, (2) ライブラリ等のインストール, (3) その他のツール、ライブラリ類のインストールの順で、実行すべきコマンドの手順を書いている.

この (1), (2), (3) で実行すべきコマンドは, まとめて 1つのファイル (https://www.kkaneko.jp/tools/linux/scripts/inst1.sh) にしており, 下記の手順で一括実行できる.

cd /tmp
rm -f inst1.sh
wget https://www.kkaneko.jp/tools/linux/scripts/inst1.sh
sh inst1.sh

なお, (1), (2), (3) のコマンドを実行するための所要時間は, 1, 2 時 間程度が予想されます.

(1) gcc 等のインストール

ソースファイルのダウンロード、コンパイル、checkinstall コマンドで RPM ファイルの作成、作成された RPM ファイルを使ってのイン ストール(rpm -i コマンド)を使用という手順をとります.

もし、同じソフト(バージョンは違うかも知れない)がインストール済みのと き、rpm -i の時点で、エラーが出ることがあります> これは OS のインストー ル時点で、いろいろとパッケージをインストールため. rpm -i の時点でのエ ラーは無視することにします.

下記のスクリプトを作成して /bin/sh で実行

#!/bin/sh

# 変数 ARCH を適切に設定してください

LANG=C
ARCH=i686-pc-linux-gnu

# ソースファイルのダウンロード先、ソースファイル名を指定している.

DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu

MYSRC_GNU1="autogen-5.8.tar.gz \
flex-2.5.4a.tar.gz \
gcc-core-3.4.5.tar.gz \
gcc-3.4.5.tar.gz \
patch-2.5.4.tar.gz"\
emacs-21.3.tar.gz \
leim-21.3.tar.gz'

#
# 作業手順 
#

cd /tmp

# Download Source Files
echo Download...
for i in `echo $MYSRC_GNU1`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/$i );
done

# Install
cd /tmp

# autogen
cd /tmp
rm -rf autogen-5.8
tar -xvzf autogen-5.8.tar.gz
cd autogen-5.8
./configure
make
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/autogen-5.8-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/autogen-5.8.tar.gz ./autogen-5.8

# 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
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/flex-2.5.4-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/flex-2.5.4.tar.gz ./flex-2.5.4

# gcc
cd /tmp
rm -rf gcc-3.4.5
tar -xvzf gcc-3.4.5.tar.gz
cd gcc-3.4.5
./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
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/gcc-3.4.5-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/gcc-3.4.5.tar.gz ./gcc-3.4.5

# patch-2.5.4.tar.gz
cd /tmp
rm -rf patch-2.5.4
tar -xvzf patch-2.5.4.tar.gz
cd patch-2.5.4
./configure --host=$ARCH
make
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/patch-2.5.4-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/patch-2.5.4.tar.gz ./patch-2.5.4

(2) ライブラリ等のインストール

下記のスクリプトを作成して /bin/sh で実行

#!/bin/sh

# 変数 ARCH を適切に設定してください

LANG=C
ARCH=i686-pc-linux-gnu

# ソースファイルのダウンロード先、ソースファイル名を指定している.

DOWNLOAD_URL_SRC=https://www.kkaneko.jp/computer/src/toollib

# execute ./configure, make, checkinstall -R -y in this order
MYSRC_LIBS="zlib-1.2.3.tar.gz \
libpng-1.2.8.tar.gz \
jpegsrc.v6b.tar.gz \
gd-2.0.33.tar.gz \
nkf206a.tar.gz"

#
# 作業手順 
#

cd /tmp

# Download Source Files
echo Download...
for i in `echo $MYSRC_LIBS`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_SRC/$i );
done

# Install

# zlib
cd /tmp
rm -rf zlib-1.2.3
tar -xvzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --shared
make
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/zlib-1.2.3-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/zlib-1.2.3.tar.gz ./zlib-1.2.3

# libpng
cd /tmp
rm -rf libpng-1.2.8
tar -xvzf libpng-1.2.8.tar.gz
cd libpng-1.2.8
cp scripts/makefile.linux Makefile
make
make test
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/libpng-1.2.8-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/libpng-1.2.8.tar.gz ./libpng-1.2.8

# jpeg-6b
cd /tmp
rm -rf jpeg-6b
tar -xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --enable-shared --enable-static CC='gcc'
make
make test
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/jpeg-6b-1.`/bin/arch | sed 's/686/386/g`.rpm
make install-lib
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/jpeg-6b.tar.gz ./jpeg-6b

# gd
cd /tmp
rm -rf gd-2.0.33
tar -xvzf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure
make CC="gcc -I/usr/local/include"
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/gd-2.0.33-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/gd-2.0.33.tar.gz ./gd-2.0.33

# nkf
cd /tmp
rm -rf nkf206
tar -xvzf nkf206a.tar.gz
cd nkf206
make
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/nkf206-1.`/bin/arch | sed 's/686/386/g`.rpm
cp nkf /usr/local/bin/nkf
chmod 755  /usr/local/bin/nkf
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/nkf206a.tar.gz ./nkf206

(3) ツール、ライブラリ類のインストール

下記のスクリプトを作成して /bin/sh で実行

#!/bin/sh

# 変数 ARCH を適切に設定してください

LANG=C
ARCH=i686-pc-linux-gnu

# ソースファイルのダウンロード先、ソースファイル名を指定している.

DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu

# execute ./configure, make, checkinstall -R -y in this order
MYSRC_GNU2="bison-1.875d.tar.gz \
libpcre-6.3.tar.gz \
libiconv-1.9.2.tar.gz \
m4-1.4.3.tar.gz \
autoconf-2.59.tar.gz \
automake-1.9.5.tar.gz \
binutils-2.16.1.tar.gz \
gettext-0.14.4.tar.gz \
libtool-1.5.22.tar.gz \
make-3.80.tar.gz \
texinfo-4.8.tar.gz \
beecrypt-4.0.0.tar.gz \
readline-5.0.tar.gz \
gdb-6.4.tar.gz"\
gdb-5.3.tar.gz

#
# 作業手順 
#

cd /tmp

# Download Source Files
echo Download...
for i in `echo $MYSRC_GNU2`;
  do ( wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/$i );
done

# Install
cd /tmp

# 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 ); 
    rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/`basename $i .tar.gz`-1.`/bin/arch | sed 's/686/386/g`.rpm
    cd /tmp
    tar -cvzf /usr/src/redhat/SOURCES/`basename $i .tar.gz`.tar.gz ./`basename $i .tar.gz`
done

その他のツール, ライブラリのインストール

引続き、インストールを続ける.

#!/bin/sh

# 変数 ARCH を適切に設定してください

LANG=C
ARCH=i686-pc-linux-gnu

# ソースファイルのダウンロード先、ソースファイル名を指定している.

DOWNLOAD_URL_SRC=https://www.kkaneko.jp/computer/src/toollib

MYSRC_BASE=' \
expat-1.95.8.tar.gz \
freetype-2.1.10.tar.gz \
newlib-1.14.0.tar.gz'

MYSRC_BASE2=' \
fontconfig-2.3.2.tar.gz \
tcl-8.4.11.tar.gz \
tk-8.4.11.tar.gz'

cd /tmp

# Download Source Files
echo Download...
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


# 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 ); 
    rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/`basename $i .tar.gz`-1.`/bin/arch | sed 's/686/386/g`.rpm
    cd /tmp
    tar -cvzf /usr/src/redhat/SOURCES/`basename $i .tar.gz`.tar.gz ./`basename $i .tar.gz`
done

# fontconfig-2.3.2.tar.gz
cd /tmp
rm -rf fontconfig-2.3.2
tar -xvzf fontconfig-2.3.2.tar.gz
cd fontconfig-2.3.2
./configure --disable-docs
make
echo "all:" > doc/Makefile
echo "    echo " >> doc/Makefile
echo "install:" >> doc/Makefile
echo "    echo " >> doc/Makefile
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/fontconfig-2.3.2-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/fontconfig-2.3.2.tar.gz ./fontconfig-2.3.2

# tcl-8.4.11.tar.gz
cd /tmp
rm -rf cd tcl8.4.11
tar -xvzf tcl-8.4.11.tar.gz
cd tcl8.4.11
cd unix
./configure
make
cd ..
mv unix tcl-8.4.11
ln -s tcl-8.4.11 unix
cd tcl-8.4.11
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/tcl-8.4.11-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/tcl-8.4.11.tar.gz ./tcl-8.4.11

# tk-8.4.11.tar.gz
cd /tmp
rm -rf tk8.4.11
tar -xvzf tk-8.4.11.tar.gz
cd tk8.4.11
cd unix
./configure
make
cd ..
mv unix tk-8.4.11
ln -s tk-8.4.11 unix
cd tk-8.4.11
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/tk-8.4.11-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/tk-8.4.11.tar.gz ./tk-8.4.11

# 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
/usr/local/sbin/checkinstall -R -y
rpm -i /usr/src/redhat/RPMS/`/bin/arch | sed 's/686/386/g`/emacs-21.3-1.`/bin/arch | sed 's/686/386/g`.rpm
cd /tmp
tar -cvzf /usr/src/redhat/SOURCES/emacs-21.3.tar.gz ./emacs-21.3

何台もインストールしたい」という場合について。 1台目のインストール を終えた時に /usr/src/redhat/RPMS/i386 というような名前のディレクトリ に RPM 形式の「パッケージファイル」ができているので、ここにある 「パッ ケージファイル」を、2台目以降 のコンピュータにコピーして、「rpm -i <「パッケージファイル名」>」という 手順になる.

補足説明: どうしても「パッケージファイル」からインストールしたいときの手順

ここでは、各種ツール, ライブラリを、「パッケージファイル」からインストー ルする手順を説明している. すでに、上記の手順でインストールが済んでいるなら、ここは飛ばして、 「CPU シミュレータ bsvc」に進んで下さい。

すでに手元に「パッケージファイル」がある、というようなときは、上記の手 順では無くて、「パッケージファイル」からインストールしてもよいでしょう。

すでにインストール済みかを調べる

LINUX のインストール時に自動でインストールされるものがあるので、まず、インストールされているかを調べ、 インストールされていなければ、手動でインストールするという手順を踏みます.

インストールされているかを調べるには、 「rpm -qi expat」のように「rpm -qi <パッケージ名>」を実行します

「パッケージファイル」をダウンロードし、インストール

「パッケージファイル」を使ったインストールの手順を説明する. 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=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.14.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_SRC=https://www.kkaneko.jp/computer/src/toollib
DOWNLOAD_URL_GNU_SRC=https://www.kkaneko.jp/computer/src/gnu

# binutils-2.16.1.tar.gz
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/binutils-2.16.1.tar.gz
rm -rf binutils-2.16.1
tar -xvzf binutils-2.16.1.tar.gz
cd binutils-2.16.1
./configure --prefix=/usr/local --target=m68k-coff
make
make install

# gcc-core-3.4.5.tar.gz
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-3.4.5.tar.gz
rm -rf gcc-3.4.5
tar -xvzf gcc-core-3.4.5.tar.gz
cd gcc-3.4.5
./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 --host=i686-pc-linux-gnu --with-newlib
make
make install

# newlib-1.9.0.tar.gz
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_SRC/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.3.tar.gz
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gdb-5.3.tar.gz
rm -rf gdb-5.3
tar -xvzf gdb-5.3.tar.gz
cd gdb-5.3
./configure --prefix=/usr/local --target=m68k-coff
make
make install

# binutils-2.16.1.tar.gz
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/binutils-2.16.1.tar.gz
rm -rf binutils-2.16.1
tar -xvzf binutils-2.16.1.tar.gz
cd binutils-2.16.1
./configure --prefix=/usr/local --target=m68k-coff --with-headers=../newlib-1.9.0/newlib/libc/include --with-newlib
make
make install

# gcc-3.4.5.tar.gz with newlib
# これは未チェック
cd /tmp
wget -S --passive-ftp $DOWNLOAD_URL_GNU_SRC/gcc-core-3.4.5.tar.gz
rm -rf gcc-3.4.5
tar -xvzf gcc-core-3.4.5.tar.gz
cd gcc-3.4.5
./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 --host=i686-pc-linux-gnu
make
make install

68000 開発環境 RTEMS

68000 開発環境として RTEMS をインストールする. これは、RPM ファイルを ダウンロードし、 「rpm -i <パッケージファイル名>」でインストールするという手順になる.

上記サイトより以下のファイルをダウンロードして、インストールすることに なる.

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

手順

インストールの手順は、次のようになる.

CPU シミュレータ bsvc

CPU シミュレータ bsvc をインストールする. ソースファイルをダウンロード、コンパイルし、checkinstall を使ってインストールする.

インストール上の注意点

RedHat 9 では、bsvc のソースファイルは、そのままではコンパイル できません。変更が3箇所あります.

インストール手順

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 package のインストール
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のインストール先を変更する.

# cp Makefile.Linux Makefile は未チェック
cp Makefile.Linux Makefile

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

次にインストールを実行する. このスクリプトはlib以下を/usr/local/lib に,bin以下を/usr/local/binにコピーします.

cd m68k-5.0
./install.sh

次に /usr/loca/bin/m68k-emu ファイルを開き、 「exec /usr/local/bin/wish -f /usr/local/bin/UI/bsvc.tk」 と表記されている行は、インストールした tk のバージョンにあわせて、適切 に設定して下さい

例えば、「exec /usr/local/bin/wish8.4 -f /usr/local/bin/UI/bsvc.tk」の ように変更して下さい。

xterm(kterm)のウィンドウを開きなおしてm68k-as,m68k-emuが実行できることを確認します.

お断り

この Web ページは,68000アセンブラ基礎実験,ソフトウェア実験で使用するツール を,自宅のパソコンに整備する方法を説明するために作製しました.

この Web ページに関する質問について

金子邦彦研究室構成員以外の方からの質問に関して,個別にお答えするこ とはできませんのでご了承ください