====== 開発環境の構築 ======
\\
NuttX をビルドするための環境を構築します。\\
===== Ubuntu Linux のインストール =====
Linux のほうが便利なので、Linux((Ubuntu Linux 推奨)) を実機/仮想マシンなどにインストールするか、Windows11 であれば WSL2 で Microsoft Store からインストールするのが手っ取り早いと思います。
{{:mas1xx_devel:nuttx_firmware:nuttx_development_detail:prepare_build_env:nuttx_devel_00.png|Microsoft Store}}
\\
{{:mas1xx_devel:nuttx_firmware:nuttx_development_detail:prepare_build_env:download_ubuntu.png|Install Ubuntu Linux}}
\\
{{:mas1xx_devel:nuttx_firmware:nuttx_development_detail:prepare_build_env:ubuntu_wsl2.png?800|}}
Ubuntu Linux の起動まで確認できました。
\\
===== パッケージのインストール =====
[[https://nuttx.apache.org/docs/latest/quickstart/install.html|NuttX Getting Started - Installing]] を参考に、ビルドに必要なパッケージをインストールします。
==== 必須パッケージの追加 ====
user1@G1:~$ sudo apt install \
bison flex gettext texinfo libncurses5-dev libncursesw5-dev xxd \
gperf automake libtool pkg-config build-essential gperf genromfs \
libgmp-dev libmpc-dev libmpfr-dev libisl-dev binutils-dev libelf-dev \
libexpat-dev gcc-multilib g++-multilib picocom u-boot-tools util-linux
...
pkg-config rpcsvc-proto tex-common texinfo u-boot-tools zlib1g-dev
0 upgraded, 153 newly installed, 0 to remove and 0 not upgraded.
Need to get 103 MB of archives.
After this operation, 393 MB of additional disk space will be used.
Do you want to continue? [Y/n]
\\
==== Kconfig フロントエンドの追加 ====
user1@G1:~$ sudo apt install kconfig-frontends
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
...
x11proto-dev xorg-sgml-doctools xtrans-dev
0 upgraded, 150 newly installed, 0 to remove and 0 not upgraded.
Need to get 85.1 MB of archives.
After this operation, 394 MB of additional disk space will be used.
Do you want to continue? [Y/n]
\\
==== ツールチェインの追加 ====
user1@G1:~$ sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libnewlib-arm-none-eabi libnewlib-dev libstdc++-arm-none-eabi-dev
libstdc++-arm-none-eabi-newlib
Suggested packages:
libnewlib-doc
The following NEW packages will be installed:
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi libnewlib-dev
libstdc++-arm-none-eabi-dev libstdc++-arm-none-eabi-newlib
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 442 MB of archives.
After this operation, 2575 MB of additional disk space will be used.
Do you want to continue? [Y/n]
\\
==== zip/unzip の追加 ====
一部、ソースのアーカイブをダウンロード・展開するものもある((ライセンスの都合))ため、zip/unzip を追加しておきます。
user1@G1:~$ sudo apt install zip unzip
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
unzip zip
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 350 kB of archives.
...
Setting up unzip (6.0-26ubuntu3.2) ...
Setting up zip (3.0-12build2) ...
Processing triggers for man-db (2.10.2-1) ...
user1@G1:~$
\\
==== ccache の追加 ====
ビルド高速化のために ccache を使う設定をデフォルト設定にいれてあるので、ccache を追加しておきます。
user1@G1:~$ sudo apt install ccache
[sudo] password for user1:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
libhiredis0.14
Suggested packages:
distcc | icecc
The following NEW packages will be installed:
...
Updating symlinks in /usr/lib/ccache ...
Processing triggers for libc-bin (2.35-0ubuntu3.6) ...
Processing triggers for man-db (2.10.2-1) ...
user1@G1:~$
\\
===== Nim compiler の追加(Optional) =====
[[https://nim-lang.org/|Nim 言語]] を利用して楽に開発をする場合、Nim Compiler をインストールします。
[[https://nim-lang.org/install_unix.html|Install Nim on Unix]] を参照してインストールしますが、choosenim を使用する方法が楽で良いと思います。
{{:mas1xx_devel:nuttx_firmware:nuttx_development_detail:prepare_build_env:install_nimlang_by_choosenim.png|Installation using choosenim}}
\\
メッセージが出ている通り、~/.bashrc に PATH を通す設定を追加しておきます。\\
設定を追加して .bashrc を読み込み直すと、nim コマンドが使用できるようになります。
user1@G1:~$ nano -w .bashrc <--- PATH 設定を追加するためにエディタを起動
user1@G1:~$ source .bashrc
user1@G1:~$ nim -v
Nim Compiler Version 2.0.2 [Linux: amd64]
Compiled at 2023-12-15
Copyright (c) 2006-2023 by Andreas Rumpf
git hash: c4c44d10df8a14204a75c34e499def200589cb7c
active boot switches: -d:release