プログラミング
Show HN: Linux向けTamronレンズユーティリティの代替
Show HN: Tamron Lens Utility Alternative on Linux (github.com)
要約
この記事は、Tamron製の対応レンズの設定を表示・変更するためのLinux専用コマンドラインユーティリティ「Tamron Lens Control (tlc)」を紹介しています。これは、公式のTamron Lens UtilityがLinuxで提供されていないため、コミュニティによって開発されたプロジェクトです。インストール方法、レンズの接続と認識、各種設定の変更、バックアップ、そしてLinuxでのドライバー設定方法について詳細に解説しています。
全文翻訳
Tamron Lens Control
tlcは、対応するTamronレンズの設定を表示および変更するためのLinux専用コマンドラインユーティリティです。これは、公式のTamron Lens UtilityがLinuxで提供する機能を再現することを目指しています。
免責事項
非提携
tamron-lens-controlは、独立したコミュニティ主導のプロジェクトであり、Tamron Co., Ltd.と提携、承認、またはスポンサーされているものではありません。「Tamron」はそれぞれの所有者の商標であり、ここでは互換性のある製品を識別するためにのみ使用されています。
保証なし
tamron-lens-controlはGNU GPL v3以降でライセンスされており、一切の保証はありません。それが役立つことを願っていますが、このソフトウェアを使用することにより、レンズがブリックする、跳ね返る、部屋の中を怯えたスズメのように飛び回る、あるいは地球と太陽系を離れる可能性があることを受け入れます。
LICENSEを参照してください。
インストール
最新のRustツールチェーンを使用して、このリポジトリからビルドおよびインストールします:
cargo install --path .
レンズをUSB経由で直接接続し、tlcがそれを認識できることを確認します:
tlc devices
tlc info
複数のレンズが接続されている場合、tlc devicesが表示するシリアル番号またはポートで1つを選択します:
tlc --device SERIAL info
tlc --device /dev/ttyUSB0 info
使用法
## 各コマンドはレンズに接続し、1つのアクションを実行し、切断します。
## レンズがそれらのサブセットのみをサポートしている場合があることに注意してください。
# フォーカスリング設定の表示
tlc ring get
# フォーカスリングの方向を反転
tlc ring set direction reverse
# Focus Set ButtonとCustom Switchの割り当てを表示
tlc button get
# Focus PresetをFocus Set Buttonに割り当て
tlc button set focus function focus-preset
## その他多数... tlc --help を参照してください
# オートフォーカス精度の微調整
tlc focus-calibration set 2
利用可能な設定、受け入れ可能な値、およびレンズ固有の要件については、tlc --help を実行するか、任意のコマンドに --help を追加してください。
操作ごとに送信される各操作を表示するにはコマンドの前に -v を、すべての生の送受信バイトを16進数で表示するには -vv を配置してください。
バックアップ
広範な変更を加える前に、すべての現在の設定をバックアップします:
tlc settings save my-lens.tlc
tlc settings load my-lens.tlc
バックアップファイルは同じレンズモデルにのみ復元できます。
Linuxドライバーセットアップ
レンズがlsusbに表示されるがtlc devicesに表示されない場合、Linuxはcp210x USBシリアルドライバーを使用するように指示する必要があるかもしれません。
一度限りのセットアップ
ドライバーセットアップをすぐにテストするには、これらのコマンドを使用します:
sudo modprobe cp210x
echo 2cd1 0002 | sudo tee /sys/bus/usb-serial/drivers/cp210x/new_id
echo 2cd1 0005 | sudo tee /sys/bus/usb-serial/drivers/cp210x/new_id
レンズを再接続し、シリアルポートを確認します:
tlc devices
/dev/ttyUSB0 が存在しても開けない場合は、現在のユーザーに一時的なアクセス権を付与します:
sudo setfacl -m u:"$USER":rw /dev/ttyUSB0
永続的なセットアップ
互換性のあるレンズが接続されるたびにTamron USB IDを登録し、アクティブなデスクトップユーザーにアクセス権を付与するudevルールを1つ作成します:
sudoedit /etc/udev/rules.d/70-tamron-lens.rules
これらの行を追加します:
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", DRIVER=="", ATTRS{idVendor}=="2cd1", ATTRS{idProduct}=="0002", RUN+="/bin/sh -c '/sbin/modprobe cp210x && echo 2cd1 0002 > /sys/bus/usb-serial/drivers/cp210x/new_id'"
ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_interface", DRIVER=="", ATTRS{idVendor}=="2cd1", ATTRS{idProduct}=="0005", RUN+="/bin/sh -c '/sbin/modprobe cp210x && echo 2cd1 0005 > /sys/bus/usb-serial/drivers/cp210x/new_id'"
SUBSYSTEM=="tty", ATTRS{idVendor}=="2cd1", ATTRS{idProduct}=="0002", TAG+="uaccess"
SUBSYSTEM=="tty", ATTRS{idVendor}=="2cd1", ATTRS{idProduct}=="0005", TAG+="uaccess"
ルールをリロードし、レンズを切断して再接続します:
sudo udevadm control --reload-rules
# 再接続
tlc devices
getfacl /dev/ttyUSB0
SSHまたはヘッドレスシステムの場合、uaccessは適用されない場合があります。デバイスグループを確認します:
stat -c '%G' /dev/ttyUSB0
dialoutと報告された場合は、ユーザーをそのグループに追加して完全にログアウトします:
sudo usermod -aG dialout "$USER"
グループメンバーシップは、レンズだけでなく、dialoutが所有するすべてのデバイスへのアクセスを付与することに注意してください。
安全性と範囲
コマンドが完了するまでレンズを接続したままにしてください。
変更を加える前に、getコマンドで設定を確認してください。
別のバックアップをロードしたり、リセットを実行したりする前に、settings saveを使用してください。
レンズのファームウェアアップデートとオンラインファームウェアチェックはまだサポートされていません(TODO.mdを参照)。