====== OpenOCD のインストール ====== XG-50 と接続して、 * ファームウェアのダウンロード * gdb でのデバッグ を行うために、OpenOCD のインストールが必要になります。 Ubuntu のパッケージをインストールするだけでも良いのですが、SONY さんが NuttX の task/thread を扱えるように\\ 手を入れた [[https://github.com/sony/openocd-nuttx|ソースを公開]] してくださっていますので、それを有難く利用させていただこうと思います。 \\ ===== ビルドに必要なパッケージのインストール ===== Debian Package をビルドするために、**devscripts** をインストールします。 xubuntu64:~$ sudo apt install devscripts パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: at dctrl-tools dput libdistro-info-perl python3-magic wdiff 提案パッケージ: default-mta | mail-transport-agent debtags bsd-mailx | mailx cvs-buildpackage diffoscope devscripts-el dose-extra gnuplot libterm-size-perl libyaml-syck-perl mozilla-devscripts mutt svn-buildpackage w3m debian-keyring equivs libsoap-lite-perl mini-dinstall python-bzrlib 以下のパッケージが新たにインストールされます: at dctrl-tools devscripts dput libdistro-info-perl python3-magic wdiff アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。 1,017 kB のアーカイブを取得する必要があります。 この操作後に追加で 2,952 kB のディスク容量が消費されます。 続行しますか? [Y/n] 取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 at amd64 3.1.18-2ubuntu1 [37.8 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 dctrl-tools amd64 2.24-2 [59.1 kB] 取得:3 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 devscripts amd64 2.16.2ubuntu3 [848 kB] 取得:4 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 dput all 0.9.6.4ubuntu3 [33.1 kB] 取得:5 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 libdistro-info-perl all 0.14build1 [4,780 B] 取得:6 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 wdiff amd64 1.2.2-1build1 [28.8 kB] 取得:7 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 python3-magic all 1:5.25-2ubuntu1 [5,438 B] 1,017 kB を 0秒 で取得しました (5,264 kB/s) 以前に未選択のパッケージ at を選択しています。 (データベースを読み込んでいます ... 現在 206197 個のファイルとディレクトリがインストールされています。) .../at_3.1.18-2ubuntu1_amd64.deb を展開する準備をしています ... at (3.1.18-2ubuntu1) を展開しています... 以前に未選択のパッケージ dctrl-tools を選択しています。 .../dctrl-tools_2.24-2_amd64.deb を展開する準備をしています ... dctrl-tools (2.24-2) を展開しています... 以前に未選択のパッケージ devscripts を選択しています。 .../devscripts_2.16.2ubuntu3_amd64.deb を展開する準備をしています ... devscripts (2.16.2ubuntu3) を展開しています... 以前に未選択のパッケージ dput を選択しています。 .../dput_0.9.6.4ubuntu3_all.deb を展開する準備をしています ... dput (0.9.6.4ubuntu3) を展開しています... 以前に未選択のパッケージ libdistro-info-perl を選択しています。 .../libdistro-info-perl_0.14build1_all.deb を展開する準備をしています ... libdistro-info-perl (0.14build1) を展開しています... 以前に未選択のパッケージ wdiff を選択しています。 .../wdiff_1.2.2-1build1_amd64.deb を展開する準備をしています ... wdiff (1.2.2-1build1) を展開しています... 以前に未選択のパッケージ python3-magic を選択しています。 .../python3-magic_1%3a5.25-2ubuntu1_all.deb を展開する準備をしています ... python3-magic (1:5.25-2ubuntu1) を展開しています... man-db (2.7.5-1) のトリガを処理しています ... systemd (229-4ubuntu21.1) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... install-info (6.1.0.dfsg.1-5) のトリガを処理しています ... at (3.1.18-2ubuntu1) を設定しています ... dctrl-tools (2.24-2) を設定しています ... devscripts (2.16.2ubuntu3) を設定しています ... dput (0.9.6.4ubuntu3) を設定しています ... libdistro-info-perl (0.14build1) を設定しています ... wdiff (1.2.2-1build1) を設定しています ... python3-magic (1:5.25-2ubuntu1) を設定しています ... systemd (229-4ubuntu21.1) のトリガを処理しています ... ureadahead (0.100.0-19) のトリガを処理しています ... xubuntu64:~$ \\ OpenOCD のビルドに必要なパッケージもインストールします。 xubuntu64:~$ sudo apt install cdbs debhelper autotools-dev libftdi-dev libusb-1.0-0-dev texinfo texlive autoconf libhidapi-dev libjim-dev pkg-config dh-autoreconf パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: automake autopoint dh-strip-nondeterminism dh-translations fonts-lato fonts-lmodern fonts-texgyre intltool javascript-common libfile-stripnondeterminism-perl libftdi1 libhidapi-hidraw0 libhidapi-libusb0 libjim0.76 libjs-jquery libltdl-dev libmail-sendmail-perl libpotrace0 libptexenc1 libruby2.3 libsynctex1 libsys-hostname-long-perl libtexlua52 libtexluajit2 libtext-unidecode-perl libtool libusb-1.0-doc libusb-dev libzzip-0-13 lmodern m4 po-debconf prosper ps2eps python-pkg-resources python-scour python-six rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration tex-common tex-gyre texlive-base texlive-binaries texlive-extra-utils texlive-font-utils texlive-fonts-recommended texlive-fonts-recommended-doc texlive-generic-recommended texlive-latex-base texlive-latex-base-doc texlive-latex-recommended texlive-latex-recommended-doc texlive-pictures texlive-pictures-doc texlive-pstricks texlive-pstricks-doc tipa 提案パッケージ: autoconf-archive gnu-standards autoconf-doc dh-make apache2 | lighttpd | httpd libtool-doc gfortran | fortran95-compiler gcj-jdk libmail-box-perl python-setuptools python-rsvg python-cairo ri ruby-dev bundler texinfo-doc-nonfree perl-tk dvipng dvidvi xindy fragmaster purifyeps lacheck chktex latexmk latexdiff psutils libtcltk-ruby texlive-latex-extra dot2tex prerex 以下のパッケージが新たにインストールされます: autoconf automake autopoint autotools-dev cdbs debhelper dh-autoreconf dh-strip-nondeterminism dh-translations fonts-lato fonts-lmodern fonts-texgyre intltool javascript-common libfile-stripnondeterminism-perl libftdi-dev libftdi1 libhidapi-dev libhidapi-hidraw0 libhidapi-libusb0 libjim-dev libjim0.76 libjs-jquery libltdl-dev libmail-sendmail-perl libpotrace0 libptexenc1 libruby2.3 libsynctex1 libsys-hostname-long-perl libtexlua52 libtexluajit2 libtext-unidecode-perl libtool libusb-1.0-0-dev libusb-1.0-doc libusb-dev libzzip-0-13 lmodern m4 pkg-config po-debconf prosper ps2eps python-pkg-resources python-scour python-six rake ruby ruby-did-you-mean ruby-minitest ruby-net-telnet ruby-power-assert ruby-test-unit ruby2.3 rubygems-integration tex-common tex-gyre texinfo texlive texlive-base texlive-binaries texlive-extra-utils texlive-font-utils texlive-fonts-recommended texlive-fonts-recommended-doc texlive-generic-recommended texlive-latex-base texlive-latex-base-doc texlive-latex-recommended texlive-latex-recommended-doc texlive-pictures texlive-pictures-doc texlive-pstricks texlive-pstricks-doc tipa アップグレード: 0 個、新規インストール: 76 個、削除: 0 個、保留: 0 個。 405 MB のアーカイブを取得する必要があります。 この操作後に追加で 701 MB のディスク容量が消費されます。 続行しますか? [Y/n] \\ ===== ソースのダウンロード ===== OpenOCD のソースを [[https://github.com/centurysys/openocd-nuttx.git|ここ]] からダウンロードします。\\ xubuntu64:~/src$ git clone https://github.com/centurysys/openocd-nuttx.git Cloning into 'openocd-nuttx'... remote: Counting objects: 55885, done. remote: Compressing objects: 100% (3/3), done. remote: Total 55885 (delta 0), reused 1 (delta 0), pack-reused 55882 Receiving objects: 100% (55885/55885), 13.87 MiB | 1.74 MiB/s, done. Resolving deltas: 100% (46167/46167), done. Checking connectivity... done. xubuntu64:~/src$ cd openocd-nuttx/ xubuntu64:~/src/openocd-nuttx$ git branch * centurysys xubuntu64:~/src/openocd-nuttx$ \\ ===== ビルド ===== ==== bootstrap ==== まず、追加で必要なソース類を自動でダウンロードするため、**bootstrap** スクリプトを実行します。 xubuntu64:~/src/openocd-nuttx$ ./bootstrap + aclocal + libtoolize --automake --copy + autoconf + autoheader + automake --gnu --add-missing --copy configure.ac:26: installing './compile' configure.ac:37: installing './config.guess' configure.ac:37: installing './config.sub' configure.ac:16: installing './install-sh' configure.ac:16: installing './missing' Makefile.am:46: warning: wildcard $(srcdir: non-POSIX variable name Makefile.am:46: (probably a GNU make extension) Makefile.am: installing './INSTALL' Makefile.am: installing './depcomp' Makefile.am:23: installing './mdate-sh' Makefile.am:23: installing './texinfo.tex' Setting up submodules Submodule 'jimtcl' (http://repo.or.cz/r/jimtcl.git) registered for path 'jimtcl' Submodule 'src/jtag/drivers/libjaylink' (http://repo.or.cz/r/libjaylink.git) registered for path 'src/jtag/drivers/libjaylink' Submodule 'tools/git2cl' (http://repo.or.cz/r/git2cl.git) registered for path 'tools/git2cl' Cloning into 'jimtcl'... remote: Counting objects: 7381, done. remote: Total 7381 (delta 0), reused 0 (delta 0) Receiving objects: 100% (7381/7381), 5.91 MiB | 1.00 MiB/s, done. Resolving deltas: 100% (5370/5370), done. Checking connectivity... done. Submodule path 'jimtcl': checked out 'a9bf5975fd0f89974d689a2d9ebd0873c8d64787' Cloning into 'src/jtag/drivers/libjaylink'... remote: Counting objects: 970, done. remote: Total 970 (delta 0), reused 0 (delta 0) Receiving objects: 100% (970/970), 229.04 KiB | 94.00 KiB/s, done. Resolving deltas: 100% (742/742), done. Checking connectivity... done. Submodule path 'src/jtag/drivers/libjaylink': checked out '699b7001d34a79c8e7064503dde1bede786fd7f0' Cloning into 'tools/git2cl'... remote: Counting objects: 64, done. remote: Total 64 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (64/64), done. Checking connectivity... done. Submodule path 'tools/git2cl': checked out '8373c9f74993e218a08819cbcdbab3f3564bbeba' Generating build system... libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'. libtoolize: copying file 'build-aux/config.guess' libtoolize: copying file 'build-aux/config.sub' libtoolize: copying file 'build-aux/install-sh' libtoolize: copying file 'build-aux/ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' configure.ac:42: installing 'build-aux/ar-lib' configure.ac:37: installing 'build-aux/compile' configure.ac:30: installing 'build-aux/missing' Makefile.am: installing './INSTALL' libjaylink/Makefile.am: installing 'build-aux/depcomp' Bootstrap complete. Quick build instructions: ./configure .... xubuntu64:~/src/openocd-nuttx$ \\ ==== debuild ==== あとは、通常の Debian Package をビルドする時と同様、**debuild** コマンドを実行します。 xubuntu64:~/src/openocd-nuttx$ debuild -uc -us -b ... 略 ... # only call dh_scour for packages in main if grep -q '^Component:[[:space:]]*main' /CurrentlyBuilding 2>/dev/null; then dh_scour -popenocd ; fi dh_md5sums -popenocd dh_builddeb -popenocd dpkg-deb: `../openocd_0.10.0-1build1_amd64.deb' にパッケージ `openocd' を構築しています。 dpkg-genchanges -b >../openocd_0.10.0-1build1_amd64.changes dpkg-genchanges: binary-only upload (no source code included) dpkg-source --after-build openocd-nuttx dpkg-buildpackage: binary-only upload (no source included) Now running lintian... Finished running lintian. xubuntu64:~/src/openocd-nuttx$ \\ ビルドが終了すると、上のディレクトリにパッケージが作成されています。 xubuntu64:~/src/openocd-nuttx$ ls -ln ../ 合計 2372 drwxrwxr-x 12 1000 1000 4096 3月 7 11:29 openocd-nuttx -rw-r--r-- 1 1000 1000 348631 3月 7 11:29 openocd_0.10.0-1build1_amd64.build -rw-r--r-- 1 1000 1000 765 3月 7 11:29 openocd_0.10.0-1build1_amd64.changes -rw-r--r-- 1 1000 1000 2065308 3月 7 11:29 openocd_0.10.0-1build1_amd64.deb <------ xubuntu64:~/src/openocd-nuttx$ \\ ===== インストール ===== **dpkg** コマンドでビルドされたパッケージをインストールします。 xubuntu64:~/src/openocd-nuttx$ sudo dpkg -i ../openocd_0.10.0-1build1_amd64.deb 以前に未選択のパッケージ openocd を選択しています。 (データベースを読み込んでいます ... 現在 228042 個のファイルとディレクトリがインストールされています。) .../openocd_0.10.0-1build1_amd64.deb を展開する準備をしています ... openocd (0.10.0-1build1) を展開しています... openocd (0.10.0-1build1) を設定しています ... doc-base (0.10.7) のトリガを処理しています ... doc-base ファイルを 1 個追加 を処理中... man-db (2.7.5-1) のトリガを処理しています ... install-info (6.1.0.dfsg.1-5) のトリガを処理しています ... xubuntu64:~/src/openocd-nuttx$ \\ ===== ビルドが面倒な場合 ===== Ubuntu 16.04LTS(amd64) 用のパッケージを置いておきます。 ^ File ^ Stat ^ SHA1SUM ^ Info | |{{:xg_series_devel:build_openocd:openocd_0.10.0-1build1_amd64.deb|}}|2018/03/07 11:38 2.0 MB|fd7529354bb0189f32c2095437dbf64cef6783e0| | \\