feat(darwin): Bambu へ直接送れる Orca のフォークを併設する - #547
Open
gapul wants to merge 1 commit into
Open
Conversation
Bambu の Authorization Control で、サードパーティのスライサーから印刷を 開始する経路が塞がれている。FTPS でのファイル転送は今も通るが、MQTT の project_file はエコーだけ返って無視される (A1 mini で実際に確認した。 gcode_state は FINISH のまま動かない)。本家 Orca は Bambu Connect 経由の 実装を拒否しているので、cask 版はスライスと書き出ししかできない。 FULU Foundation のフォークは bambu_networking を独自実装に差し替えて直接 送る。元は Paweł Jarczak が公開して Bambu の C&D で取り下げたもので、その後 SFC が AGPLv3 違反を認定して baltobu として引き継いだ。baltobu はまだソース のみなので、macOS のバイナリを配っている FULU 版を包んでいる。 cask を置き換えず併存させる。フォークは 2.4.0-dev で cask は 2.4.2 なので、 設定ディレクトリを共有させると古い方がプリセットを書き戻して壊す。バンドル名 と datadir を分けた。 macOS 版は Lima の VM で Linux 側のネットワークホストを走らせる構成で、その 実体は初回起動時に $HOME へ落ちる。宣言できているのは .app までで、そこから 先は宣言管理の外に出る。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
なにを
pkgs/orcaslicer-bambulab.nixを足して、pkgs.brewCasks.orcaslicerの隣に置いた。バンドル名はOrcaSlicer Bambu.app、datadir は~/Library/Application Support/OrcaSlicerBambuに分けてある。なぜ
Bambu の Authorization Control で、サードパーティのスライサーから印刷を開始する経路が塞がれている。実機 (A1 mini) で切り分けた結果はこう:
.gcode.3mfを置けるし、一覧も読めるproject_fileを publish するとプリンタはエコーを返すgcode_state: FINISH/print_type: idleのまま。/sdcardと/mnt/sdcardの両方で同じ本家 Orca は Bambu Connect 経由の実装を拒否しているので、cask 版はスライスと書き出ししかできない。フォークは
bambu_networkingを独自実装 (libpjarczak_bambu_networking_bridge.dylib) に差し替えて直接送る。確認したこと
nix buildが通る (ローカル。macmini へのリモートビルドは SSH master が張れず落ちたが、そちらは別件)nix eval .#darwinConfigurations.gapul.system.drvPathが通るjust fmt/ pre-commit (deadnix, gitleaks, nixfmt, shellcheck) 通過--datadirが渡ることを確認確認していないこと
実際に送信できるかはまだ試していない。
darwin-rebuild switchして起動するまで分からない。承知しておくこと
macOS 版は Lima の VM で Linux 側のネットワークホストを走らせる構成で (
install_runtime_macos.shが~/Library/Application Support/OrcaSlicer/macos-bridge/limaに Lima を落とす)、その実体は初回起動時に $HOME へ落ちる。宣言できているのは .app までで、ランタイムは宣言管理の外に出る。軽い代替として、プリンタ本体で LAN Only Mode + Developer Mode を有効にすると MQTT が認証なしで開き、既存の CLI 一式 (curl で FTPS、paho で MQTT) がそのまま動くようになる。そちらで足りるならこの PR は不要になる。
由来
Paweł Jarczak が公開 → Bambu の C&D で取り下げ → SFC が AGPLv3 違反を認定して Bambu が撤回 → SFC が baltobu として引き継ぎ。baltobu はまだソースのみなので、macOS バイナリを配っている FULU Foundation 版を包んでいる。baltobu がビルドを出したらそちらへ移るのが筋。