ブログ

ορεσικα ψομαναι κυσο βλογ

DeepLのPDF改行問題は「読みながら翻訳」で解決できた

DeepLのPDF改行問題

PDF上の英文をコピーしてCtrl+C+Cを押すと、DeepLアプリにテキストが送られて翻訳が実行される。その際に、無駄な改行記号がテキスト中に混入してしまい、元の英文が分断されて翻訳がおかしくなるという問題がある。

例えば、下図のようにPDF文書の一部を選択してCtrl+Cでコピーすると

PDF文書を選択コピー

下図のようにPDFの見た目の行末に改行記号が勝手に入ってしまう。これはPDFの仕様か、PDFリーダの仕様なのかは分からないが、大変迷惑な挙動である。

改行記号が混入

Ctrl+C+CでこのテキストがDeepLアプリに送られると、変なところで改行された妙な英文として下図のような翻訳結果となる。

翻訳失敗

無理やり意味を通そうとして、訳文は重複した部分が多数出てくる。

「読みながら翻訳」機能で解決

しかし、PDFで文章を選択した後にCtrl+F9の「読みながら翻訳」を実行すると以下のように自然な訳文となる。

「読みながら翻訳」による自然な訳文

おそらく、無駄な改行記号が除去された上で翻訳が実行されている。

なぜか、この素晴らしい「読みながら翻訳」機能はデフォルトでは有効化されていないので、DeepLアプリで設定変更が必要である。

「読みながら翻訳」を有効化

上図の通りCtrl+F9のショートカットを有効化すると、PDF上での翻訳が格段に楽になる。

Ctrl+F9を別の機能にすでに割り当てている場合は、Ctrl+win+F9などにも変更できる。

改行記号を除去するwebサイトを介してDeepLを利用している方はこの機能を試してみる価値はある。

サンプル文書の原著

本記事の翻訳文書の例で挙げた文は、以下の本の冒頭部分にある。

link.springer.com

Amazon.co.jp: How to Drive a Nuclear Reactor (Springer Praxis Books) : Tucker, Colin: Foreign Language Books

数式なしで大変読みやすい本であり、原子力発電所の動作原理から事故対応まで広い範囲の話題が要領よくまとまっている。

Amazonのレビューで秀逸なものがあったので以下に貼り付けておく。

How to Drive a Nuclear Reactor レビュー

BeagleV-Fire に USB-Serial 変換器をつなごうとして少し困った

BeagleV-Fire に USB-Serial 変換器が必要な場合

正常動作中の BeagleV-Fire を使うだけなら、外付けの USB-Serial 変換器は必要ない。 しかし、ブートプロセスを確認したり、新しいOSイメージをフラッシュするには外付けの USB-Serial 変換器をつなぐ必要がある。

BeagleV-Fire につなぐ USB-Serial 変換器の選定

BeagleV-Fireのシリアルポート端子は、信号入出力電圧が 3.3V なので、これがUSB-Serial 変換器を選定する制約条件になる。 さらに、個人的な好みで、USB側の端子はUSB-Cであることをもう一つの制約条件とした。microB端子はもげやすいし、ケーブルもUSB-Cに統一したいのがその理由である。

条件に見合う製品たち

FTDI USBシリアル変換アダプター Type-C版 (3.3/2.5/1.8V対応)www.switch-science.com

Switch SCIENCE の製品で、ジャンパ設定によって信号入出力電圧を1.8V, 2.5V, 3.3Vの三種類から選べる。5Vに対応しなくなったのは、マイコンの低電圧化の流れを考慮した結果だろう。機能的に優れているが価格がちょっと高い。

www.sengoku.co.jp

SparkFunの製品で、デフォルトで3.3Vロジック、ジャンパ設定で5Vにも対応できる。ジャンパ設定はパターンの切断とハンダによるブリッジが必要なのでちょっと面倒である。3.3Vで使う分には問題ない。そこそこ安いのでこちらを選定した。

そのままでは刺さらなかった

SparkFun Serial Basic Breakout - CH340C and USB-C を入手して BeagleV-Fire に刺そうとしたら、Cape Expansion Header と Breakoutのボード面が干渉して刺さらなかった。逆向きにすれば刺さるには刺さるが、信号線が対応しないので無意味である。

なお、SWITCH SCIENCE の製品の方も同様の構成なので直接は刺さらないと考えられる。

仕方なく、ジャンパー線を購入することにした。

入手したジャンパー線

Amazon | DiyStudio 10CM ジャンパー線多色デュポンワイヤー120pcs、用28AWGケーブル ブレッドボード・ジャンパーワイヤー、オス-メス・オス-オス・メス-メスピッチ2.54mm * 40Pin【2021人気限定】 | ジャンプワイヤ | 産業・研究開発用品 通販

たぶんこのリンクはすぐ機能しなくなるだろうから、画像を以下に示す。

ジャンパー線

こういう、リボン状にまとまったジャンパー線が便利である。

結線

BeagleV-Fire (シリアル端子) ↔ ジャンパー線 ↔ SparkFun Serial Basic Breakout ↔ USBケーブル ↔ WindowsPC

の順でつないだ。ジャンパー線は6本分を切り離して使ったが、ちょうどワイヤーの色が黒から緑の配列になっており、Breakoutボードのシルク印刷のBLKとGRNに対応していた。

この接続では、USBC ケーブルに力がかかっても、ジャンパー線がその力をいなしてボードに力が掛からなくできるという利点がある。

デバイスマネージャーで見ると以下のように表示された。

デバイスマネージャーに現れた SparkFun Serial Basic Breakout - CH340C and USB-C

windows10では、このボードのドライバは自動的に適用された。

リブートプロセスが見えた

$ sudo reboot
[sudo] password for beagle:

Broadcast message from root@BeagleV on pts/0 (Sun 2024-03-10 15:59:57 UTC):

The system will reboot now!

beagle@BeagleV:~
         Stopping session-1.scope - Session 1 of User beagle...
         Stopping session-3.scope - Session 3 of User beagle...
[  OK  ] Removed slice system-cockp…/cockpit-wsinstance-https-factory.
[  OK  ] Removed slice system-modpr…lice - Slice /system/modprobe.
[  OK  ] Stopped target graphical.target - Graphical Interface.
[  OK  ] Stopped target multi-user.target - Multi-User System.
[  OK  ] Stopped target getty.target - Login Prompts.
[  OK  ] Stopped target timers.target - Timer Units.
[  OK  ] Stopped dpkg-db-backup.tim… Daily dpkg database backup timer.
[  OK  ] Stopped e2scrub_all.timerâ–’â–’etadata Check for All Filesystems.
[  OK  ] Stopped fstrim.timer - Discard unused blocks once a week.
[  OK  ] Stopped logrotate.timer - Daily rotation of log files.
[  OK  ] Stopped motd-news.timer - Message of the Day.
[  OK  ] Stopped plocate-updatedb.t…Update the plocate database daily.
[  OK  ] Stopped systemd-tmpfiles-c… Cleanup of Temporary Directories.
[  OK  ] Stopped target time-set.target - System Time Set.
[  OK  ] Stopped target usb-gadget.…m - Hardware activated USB gadget.
[  OK  ] Closed systemd-rfkill.sock…l Switch Status /dev/rfkill Watch.
         Stopping avahi-daemon.serv…e - Avahi mDNS/DNS-SD Stack...
         Stopping cockpit-wsinstanc…7ae41e4649b934ca495991b7852b855...
         Stopping cockpit.service - Cockpit Web Service...
         Stopping cron.service …round program processing daemon...

こんな感じで見えるようになった。

ブートが80%で止まる

リブートするとほぼ毎回、ブートプロセスが80%で止まってしまう。

HSS: decompressing from eNVM to L2 Scratch ... Passed
DDR training ...
   80% [                                        ..........]

どうもこれは既知の問題のようである。

正常にブートできるときのパターンは以下の通りである。

HSS: decompressing from eNVM to L2 Scratch ... Passed
DDR training ... Passed ( 5969 ms)

---------------------------------
--        BeagleV-Fire         --
---------------------------------

[6.32354] PolarFire(R) SoC Hart Software Services (HSS) - version 0.99.36-BVF-0.3.0
MPFS HAL version 2.2.104 / DDR Driver version 0.4.023 / Mi-V IHC version 0.1.1 / BOARD=bvf
(c) Copyright 2017-2022 Microchip FPGA Embedded Systems Solutions.

incorporating OpenSBI - version 1.2
(c) Copyright 2019-2022 Western Digital Corporation.

[6.63254] Build ID: 13e69d23781e38eff4e9d2aa52db92d1f0352ac1
[6.70025] Built with the following tools:
 - riscv64-unknown-elf-gcc (xPack GNU RISC-V Embedded GCC (Microsemi SoftConsole build), 64-bit) 8.3.0

まとめ

  • BeagleV-Fire を使い倒すためには、外付けの USB-Serial 変換器が必要である。
  • 変換器によっては、そのままでは刺さらないものもある。その場合はジャンパー線で中継すれば良い。
  • ジャンパー線で中継すると、USBケーブルの動きによる力が BeagleV-Fire に直接かからなくなる利点がある。

BeagleV-FireにWindowsからログインできた(Virtualboxは不要でSerialとSSHの両方成功)

前回からの更新点

前回はWindows上のVirtualboxの中のLinuxとBeagleV-Fireをつなぐという、やや面倒な方法を取っていたが、色々試してVirtualboxが不要な接続方法が以下の2つ見つかったのでメモとして残す。

  • シリアルポートで接続する方法
  • USB NETWORK DRIVER をインストールする方法

シリアルポートで接続する方法

簡単なのでおすすめの方法だが、ファイル転送がデフォルトではできないという欠点がある。

Windowsのデバイスマネージャーを表示させてからBeagleV-FireをUSBケーブルで接続して少し待つと、COMポートが現れるのがわかる。

Windows上に現れたBeagleV-FireのUSBシリアルポート

USBシリアルデバイスと表示されているものがBeagleV-Fireのものである。もう一つのほうはマザーボードのシリアルポートであり今回は無関係である。

前回まではこれが現れることに全く気づかずに色々やってしまったが、実はこんなに簡単に接続ポートが用意される。これさえ分かればあとは簡単で、MobaXtermを立ち上げ、シリアルポートへ接続すればつながる。

Session→Serialを選択し、以下のようにポートと速度を選ぶ。

MobaXtermでBeagleV-Fireのシリアルポートに接続する

OKを押すとあっけなくつながる。

シリアルポートでの接続に成功

ttyGS0でつながる

USB-serial変換器を用意する必要はなく簡単につながる。これをBeagleV-FireのQuick Startに書いておいた方が良いと思うのだが・・・。

USB NETWORK DRIVER をインストールする方法

ちょっとだけ面倒な作業が生じるが、SSHで接続できるようになってファイル転送もできるようになるのでこちらもおすすめの方法と言える。

Windowsのデバイスマネージャーを表示させてからBeagleV-FireをUSBケーブルで接続して少し待つと、他のデバイスの下にCDC NCMデバイスが現れるのがわかる。

CDC NCM デバイスとして現れたBeagleV-Fire

CDC NCMはCommunication Device Class / Network Control Model protocolの略だそうである。

色々調べて試したところ、Windowsが持っているドライバを当てればこのデバイスを有効化できることがわかった。

デバイスマネージャーのCDC NCMを右クリックして「ドライバーの更新」をクリックする。

ドライバーの更新を選ぶ

「コンピューターを参照してドライバーを検索」をクリックする。

コンピューターを参照してドライバーを検索

「コンピューター上の利用可能なドライバーの一覧から選択します」をクリックする。

コンピューター上の利用可能なドライバーの一覧から選択

「すべてのデバイスを表示」をダブルクリックして少し待つ。

すべてのデバイスを表示

  • 製造元:Microsoft
  • モデル:UsbNcm Host Device

を選択して「次へ」をクリックする。

MicrosoftのUsbNcm Host Deviceを選ぶ

警告ウィンドウが出るが知るかボケと言いながら「はい」を押す。

警告ウィンドウ

ドライバーが正常に更新された。

ドライバー正常更新完了

デバイスマネージャーのネットワークアダプター内にUsbNcm Host Deviceが現れた。

UsbNcm Host Device

コントロール パネル→ネットワークとインターネット→ネットワークと共有センター→アダプターの設定の変更でBeagleV-Fireを確認できる。

ネットワークアダプターとして現れたBeagleV-Fire

残念ながらIPアドレスまでは自動設定されないので以下の手順で固定IPアドレスを割り当てる。

上図のBeagleV-Fireのネットワークアダプターを右クリックしてプロパティをクリックし、インターネットプロトコルバージョン4をダブルクリックする。

IPv4設定

以下のように

を指定する。

固定IPアドレス設定

MobaXtermを開き、Session→SSHから192.168.7.2を指定して接続する。

SSH接続

SSHで接続完了。

SSH接続完了

左のディレクトリペインでファイルの入出力もできる。

これもBeagleV-FireのQuick Startに書いておいた方が良いと思うのだが・・・。

BeagleV-Fire にwindowsからやっとログインできた(ただしVirtualboxが必要)

本記事よりも良い接続方法がわかったので以下の記事にまとめた。

xx-prime.hatenablog.com

BeagleV-Fireとは

一言でいうと、RISC-VのCPUとFPGAが載った素敵シングルボードコンピュータ。未来しか感じない。

クイックスタートを見てみる

docs.beagle.cc

これまでのBeagleboneシリーズと同様に、PCとUSBで接続するだけでOKなように見える。が、実はそれはウソだ。

WindowsにBeagleV-FireをUSBで接続してみる

まず、十分な電力を供給できるUSBポートに、BeagleV-FIreを接続すると、Windowsの設定→デバイス→その他のデバイスにBeagleV-Fireが現れる。

BeagleV-Fire はその他のデバイスに現れるが、ドライバーは使用できませんと表示される

しかし、「ドライバーは使用できません」と出ている。 BeagleV-Fireのサイトを探してみたが、これ用のUSBドライバは今のところ見つからない。 これまでのBeagleboneシリーズだと、USBドライバが当たるとネットワークデバイスがwindows上に生成されるのが普通だったが、BeagleV-Fireはドライバがないためネットワークデバイスは生成されない。 ここで一旦あきらめて1ヶ月ほど放置した。

webサーチ

webサーチをしたところ、windows上でvirtualbox内にlinuxホストを動作させてBeagleV-Fireと通信できたという書き込みを見つけた。メモってなかったのでリンクは貼れない。無念。

VirtualboxのUbuntuにBeagleV-Fireをつないでみる

WindowsPCにBeagleV-Fireをつなぎ、その他のデバイスのBeagleV-Fireが出ている状態でVirtualboxのUbuntuを立ち上げ、USB接続の選択肢の中からBeagleboneを選ぶ。

Virtualboxに現れたUSB下のBeagleV-Fire

[0404]のがそれ。

USB接続を tail -f /var/log/syslog で見てみる

Virtualbox内のLinuxでsyslogをtailしながら上記のUSB接続を行った結果が以下。

2024-03-06T22:26:20.043974+09:00 dirac kernel: [  208.789837] usb 2-1: new high-speed USB device number 2 using ehci-pci
2024-03-06T22:26:20.543991+09:00 dirac kernel: [  209.291739] usb 2-1: New USB device found, idVendor=1d6b, idProduct=0104, bcdDevice= 4.04
2024-03-06T22:26:20.544023+09:00 dirac kernel: [  209.291749] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2024-03-06T22:26:20.544027+09:00 dirac kernel: [  209.291753] usb 2-1: Product: BeagleBone
2024-03-06T22:26:20.544030+09:00 dirac kernel: [  209.291756] usb 2-1: Manufacturer: BeagleBoard.org
2024-03-06T22:26:20.544032+09:00 dirac kernel: [  209.291762] usb 2-1: SerialNumber: 1234BBBK5678
2024-03-06T22:26:20.590730+09:00 dirac mtp-probe: checking bus 2, device 2: "/sys/devices/pci0000:00/0000:00:1f.5/usb2/2-1"
2024-03-06T22:26:20.592633+09:00 dirac mtp-probe: bus: 2, device: 2 was not an MTP device
2024-03-06T22:26:20.704368+09:00 dirac kernel: [  209.441959] cdc_acm 2-1:1.2: ttyACM0: USB ACM device
2024-03-06T22:26:20.704396+09:00 dirac kernel: [  209.450089] usbcore: registered new interface driver cdc_acm
2024-03-06T22:26:20.704400+09:00 dirac kernel: [  209.450098] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
2024-03-06T22:26:20.725160+09:00 dirac kernel: [  209.471220] usbcore: registered new interface driver cdc_ether
2024-03-06T22:26:20.802902+09:00 dirac kernel: [  209.547430] cdc_ncm 2-1:1.0: MAC-Address: 00:04:a3:e5:99:39
2024-03-06T22:26:20.802924+09:00 dirac kernel: [  209.548189] cdc_ncm 2-1:1.0 eth0: register 'cdc_ncm' at usb-0000:00:1f.5-1, CDC NCM (NO ZLP), 00:04:a3:e5:99:39
2024-03-06T22:26:20.802927+09:00 dirac kernel: [  209.551873] usbcore: registered new interface driver cdc_ncm
2024-03-06T22:26:20.818423+09:00 dirac NetworkManager[564]: <info>  [1709731580.7993] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/3)
2024-03-06T22:26:20.828452+09:00 dirac kernel: [  209.574797] usbcore: registered new interface driver cdc_wdm
2024-03-06T22:26:20.838001+09:00 dirac kernel: [  209.586804] usbcore: registered new interface driver cdc_mbim
2024-03-06T22:26:20.861940+09:00 dirac mtp-probe: checking bus 2, device 2: "/sys/devices/pci0000:00/0000:00:1f.5/usb2/2-1"
2024-03-06T22:26:20.863692+09:00 dirac mtp-probe: bus: 2, device: 2 was not an MTP device
2024-03-06T22:26:20.875373+09:00 dirac (udev-worker)[3931]: 2-1: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:1f.5/usb2/2-1 189:129' failed with exit code 1.
2024-03-06T22:26:20.883280+09:00 dirac (udev-worker)[3931]: 2-1: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_ippeveprinter /devices/pci0000:00/0000:00:1f.5/usb2/2-1 189:129' failed with exit code 1.
2024-03-06T22:26:20.904128+09:00 dirac (udev-worker)[3934]: 2-1:1.1: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.1 0:0' failed with exit code 1.
2024-03-06T22:26:20.916853+09:00 dirac kernel: [  209.664338] cdc_ncm 2-1:1.0 enx0004a3e59939: renamed from eth0
2024-03-06T22:26:20.933606+09:00 dirac (udev-worker)[3931]: 2-1:1.3: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.3 0:0' failed with exit code 1.
2024-03-06T22:26:20.935609+09:00 dirac (udev-worker)[3934]: 2-1:1.1: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_ippeveprinter /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.1 0:0' failed with exit code 1.
2024-03-06T22:26:20.946584+09:00 dirac NetworkManager[564]: <info>  [1709731580.9461] device (eth0): interface index 3 renamed iface from 'eth0' to 'enx0004a3e59939'
2024-03-06T22:26:20.965150+09:00 dirac snapd[530]: hotplug.go:200: hotplug device add event ignored, enable experimental.hotplug
2024-03-06T22:26:20.974193+09:00 dirac (udev-worker)[3931]: 2-1:1.3: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_ippeveprinter /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.3 0:0' failed with exit code 1.
2024-03-06T22:26:20.997747+09:00 dirac (udev-worker)[3933]: 2-1:1.2: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.2 0:0' failed with exit code 1.
2024-03-06T22:26:21.036539+09:00 dirac NetworkManager[564]: <info>  [1709731581.0118] device (enx0004a3e59939): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
2024-03-06T22:26:21.036755+09:00 dirac NetworkManager[564]: <info>  [1709731581.0204] settings: (enx0004a3e59939): created default wired connection '有線接続 1'
2024-03-06T22:26:21.058522+09:00 dirac (udev-worker)[3933]: 2-1:1.2: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_ippeveprinter /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.2 0:0' failed with exit code 1.
2024-03-06T22:26:21.088057+09:00 dirac (udev-worker)[3931]: 2-1:1.0: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_cupsd /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.0 0:0' failed with exit code 1.
2024-03-06T22:26:21.094902+09:00 dirac (udev-worker)[3931]: 2-1:1.0: Process '/usr/lib/snapd/snap-device-helper bind snap_cups_ippeveprinter /devices/pci0000:00/0000:00:1f.5/usb2/2-1/2-1:1.0 0:0' failed with exit code 1.
2024-03-06T22:26:21.182449+09:00 dirac NetworkManager[564]: <info>  [1709731581.1790] device (enx0004a3e59939): carrier: link connected
2024-03-06T22:26:21.186478+09:00 dirac NetworkManager[564]: <info>  [1709731581.1850] device (enx0004a3e59939): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
2024-03-06T22:26:21.219134+09:00 dirac NetworkManager[564]: <info>  [1709731581.2048] policy: auto-activating connection '有線接続 1' (134244d1-ebd4-3a8a-b6ee-b7e7b8c02e44)
2024-03-06T22:26:21.222714+09:00 dirac NetworkManager[564]: <info>  [1709731581.2225] device (enx0004a3e59939): Activation: starting connection '有線接続 1' (134244d1-ebd4-3a8a-b6ee-b7e7b8c02e44)
2024-03-06T22:26:21.224111+09:00 dirac NetworkManager[564]: <info>  [1709731581.2237] device (enx0004a3e59939): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.229626+09:00 dirac NetworkManager[564]: <info>  [1709731581.2294] device (enx0004a3e59939): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.239209+09:00 dirac NetworkManager[564]: <info>  [1709731581.2390] device (enx0004a3e59939): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.252312+09:00 dirac NetworkManager[564]: <info>  [1709731581.2521] dhcp4 (enx0004a3e59939): activation: beginning transaction (timeout in 45 seconds)
2024-03-06T22:26:21.301247+09:00 dirac NetworkManager[564]: <info>  [1709731581.3011] dhcp4 (enx0004a3e59939): state changed new lease, address=192.168.7.1
2024-03-06T22:26:21.303763+09:00 dirac avahi-daemon[511]: Joining mDNS multicast group on interface enx0004a3e59939.IPv4 with address 192.168.7.1.
2024-03-06T22:26:21.306995+09:00 dirac avahi-daemon[511]: New relevant interface enx0004a3e59939.IPv4 for mDNS.
2024-03-06T22:26:21.307190+09:00 dirac avahi-daemon[511]: Registering new address record for 192.168.7.1 on enx0004a3e59939.IPv4.
2024-03-06T22:26:21.312555+09:00 dirac avahi-daemon[511]: Joining mDNS multicast group on interface enx0004a3e59939.IPv6 with address fe80::1683:8e58:dec3:f0c4.
2024-03-06T22:26:21.312749+09:00 dirac avahi-daemon[511]: New relevant interface enx0004a3e59939.IPv6 for mDNS.
2024-03-06T22:26:21.312860+09:00 dirac avahi-daemon[511]: Registering new address record for fe80::1683:8e58:dec3:f0c4 on enx0004a3e59939.*.
2024-03-06T22:26:21.403252+09:00 dirac dbus-daemon[512]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service' requested by ':1.10' (uid=0 pid=564 comm="/usr/sbin/NetworkManager --no-daemon" label="unconfined")
2024-03-06T22:26:21.403448+09:00 dirac NetworkManager[564]: <info>  [1709731581.3962] device (enx0004a3e59939): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.404002+09:00 dirac systemd[1]: Starting NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service...
2024-03-06T22:26:21.546342+09:00 dirac dbus-daemon[512]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
2024-03-06T22:26:21.546732+09:00 dirac systemd[1]: Started NetworkManager-dispatcher.service - Network Manager Script Dispatcher Service.
2024-03-06T22:26:21.568892+09:00 dirac NetworkManager[564]: <info>  [1709731581.5664] device (enx0004a3e59939): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.581231+09:00 dirac NetworkManager[564]: <info>  [1709731581.5667] device (enx0004a3e59939): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
2024-03-06T22:26:21.581386+09:00 dirac NetworkManager[564]: <info>  [1709731581.5676] device (enx0004a3e59939): Activation: successful, device activated.
2024-03-06T22:26:31.973542+09:00 dirac systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.

ちょっとこのコードブロックの貼り付けかたには改善が必要だ。

なんかよくわからんがUSB接続のネットワークデバイスが生成されたように見える。

ip a でVirtualboxのLinuxホストのネットワークデバイスを見てみる

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:79:aa:df brd ff:ff:ff:ff:ff:ff
    inet 172.17.29.58/24 brd 172.17.29.255 scope global dynamic noprefixroute enp0s3
       valid_lft 6753sec preferred_lft 6753sec
    inet6 fe80::a00:27ff:fe79:aadf/64 scope link
       valid_lft forever preferred_lft forever
3: enx0004a3e59939: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:04:a3:e5:99:39 brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.1/24 brd 192.168.7.255 scope global dynamic noprefixroute enx0004a3e59939
       valid_lft 949sec preferred_lft 949sec
    inet6 fe80::1683:8e58:dec3:f0c4/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

無事に192.168.7.1のネットワークデバイスが生成された。これでBeagleV-Fireの192.168.7.2にsshでログインできる。

VirtualboxのLinuxホストからBeagleV-Fireにsshでログイン

$ ssh 192.168.7.2 -l beagle
Ubuntu 23.04

BeagleBoard.org Ubuntu 23.04 Console Image 2023-10-16
Support: https://bbb.io/debian
default username:password is [beagle:temppwd]

beagle@192.168.7.2's password:
Last login: Thu Oct 26 02:58:41 2023 from 192.168.7.1
beagle@BeagleV:~$

ようやく入れた!見ての通り、ユーザ名はbeagleでパスワードはtemppwdである。Ubuntu Linux 23.04が動いとる。RISC-Vで普通にUbuntuが動くなんて素敵すぎる。

BeagleV-Fireのネットワークデバイスを見てみる

beagle@BeagleV:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:04:a3:e5:99:37 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:04:a3:e5:99:36 brd ff:ff:ff:ff:ff:ff
    altname end0
4: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1000
    link/tunnel6 :: brd :: permaddr 6ed6:9f50:72e2::
5: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:04:a3:e5:99:3a brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.2/24 brd 192.168.7.255 scope global usb0
       valid_lft forever preferred_lft forever
    inet6 fe80::204:a3ff:fee5:993a/64 scope link
       valid_lft forever preferred_lft forever
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:1e:54:73:cc brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

なんじゃこりゃー。なんかdockerが蠢いてるようだ。usb0が、今回のssh通信で使われているネットワークデバイスである。

しかし購入してからログインするまで1ヶ月かかるとはさすが俺としか言いようがない。

あのsyslogを丹念に見れば、windowsに当てるべきusb driverがわかるかもしれない。

夜も更けてきたのでここまでにしよう。

本記事よりも良い接続方法がわかったので以下の記事にまとめた。

xx-prime.hatenablog.com

Epiphone les paul modern の abr-1 ブリッジを nashvilleタイプ (GOTOH GE103B-T Nickel) に無加工で換装できた

Epiphone les paul modern の唯一の不満点がabr-1タイプのブリッジ

Epiphone の les paul modern は les paul を現代的なテクノロジーで刷新したらどうなるかを具現化したもので、演奏性が向上し、 出音のバリエーションが増えているなど素晴らしいギターである。 が、不満点が一つだけあり、古い設計のabr-1タイプのブリッジが搭載されている。

les paul タイプのギターには、abr-1タイプという古いタイプのブリッジと、nashvilleタイプという新しいタイプのブリッジの二種類のうちどちらかが搭載されている。 abr-1は古いブリッジで、サドルの可動範囲が狭いという欠点があり、特にG弦でサドルが十分にブリッジ側に移動できないという問題がある。 abr-1のG弦サドルの向きを逆にすることでこの問題を解決できるが、あくまでもwork around的な方法である。 また、abr-1にはサドルの脱落を防ぐためのワイヤーがあり、これが無駄な共振を生むことがあるというのも問題点として挙げられる。 これらのabr-1の問題点を解決したのが nashville ブリッジで、サドルの可動範囲の拡大と、サドル固定ワイヤーの除去が主な改善点である。

Epiphone の les paul modern に搭載されているabr-1タイプのブリッジを、nashvilleタイプに換装すれば唯一の欠点が解消される。なお、gibsonのles paul modernでは当然のことながらnashvilleタイプのブリッジが搭載されている。

どのnashville ブリッジが Epiphone les paul modern に合うのか?

信頼と実績のあるGOTOHのブリッジの中から換装候補を選定した。 まず、les paul に合うタイプ(TOMタイプ)でGOTOH製のnashvilleタイプのブリッジはスタッドの構造の違いで二種類ある。

  1. GE-103B  スタッドを直接ボディにねじ込むタイプ
  2. GE-103B-T  アンカーをボディに打ち込んで、そこにスタッドをねじ込むタイプ

Epiphoneのles paul modernは、アンカーがボディに打ち込んであるタイプなので、適合するのはGE-103B-Tの方である。

また、GE103B-Tは表面のメッキ塗装の違いでさらに5種類のタイプがある。

Epiphoneのles paul modernは、ハードウェア塗装がニッケルなので、最終的に選定されたのは

GE103B-T Nickel

であった。間違ってChromeを選んでしまうと、ブリッジ部分だけ白っぽい色味になってしまうので注意が必要である。

換装作業

  1. 弦を緩める
  2. テイルピースのねじを緩めて除去する
  3. ブリッジを抜き取る
  4. スタッドボルト2本を緩めて抜き取る
  5. 新しいスタッドボルト2本をねじ込む
  6. 新しいブリッジをはめ込む
  7. テイルピースを取り付ける
  8. 弦をチューニングする

換装前と換装後の写真は以下の通り。

換装前 Epiphone LockTone™ Tune-O-Matic™

オクターブチューニングを済ませた後。1~3弦のサドルの向きを反対にしてある。3弦と6弦のサドルの位置がかなりギリギリ。

換装前 Epiphone Epiphone LockTone™ Tune-O-Matic™

換装後 GOTOH GE103B-T Nickel

オクターブチューニングを済ませた後。全サドルの位置にまだまだ余裕がある。

換装後 GOTOH GE103B-T Nickel

なお、テイルピース部分にガウスぼかしをかけているのは、俺のイケメンフェイスが映り込んでいるから。

10分もかからず無加工で換装は完了した。古い弦を外して捨ててしまう場合はテイルピースの除去と取り付け作業は省略可能。また、スタッドボルトも換装せずそのまま流用できるが、ねじ径とピッチがピッタリ合ったので新しいほうを使うことにした。

サドル調整ネジの方向は、abr-1がネック側、nashvilleがブリッジ側を向くのが正しいようなのでそれに従った。この方向の違いによるオクターブ調整のやりやすさの違いについては、nashvilleのほうが優れている。

換装結果

オクターブチューニングのサドル位置に余裕があり、様々な弦に対応できるようになった。また、サドル固定ワイヤーが無くなったので、無駄な共振の可能性も除去できた。オクターブチューニングもやりやすくなって、換装は成功と判断できる。総合的な機能性を求める場合はnashville一択と言って良いだろう。

一点だけ考慮点があり、ブリッジのガタツキの有無は、換装前のEpiphone のabr-1のほうが優れていた。Epiphoneのabr-1はガタツキ防止のためのバネ機構が内蔵されていて、ブリッジのバネがスタッドを噛み込むような構造になっていたため、ガタツキが全くなかった。が、GOTOHのGE103B-Tにはそのような機構がないので、スタッドとブリッジ穴の間に若干の余裕があって、弦を張らない状態でのガタツキはあり、簡単に抜け落ちる。この点だけは換装後に機能低下したと言える。とはいえ、これが演奏時や弦交換時に問題になるかと言えば全くそんなことはない。なお、このガタツキの程度は換装前のスタッドをそのまま使った時と、GE-103B-Tに同梱の新しいスタッドを使った時で差はなかった。

本記事の執筆時のweb上の情報では、nashvilleタイプをabr-1タイプに換装するというものしか見つからず、 逆の換装に関する情報が見つからなかったので、この記事がweb上の情報空間の拡張に少しは寄与すると思われる。

Epiphone へのお願い

LockToneと同様のスタッドロック機構を持ったnashvilleタイプのブリッジを作って下さい。

GOTOHへのお願い

スタッドを噛み込んで固定するバネ機構をGE103B-Tに追加してください。

Amazonを騙るスパムメールがひどすぎるのでthunderbirdのカスタムフィルタで即spamフォルダ行きにする

ここ数日ひどすぎる

【重要なお知らせ】Amazonから情報を確認をお願いします

という件名のスパムメールが数日前から一日に10通以上届くようになって不愉快極まりない。 これらクソメールのヘッダを確認してみると

Received: by VM-0-7-centos.localdomain (Postfix, from userid 0)

とか

Received: by VM-4-14-centos.localdomain (Postfix, from userid 0)

とかいう感じで、同パターンの仮想っぽいホストから来ているのがわかる。

"-centos.localdomain" が共通しているので、これらクソスパム用クソ仮想クソホスト群からのクソメール群はクソ問答無用でクソ迷惑メールクソフォルダ行きにするクソ。

thunderbirdのフィルタ設定

thunderbirdのハンバーガーメニューから、ツール→メッセージフィルターを選択する。

新規をクリックする。

フィルター名に適切な名称を入れて、件名タブからカスタムヘッダーを選択する。

Receivedを入力して追加をクリックする。

「に次を含む」、の右に -centos.localdomain を入力する。メッセージを移動する、に適切なフォルダを選択する。

こんな感じになってればOK。

これで、クソスパムメールを見ずに済む。

きっと、そのうち別のホストから同じようなクソスパムメールが届くようになるだろうけど、同様にReceivedに共通パターンがあるだろうから対処できよう。