LinuxでBluetoothで接続機種(m5stack)が見つけられないときの対処

最近Bluetoothの機器が非常に見つけづらくなっていて何故か理由が分からなかったのですが以下の設定になっていたので修正

❯❯❯ bluetoothctl show
Controller 48:E7:DA:C2:04:0C (public)
Name: pop-os
Alias: pop-os
Class: 0x006c010c
Powered: yes
Discoverable: yes
DiscoverableTimeout: 0x000000b4
Pairable: yes

この項目が no になっていたことが原因でした。 yes に変更するためには bluetoothctl pairable on というコマンドで設定を変更できます。

m5stack でBLE経由したMouseエミュレーションのプログラムを作成していたのですがなかなかLinux側で認識できてなかったのですがこれで認識ができるようになりました。不具合かなとおもったら一度初診に帰ってそもそもの設定を確認しておくと良いですね。

今回の利用したパラメータは以下の通り。

pairableBluetooth レシーバーのペアリング可否の状態を変更するpairable on|off
discoverableBluetooth レシーバーを、他のデバイスから検索可能な状態にするかどうかを変更するdiscoverable on|off

Wayland環境でGoogle Meet を利用して画面共有 (Screenshare)を行いたい

Waylandになり、画面共有の方法がXorgと異なっています。Chromeのディフォルトの設定では利用できないため設定方法をメモしておきます。

実施方法

Chromeの設定 chrome://flags/#enable-webrtc-pipewire-capturer にて、以下のパラメータを変更します。

WebRTC PipeWire support :  Enable
When enabled the WebRTC will use the PipeWire multimedia server for capturing the desktop content on the Wayland display server. – Linux

Linux上の設定、POPOSでは標準で実施がされていますがもし xdg-desktop-portal-wlr が導入されていない場合にはInstallをします。 apt install で入るはずです。

メモ

ChromeをWaylandモードで動いているかとかその他にもはまりどころは色々ある模様です。こちらを確認しておくと良いかもしれません。https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580

[TailScale] iPhoneとLinux間でのファイル転送(TailDrop)

最近、Wiregrardの技術を使ったVPNサービスであるTailscaleに興味を持って色々触っていますがずっと課題に感じていた iPhone ⇔ Linux 間でのデータ転送を簡単に P2P で実行することとができました。TailScaleは、基本はP2PでのPVNを簡単に作ることができるサービスです。認証部分はTailScaleのサービスがGoogle認証などを促しクライアントに情報を伝達し、通信自体はP2Pで行われる形になる形式の模様です。(TailScaleは認可を担っている)

Install&Howto

この転送機能をtailscaleでは、taildrop (AirDropのもじりですね)と呼んでいます。
https://tailscale.com/kb/1106/taildrop/?tab=macos
内容はこの公式ガイドライン通りなので少しなぞって説明しておきます。

Linux

Linux側の導入は、公式ガイドに沿って実施すれば問題ありません。https://tailscale.com/download/linux 今回はマニュアルでインストールしました。プルダウンから該当するディストリビューションの種類を選んで実行します。

Linux側の注意点としては、tailscale自体が root権限で動いている点です。そのため受信したファイルは root権限のファイルとなっていまいます。接続(tailscale up)後に以下のコマンドで受信ができます。

~/D/tmp
❯❯❯ sudo tailscale file get .

上記のコマンドで受信モードになります。ディレクトリ内のファイルの権限は注意

-rw-r--r-- 1 root root 49212 1月 23 20:22 IMG_7881.PNG
-rw-r--r-- 1 root root 1293555 1月 23 20:15 IMG_7918.PNG

上記実施後、tailscale file コマンドは終了します。

P2Pと言いながらも以前に送信したものが送られてくる感じのタイミングがありました。(tailscale file get を後で実行したら)TialDrop自体のデータがどこかを経由してキャッシュしているのかそのタイミングでiPhone側から送られてきているのかちょっと未検証

iPhone

導入は以下のQRコードで読み取ったAppStoreのアプリをいれるだけす。

アプリは「VPN」アプリとして登録されますので、「設定」→「VPN」でON/OFFすることができます。他のVPNアプリと違って右上にvpnのマークが出てこないため接続されていることを認識しづらさがありますが基本的には使い方は同じで利用したいときだけONにしておけばよいです。
TailDropのやり方は、通常のアプリ共有と同じ方法でできます。複数のファイルを一度に送ることもできますので非常に便利

注意点

便利なtailscaleですが、ローカルのデーモンは root権限で動作します。このため認可を行っているtailscaleやローカルのデーモンのセキュリティホールなどが見つかった場合には非常に危険な動作となります。これらのことを理解したうえで、なるべくであればモジュールのUpdateなどは毎日行う事ができる環境のマシンに導入することを強くおすすめします。