CNCjsの使い方、設定、CNCマシンにG-code送る方法

概要

装置の実験中に ニッチな 環境依存の問題に出くわしたので報告しておきます。

かなり限定的な環境でのトラブルシューティングですが、スタンドアロン版の Linux 用 CNCjsSlackware Linux で 使おうとすると、「udevadm がねーよ!」と怒られます。

補足事項

※ ダウンロードした CNCjs の使い方:cncjs-app-「使いたいバージョン」-linux-x64.tar.gz をダウンロード・展開し、展開されたフォルダ内でコマンドラインから ./cncjs-app と打つとスタンドアロン版 CNCjs が起動します。

※ 今回の問題の原因:Slackware Linux では /sbin や /usr/sbin(たぶん /usr/local/sbin も。うろ覚え)が設計上一般ユーザーのコマンドサーチパスにのぼらないこと。

Slackware Linux

エラーメッセージ

以下に抜粋。

2021-07-03T01:52:57.937Z - error service:cncengine { Error: spawn udevadm ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:232:19)
    at onErrorNT (internal/child_process.js:407:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn udevadm',
  path: 'udevadm',
  spawnargs: [ 'info', '-e' ] }

問題の回避策

この場合、管理者権限で

ln -s /sbin/udevadm /usr/local/bin/

等と、一般ユーザーに見える場所に udevadm のシンボリックリンクを張っておきます。

他には /dev/ttyUSB0 等の読み書きの権限がユーザーにないとそちらでエラーが出ます。これは gpasswd コマンド等を使って該当ユーザーを “dialout” グループに所属させた後で再度ログインすれば問題ないはず。

他の被害者

同じエラーに遭遇した方のポストが以下。こちらの方は /usr/bin 以下に /sbin/udevadm のリンクを張っていらっしゃいました。

「いいね!」 1