とある技術者の覚え書き

技術者なんて日々是勉強ですね・・

Ubuntu上にRaspberry Piのクロスコンパイル環境を構築

奥深くに仕舞っていたRaspberry Piを久々に引っ張り出してきました。 Raspberry Piのモデルは初代モデル。かなり古い奴ですね。

とりあえず、Raspberry PiのOSは最新に入れ替え。

インストールはこちらを見れば比較的すんなり完了します。

raspida.com

後は、Raspberry PiSSHで接続できるように以下を見て設定を実施しました。

kimamani89.com

ロスコンパイル環境の構築

ロスコンパイル環境はWindows10のWSL上に構築したUtunu 20.04 に構築します。

手順についは、概ねこちらを見て頂きますが、それだけではサンプルのビルド時にリンクエラーが出ましたので、その分について対応を記述します。

www.radical-dreamer.com

ロスコンパイル環境の構築の問題と追加手順

上記に従いクロスコンパイル環境でサンプルソースをビルドすると以下の通りリンク時にライブラリが見つからなとエラーで怒られました。

$ 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

無料の統合開発環境C言語C++Pythonなんかを使った開発に重宝してますね。

2021/12/19 17:38

インストール手順なんかは色々な方が親切丁寧に書かれているのでそちらを。。。

例えば初心者向けだとこちら。

miya-system-works.com

日本語化する拡張機能の導入の仕方から、まとめとしてWebプログラミング向けのローカルの開発環境を導入する方法などの記載もあります。

あとは、自分の用途に応じて拡張機能でカスタマイズをしていく感じですね。

とりあえず、私については - Visual Studio CodeC言語の開発できる環境の構築 - Visual Studio Codepythonの開発できる環境の構築 - WSL上に構築したUbuntu 20.04 LTS上での開発をWindows上のVisual Studio Codeで行える環境の構築 - Gitを便利にVisual Studio Codeで利用できる環境の構築

とかですかね。。。

WSL上に構築したUbuntuにTeraTermからSSH接続する

これは、あとでやりたいことの伏線ですね。 別にそれが無ければUbuntu起動したコンソールで良いんです。

参考にしたのはこちら(というかそのまま言われる通りにやればOK)

【Ubuntu20.04】TeraTermでssh接続する方法

それでは設定についてやってみましょう。

Ubuntu側の設定

/etc/ssh/sshd_config を編集。

$ 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からの接続

Ubuntuipアドレスにport:22 でssh接続してみましょう。

SSH認証のダイアログが出ればOKです。 ※初回はセキュリティ警告のダイアログが出ますが、ダイアログ下部の「このホストをknown hostsリストに追加する」にチェックを入れると、次回からは表示されません。

これでTeraTermからのSSH接続もOKとなりました。

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 を聞かれますので入力しましょう。 これでとりあえず完了です。

超簡単でビックリですね。。