第1章 Dockerをどっかーらどうやって使えばいいんでしょう。
<この項は書きかけです。順次追記します。>
1.1 Raspberry Pi
ここでは、Raspberry Pi3を使っています。RaspbianのSDカードがあれば、そこにフォルダを作り、Raspbianを退避させてTOPPERS/HRPをコピーして使います。
第一段階:クロスコンパイル
第二段階:シリアルでモニタ
USB-シリアルピンのケーブルがあればモニタで確認できます。
https://www.amazon.co.jp/dp/B01KZWJRRE/
海外だったので2箇所に10本づつ発注。到着日時が同時だったのには驚き。
第三段階:デバッガでデバッグ(追記予定)
Raspberry Pi2, Raspberry Piを使ったTOPPERS/SSPの動かし方は、
https://github.com/alvstakahashi
1.2 TOPPERS/FMP
https://www.toppers.jp/fmp-e-download.html
のRaspberry PI版を Macintoshで生成するための方法です。
TOPPERSはオープンソースのリアルタイムカーネルを提供しています。
FMPはFlexible Multiprocessor Profileの略で、マルチコアに対応したカーネルです。
1.3 「名古屋のIoTは名古屋のOSで」
この資料は2017年TOPPERS開発者会議において名古屋大学の本田晋也さんが行った演習を基に作成しています。
Raspberry PIをraspbian以外でも使う実験を行います。
名古屋大学で設計されたTOPPERS/FMP, 杉本明加さんと名古屋市工業研究所で実装したTOPPERS/SSPなど名古屋のOSを試します。
2017年12月開催の「名古屋のIoTは名古屋のOSで」セミナで、名古屋市工業研究所の斉藤直希が用意したものに基づいています。
ここではMacintoshで説明します。Windowsでも、同じようにDockerを利用することができます。下記を参考に実行してみてください。
1.4 Docker
Dockerは、コマンドラインの仮想環境を作るソフトです。
Linuxではサーバ機能を使い、Windows, MacintoshではDesktop機能を使います。サーバ、仮想環境ともUbuntuが代表的です。ServerはUbuntuだけでなくDebian系のLinux始め、多くのLinuxで動作するLinux(ubuntu)のコマンド環境を提供してくれます。
MacintoshではDockerのDesktop機能であるdockerアプリを導入します。Dockerアプリの導入・起動は、下の「5つの関門」参照。
第一章はdockerを導入ずみを前提にしています。実行してみて、うまくいかなかったら、第二章の「5つの関門」をお読みください。
1.5 注意点
Macintoshでdockerを使う場合にわかりにくいところは、dockerを起動したコマンドプロンプトの状態とdockerの状態が似ていることです。
そのままさっきとあまり違いがなく、すでにdockerの中にいる状態になる。
Macintoshのコマンドと、dockerの内部とでは"$"の前に付いている文字列が代わっているはずです。
ここでは、固有名詞を避けるためにコマンドプロンプトを省略しています。
以下、dockerの中の入力促進記号(prompt)は"$$"と表記します。お使いの画面には$しか現れていません。
1.6 コマンド実行(Macintosh)
Macintoshのコマンド(プロンプト)で
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
$は入力促進記号(prompt)です。この文字を入れる必要はありません。
セミナで実行したdockerで一部修正したものを保存(push)したものを取り出す(pull)する作業です。
dockerコマンドのログ(例)
実行のログ(例)のはじめの部分はこちら。
kaizenjapan: Pulling from kaizenjapan/dockertoppersfmprpi64_fmp
8f7c85c2269a: Pull complete
9e72e494a6dd: Pull complete
3009ec50c887: Pull complete
9d5ffccbec91: Pull complete
e872a2642ce1: Pull complete
30b8a79ef712: Pull complete
dd62d57c37c5: Pull complete
続きは
https://researchmap.jp/joxehp3dn-2000107/#_2000107
こんな感じなら大丈夫。
あるいは、一度pullしたことがあると
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
kaizenjapan: Pulling from kaizenjapan/dockertoppersfmprpi64_fmp
Digest: sha256:52e9f56dd33306e177ec8ed5cba8995a7ff3204a713855cec32601f723f23f5c
Status: Image is up to date for kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
dockerのfmpコンパイル用イメージがうまくできているかの確認。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kaizenjapan/dockertoppersfmprpi64_fmp kaizenjapan b329efb0b44b 23 hours ago 1.24GB
逆に言えば、前docker pullしたことがあれば、docker imagesを実行してみれば、docker pullする必要はない。
1.7docker起動(2つ目のdockerコマンド)
$ docker run -it kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan /bin/bash
コマンドの結果、コマンドのプロンプトが「administrator@e40a06773578:~$」と変わっていれば大丈夫。
下記の警告は、すでにdockerで走っている状態。
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
aptなどは sudo を先につけて実行するとよいことが分かります。
プロンプトが少し変わってることに注目してください。"Machine"という機器名のMacに"user"という名前でMacログインしていたとしたら
# Macintosh
Machine:~ user$
# docker:ubuntu
user@846978ad203c:~$
プロンプトで見分けにくければ、Docker内部にいるかどうかを確かめるには、例えば、
$ ps -ax
PID TTY STAT TIME COMMAND
1 pts/0 Ss+ 0:00 /bin/bash
17 pts/1 Ss 0:00 bash --login
5004 pts/1 R+ 0:00 ps -ax
こんな感じです。Macintoshでは、いっぱいプロセスが走っているはず、、、。
1.8 docker内でコマンド実行
起動したdockerの中で
$$ cd workdir
$$ sudo ../scripts/build_fmp.sh
# http://bit.ly/2nRx6nN by Satito naoki
$$は入力促進記号(prompt)です。この文字を入れる必要はありません。'#'の行は註釈(comment)です。コマンド列の入力手順の説明が書かれています。
logの例です。
--2018-02-07 16:38:21-- https://releases.linaro.org/components/toolchain/binaries/7.1-2017.08/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz
releases.linaro.org (releases.linaro.org) をDNSに問いあわせています... 52.77.230.32
releases.linaro.org (releases.linaro.org)|52.77.230.32|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 FOUND
場所: https://publishing-ap-linaro-org.s3.amazonaws.com/releases/components/toolchain/binaries/7.1-2017.08/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz?
* snip *
../arch/arm64_gcc/common/core_def.csv sample1.cfg
check complete
aarch64-elf-objcopy -O binary -S fmp fmp.bin
fmp.binができていればOK.
docker内のコマンドのログ(docker軌道からの一連のlog)
エラーが出たりして、実行結果が違うかもしれないと比較するためのlogファイルはこちら
https://researchmap.jp/mulbu8wxa-45645/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=152852&metadata_id=25961
1.9 ファイルのコピー
置くモノ :
fmp.bin ,
config.txt(RPi64Toppers直下) ,
start.elf , bootcode.bin(https://github.com/raspberrypi/firmware/tree/master/boot からダウンロード)
Raspbianのmicro SDカードを利用する場合
backupフォルダを作り、ルートディレクトリにあるファイルを全てbackupフォルダに移動して
上記4ファイルだけにすればTOPPERS/FMPが起動します。
FMPフォルダを作り、4ファイルをFMPフォルダに移動し、backupフォルダの中身をルートに戻せば、Raspbianが起動します。
1.10 USB serial 接続
Raspberry PiでTOPPERS(TRON系OS)
http://domisan.sakura.ne.jp/article/rp_toppers/rp_toppers.html
当方の場合は、黒(gnd:6), 白(8)、緑(10)
1.11 minicomの導入・起動
Mac OS X Mountain Lion で RaspberryPi とシリアル接続する
http://cat-s-tail.blogspot.jp/2013/10/Mac-OS-X-Mountain-Lion-RaspberryPi-serial.html
brew install minicom
1.12 起動
micro SDカードを刺して、電源を入れる
TOPPERS/FMP Kernel Release 1.4.0 for RPI-ARM64(BCM283X(Cortex-A53)) (Feb 7 2018, 09:25:47)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2015 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
Processor 4 start.
Processor 3 start.
local_inirtn exinf = 4, counter = 1
Processor 1 start.
local_inirtn exinf = 3, counter = 2
local_inirtn exinf = 1, counter = 3
Processor 2 start.
local_inirtn exinf = 2, counter = 4
Server task 3 starts.
Server task 4 starts.
Server task 2 starts.
CPU exception handler1 (p_excinf = 0002e560).
sns_loc = 0 sns_dsp = 1 sns_tex = 1
xsns_dpn = 1 xsns_xpn = 1
Sample program ends with exception.
local_terrtn exinf = 1, counter = 5
local_terrtn exinf = 4, counter = 7
local_terrtn exinf = 3, counter = 7
local_terrtn exinf = 2, counter = 6
global_terrtn exinf = 0, counter = 8
やったー、動いた。
第二章 TOPPERS/FMP on Raspberry Pi with Macintosh編 5つの関門
TOPPERS/FMPをMacintoshでコンパイルするのにいくつかの関門がある。
2.1 関門1 クロスコンパイラのコンパイル
最大の関門はクロスコンパイラのコンパイル。この関門を潜るために、dockerを使う。
Macintoshでは、大文字小文字の識別、ファイル名の長さがの制約がLinuxと異なる。そのためLinuxでうまく行くことがMac OSXではうまくいかないことがある。
設定をいじるより、docker/ubuntuで操作する方が簡単。
docker for TOPPERS/FMP
ビルドするためのDockerプロジェクト.by Saito Naoki
https://github.com/nmiri-nagoya-nsaito/docker-toppers-fmp-rpi64
準備1 Xcodeとコマンドラインツールの導入
XcodeはApple Storeから無償で導入できます。
「Xcode」検索
コマンドラインツールは、Xcode導入後、
$ xcode-select --install
準備2 brewの導入
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
準備3 git, wget, nkf導入
$ brew install git
$ brew install wget
$ brew install nkf
準備4 dockerアプリ導入
Macintoshにdockerアプリを導入
$ brew cask install docker
準備5 dockerアプリ起動
アプリケーションフォルダのDockerアプリをダブルクリック。
アプリが起動していないと、コマンドラインで次のエラーが出る。
$ docker ps -a
bash: docker: command not found
dockerの中でも上記のエラーが出る。
dockerのわかりにくいところは、dockerを起動したコマンドプロンプトで、
そのままさっきとあまり違いがなく、すでにdockerの中にいる状態になること(大事なことなので2度書きました)。
dockerの起動状態の確認(プロセス編)
dockerが起動しているかどうかは、dockerアイコンが起動アプリ一覧の中にあるか、または次のコマンドを叩くとわかる。
$ ps -ax | grep docker
実行
gitコマンドを投入
$ git clone https://github.com/nmiri-nagoya-nsaito/docker-toppers-fmp-rpi64.git
# http://bit.ly/2nRx6nN by Satito naoki
続いて次のコマンドを
$ cd docker-toppers-fmp-rpi64
$ ./start_shell.sh
# http://bit.ly/2nRx6nN by Satito naoki
目的のdockerがすでに起動していれば、buildしない設定になっているらしい。
...
if [ "x$(docker-compose ps -q ${SERVICE})" = "x" ]; then
docker-compose build ${SERVICE}
fi
...
# http://bit.ly/2nRx6nN by Satito naoki
## うまくいったらdockerの内部で次のコマンドを実行。
$$ cd workdir
$$ ../scripts/build_fmp.sh
# http://bit.ly/2nRx6nN by Satito naoki
うまくいけば、configuratorのコンパイル、設定をし、カーネルをコンパイルする。
2.2 関門2 configuratorの導入
TOPPERSのカーネルのコンパイルで、configuratorの導入で迷うこと、困ることがしばしば。
configuratorのコンパイル
configuratorは、ホストOS(今回はubuntu)のコンパイラでコンパイルする。クロスコンパイラではない。
configuratorの置き場所
configuratorは、任意の場所においておいて、ln -sでシンボリックリンクを作るのが良さげ。
先ほどのスクリプトで、
../scripts/build_fmp.sh: 22 行: cd: RPi64Toppers/fmp/cfg/cfg: そのようなファイルやディレクトリはありません
というエラーが出る。cfgというフォルダが二重に必要。今回は、そのどちらも作成されていない。
...
cd RPi64Toppers/fmp/cfg/cfg
ln -s ../../../../cfg-1.9.6/cfg/cfg cfg
cd ../../
...
# http://bit.ly/2nRx6nN by Satito naoki
となっている。これは一括実行するスクリプトファイルであるため入力促進記号は表示していない。
...
cd RPi64Toppers/fmp/
mkdir cfg
cd cfg
mkdir cfg
cd cfg
ln -s ../../../../cfg-1.9.6/cfg/cfg cfg
cd ../../
...
に変更した。これでうまく通った。手でコマンドを一つづつ打っても(コピペしても)良い。
configuratorの呼び出し方
シンボリックリンクが貼ってあることと、Pathが通っていることが大事。
dockerの処理の途中でエラーになって、Pathがうまく通っていない状態になったことがある。
...
echo 'export PATH=$HOME/workdir/aarch64-elf-gcc/bin:$PATH' > ~/.bash_profile
source ~/.bash_profile
...
# http://bit.ly/2nRx6nN by Satito naoki
の各行を順にコピペして実行したらうまく行った。原因は不明。
なお、dockerとmacとのファイル共有の仕方をスクリプトで実現している。
2.3 関門3 カーネルのコンパイル
intelのCPU上で、Raspberry PiのARMのCPU用のコンパイルをするには、クロスコンパイラでコンパイルします。関門1がうまく行っていれば大丈夫。
最初からソースコードを書き換えずに、最初は、あるものがそのままで動くかどうかを確かめてから、少しづつ動かすとよい。あちこち一遍に作ると、何がうまく行かない原因かを特定しづらい。
2.4 関門4 どっかーでエラーが起きた時の対処方法
dockerが起動しているかどうか(docker ps編)
docker以外のコマンドプロンプトから実行。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a02eaf04fef dockertoppersfmprpi64_fmp "/bin/bash" 37 minutes ago Up 37 minutes dockertoppersfmprpi64_fmp_1
コマンドがない
'command'がない場合と、PATHがきれてない場合がある。
$ find / -name 'command' name -print
でコマンドを探そう。
###Macintosh側に必要な'command'の場合は次のいずれか。
$ brew install 'command'
$ brew cask install 'command'
###Docker内のUbuntuで"command"名のコマンドがない場合は、
$$ apt-get install command
$$ sudo apt-get install command
PATHがきれてない
$$ echo 'export PATH=$HOME/workdir/aarch64-elf-gcc/bin:$PATH' > ~/.bash_profile
$$ source ~/.bash_profile
といった感じで、~/.bash_profileに設定を追加しよう。
一度失敗すると
一度失敗すると、フォルダはすでに存在している。そのため、
mkdir: cannot create directory 'aarch64-elf-gcc': File exists
というエラーが出て進まないことがある。
mkdirをif文で囲むか、mkdirのないrebuildのようなスクリプトを作るか。
ただ、どこまでmkdirがうまく行ったかで、条件が違うのなら、mkdir をif文で囲むのが良さそう。
文字の間違い
焦っていると、打ち間違いが増えて、余計にややこしくなる。
Pathの設定、ファイル名、フォルダ名など、間違えて作ってしまうと、
ややこしや。
Dockerのよいところは、それまでのものを捨て去って、一からまた始めるのが容易にだということ。
#2.5 関門5 通信がうまくいっていない場合
通信エラー
$$ ../scripts/build_fmp.sh
--2018-02-07 08:45:58-- https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-elf/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-elf.tar.xz
releases.linaro.org (releases.linaro.org) をDNSに問いあわせています... 52.77.230.32
releases.linaro.org (releases.linaro.org)|52.77.230.32|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 NOT FOUND
2018-02-07 08:45:59 エラー 404: NOT FOUND。
dockerで最初の導入、実行はうまく行った。wgetコマンドで急に通信エラー。
原因は調査中。他の機材でやったら出なかったのでひとまず放置。
wiresharkでの確認
Wiresharkでパケットを取得すると良い。
Macintosh
$ brew cask install wireshark
参照 MacintoshにWiresharkを導入する5つの壁
docker/ubuntu
$$ sudo apt-get install wireshark
コマンドラインでのTsharkとしてご利用ください。
参照 tsharkコマンドの使い方
第三章 対処したものをdockerにあげる
せっかくうまく行ったら、dockerに変更したものをあげるとよい。
元がgitにあるのであれば、gitを更新するのがよい。
ただし、いろいろな確認をするために、自分用のdocker hubにあげて、いろんな人に試してもらうのもよい。
3.1 dockerの状況
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d16cdf58b5e5 dockertoppersfmprpi64_fmp "/bin/bash" About an hour ago Exited (0) About a minute ago dockertoppersfmprpi64_fmp_1
8d864084ea72 ubuntu:xenial "/bin/bash" 2 weeks ago Exited (255) 2 weeks ago epic_lichterman
##3.2 Docker HUBのID設定
https://cloud.docker.com/
メールアドレス、パスワードを設定する。
メールが来る。
メールの中にURLをダブルクリックする。
(This link will expire in 2 days.)
2日は有効らしい。
3.3 Docker Image の保存
$ docker commit dockertoppersfmprpi64_fmp_1 dockertoppersfmprpi64_fmp:kaizenjapan
Docker HUBへの登録
$ docker push kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
The push refers to repository [docker.io/kaizenjapan/dockertoppersfmprpi64_fmp]
0824ca26fac8: Pushed
a293d97b521d: Pushed
b7bc844f348e: Pushed
3da3c8eae2d4: Pushed
4fe000695a8c: Pushed
7b2fcb653ca7: Pushed
60104d5eb99b: Pushed
85e35c87a208: Pushed
9f8d765fe04e: Pushed
8600ee70176b: Pushed
2bbb3cec611d: Pushed
d2bb1fc88136: Pushed
a6a01ad8b53f: Pushed
833649a3e04c: Pushed
kaizenjapan: digest: sha256:52e9f56dd33306e177ec8ed5cba8995a7ff3204a713855cec32601f723f23f5c size: 3241
3.4 Docker HUBからの利用
$ docker pull kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan
$ docker run -it kaizenjapan/dockertoppersfmprpi64_fmp:kaizenjapan /bin/bash
dockerの中で
$$ cd workdir
$$ sudo ../scripts/build_fmp.sh
この節は、最初に出てきたものと同じです。
4 振り返り
4.1 わかったこと
Macintoshのintelセルフコンパイラ(X-code:brewでの導入に使う場合がある)、gccのintelセルフコンパイラ、gccのarmクロスコンパイラの3種類のコンパイラを使う可能性がある。
dockerを使うことで、クロスコンパイラの環境をMacの環境と分離できる
失敗したら丸ごと容易に捨てられる
dockerのわかりにくいところは、dockerを起動したコマンドプロンプトとdockerのコマンドプロンプトとあまり違いがなく、dockerの中にいるのかどうかが分かりにくいこと。(大事なことなので3度書きました)。
4.2 わからなかったこと
クロスコンパイラのコンパイルの課題
configuratorの内容
デバッグの仕方
4.3 よかったこと
やったー。動いた。
4.4 あらためたいこと
gitへの改訂版の登録。元のファイルはgitに登録されている。
デバッグの資料の作成
5 資料
5.1 名古屋のIoTは名古屋のOSで
saito naokiのgit等は「名古屋のIoTは名古屋のOSで」セミナで提供したものです。
https://researchmap.jp/jo39c0wgq-2000107/
https://researchmap.jp/josk89af0-1778110/?block_id=1778110&active_action=journal_view_main_detail&post_id=65395&comment_flag=1
次回は2018年2月22日(土)午後1時から@名古屋市工業研究所(地下鉄六番町下車1分)
Dockerどっかー使い方おかしかったんでしょうか。TOPPERS/SSP on RaspberryPi with Macintosh編:5つの関門
https://qiita.com/kaizen_nagoya/items/cbf40186ae4da48ec4c7
5.2 Windows
docker for windowsのInstallerをダウンロード
https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
ダブルクリックして実行。
http://blog.saboh.net/windows10proaddgroup/
5.3 関連情報(related information)
JTAGの接続方法 https://www.evernote.com/shard/s32/sh/2d01955e-b8b6-45e5-a779-3681b6ddeec9/52c678c97c6a78ff
JTAGの使い方 https://qiita.com/toshinaga/items/146bcb00db235258162f
FMPの実行方法 https://qiita.com/toshinaga/items/672c41a1f390922d5bae
ベアメタル情報 https://qiita.com/toshinaga/items/8999d3fcda8e2c3e2667
RPi3用 TOPPERS/FMP
https://github.com/YujiToshinaga/RPi64Toppers
5.4 参照資料(reference)
Raspberry PIのSDカードをRaspbian, TOPPERS/FMP, TOPPERS/SSP起動用に利用する
https://qiita.com/kaizen_nagoya/items/814cccdaa59dc09196e3
Dockerコンテナをイメージに保存する
https://qiita.com/momoham/items/df4c5e97fe630cccc1e5
Dockerの作業済みコンテナからイメージを作って移植を楽にする
https://qiita.com/tubone/items/a3bad04abf4c700cae3d
Dockerでcommitしてみる
https://qiita.com/mats116/items/712575dc50513dfdf0a2
DockerImageをDockerHubに登録の仕方
https://qiita.com/kon_yu/items/7c40f4dfbd1cce006ce7
GitHub 入門
https://qiita.com/ay3/items/8d758ebde41d256a32dc
Docker 虎の巻 at GitHub
https://gist.github.com/tcnksm/7700047
機械学習名古屋 勉強会用の Dockerイメージ 解説
https://qiita.com/antimon2/items/07890addf534f2e0b779#_reference-9d9783bf9ca2df932b9c
ゼロから作るDeep Learningの学習環境をDockerで作った at Hatena blog
http://yuki10.hatenablog.com/entry/2017/01/11/020924
だいたい10分でざっくり押さえるDockerの基本 at web professional
https://www.webprofessional.jp/how-to-build-an-image-with-the-dockerfile/
Dockerhubへの初プッシュ
https://qiita.com/moru3/items/32931813db81d891effb
Dockerコンテナのリポジトリ管理 DockerHubへログイン、イメージの取得〜更新、コミットまで。
https://qiita.com/kooohei/items/1e007fe650c6aa7eaac4
Docker Hubのイメージを利用する時の注意点と判断材料
https://qiita.com/satotka/items/5ece24499bcddd9f13b0
Docker Registry Hub にイメージをpushしたい
https://qiita.com/suin/items/20d735823e158196983e
DockerのImageからDockerfileを取り出せるか?
https://qiita.com/PharaohKJ/items/7fa708a19391c80629fe
AArch64
OSのタスク切り替え処理とAArch64(ARM64)の関数呼び出し規約
https://qiita.com/tkato/items/82f095a8f8c55be07cb5
自己資料(self reference)
用語集
Docker https://ja.wikipedia.org/wiki/Docker
OSを導入(install)作業をせずに利用できる仮想化(virtual)OS.代表的にはubuntuを利用する。
ubuntu
Debian系のLinux配布(distribution)
Macintosh
Mac OSXが動作するPC
TOPPERS
http://toppers.jp
FMP:Flexible Multiprocessor Profile
SSP:Smallest Set Profile kernel
qiita
http://qiita.com
Github
http://github.com
Raspberry Pi
https://www.raspberrypi.org
Wireshark
https://www.wireshark.org
入力促進(command prompt)
記録(log)
コンパイル
コマンド一覧
システムコマンド
docker
https://www.docker.com
wget
https://www.gnu.org/software/wget/
git
https://github.com
ruby
https://www.ruby-lang.org/ja/
brew: mac
https://brew.sh/index_ja.html
apt-get: debian/ubuntu/raspbian
https://wiki.debian.org/apt-get
シェルコマンド
ps
process status。プロセスの状態を表示するコマンド。
ln
リンク。別名で連携するコマンド。
cd
change directory。ディレクトリを移動するコマンド
mkdir
ディレクトリを作成するコマンド
echo
文字を出力するコマンド。
source
シェルスクリプトを実行するコマンド
find
https://ja.wikipedia.org/wiki/Find
grep
https://ja.wikipedia.org/wiki/Grep
sudo
https://ja.wikipedia.org/wiki/Sudo
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
小川清最終講義、小川清最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
文書履歴(document history)
ver. 0.10 初稿 20180101
ver. 0.11 講習会実施に伴い記述を訂正 20180313
ver. 0.12 SWEST投稿のため操作確認しながら記述を訂正。 20180717
ver. 0.13 誤植訂正、ファイル共有 追記 20181011
ver. 0.14 参考文献追記 20181102
ver. 0.15 自己資料追記 20190222
ver. 0.16 標題追記 20190813
ver. 0.17 docker update 20210626
ver. 0.18 ありがとう追記 20230417
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.