1
0

More than 1 year has passed since last update.

Orangepi 5 にwiringOP-Pythonを入れる際にgitのことで躓いたのでメモ

Posted at

つまずいた原因

git clone --recursive とsubmoduleを理解してなかった

背景

OrangePi 5は2022年12月に発売されたシングルボードPCで、CPUはRockchip RK3588Sの2.4GHz(クアッドコアA76+クアッドコアA55内蔵)、GPUだけでなくNPUも積んでいます。
メモリ8Gのものは現在アマゾンで、25,000円。

代表するシングルボードPCでいえばラズパイですが、それを超えるパワーで登場するのがOrangePiシリーズの特徴です。

OSもubuntu,debianは対応済みで
触った所感は「めちゃサクサク動くなあ!」でした。
近い価格帯のミニPCよりもパフォーマンスも使い勝手も抜きんでてるのではないでしょうか。

そんなOrangePi5ですが、GPIOを使いたい&ソフトをそのまま使いたいということでWiringPiを入れたいこともあり、ググりながらライブラリの導入を進めてたわけですが、最後の実行でエラーが出る。
なんでだよぉぉぉぉ!!!! と叫びながら原因を調べることに。

結論

nextブランチを指定してクローンしよう。
--recursiveを使わないなら、適切な手順でサブモジュールの中身を更新しよう

WiringOP-Pythonのgithubリンク
ここには.gitmodulesがある。
中身を確認すればその通り。

masterを--recursiveでクローンしてブランチの切り替えでは、
該当ディレクトリの中身が異なっているのでインストールが失敗する。

当然、--recursiveを使わない手順もある。
そのままマスターをgit clone して
ブランチ切り替え後に git submodule コマンドで該当箇所の中身を更新する。

// これが23年4時点での正解 --recursive を使うパターン
// 今後masterにマージされたらブランチの指定は不要
$ git clone -b next --recursive https://github.com/orangepi-xunlong/wiringOP-Python.git

------
// --recursive を使わない手順
// ただのcloneでは該当するwiringOPディレクトリの中身が空
$ git clone https://github.com/orangepi-xunlong/wiringOP-Python.git

// nextブランチに切り替えて、
$ git checkout next

// ローカルの設定ファイルを初期化したのち、中身を取得する
$ git submodule init
$ git submodule update

nextブランチで対応中と理解したまでは良かったのですが、
きちんとファイル構成見ずに「あとで切り替えればええやろ」としたのが致命的でした。
.gitmodulesの存在にはやく気付くべきでした。

ちなみに以下はブランチ別の.gitmodulesの比較
@masterブランチ

[submodule "wiringOP"]
	path = wiringOP
	url = https://github.com/orangepi-xunlong/wiringOP.git
	branch = master

@nextブランチ

[submodule "wiringOP"]
	path = wiringOP
	url = https://github.com/orangepi-xunlong/wiringOP
	branch = next

該当のURLリンクは同じでも、ブランチを指定するしてここでも切り替えることができる。

ただ今回のミスで、サブモジュールはプロジェクト管理的に
理解しているメンバー同士でならメリットが多いので良い躓きをしたと思います。

あとは、gitについて勉強が足りないと痛感しましたので学び直します。

サブモジュールについての参考ページリンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0