Ubuntu上にRaspberry Piのクロスコンパイル環境を構築
奥深くに仕舞っていたRaspberry Piを久々に引っ張り出してきました。 Raspberry Piのモデルは初代モデル。かなり古い奴ですね。
とりあえず、Raspberry PiのOSは最新に入れ替え。
インストールはこちらを見れば比較的すんなり完了します。
後は、Raspberry PiにSSHで接続できるように以下を見て設定を実施しました。
クロスコンパイル環境の構築
クロスコンパイル環境はWindows10のWSL上に構築したUtunu 20.04 に構築します。
手順についは、概ねこちらを見て頂きますが、それだけではサンプルのビルド時にリンクエラーが出ましたので、その分について対応を記述します。
クロスコンパイル環境の構築の問題と追加手順
上記に従いクロスコンパイル環境でサンプルソースをビルドすると以下の通りリンク時にライブラリが見つからなとエラーで怒られました。
$ arm-linux-gnueabihf-clang hello.c
/usr/bin/arm-linux-gnueabihf-ld: cannot find /lib/ld-linux-armhf.so.3 inside /home/xxxxx/raspberry_pi/prebuilt/bin/../../sysroot
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Raspberry Piにて確認したところ、
pi@raspberrypi:~ $ ls -al /lib/ld-linux-armhf.so.3
lrwxrwxrwx 1 root root 30 12月 1 19:52 /lib/ld-linux-armhf.so.3 -> arm-linux-gnueabihf/ld-2.31.so
のように、シンボリックリンクのファイルが存在しますが、これがUbuntu上の環境にはない。
なので、以下のようにシンボリックリンクを作成すると解決。
$ cd ~/raspbian/sysroot/lib
$ sudo ln -s arm-linux-gnueabihf/ld-linux-armhf.so.3 ld-linux-armhf.so.3
これでサンプルは問題なくビルドできるようになりました。
Visual Studio Codeをインストールする
今回は、Visual Studio Codeのインストールです。
Visual Studioの名を冠する通り、Micorosoftが提供する統合開発環境です。
かつてはEclipse系の統合開発環境が主流だったようですが、最近はVisual Studio Codeを統合開発環境として使用することも多いかと。
これから参加するプロジェクトもVisual Studio Codeを使用するみたいですし。。
Visual Studio Codeは以下から無料でダウンロード可能です。
Visual Studio Code
- [エディタ]
- [Microsoft]
- [Visual Studio]
- [IDE]
- [プログラミング]
無料の統合開発環境。 C言語、C++、Pythonなんかを使った開発に重宝してますね。
2021/12/19 17:38
インストール手順なんかは色々な方が親切丁寧に書かれているのでそちらを。。。
例えば初心者向けだとこちら。
日本語化する拡張機能の導入の仕方から、まとめとしてWebプログラミング向けのローカルの開発環境を導入する方法などの記載もあります。
あとは、自分の用途に応じて拡張機能でカスタマイズをしていく感じですね。
とりあえず、私については - Visual Studio CodeでC言語の開発できる環境の構築 - Visual Studio Codeでpythonの開発できる環境の構築 - WSL上に構築したUbuntu 20.04 LTS上での開発をWindows上のVisual Studio Codeで行える環境の構築 - Gitを便利にVisual Studio Codeで利用できる環境の構築
とかですかね。。。
WSL上に構築したUbuntuにTeraTermからSSH接続する
これは、あとでやりたいことの伏線ですね。 別にそれが無ければUbuntu起動したコンソールで良いんです。
参考にしたのはこちら(というかそのまま言われる通りにやればOK)
【Ubuntu20.04】TeraTermでssh接続する方法
それでは設定についてやってみましょう。
Ubuntu側の設定
$ sudo vi /etc/ssh/sshd_config
58行目当たりの
PasswordAuthentication no
の no を yes に変更して保存。
続けて、ssh-keygenでホスト認証鍵を作成します。 ssh接続はパスワード認証の前に鍵によるホスト認証を行うためです。
$ sudo ssh-keygen -A
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
ここまで行ったら、sshdをリスタートします。
$ sudo service sshd restart
これでUbuntu側の設定は完了。
TeraTermからの接続
Ubuntuのipアドレスにport:22 でssh接続してみましょう。
SSH認証のダイアログが出ればOKです。 ※初回はセキュリティ警告のダイアログが出ますが、ダイアログ下部の「このホストをknown hostsリストに追加する」にチェックを入れると、次回からは表示されません。
Windows10上にUbuntuをインストールする
一昔前は、VM WareだのVirtualBoxだのを用いて仮想環境を作ってそこにUbuntuをインストールするなんてしてましたが。。。。
いまは、Windows自体がWSL(Windows subsystem for Linux)提供しているのでそれを使うのが簡単っぽい。
特に、Windows 10 バージョン 2004 以降 (ビルド 19041 以降)なんかだとWSL2が使えてUbuntuのインストールも簡単です。
WSLへのUbuntuのインストール
コマンドプロンプトかPowerShellのコンソール開いて以下を入力。 インストール可能なLinuxのディストリビューションが表示されます。
C:\Users\xxxxx>wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
openSUSE-42 openSUSE Leap 42
SLES-12 SUSE Linux Enterprise Server v12
Ubuntu-16.04 Ubuntu 16.04 LTS
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
では、Ubuntu 20.04 LTS をインストールしてみましょう。
C:\Users\xxxxx>wsl --install -d Ubuntu-20.04
ダウンロード中: Ubuntu 20.04 LTS
インストール中: Ubuntu 20.04 LTS
Ubuntu 20.04 LTS はインストールされました。
Ubuntu 20.04 LTS を起動しています...
はい、インストール終了してUbuntu 20.04 LTSが立ち上がりました。
username と password を聞かれますので入力しましょう。 これでとりあえず完了です。
超簡単でビックリですね。。