Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRAM1GB以下のラズパイでのビルドが困難 #45

Open
ryuichiueda opened this issue Oct 13, 2022 · 6 comments
Open

DRAM1GB以下のラズパイでのビルドが困難 #45

ryuichiueda opened this issue Oct 13, 2022 · 6 comments
Labels
Type: Bug Bug or Bug fixes

Comments

@ryuichiueda
Copy link

ryuichiueda commented Oct 13, 2022

不具合の概要

colcon build --symlink-installすると、gccが675MBのメモリを消費してしまい、スワップのデーモンが作動して処理が進まなくなる。

実行環境

  • Rasberry Pi 3B+
  • Ubuntu 22.04 LTS

再現方法

$ colcon build --symlink-install
(別のモニタでtopを実行)

対処方法

何らかの方法でgccがメモリを浪費しないようにする。(makeのオプションでなんとかなるのがベスト)

その他

まだ教材で古いラズパイを使っているところがあるので、ぜひご検討ください。(無理でしたら自身で簡略版を作ります。)

@ryuichiueda ryuichiueda added the Type: Bug Bug or Bug fixes label Oct 13, 2022
@ShotaAk
Copy link

ShotaAk commented Oct 13, 2022

ご報告ありがとうございます。

環境変数MAKEFLAGS=-j1 を設定してビルドが通るか確認お願いします。

$ MAKEFLAGS=-j1 colcon build --symlink-install

関連issue:
rt-net/raspimouse_ros2_examples#23 (comment)

@ryuichiueda
Copy link
Author

ryuichiueda commented Oct 13, 2022

既出とのことで、失礼いたしました。

月曜まで試せないのですが、たぶん-j1が使えるなら大丈夫かもしれません。(ただ、メモリを使い切った時にg++のプロセスがひとつしか立ち上がっていなかったので、まだ多少の懸念があります。)

今のREADMEだとラズパイ3以前ではビルドできないので、あとでREADMEにプルリクを出します。

@ShotaAk
Copy link

ShotaAk commented Oct 13, 2022

お手数をおかけします。
READMEへの記載ができていなかったので、プルリク助かります。ありがとうございます。

@ryuichiueda
Copy link
Author

(ただ、メモリを使い切った時にg++のプロセスがひとつしか立ち上がっていなかったので、まだ多少の懸念があります。)

これ的中しました。ダメでした。コードをみてもメモリを大量に使いそうなところはなく、ということはcolconがメモリ使いすぎてるような気がするので、ちょっと調べてみます。

@ryuichiueda
Copy link
Author

いや、CMakeLists.txtを見たのですが、1ノードでライブラリをたくさん使っているので、メモリはやっぱりたくさん使いますねこれ。ラズパイ3を切り捨てるか、ノードを分けるかですね・・・

@ShotaAk
Copy link

ShotaAk commented Oct 28, 2022

調査ありがとうございます。

RasPi 3B で MAKEFLAGS="-j1 -l1" colcon build --symlink-install --executor sequential を実行しましたが、
raspimouseのビルドが25%に達したところでフリーズしました。

オプションの参考:https://answers.ros.org/question/304300/compilling-ros2-on-rasperry-pi/?answer=304668#post-id-304668

解決策として以下を提案します。

  • バイナリパッケージを使用する(ただしHumbleでは未リリースです)
  • パッケージ構成を変更する
  • ビルド&強制終了を繰り返す
  • 一時的にSAWP領域を拡張する

パッケージリリースと、パッケージ構成変更については、すぐに対応できないので、
SWAP領域の拡張を推奨します。

https://noknow.info/it/os/scale_up_swap_area_temporarily?lang=ja
を参考に2 GBのSWAP領域を確保した後、文頭のビルドコマンドを実行した場合、約4分でビルドが完了しました。

実際は0.1GB程度しか使用されていなかったので、0.5 GBくらいの領域があれば十分だと思います。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Bug Bug or Bug fixes
Projects
None yet
Development

No branches or pull requests

2 participants