TV用の同軸ケーブルを使用してネットワークを接続する

築15年程度の一戸建てに暮らしていますが、LANの配線はおろか、電源関係も配管を通してあるわけではないので、後からLANを引くことが困難。1Fと2FにあるTVでひかりTVを視聴するためWiFiで接続を試みたのですが、一応は写るが時折ブロックノイズが走る。そこで有線接続する方法を検討した。どうやらTV用の同軸ケーブルを使って接続する方法があるらしい。

国内ではTLCモデムという名称で販売されており、殆どの製品は最大でも100Mbps、実効速度は数十Mbps。4K映像を視聴するための必要な帯域幅が30Mbpsと考えると心許ない。DXアンテナがリンク速度1Gbpsまで対応する製品を販売しているが、それでも実効速度は300Mbpsに過ぎない。せっかく数万円をかけるなら、他の機器も有線にして安定化したいじゃないか。

海外だとPLCモデムはリンク速度2Gbps、実効速度は1Gpbs近い製品もあるのだが、いかんせん日本では動作しない(アース線も使って通信をするため)ので、結局のところ600Mbps程度にしかならない。しかも違法だ。

検索する事、数十分。MoCa(Multimedia over Coax Alliance)規格のTV用の同軸ケーブルを使ったLANにたどり着く。現在売られているMoCa 2.5対応の機器を使えばリンク速度2.5Gbps以上、実効速度は1Gbpsで接続する事が出来るという。国内メーカーはない。同軸ケーブルを使うので、PLCのように漏洩電波が問題になることもなく、法的な制約に引っかかる心配も無い。

というわけで早速個人輸入。国内にも販売する業者が居るが、国内サポートがあるわけでもない。米Amazonで買ってきた方が送料込みでも安い。

届いたのはこんなの。

電源、アンテナ線を接続する端子、LANを接続する端子、LED(電源、アンテナ線、LAN線)があるだけのシンプルな代物。図の通りに繋いでしばらく待つと、アンテナ線のLEDが点灯してリンクした。シンプルだ。

だが一応は暗号キーの設定ぐらいはした方が良いらしい。設定はWEBブラウザから行う。出荷時に固定のIPアドレスが振られているので、パソコンのローカルアドレスを固定で設定し、工場出荷時の初期パスワードでログインする。

二台とも同じ初期IPアドレスが振られている。アンテナ線でリンクアップしているとIPが重複してまともに設定出来ないので、1台づつ電源を入れて設定を行う。

暗号鍵は三箇所に設定する。適当に12~17桁の数値を入れる。ついでにIPアドレスもDHCPに変えてやる。これで全ての設定は完了。

検案だったひかりTVの状態もバッチリである。ついでに1Fの無線APにも有線で繋げてやると、1FでWiFiを使ったときの速度も大幅にアップした。

ステータス画面を見ると3.2Gbpsでリンクアップしている。なるほど、そういえばカタログには2.5Gbps以上と書いてあったなぁと。LAN端子が1Gbpsだから実行速度が1Gbpsを超える事は無いが、だいぶ余裕があるようである。速度が2Gbpsに落ちる分、ちょっとだけ安くなるMoCa 2.0機器でも十分だったかもしれない。

MoCa2.5の子機は最大で16台まで増やすことが出来る。私が住んでいる家は、各部屋にアンテナ線が来ているので、書斎にも子機を増やすと良さそうである。

ひとつだけ注意事項がある。使用している周波数が地デジと被っているのだ。同じ同軸ケーブルに地デジの信号も流している場合にはMoCa2.5を使えない。その場合は国内のTLCモデム製品を選択するしかない。

・・・と言う訳でアンテナ線は来ているが、LANを引くのは難しいというお宅には、MoCa 2.5がおすすめである。

寒波でEVの充電できずに立ち往生した話とか

米国の寒波でTESLAの急速充電器が動作しなくなり、充電待ちのEVが電欠で動作できなくなり行列を作っているとニュースになっていました。そういえば日本でも夏に充電できなくなった急速充電器とかありましたね。この手の話し、たまたまEVがニュースソースとして注目されやすいからニュースになっているだけで、-30℃なんていう寒波の中では、EVの急速充電器に限らず色々な機械が止まっているはずなのです。

というのも、世の中の機械は-30℃~40℃でしか動作保証をしていないことが多いのです。例えば「やはりハイブリッドカーが最適」という発言をちらほら見かけるけど、プリウスのマニュアルには-30℃以下だとハイブリッドシステムが起動出来ない場合があると明記されています。なんならガソリンエンジンも通常で-15℃、寒冷地仕様で-30℃を下回ると起動できない場合があるそうです。そもそも内燃機関は急速充電器が止まってしまうような低温下では、ヒーターで温めてからで無いと始動できないのです。

ガソリンスタンドの給油機もやっぱり-30℃~40℃だったりします。ディーゼルだともっと深刻で、-10℃~-30℃ぐらいで軽油に含まれる高分子量の成分が分離して固形化してしまうそうな。灯油の凝固点も-20℃~-46℃なので、燃料が固まっているから石油ストーブも動きません。じゃ北極圏に近いような場所ではどうやって暮らしているのかと言えば、24時間暖房を耐えさせないようにしているわけです。

同様の事は高温時にも起こります。日本でも夏の気温が上がり35℃を超える猛暑日が度々おこるようになりました。直射日光が当たるような場所なら40℃を超えても不思議ではありません。気象条件が変わって寒波が襲来したり、猛暑が到来したり、度々おこるようになっている以上、インフラ関係の機器だけでも-40℃~50℃ぐらいまで動作するように考えなければならないのかもしれません。

緊急地震速報の誤報報道の滑稽さ

緊急地震速報(警報)で震度7の警報が出たにもかかわらず、有感地震が無かったことが誤報として問題視されている。同様の誤報は数年おきに発生しており、今回が初めてと言う訳でもありません。

緊急地震速報の仕組み自体は気象上の緊急地震速報(予報)発表状況にかなり詳しく記載してあり、なぜ誤報が起こるのかまで記載されています。

緊急地震速報は次の様な仕組みになっています。

2箇所以上の地震計で、地震のP波と思われる振動を捉えると、震源地や最大震度を予測して、その結果を緊急地震速報(予報)として関係諸施設に送信します。一回計算して終わりでは無く、新たな地震計のデータを加えて何度も予測計算を繰り返し、そのたびにより正確な緊急地震速報(予報)を送信します。予測される最大震度が4.5超える場合には緊急地震速報(警報)を送り、スマホからおなじみの警報音が鳴り響くことになります。

ここでお気づきと思いますが、2箇所の地震計の観測データから震源を計算したとしても、その震源は帯状の範囲としてしか予測できません。正確に震源を特定するなら最低でも3箇所、出来れば4箇所以上の地震計のデータが必要になります。それにも関わらず2箇所の地震計のデータで震源を計算しているのだから、誤報が発生して当たり前のシステムなんです。

緊急地震速報は全国に約1700箇所ある地震計を使用しています。日本の陸地面積は378000平方Km。仮に地震計が一様に設置されているとしたら、約222平方Kmに1箇所、およそ15Km間隔で地震計が設置されています。 P波が地中を伝わる速度は約7Km/sだから、3箇所目の地震計からのデータを待つなら最大で2秒程度遅れることになります。現状でも緊急地震速報警報が伝わってから、S波到達までの時間的余裕は数秒~数十秒でしかありません。3箇所目のデータをまつために2秒遅らせたら、緊急地震速報は本震に間に合わず、存在意義を失います。そのため不正確なのを承知の上で、2箇所に地震計のデータで処理を行っているわけです。

緊急地震速報の予測震度が大きくずれる原因はある程度わかっています。
・震源が陸から(地震計から)大きく離れている場合
・地震発生と同時に、周辺の地震計が地震以外の震動や電気的雑音を拾った場合。
・たまたま複数の地震が同時に発生した場合。
・地震計の故障などにより、使える地震計が少ない場合。

今回は大きな地震発生から間もないため頻繁に地震が起きており、また地震計も被害を受けているため使える地震計が少なく、誤報が発生しやすい条件下にあります。

緊急地震速報は、ある程度の誤報を許容する事で、より早く警報を出せるようにしたシステムです。誤報の発生を許容する警報システムそのものを問題視する議論ならわかります。そこを無視して、緊急地震速報に誤報の再発防止だの、誤報を出したことの管理責任を求めたりというのは、エンジニア目線だとわりと滑稽な話です。

2024年1月1日16時移行、13回の緊急地震速報の警報を発表している。震度5を越えても警報が出なかったのが3回になっている。人命や減災を意識するなら、実際の震度が低いにもかかわらず発報してしまった場合よりも、実際には震度5を越えているのに発報できなかった事を問題視するべきはずだ。だが、逆の事をしているあたりが、リテラシーの低さを物語っています。

Stable Diffusion+Windows 10+AMD GPUの環境で動かす

Stable DiffusionをWindows 10とAMD GPU上で動作させている記事、Running Stable Diffusion on Windows with an AMD GPUを見つけたので、実践。以下は作成してみたサンプル。

stable_diffusion_sample

事前準備

まずは実行環境を確認。
・メモリ6GB以上のAMD GPU
・Pythonの3.7、3.8、3.9、3.10がインストールされている
・Gitがインストールされている。
・Hugging Face(Stable Diffusionの学習済みモデルを公開している)のアカウント
・6GBの学習モデルをダウンロード&変換する勇気

と言うわけでPythonのインストール。PythonはMicrosoft StoreからPython 3.10をインストールしてしまうのが手がかからない。

続いてGitのインストール。私はVisual Studioと一緒にインストールされてしまっているが、単独でインストールするならGit for Windowsをインストールするのが良いかと思う。

さらにHugging Faceにユーザー登録する。ユーザー登録自体は無料。

インストール作業

ますはインストール先となるフォルダを作成する。私はD:\stable-diffusionにした。インストールには15GB程度の空き容量が必要になるはずなので、十分に空きのあるドライブを選ぶこと。PowerShellからコマンドプロンプトを開いて、インストール先フォルダに移動します。

Microsoft’s DirectMLに対応したOnnx runtimeをhttps://aiinfra.visualstudio.com/PublicPackages/_artifacts/feed/ORT-Nightlyからonnxruntime-directmlをダウンロードする。ダウンロードするランタイムはPythonのバージョンによって異なる。Python 3.10.xをインストールしているなら、cp310(onnxruntime_directml-1.12.0-cp310-cp310-win_amd64.whl)をダウンロードする。

コマンドプロンプトまたはPowerShellのプロンプトを開いて以下のコマンドを実行。

python -m venv ./virtualenv
./virtualenv/Scripts/Activate.ps1 または virtualenv\Scripts\activate.bat
pip install diffusers==0.3.0
pip install transformers
pip install onnxruntime
pip install protobuf<3.20.x
pip install onnx
pip install pathToYourDownloadedFile/ort_nightly_whatever_version_you_got.whl --force-reinstall

Stable Diffusionの学習済みモデルをダウンロードするには、ライセンス条項に同意する必要があります。ライセンス条項を確認した上で、Hugging Faceのhttps://huggingface.co/CompVis/stable-diffusion-v1-4のページにアクセスして、「 have read the License and agree with its terms」にチェックをして、Access Repositoryをクリック。

Hugging FaceのAccess Tokenを発行する必要があります。Hugging FaceのWEBページ右上のユーザーアイコンから「Settings→Access Tokens」に進み、Access Tokenを発行します。

プロンプトから以下のコマンドを実行します。

huggingface-cli.exe login

Token:とプロンプトが表示されるので、先ほど発行したAccess Tokenを入力します。「Your token has been saved to ~」と表示されれば大丈夫です。

Stable DiffusionをOnnixに変換するためのスクリプトを「https://raw.githubusercontent.com/huggingface/diffusers/main/scripts/convert_stable_diffusion_checkpoint_to_onnx.py」からダウンロードします。

以下のコマンドを実行します。

python convert_stable_diffusion_checkpoint_to_onnx.py --model_path="CompVis/stable-diffusion-v1-4" --output_path="./stable_diffusion_onnx"

学習モデルのダウンロードと変換に数時間かかります。気長に待ってください。

試しに画像を生成してみます。以下の内容をtext2img.pyとして保存して、プロンプトから実行してみてください。output.pngが無事に生成されればインストール成功です。

from diffusers import StableDiffusionOnnxPipeline
pipe = StableDiffusionOnnxPipeline.from_pretrained("./stable_diffusion_onnx", provider="DmlExecutionProvider")

prompt = "A happy celebrating robot on a mountaintop, happy, landscape, dramatic lighting, art by artgerm greg rutkowski alphonse mucha, 4k uhd'"

image = pipe(prompt).images[0] 
image.save("output.png")

生成する画像サイズや、反復計算する回数などのパラメータを指定する事もできます。それらを指定する場合には以下のコードを参考に書き換えてください。

from diffusers import StableDiffusionOnnxPipeline
import numpy as np

def get_latents_from_seed(seed: int, width: int, height:int) -> np.ndarray:
    # 1 is batch size
    latents_shape = (1, 4, height // 8, width // 8)
    # Gotta use numpy instead of torch, because torch's randn() doesn't support DML
    rng = np.random.default_rng(seed)
    image_latents = rng.standard_normal(latents_shape).astype(np.float32)
    return image_latents

pipe = StableDiffusionOnnxPipeline.from_pretrained("./stable_diffusion_onnx", provider="DmlExecutionProvider")
"""
prompt: Union[str, List[str]],
height: Optional[int] = 512,
width: Optional[int] = 512,
num_inference_steps: Optional[int] = 50,
guidance_scale: Optional[float] = 7.5, # This is also sometimes called the CFG value
eta: Optional[float] = 0.0,
latents: Optional[np.ndarray] = None,
output_type: Optional[str] = "pil",
"""

seed = 50033
# Generate our own latents so that we can provide a seed.
latents = get_latents_from_seed(seed, 512, 512)
prompt = "A happy celebrating robot on a mountaintop, happy, landscape, dramatic lighting, art by artgerm greg rutkowski alphonse mucha, 4k uhd"
image = pipe(prompt, num_inference_steps=25, guidance_scale=13, latents=latents).images[0]
image.save("output.png")

制限

この時点ではいくつかの制限があります。

生成画像解像度の制約

512×512以上の解像度の画像を生成することが出来ません。これはOnnixの制約です。より高解像度の画像が必要な場合には、waifu2xなどの超解像AIを併用するなどの工夫が必要です。

NSFW(職場閲覧注意)による制約

真っ黒な画像を生成することが頻繁にあります。標準で組み込まれているNSFW(職場閲覧注意)フィルタにブロックされていることが原因です。以下の様に1行追加する事でNSFWを無効に出来るようですが、Stable Diffusionの利用規約上NSFWを無効にして生成した画像の公開は慎重に行いましょう。NSFWを無効にすると相当に高速になるという副次的効果もあるようです。

pipe = StableDiffusionOnnxPipeline.from_pretrained("./stable_diffusion_onnx", device_map="auto", provider="DmlExecutionProvider", max_memory=max_memory_mapping)
pipe.safety_checker = lambda images, **kwargs: (images, [False] * len(images))

その他、細かなHackは続編のStable Diffusion Updatesに・・・・

いろいろな資格の投資対効果

半分趣味で資格を取るなら投資対効果なんて考える必要は無いが、賃金を増やす為に資格を取ろうと考えて居るなら投資対効果を考えるのは大事だ。中小企業診断士の資格が割に合わないと言う話しをTwitterで見かけたので、ざっくりと計算してみた。

各数字は凄く雑なので、細かい突っ込みは受け付けない。資格取得費用の大部分は勉強にかかる時間によって発生する機会損失である。今回は1時間2,500円で計算している。1年辺りの資格手当の額は求人などをざっくり見て中央付近を採用している。資格取得を切っ掛けに独立起業する事は想定していない。

資格名受験費用その他費用学習時間総費用資格手当維持費用増益投資効率
中小企業診断士302301,0002,760180561244%
公認会計士201503,0007,6701,2001201,08014%
税理士81102,0005,11860010050010%
社会保険労務士15301,0002,5453604032013%
情報処理安全確保支援士8205001,278180661149%
電気工事士二種11301002916006021%
公立大学2,5007,680217,0001,75001,7508%
金額は千円

なるほど、中小企業診断士の投資効率は4%と割りに合わなそうである。同じコストを投じて資格を取るなら、社会保険労務士の方がはるかにマシである。

工事士などのガテン系資格は資格取得による賃金増加額こそ小さいものの、投資効率は極めて高そうだ。工事士系資格で資格手当を貰えるような職場なら、確実に抑えていくのが良さそうだ。

あるていど勉強ができるなら当たり前のように大学進学を選択するが、投資効率は決して高くはない。在学中に勉強していることによる機会損失は意外に大きいのだ。投資効率を重視するなら、工業高校か高専でIT系資格を取得して就職するのが一番良いのかもしれない。

ボールペンリフィル(替え芯)の選び方

贈答品で頂いたボールペン、気に入って使っていてインクが無くなってしまったとき、何処にもメーカーも型番も書いていないし、替えインクを買いたくても諦めていたりしませんか?

ボールペンのインクの形状はJIS規格で定められており、A1、A2、B、D、E、F、G1、G2、Hの9種類に分かれています。同じ規格のリフィルであれば、他社製のリフィルでも使える可能性が高いです。HはA1~G2の何れにも一致しない規格ということなので、実質は8種類ですね。

ペン先直径、直径(一番太いところ)、全長の三つを計って以下のリストと比較してください。

規格ペン先の直径直径全長
A12.40mm3.20mm106.8mm
A21.60mm3.20mm106.8mm
B2.28mm3.00mm98.2mm
D2.35mm2.35mm67.0mm
E2.25mm3.00mm140.0mm
F2.30mm3.00mm143.0mm
G11.60mm5.00mm106.8mm
G22.54mm6.00mm98.1mm
H

だいたいG2規格が多いようです。A1~G2の規格に一致しない場合には、各メーカの独自規格と思われます。

その場合には日本筆記具工業会で公開している「油性ボールペン替芯互換表」「ゲルボールペン替芯互換表」を参照してみてください。各メーカーが出しているリフィルのペン先直径(外径)、直径(最大径)、全長が一覧表になっているので、その中から一致する型番を探してください。型番が絞られたらメーカーのページで、ペン先やお尻部分の形状が一致しているものを探す事になります。

PTAや自治会でIT活用が出来ない理由

2013年の国際成人力調査をご存じでしょうか?平均点で見ると、読解能力、数的思考力、IT活用能力の何れでも日本がトップなのです。調査結果は読解能力、数的思考を得点によってレベル1未満~レベル5までの6段階に、IT活用能力はレベル1未満~レベル3の4段階に分けて成人割合もだしています。各レベル毎の成人割合を見ると日本の特徴が際立ってきます。読解能力がレベル2以上となる成人割合は日本93.9%、ドイツ81.0%、米国78.3%。数的思考力がレベル2以上となる成人割合は日本90.6%、ドイツ80.1%、米国67.1%。IT活用能力がレベル2以上となる成人割合は日本34.6%、ドイツ36.0%、米国31.1%。

日本では読解能力、数的思考力が一様に高い水準にあり、レベル1やレベル1未満の割合が極端に少ないのです。

このことが日本においてPTA役員や自治会役員を持ち回りやくじ引きで決めることを可能にしています。紙と鉛筆で業務を行う限りにおいては、日本人ならほぼ誰でも業務を遂行できるだけの事務能力を持ち合わせているわけです。全員に一様に業務を割り振り、一人あたりの負担を減らすと共に、全員が公平に負担する仕組みを作ってきました。日本以外において、同じような役員の決め方をしたら、業務遂行能力を持たない役員が発生する確率が高く、成り立たないでしょう。

対して、IT活用能力においては、日本では成人の34.6%だけが高い能力を有しており、日本の平均値を世界でもトップレベルに引き上げています。

このことがPTA役員や町内会や自治会におけるIT活用の難問になります。ITを活用するなら、成人の35%しか業務を遂行できません。従来のように一様に全員が業務を負担することで公平性を保つ仕組みは維持できません。特定の人だけに業務が集中する事を容認し推奨するような価値観の変革が必要になるのです。

日本は解雇規制が厳しいのか?

非 正規労働者の増加とか、雇用の流動性低下とか、終身雇用なんかの話しになると、必ず「日本は解雇規制が厳しいから~」的な発言が出てくる。本当に日本の解雇規制が厳しいのだろうか?

解雇規制の厳しさを表す国債指標がとして、EPL 指標(Employment Protection Legislation Indicator)と言うものがある。2019年の調査結果では、日本のEPL指標は2.08、OECD平均が2.27だから、日本は解雇規制のやや緩い国といえる。日本が比較対象とする事の多い、米国は1.31、英国は1.90、独国は2.33、韓国は2.35だ。

日本は既に解雇規制がやや緩い国であって、安易にさらに解雇規制を緩めるべきでは無い。

正規労働者を解雇できない理由

日本で正社員の解雇が難しい要因は、かなりの部分で日本的な労働契約が原因になっている。能力や成果、職責、職務を明確にせずに雇用契約を結んでいるため、これらを解雇理由として解雇したり、雇用条件を変更することが出来ない。まだ判例が少なく、実際の線引きは難しいものがあるが、現に日本国内においても外資系企業は解雇を実施している。(判例:フォード自動車事件

国内企業も非正規労働者の解雇(雇い止め)を実施している。非正規労働者と正規労働者の間に法律上の差があるわけでは無い。非正規労働者は職務、職責、勤務地、雇用期間などを明確にして雇用契約を結んでいるからこそ、雇用契約に沿って解雇を行えているに過ぎない。

非正規労働者が増えている原因

平成21年度 年次経済財政報告」を見ると解雇規制の厳しい国は非正規労働者の割合が高くなる傾向にある。では日本は解雇規制が厳しいから非正規労働者の割合が高いのかというとそうではない。日本は解雇規制が緩いわりに、突出して非正規労働者の多い国になっている。

要員の一つは非正規雇用と正規雇用を比較した場合に、非正規雇用者の方が極端に解雇しやすくなっている事にある。非正規社員の方が解雇しやすいのであれば、非正規社員の比率が増える方向に働く。非正規社員を減らしたいのであれば、このバランスを取るように政策を定める事が望ましい。必要なのは正社員を解雇しやすくする事では無い。

例えば正社員を整理解雇するときに、会社側が特定の誰かを指定する事は出来ない。非正規社員にも同じ規制を設けるなら、契約満了するときに、契約更新する対象と、雇い止めする対象を、会社側が選択してはならないはずだ。

ちなみにドイツも非正規労働者の解雇規制の弱い国だが、非正規労働者率は低く抑えられている。調べてみると正規労働者を100とした場合、フルタイム非正規労働者の賃金は91と、同一労働同一賃金がかなり守られている。ただフルタイムでは無い非正規労働者の賃金は55と日本並みに低い。(参照:有期雇用の日独比較

正規社員の賃金を100とした場合、日本では非正規社員の賃金が56.6とかなり低い。この事も非正規労働差を増やす原因となっていると考えられる。(参照:地方公共団体の短時間勤務の在り方に関する研究会 同一労働同一賃金について

楽天CASAのLTEインジケーターが橙点滅のままで動かない

楽天CASAのLTEインジケーターが橙(オレンジ)点滅や緑点滅を繰り返していて、緑点灯状態にならない場合があります。そんなときは楽天モバイルのCASAのサポートに電話してください。

楽天CASAのマニュアルやWEBには記載がありませんが、不正売買や登録住所以外での不正利用を防ぐために、LTE中継機としての動作を停止させる機能があります。ルーターなどネットワーク機器の交換、回線の変更などにより、最初に動作させたのとネットワーク環境が変化すると、別の場所に移動した可能性があるとしてロックしてしまうようです。

LTE中継機としての機能がロックされてしまうと、ユーザー側では解除できません。楽天CASAの電話サポートに連絡すると、5分程度でロックが解除されて、LTEインジケーターが緑点灯に切り替わります。

QNAP:他のNASから同期したフォルダに書込できない

HBS3 Hybrid Backup Syncの同期機能を使って既存のNAS(SMB)からQNAPにファイルをレプリケーションしておいてサーバーの移行を行い、いざ切替というところで共有フォルダ内にあるフォルダ以下に書き込むことが出来ないというトラブルが発生。共有フォルダのルートには書き込めるので、チェック時点では気がつかなかったのです。

Windows上からフォルダのプロパティを見るとAdministratorにのみ書込権限があり、Evryoneでは書き込めない状態になっています。

QNAP管理画面のFileStationからフォルダのプロパティを見ると所有者には書込権限はありますが、グループとパブリックには書込権限がありません。ここでグループとパブリックにも書込権限を付与すると、Windows上からファイルをコピーできるようになるので、これが原因のようです。

さて、困ったことにFileStationから複数のフォルダを選択して権限設定を書き換えることは出来ません。フォルダの数が多く、フォルダ毎に手作業で行うとなると、相応に時間がかかります。

ふと、QNAPのNASはsshで接続出来ることを思い出しました。コントロールパネルの「ネットワークサービスとファイルサービス」から「Telnet/SSH」を選択して「SSH接続を許可する」にチェックを付けます。

QNAPの共有フォルダは/share以下に作成されます。以下のコマンドを実行して全てのユーザーに書込権限を付与します。

chmod -R a+rw /share/Public

NASにSSHで入れると便利だね。

ちなみに環境は以下の通り。
QNAP TS-351
Firmware Version 4.4.1
HBS3 version 3.0.191202