Changes between Initial Version and Version 1 of build_ssp3a


Ignore:
Timestamp:
Sep 11, 2019, 11:17:01 PM (5 years ago)
Author:
nmir-saito
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • build_ssp3a

    v1 v1  
     1= TOPPERS/SSP3カーネル(Release 3.A.0)のビルドスクリプト =
     2
     3== これは何か
     4早期リリースとして会員向けに公開されているTOPPERS/SSP3カーネル(Release 3.A.0)をビルドするためのシェルスクリプトです.[[BR]]
     5利用方法については [https://www.docker.com/ Docker] を用いた動作確認手順を示しますので,参考にしてください.[[BR]]
     6
     7== 動作確認に必要なもの
     8
     9* Docker : ホストOS上で Ubuntu のコンテナ(仮想環境)を動かすために使います.Ubuntu系のLinuxシステムをお使いの場合は手順2.のスクリプトだけを実行することもできます.
     10* Git : Dockerのスクリプトを取得するのに使います.
     11* コマンドライン環境:コマンドの実行にbashシェルを使います.Mac ならターミナルアプリ,Windowsなら MinGW など.
     12
     13== Dockerを用いた動作確認手順
     14以下ではMacOSのターミナルアプリで作業する際の様子を示します.他のホストOSで使用する場合もほぼ同様と思います.
     15
     16=== 1. Dockerコンテナの構築およびシェルの起動
     17{{{
     18# (1-1) Dockerスクリプトの取得(カレントディレクトリに docker-toppers というディレクトリが作成される)
     19
     20$ git clone https://github.com/nmiri-nagoya-nsaito/docker-toppers.git
     21Cloning into 'docker-toppers'...
     22remote: Enumerating objects: 21, done.
     23remote: Counting objects: 100% (21/21), done.
     24remote: Compressing objects: 100% (18/18), done.
     25remote: Total 113 (delta 4), reused 17 (delta 2), pack-reused 92
     26Receiving objects: 100% (113/113), 16.05 KiB | 2.29 MiB/s, done.
     27Resolving deltas: 100% (43/43), done.
     28
     29# (1-2) スクリプトのディレクトリへ移動し,コンテナのシェルを起動する(詳細はスクリプト参照)
     30
     31$ cd docker-toppers
     32$ ./start_shell.sh
     33specified service: cli
     34Building cli
     35Step 1/16 : FROM ubuntu:xenial
     36 ---> 0ef2e08ed3fa
     37Step 2/16 : MAINTAINER Naoki Saito <saito.naoki@nmiri.city.nagoya.jp>
     38 ---> Using cache
     39 ---> ca33bf786219
     40Step 3/16 : RUN apt-get update
     41 ---> Using cache
     42 ---> 10c03c54ce2f
     43(中略)
     44Step 15/16 : USER $user
     45 ---> Using cache
     46 ---> 824d71ab265f
     47Step 16/16 : RUN chmod -R +x ./scripts     && sync     && ./scripts/setup_user.sh
     48 ---> Using cache
     49 ---> b15825714462
     50Successfully built b15825714462
     51Successfully tagged docker-toppers_cli:latest
     52Creating network "docker-toppers_default" with the default driver
     53Creating docker-toppers_cli_1 ... done
     54To run a command as administrator (user "root"), use "sudo <command>".
     55See "man sudo_root" for details.
     56
     57saito@a584f9ade435:~$
     58}}}
     59
     60この時点で Linux コンテナのシェルが起動していますので,次はこの環境の中でSSP3カーネルのソースコードをセットアップし,ビルドします.
     61
     62=== 2. ソースコードのセットアップおよびビルド
     63
     64{{{
     65# (2-1) 作業ディレクトリへ移動 (dockerの設定にて ~/workdir ディレクトリをホストと共有している)
     66saito@a584f9ade435:~$ cd workdir/
     67
     68# (2-2) 本パッケージをダウンロード(<ユーザ名>の部分は適宜置き換えてください)
     69saito@a584f9ade435:~/workdir$ svn co http://dev.toppers.jp/svn/contrib/build_ssp3a --username <ユーザ名>
     70認証領域: <http://dev.toppers.jp:80> Subversion Repository
     71'<ユーザ名>' のパスワード: <パスワードを入力>
     72
     73A    build_ssp3a/build_ssp3a.sh
     74A    build_ssp3a/setup_tools.sh
     75リビジョン 403 をチェックアウトしました。
     76
     77# (2-3) ツールのインストール
     78saito@a584f9ade435:~/workdir$ cd build_ssp3a/
     79saito@a584f9ade435:~/workdir/build_ssp3a$ sudo ./setup_tools.sh
     80ヒット:1 http://archive.ubuntu.com/ubuntu xenial InRelease     
     81ヒット:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease                       
     82ヒット:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease                       
     83パッケージリストを読み込んでいます... 完了                     
     84(中略)
     85libc-bin (2.23-0ubuntu11) のトリガを処理しています ...
     86systemd (229-4ubuntu21.22) のトリガを処理しています ...
     87sgml-base (1.26+nmu4ubuntu1) のトリガを処理しています ...
     88
     89# (2-4) SSPカーネルコードのセットアップ及びビルド
     90saito@a584f9ade435:~/workdir/build_ssp3a$ ./build_ssp3a.sh
     91username for http://www.toppers.jp/MEMBERS): <ユーザ名>
     92password: <パスワード(非表示)>
     93--2019-09-11 22:16:53--  https://www.toppers.jp/MEMBERS/early/third/ssp3_arm_gcc-20190902.tar.gz
     94www.toppers.jp (www.toppers.jp) をDNSに問いあわせています... 52.194.18.5
     95www.toppers.jp (www.toppers.jp)|52.194.18.5|:443 に接続しています... 接続しました。
     96(中略)
     97arm-none-eabi-nm -n ssp > ssp.syms
     98arm-none-eabi-objcopy -O srec -S ssp ssp.srec
     99ruby /home/saito/workdir/build_ssp3a/workdir/ssp3/cfg/cfg.rb --pass 3 --kernel ssp -O -I. -I/home/saito/workdir/build_ssp3a/workdir/ssp3/include  -I/home/saito/workdir/build_ssp3a/workdir/ssp3/target/ct11mpcore_gcc -I/home/saito/workdir/build_ssp3a/workdir/ssp3/arch/arm_gcc/common -I/home/saito/workdir/build_ssp3a/workdir/ssp3/arch/gcc -I/home/saito/workdir/build_ssp3a/workdir/ssp3 -I/home/saito/workdir/build_ssp3a/workdir/ssp3/sample -I./gen -I/home/saito/workdir/build_ssp3a/workdir/ssp3/tecs_kernel -T /home/saito/workdir/build_ssp3a/workdir/ssp3/target/ct11mpcore_gcc/target_check.trb \
     100                        --rom-symbol ssp.syms --rom-image ssp.srec
     101configuration check passed
     102make[1]: ディレクトリ '/home/saito/workdir/build_ssp3a/workdir/ssp3/build' から出ます
     103saito@a584f9ade435:~/workdir/build_ssp3a$
     104}}}
     105
     106以上が成功すると <カレントディレクトリ>/workdir/ssp3/build/ に実行プログラムファイル(ssp)が生成されます.
     107
     108=== 3. 実行確認(QEMUでの実行確認)
     109{{{
     110# QEMU で実行ファイルを起動
     111saito@a584f9ade435:~/workdir/build_ssp3a$ cd workdir/ssp3/build/
     112saito@a584f9ade435:~/workdir/build_ssp3a/workdir/ssp3/build$ qemu-system-arm -M realview-eb-mpcore -semihosting -m 128M -nographic -kernel ssp
     113pulseaudio: pa_context_connect() failed
     114(省略.オーディオデバイス関連のエラーメッセージが出るがここでは気にしなくて良い)
     115audio: Failed to create voice `lm4549.out'
     116
     117TOPPERS/SSP3 Kernel Release 3.A.0 for ARM CT11MPCore (Sep 11 2019, 22:17:12)
     118Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
     119                            Toyohashi Univ. of Technology, JAPAN
     120Copyright (C) 2004-2019 by Embedded and Real-Time Systems Laboratory
     121            Graduate School of Information Science, Nagoya Univ., JAPAN
     122
     123System logging task is started.
     124Sample program starts (exinf = 0).
     125task1 is running (001).   |
     126task1 is running (002).   |
     127task1 is running (003).   |
     128task1 is running (004).   |
     129}}}
     130
     131QEMUを終了するには,Ctrl-a を押してから x を入力します.
     132
     133{{{
     134# (Ctrl-a x を押す)
     135QEMU: Terminated
     136}}}
     137
     138コンテナのシェルを抜けてホストOSに戻る場合は exit を実行します.
     139
     140{{{
     141# シェルを終了する
     142saito@a584f9ade435:~/workdir/build_ssp3a$ exit
     143ログアウト
     144$
     145}}}
     146
     147再度シェルを起動する場合は ./start_shell.sh を実行します.
     148
     149{{{
     150# 再度シェルを立ち上げる
     151$ ./start_shell.sh
     152specified service: cli
     153docker-toppers_cli_1 is up-to-date
     154saito@a584f9ade435:~$
     155}}}
     156
     157
     158== 注意事項
     159* Windows版のgitで core.autocrlf が true に設定されている場合,シェルスクリプトの実行に失敗することがあるようです.その場合は `git config` コマンドで `core.autocrlf` を `false` に設定してみてください.