2024/09/01(日) [n年前の日記]
#1 [linux][editor] ne (nice editor)を試用
Linux の仮想端末上で使える ne (nice editor) というテキストエディタの情報を目にしたので試用してみた。nano と似た感じで使えるエディタらしい。
環境は、Windows10 x64 22H2 + VMware Workstation 17 Pro 17.5.2 build-23775571 + Ubuntu Linux 20.04 LTS。
_ne, the nice editor
_ne (テキストエディタ) - Wikipedia
_Ubuntu Manpage: ne - A nice editor
注意点。ne という同じ名前で、全然違うテキストエディタも存在しているらしい…。ややこしい…。
インストールは以下。
「ne」、もしくは 「ne ファイル名」で起動する。
ショートカットキーは、一般的なWindows用アプリケーションと似せてある模様。
スクリーンショットを見たらメニュー表示があって「?」となったけど、ESCキーを2回叩けば出てくるらしい。メニューがあるだけでも色々操作できそうな気分になるなと…。
環境は、Windows10 x64 22H2 + VMware Workstation 17 Pro 17.5.2 build-23775571 + Ubuntu Linux 20.04 LTS。
_ne, the nice editor
_ne (テキストエディタ) - Wikipedia
_Ubuntu Manpage: ne - A nice editor
注意点。ne という同じ名前で、全然違うテキストエディタも存在しているらしい…。ややこしい…。
インストールは以下。
sudo apt install ne
「ne」、もしくは 「ne ファイル名」で起動する。
ショートカットキーは、一般的なWindows用アプリケーションと似せてある模様。
- Ctrl + q : 終了
- Ctrl + o : ファイルを開く
- Ctrl + s : ファイルを上書き保存
- Ctrl + c : コピー
- Ctrl + x : 切り取り
- Ctrl + v : 貼り付け
- ESC + ESC : 上部にメニューを表示。カーソルキーで機能を選べる
スクリーンショットを見たらメニュー表示があって「?」となったけど、ESCキーを2回叩けば出てくるらしい。メニューがあるだけでも色々操作できそうな気分になるなと…。
[ ツッコむ ]
#2 [linux][windows][editor] micro editorを試用
Linuxの仮想端末上で使えるテキストエディタ、micro editor を試用してみた。これも nano と似た感じで使えるらしい。
環境は、Windows10 x64 22H2 + VMware Workstation 17 Pro 17.5.2 build-23775571 + Ubuntu Linux 20.04 LTS。
_Micro - Home
_いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
インストールは以下。
micro もしくは micro ファイル名、で起動する。
ショートカットキーは以下のような感じ。
一般的なWindows用アプリケーションのショートカットキーと一致させている部分が多いテキストエディタらしい。Windowsでの操作に慣れている場合は、nano よりは使いやすいかもしれない。
しかし、例えば ~/.icewm/toolbar を開いた場合、micro editor は色付け表示してくれないけれど、nano なら色付け表示してくれる。
更に nano なら、日本語表示でキー割り当てを画面に常時表示してくれてるので、少し注意して使えば nano でも事足りるのではないかという気もする…。
環境は、Windows10 x64 22H2 + VMware Workstation 17 Pro 17.5.2 build-23775571 + Ubuntu Linux 20.04 LTS。
_Micro - Home
_いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
インストールは以下。
sudo apt install micro
micro もしくは micro ファイル名、で起動する。
ショートカットキーは以下のような感じ。
- Ctrl + g : ヘルプ表示
- Ctrl + q : 終了
- Ctrl + o : ファイルを開く
- Ctrl + s : ファイルを上書き保存
- Ctrl + c : コピー
- Ctrl + x : 切り取り
- Ctrl + v : 貼り付け
- Alt + g : ショートカットキー表示。再度 Alt+g を叩けば消える。
一般的なWindows用アプリケーションのショートカットキーと一致させている部分が多いテキストエディタらしい。Windowsでの操作に慣れている場合は、nano よりは使いやすいかもしれない。
しかし、例えば ~/.icewm/toolbar を開いた場合、micro editor は色付け表示してくれないけれど、nano なら色付け表示してくれる。
更に nano なら、日本語表示でキー割り当てを画面に常時表示してくれてるので、少し注意して使えば nano でも事足りるのではないかという気もする…。
◎ ファイルタイプの変更方法 :
ファイルを開いてから、そのファイルのファイルタイプを変更することができると分かった。
Ctrl + e を打つと「>」が表示されて入力待ちになるので、set filetype conf と打ってやれば設定ファイル類の色付け表示(シンタックスハイライト)になる。例えば ~/.icewm/toolbar も、上記の指定をすれば色付け表示された。
_How to set syntax for config files without extension? - Issue #2080 - zyedidia/micro
事前に、設定ファイルに指定を記述しておくこともできる。~/.config/micro/settings.json が micro editor の設定ファイルなので、その最後のほうに、例えば以下のような感じで記述をしておけば、そのファイルを開いた際のファイルタイプを指定できる。
Ctrl + e を打つと「>」が表示されて入力待ちになるので、set filetype conf と打ってやれば設定ファイル類の色付け表示(シンタックスハイライト)になる。例えば ~/.icewm/toolbar も、上記の指定をすれば色付け表示された。
_How to set syntax for config files without extension? - Issue #2080 - zyedidia/micro
事前に、設定ファイルに指定を記述しておくこともできる。~/.config/micro/settings.json が micro editor の設定ファイルなので、その最後のほうに、例えば以下のような感じで記述をしておけば、そのファイルを開いた際のファイルタイプを指定できる。
{ (中略) "/home/(USERNAME)/.icewm/toolbar": { "filetype": "conf" }, "/home/(USERNAME)/.icewm/preferences": { "filetype": "conf" } }
◎ micro editorをWindowsにもインストール :
micro editor は Windows版もあるので、micro editor 2.0.14 をWindows10 x64 22H2上でもインストールしてみた。
_Release 2.0.14 - zyedidia/micro
micro-2.0.14-win32.zip を入手して解凍。中に入っている以下のファイルを、パスの通った任意のフォルダに置いた。
DOS窓やWindowsターミナルで、micro と打てば起動する。
_Release 2.0.14 - zyedidia/micro
micro-2.0.14-win32.zip を入手して解凍。中に入っている以下のファイルを、パスの通った任意のフォルダに置いた。
micro.1 micro.desktop micro.exe micro.svg
DOS窓やWindowsターミナルで、micro と打てば起動する。
◎ MSYS2上でもインストール :
MSYS2上でもパッケージが用意されていた。32bit版は無くて64bit版のみの模様。
_Package: mingw-w64-x86_64-micro - MSYS2 Packages
これもインストールしてみた。
micro と打てば起動する。
余談。環境情報を表示してくれる neofetch もパッケージになっていることに気づいたのでインストールしておいた。
_Base Package: neofetch - MSYS2 Packages
_Package: mingw-w64-x86_64-micro - MSYS2 Packages
これもインストールしてみた。
pacman -S mingw-w64-x86_64-micro
micro と打てば起動する。
余談。環境情報を表示してくれる neofetch もパッケージになっていることに気づいたのでインストールしておいた。
pacman -S neofetch neofetch
_Base Package: neofetch - MSYS2 Packages
[ ツッコむ ]
2024/09/02(月) [n年前の日記]
#1 [pc] NVMe SSDをM.2 SSDケースに入れてみた
弟から貰った NVMe SSD を M.2 SSDケースに入れてみた。
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C スペック・仕様
_HDE-13A | Ainex
CrystalDiskMark 8.0.4 を使ってベンチマークも取ってみた。
なんだかビミョーな速度…。ううーん。
以下に、SATA接続 HDDと、SATA接続2.5インチSSDの結果を並べてみるけど…。
今回のUSB3.0接続SSDは、SATA接続のHDDより3倍ぐらい速い。しかし、SATA接続の2.5インチSSDと比べると読み込みが遅い…。
更に調べてみたところ、このSSDは本来の接続の仕方 ―― M/B の M.2 SSD端子に接続した場合、これより一桁高い速度を出してくれる可能性があるらしい。数倍どころではなく、マジで一桁違う。
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C atatame03さんのレビュー・評価投稿画像・写真「高コスパで文句なしの性能」[531637]
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C Selubiさんのレビュー・評価投稿画像・写真「2TBのコスパならこれ」[504851]
ただ、M/B上で差してしまうと、PCケース内で熱源が一つ増える。この手のSSDって発熱がスゴイとも聞くので不安…。これがもし、USB3.0接続のSSDケースに入れた場合、速度は出ないけれど、その代わり発熱も少なくて済みそうだよなと…
内蔵も検討して、M.2 SSD用のヒートシンクについてググって眺めてみたけれど、ヒートシンクを抑えるシリコンゴムが数ヶ月で劣化してボロボロになるという話も見かけて…。皆どうやって固定してるんだ…。
- SSD ADATA XPG SX8200 Pro (ASX8200PNP-2TT-C, M.2 Type2280 PCIe Gen3x4, 2TB, 3D TLC)
- M.2対応 SSDケース AINEX HDE-13A (NVMeのみ対応, USB 3.2 Gen 2, NVM Express 1.3, Key M, 2280専用)
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C スペック・仕様
_HDE-13A | Ainex
CrystalDiskMark 8.0.4 を使ってベンチマークも取ってみた。
------------------------------------------------------------------------------ CrystalDiskMark 8.0.4 x64 (C) 2007-2021 hiyohiyo Crystal Dew World: https://crystalmark.info/ ------------------------------------------------------------------------------ * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes [Read] SEQ 1MiB (Q= 8, T= 1): 381.151 MB/s [ 363.5 IOPS] < 21946.83 us> SEQ 1MiB (Q= 1, T= 1): 365.875 MB/s [ 348.9 IOPS] < 2865.20 us> RND 4KiB (Q= 32, T= 1): 230.490 MB/s [ 56272.0 IOPS] < 567.78 us> RND 4KiB (Q= 1, T= 1): 41.249 MB/s [ 10070.6 IOPS] < 99.20 us> [Write] SEQ 1MiB (Q= 8, T= 1): 412.651 MB/s [ 393.5 IOPS] < 20254.67 us> SEQ 1MiB (Q= 1, T= 1): 390.950 MB/s [ 372.8 IOPS] < 2680.16 us> RND 4KiB (Q= 32, T= 1): 220.855 MB/s [ 53919.7 IOPS] < 592.97 us> RND 4KiB (Q= 1, T= 1): 70.906 MB/s [ 17311.0 IOPS] < 57.65 us> Profile: Default Test: 128 MiB (x3) [W: 0% (0/1908GiB)] Mode: [Admin] Time: Measure 5 sec / Interval 5 sec Date: 2024/09/01 19:47:45 OS: Windows 10 Professional [10.0 Build 19045] (x64) Comment: ADATA XPG SX8200 Pro USB3.0接続
なんだかビミョーな速度…。ううーん。
以下に、SATA接続 HDDと、SATA接続2.5インチSSDの結果を並べてみるけど…。
今回のUSB3.0接続SSDは、SATA接続のHDDより3倍ぐらい速い。しかし、SATA接続の2.5インチSSDと比べると読み込みが遅い…。
更に調べてみたところ、このSSDは本来の接続の仕方 ―― M/B の M.2 SSD端子に接続した場合、これより一桁高い速度を出してくれる可能性があるらしい。数倍どころではなく、マジで一桁違う。
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C atatame03さんのレビュー・評価投稿画像・写真「高コスパで文句なしの性能」[531637]
_価格.com - ADATA XPG SX8200 Pro ASX8200PNP-2TT-C Selubiさんのレビュー・評価投稿画像・写真「2TBのコスパならこれ」[504851]
ただ、M/B上で差してしまうと、PCケース内で熱源が一つ増える。この手のSSDって発熱がスゴイとも聞くので不安…。これがもし、USB3.0接続のSSDケースに入れた場合、速度は出ないけれど、その代わり発熱も少なくて済みそうだよなと…
- 速度が遅い代わりに発熱は気にしなくて済む外付けで使うか
- それとも、本来の速度を出せるけど熱で壊れないか不安になる内蔵で使うか
内蔵も検討して、M.2 SSD用のヒートシンクについてググって眺めてみたけれど、ヒートシンクを抑えるシリコンゴムが数ヶ月で劣化してボロボロになるという話も見かけて…。皆どうやって固定してるんだ…。
◎ 内蔵SSDのファイルをコピーしてみた :
HDD-Scan 2.0 を使ってエラーが出ないことを確認した後、内蔵SSD PLEXTOR PX-256M2P に入っていたゲーム関連ファイルを、この外付けSSDにコピーしてみた。
FireFileSync を使って、CRCを取りつつベリファイしながらコピーしてみたところ、大量にファイルコピーエラーが出た。転送先のSSDの問題ではなく、転送元、内蔵SSD PLEXTOR PX-256M2P 内のファイルが壊れてしまっていたらしい。
ここ最近、特定のシーンデータを読み込もうとした際にゲーム自体が落ちてしまって悩んでいたけれど、データファイルが正常に読み込めない状態になっていたから落ちていたのだな…。
幸い、コピーエラーが出たファイルは外付けHDDに残っていたので、エラーが出たファイルだけ、外付けHDDからコピーしてきた。ゲームも正常に動作するようになってくれた。
内蔵SSDに対して、管理者権限でDOS窓を開いて chkdsk X: /R をかけてみたら、不良セクタ云々が大量に出てきた。弟から、「なんだか動作が怪しい気がするから欲しいならやるよ」と言われて貰ったSSDだったけど、本当に怪しいSSDだった模様…。
FireFileSync を使って、CRCを取りつつベリファイしながらコピーしてみたところ、大量にファイルコピーエラーが出た。転送先のSSDの問題ではなく、転送元、内蔵SSD PLEXTOR PX-256M2P 内のファイルが壊れてしまっていたらしい。
ここ最近、特定のシーンデータを読み込もうとした際にゲーム自体が落ちてしまって悩んでいたけれど、データファイルが正常に読み込めない状態になっていたから落ちていたのだな…。
幸い、コピーエラーが出たファイルは外付けHDDに残っていたので、エラーが出たファイルだけ、外付けHDDからコピーしてきた。ゲームも正常に動作するようになってくれた。
内蔵SSDに対して、管理者権限でDOS窓を開いて chkdsk X: /R をかけてみたら、不良セクタ云々が大量に出てきた。弟から、「なんだか動作が怪しい気がするから欲しいならやるよ」と言われて貰ったSSDだったけど、本当に怪しいSSDだった模様…。
[ ツッコむ ]
2024/09/03(火) [n年前の日記]
#1 [pc] NVMe SSDをM/Bに載せてみた
昨日、NVMe接続用SSD ADATA XPG SX8200 Pro 2TB (ASX8200PNP-2TT-C) を、USB3.0接続外付けM.2対応SSDケースに入れて動作確認していたのだけど。
読み取り/書き込み速度が、本来の速度より一桁遅い点が気になって…。試しに、M/B上でNVMe接続してみることにした。
_B450M S2H (rev. 1.x) 主な特徴 | マザーボード - GIGABYTE Japan
このM/Bの _「M.2サポートリスト」 には記述が無かったので、使えるのかどうか不安だったけど、フツーに認識してくれた。助かった…。
CrystalDiskMark 8.0.4 で速度を測定してみたら、以下のような結果になった。
USB3.0接続した場合の結果は以下。
本当に一桁違っている。
読み取り/書き込み速度が、本来の速度より一桁遅い点が気になって…。試しに、M/B上でNVMe接続してみることにした。
- SSD : ADATA XPG SX8200 Pro (ASX8200PNP-2TT-C, M.2 Type2280 PCIe Gen3x4, 2TB, 3D TLC)
- M/B : GIGABYTE B450M S2H rev. 1.x
- CPU : AMD Ryzen 5 5600X
_B450M S2H (rev. 1.x) 主な特徴 | マザーボード - GIGABYTE Japan
このM/Bの _「M.2サポートリスト」 には記述が無かったので、使えるのかどうか不安だったけど、フツーに認識してくれた。助かった…。
CrystalDiskMark 8.0.4 で速度を測定してみたら、以下のような結果になった。
------------------------------------------------------------------------------ CrystalDiskMark 8.0.4 x64 (C) 2007-2021 hiyohiyo Crystal Dew World: https://crystalmark.info/ ------------------------------------------------------------------------------ * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 1024 bytes [Read] SEQ 1MiB (Q= 8, T= 1): 3498.779 MB/s [ 3336.7 IOPS] < 2396.19 us> SEQ 1MiB (Q= 1, T= 1): 3185.873 MB/s [ 3038.3 IOPS] < 328.97 us> RND 4KiB (Q= 32, T= 1): 601.981 MB/s [ 146968.0 IOPS] < 210.78 us> RND 4KiB (Q= 1, T= 1): 61.509 MB/s [ 15016.8 IOPS] < 66.45 us> [Write] SEQ 1MiB (Q= 8, T= 1): 3040.466 MB/s [ 2899.6 IOPS] < 2751.54 us> SEQ 1MiB (Q= 1, T= 1): 2809.928 MB/s [ 2679.8 IOPS] < 372.89 us> RND 4KiB (Q= 32, T= 1): 436.586 MB/s [ 106588.4 IOPS] < 299.96 us> RND 4KiB (Q= 1, T= 1): 223.573 MB/s [ 54583.3 IOPS] < 18.22 us> Profile: Default Test: 128 MiB (x3) [X: 17% (323/1908GiB)] Mode: [Admin] Time: Measure 5 sec / Interval 5 sec Date: 2024/09/03 8:16:15 OS: Windows 10 Professional [10.0 Build 19045] (x64) Comment: ADATA XPG SX8200 Pro 2TB NVMe接続
USB3.0接続した場合の結果は以下。
本当に一桁違っている。
◎ 発熱が心配 :
速くなった分、発熱も凄かった。アイドル時40度が、アクセスを始めると一瞬で54度まで上がった。ちなみに、USB3.0接続時は、アイドル時33度、アクセス時41度ぐらいだった。
もっとも、このSSDは、Gen3 なる区分の製品だそうで…。もっと高速な Gen4、Gen5 があるらしいけど、それらに比べると Gen3 は、速度が遅い分、発熱も少ないのだとか。これでもマシなほうなのか…。
この製品のパッケージには、ヒートシンクと称している一枚の黒い板が同梱されていて、一応ソレは貼ってある状態だけど。各種レビュー記事によると「ほとんどお飾りみたいなもの」との話もあって…。もうちょっとソレらしいヒートシンクを使ったほうが安心できるのだろうか。でも、固定方法で悩む…。シリコンゴムは数ヶ月で劣化してボロボロになるという話ばかり見かけるし…。
まあ、アクセスが速いということは、アクセスしてる時間も短くなるはずだから、すぐアイドル状態になってくれるだろうし。ある温度を超えると壊れないように速度を落としてくれるという話も見かけたので…。壊れないといいな…。
もっとも、このSSDは、Gen3 なる区分の製品だそうで…。もっと高速な Gen4、Gen5 があるらしいけど、それらに比べると Gen3 は、速度が遅い分、発熱も少ないのだとか。これでもマシなほうなのか…。
この製品のパッケージには、ヒートシンクと称している一枚の黒い板が同梱されていて、一応ソレは貼ってある状態だけど。各種レビュー記事によると「ほとんどお飾りみたいなもの」との話もあって…。もうちょっとソレらしいヒートシンクを使ったほうが安心できるのだろうか。でも、固定方法で悩む…。シリコンゴムは数ヶ月で劣化してボロボロになるという話ばかり見かけるし…。
まあ、アクセスが速いということは、アクセスしてる時間も短くなるはずだから、すぐアイドル状態になってくれるだろうし。ある温度を超えると壊れないように速度を落としてくれるという話も見かけたので…。壊れないといいな…。
◎ 余談。AINE HDE-13Aについて :
昨日使用した、USB3.0接続外付け M.2 SSDケース AINEX HDE-13A だけど、せっかくだから写真を撮ってみた。
使用チップは、JMS583 らしい。
ググってみたら、JMS583 は AMD B450チップセットとの組み合わせだと不具合が起きるという話が…。自分の使ってる M/B とは相性が悪い可能性があるのだな…。
昨日は、Anker製USB3.0ハブ経由で繋いでいたのだけど、そういう構成なら不具合が緩和されたりしないかな…。どうなんだろう。
使用チップは、JMS583 らしい。
ググってみたら、JMS583 は AMD B450チップセットとの組み合わせだと不具合が起きるという話が…。自分の使ってる M/B とは相性が悪い可能性があるのだな…。
昨日は、Anker製USB3.0ハブ経由で繋いでいたのだけど、そういう構成なら不具合が緩和されたりしないかな…。どうなんだろう。
◎ 余談その2。SSDを取り付けた状態 :
[ ツッコむ ]
2024/09/04(水) [n年前の日記]
#1 [linux][ubuntu][pc] Ubuntu機のHDDをSSDに換装
256GBのSSDが一つ浮いたので、Ubuntu Linux 22.04 LTSをインストールして使っているサブPCのHDDをSSDに換装してみた。ただし、転送元HDDの容量は1GB、転送先SSDの容量は256GB。大容量のストレージから小容量のストレージにクローンする作業になる。
HDDとSSDの型番は以下。
CPUやM/Bは以下。
HDDとSSDは、どちらもSATA接続した。
HDDとSSDの型番は以下。
- HDD : Western Digital Caviar Black WD1002FAEX-00Z3A0 (1TB, SATA600, 7200rpm, cache 64MB, 5V:0.68A, 12V:0.55A, 1プラッタ:500GB)
- SSD : PLEXTOR PX-256M2P (256GB. 2.5インチSSD)
CPUやM/Bは以下。
- CPU : Intel Core i3-6100T (Skylake 第6世代, 2コア4スレッド, 3.2GHz, TDP35W, 3次キャッシュ3MB, LGA1151, 内蔵GPU Intel HD Graphics 530)
- M/B : ASRock Z170M EXTREME4 (Z170M EXTREAME4/M/ASRK, MicroATX, LGA1151, 第6世代 Skylake と第7世代 Kaby Lake に対応, チップセット Z170, DDR4 3466+(OC)/3200(OC)/2933(OC)/2800(OC)/2400(OC)/2133, 最大64GB, 275x260x60mm)
- RAM : PATRiOT PS001456-PSD48G2666KH 8GB (4GB x 2, DIMM, DDR4 SDRAM, UDIM, 2666MHz, PC4-21300(DDR4-2666), SPD: DDR4-2666 CL19-19-19-43 1.2V)
HDDとSSDは、どちらもSATA接続した。
◎ GPartedを入手 :
GParted Live CD を使って、転送元HDDの各パーティションを縮小リサイズして、全体的にSSDの容量に ―― 256GB以下に収める。
_GParted -- A free application for graphically managing disk device partitions
_GParted -- Download
この手の作業に必要になるのは以下のツール。
ちなみに、KNOPPIX 9.1 DVD が起動するUSBメモリでも試してみたけれど、そちらに入ってる GParted はリサイズ処理すらエラーを出してしまって正常に動かなかった。GParted Live CD を使ったほうがハマらずに済むかも。ISOのサイズも小さくて済むし。
gparted-live-1.6.0-3-i686.iso (483MB) を入手。
USBメモリにISOを入れて起動させるために、UNetbootin (unetbootin-windows-702.exe) も入手。
_UNetbootin - Homepage and Downloads
Windows10 x64 22H2上で UNetbootin を起動して、Gparted の iso をUSBメモリに書き込んだ。USBメモリは16GBの品を使ったけれど、今回は 2GB 程度あれば足りたかもしれない。
何はともあれ、Gparted Live CD が入ったUSBメモリで起動。
_GParted -- A free application for graphically managing disk device partitions
_GParted -- Download
この手の作業に必要になるのは以下のツール。
- GParted
- ddrescue
- testdisk
ちなみに、KNOPPIX 9.1 DVD が起動するUSBメモリでも試してみたけれど、そちらに入ってる GParted はリサイズ処理すらエラーを出してしまって正常に動かなかった。GParted Live CD を使ったほうがハマらずに済むかも。ISOのサイズも小さくて済むし。
gparted-live-1.6.0-3-i686.iso (483MB) を入手。
USBメモリにISOを入れて起動させるために、UNetbootin (unetbootin-windows-702.exe) も入手。
_UNetbootin - Homepage and Downloads
Windows10 x64 22H2上で UNetbootin を起動して、Gparted の iso をUSBメモリに書き込んだ。USBメモリは16GBの品を使ったけれど、今回は 2GB 程度あれば足りたかもしれない。
何はともあれ、Gparted Live CD が入ったUSBメモリで起動。
- VGA云々と表示されてる3番目の項目を選ぶ。
- Keymap はそのまま。
- Laungauge は Japan を選択。15 を入力。
- 0を選んでX11を起動。
◎ ddrescueでディスクを丸々コピー :
GParted でリサイズや移動をして、SSDの容量、256GBより少ない感じにまとめたら、GParted を終了。Terminal を起動。ddrescue を使って、セクタ単位で、ディスクを丸々コピーする。
一般的には dd を使って作業することが多いらしいけど、ddは不良セクタがあった場合にそこで処理が止まってしまうらしい。ddrescue なら不良セクタはスキップして処理してくれるのだとか。
dd にしろ ddrescue にしろ、転送先SSDの容量が小さいので、「これ以上転送できない」「サイズがおかしい」的なエラーが最後に出てくるけれど、そこは無視して作業する。後で testdisk を使って不整合な部分を修正してしまうので…。
転送元HDDが /dev/sda、転送先SSDが /dev/sdc なら、以下のように打つ。
今回の、SATA接続で、HDD → SSD に256GBを転送する処理では、1時間ほどで終わってくれた。なんだか早過ぎる気もするけど…。
一般的には dd を使って作業することが多いらしいけど、ddは不良セクタがあった場合にそこで処理が止まってしまうらしい。ddrescue なら不良セクタはスキップして処理してくれるのだとか。
dd にしろ ddrescue にしろ、転送先SSDの容量が小さいので、「これ以上転送できない」「サイズがおかしい」的なエラーが最後に出てくるけれど、そこは無視して作業する。後で testdisk を使って不整合な部分を修正してしまうので…。
転送元HDDが /dev/sda、転送先SSDが /dev/sdc なら、以下のように打つ。
sudo ddrescue -f -v /dev/sda /dev/sdc logfile.log-f は上書き指定。-v は詳細表示(進捗状態の表示)。logfile.log は、ログファイル名。
今回の、SATA接続で、HDD → SSD に256GBを転送する処理では、1時間ほどで終わってくれた。なんだか早過ぎる気もするけど…。
◎ testdiskで修復 :
testdisk を使って、パーティションテーブルがおかしくなった状態のSSDを修復。
操作は以下を参考にした。
_パーティション情報を削除してしまったHDDの復旧を Ubuntu 上の TestDisk を用いて復旧する。 - KusoBoze is here.
sudo testdisk
操作は以下を参考にした。
_パーティション情報を削除してしまったHDDの復旧を Ubuntu 上の TestDisk を用いて復旧する。 - KusoBoze is here.
◎ UUIDを変更したいのだけど上手く行かない :
HDDやSSDのパーティションには、UUIDというIDがついてる。このUUIDは重複しない値がついてるはず、ということになっている。
昔の Linux は /dev/sda1 とか /dev/sdb2 とか、そういう記述形式で各パーティションを指定していたけれど。この形式ではHDDやSSDを接続するポートを変えてしまったときに、各パーティションの判別名も変わってしまうので都合が悪い。そこで、各パーティションにUUIDをつけて管理しようということになったらしい。
以下で、パーティション一覧や、各パーティションのUUIDが確認できる。
ddrescue でコピーした直後は、HDDとSSDの各パーティションに同じUUIDがついてしまっている。このままだとUUIDを使ってパーティションを特定できなくなる…。どちらかのUUIDを変更したい。
しかし、これが上手く行かない。本来なら、GParted でパーティションを右クリックして「New UUID」を選べば変更できそうなのだけど…。「e2fsck -f を使え」云々のエラーしか出てこない…。どうしたもんか…。
昔の Linux は /dev/sda1 とか /dev/sdb2 とか、そういう記述形式で各パーティションを指定していたけれど。この形式ではHDDやSSDを接続するポートを変えてしまったときに、各パーティションの判別名も変わってしまうので都合が悪い。そこで、各パーティションにUUIDをつけて管理しようということになったらしい。
以下で、パーティション一覧や、各パーティションのUUIDが確認できる。
lsblk sudo blkid
ddrescue でコピーした直後は、HDDとSSDの各パーティションに同じUUIDがついてしまっている。このままだとUUIDを使ってパーティションを特定できなくなる…。どちらかのUUIDを変更したい。
しかし、これが上手く行かない。本来なら、GParted でパーティションを右クリックして「New UUID」を選べば変更できそうなのだけど…。「e2fsck -f を使え」云々のエラーしか出てこない…。どうしたもんか…。
◎ LABELをつけておいた :
Linuxは、/etc/fstab というファイルで、どのパーティションをどのディレクトリにマウントするか指定できるけど。その際、UUIDではなくて、ラベル(LABEL)を使うこともできるらしい。
今回、重複したUUIDが存在していてパーティションの特定ができない状態になっているし、どう考えてもラベルのほうが人間には分かりやすいので、そのような指定に修正することにした。
GParted で、各パーティションにラベルを設定する。右クリックして「Label File System」と書かれた項目を選べば、ラベル名を入力するダイアログが開く。
今回は以下のような指定にした。
SSD (/dev/sdc) 内の、/etc/fstab が入ってるパーティション(/dev/sdc1)を一時的にマウントして、/etc/fstab を修正できるようにする。
/etc/fstab を編集。UUID=xxxxx と書かれている部分を、LABEL=ROOT といった感じで書き換えておく。
今回、重複したUUIDが存在していてパーティションの特定ができない状態になっているし、どう考えてもラベルのほうが人間には分かりやすいので、そのような指定に修正することにした。
GParted で、各パーティションにラベルを設定する。右クリックして「Label File System」と書かれた項目を選べば、ラベル名を入力するダイアログが開く。
今回は以下のような指定にした。
- / にするパーティション : ROOT
- /home にするパーティション : HOME
- linux-swap にするパーティション : SWAP
SSD (/dev/sdc) 内の、/etc/fstab が入ってるパーティション(/dev/sdc1)を一時的にマウントして、/etc/fstab を修正できるようにする。
sudo mkdir /mnt/sdc1 sudo mount /dev/sdc1 /mnt/sdc1 cd /mnt/sdc1 cd etc sudo nano fstab
/etc/fstab を編集。UUID=xxxxx と書かれている部分を、LABEL=ROOT といった感じで書き換えておく。
# /etc/fstab: static file system information. # <file system> <mount point> <type> <options> <dump> <pass> LABEL=ROOT / ext4 errors=remount-ro 0 1 LABEL=HOME /home ext4 defaults 0 2 LABEL=SWAP none swap sw 0 0
◎ grubをインストール :
SSDにgrubをインストール。以下を参考にして作業させてもらった。
_HDDからSSDへの換装作業ログ
_UbuntuのHDD 2TBからSSD 512GBへのLarger HDD to Smaller SSD換装を行う
_ubuntu BOOT Grub Restoring 起動 復旧 | 市野メモ
実機をシャットダウン後、電源を入れたら、何故かHDD側から Ubuntu Linux が起動してしまったのだけど。これ幸い(?)と、まだマウントされていないはずのSSDに対してgrubをインストール。
この状態で、シャットダウン。HDDを外してSSDだけにして電源を入れてみたところ、SSD側から起動してくれた。
_HDDからSSDへの換装作業ログ
_UbuntuのHDD 2TBからSSD 512GBへのLarger HDD to Smaller SSD換装を行う
_ubuntu BOOT Grub Restoring 起動 復旧 | 市野メモ
実機をシャットダウン後、電源を入れたら、何故かHDD側から Ubuntu Linux が起動してしまったのだけど。これ幸い(?)と、まだマウントされていないはずのSSDに対してgrubをインストール。
sudo mkdir /mnt/sdc1 sudo mount /dev/sdc1 /mnt/sdc1 sudo mount --bind /dev /mnt/sdc1/dev sudo mount --bind /dev/pts /mnt/sdc1/dev/pts sudo mount --bind /proc /mnt/sdc1/proc sudo mount --bind /sys /mnt/sdc1/sys sudo chroot /mnt/sdc1 sudo grub-install /dev/sdc sudo grub-install --recheck /dev/sdc sudo update-grub2 exit umount /mnt/sdc1/sys umount /mnt/sdc1/proc umount /mnt/sdc1/dev/pts umount /mnt/sdc1/dev umount /mnt/sdc1
この状態で、シャットダウン。HDDを外してSSDだけにして電源を入れてみたところ、SSD側から起動してくれた。
◎ UUIDが変更できた :
色々ググってたら、e2fsck -f を何度も試すとUUIDが変更できる状態になるかも、という話を見かけた。
HDDとSSDの両方を繋いだ状態で作業するとどうも上手く行かないので、実機からHDDを取り外して、Windows10 x64 22H2 がインストールされてる別PCで作業してみることにした。USB3.0接続HDDスタンド Logitec LGB-1BSTU3 にHDDを差して、Windows + VMware 上で動かした Ubuntu Linux 22.04 LTS からHDDスタンドにアクセス。ちなみに、VMware利用時、USB機器を「ホストから切断」すれば、そのUSB機器は仮想PC側で利用できるようになる。
HDD (dev/sdb) に対して、e2fsck -f を3回ぐらい試してみた。
この状態なら、UUIDの変更ができた。
HDDに対してUUIDの変更をする場合、書き換えには数分ほどかかるっぽい…。
そういえば、本来この手のツールは、SATA接続されている状態を前提にして使うことを、うっかり失念したまま作業してしまった…。USB接続では上手く行かない時があったりするのかもしれない…。どうやら今回は上手く行ったっぽいけど…。
HDDとSSDの両方を繋いだ状態で作業するとどうも上手く行かないので、実機からHDDを取り外して、Windows10 x64 22H2 がインストールされてる別PCで作業してみることにした。USB3.0接続HDDスタンド Logitec LGB-1BSTU3 にHDDを差して、Windows + VMware 上で動かした Ubuntu Linux 22.04 LTS からHDDスタンドにアクセス。ちなみに、VMware利用時、USB機器を「ホストから切断」すれば、そのUSB機器は仮想PC側で利用できるようになる。
HDD (dev/sdb) に対して、e2fsck -f を3回ぐらい試してみた。
$ sudo e2fsck -f /dev/sdb1 e2fsck 1.45.5 (07-Jan-2020) Pass 1: Checking iノードs, blocks, and sizes Pass 2: Checking ディレクトリ structure Pass 3: Checking ディレクトリ connectivity Pass 4: Checking reference counts Pass 5: Checking グループ summary information ROOTOLD: 757242/3842048 files (0.5% non-contiguous), 10278914/15360107 blocks $ sudo e2fsck -f /dev/sdb1 $ sudo e2fsck -f /dev/sdb1
この状態なら、UUIDの変更ができた。
sudo tune2fs /dev/sdb1 -U random
HDDに対してUUIDの変更をする場合、書き換えには数分ほどかかるっぽい…。
そういえば、本来この手のツールは、SATA接続されている状態を前提にして使うことを、うっかり失念したまま作業してしまった…。USB接続では上手く行かない時があったりするのかもしれない…。どうやら今回は上手く行ったっぽいけど…。
◎ SSDのUUIDを変更してしまって失敗 :
HDD側のUUIDを変更できたので、調子に乗ってSSD側のUUIDまで変更してしまったところ、SSDから Ubuntu Linux を起動できなくなった…。カーネルのロードすらできない。
おそらく、grub にカーネルがある場所をUUIDで指定していたのに、そのUUIDが変わってしまったので、カーネルがあるパーティションを見つけることができず、起動できなくなったのだろう…。
修復には、別途、OSが起動する何かを用意しないといけない。Ubuntu Linux 22.04 LTS が起動するUSBメモリを作成して、そちらで起動して、grub を再インストールした。
余談。USB2.0メモリを使ってこのあたりの作業したらとんでもなく時間がかかった。OSが起動するまで、USBメモリのアクセスLEDがずっとチカチカ。10分以上経過してから、ようやくデスクトップ画面が出てきた…。
おそらく、grub にカーネルがある場所をUUIDで指定していたのに、そのUUIDが変わってしまったので、カーネルがあるパーティションを見つけることができず、起動できなくなったのだろう…。
修復には、別途、OSが起動する何かを用意しないといけない。Ubuntu Linux 22.04 LTS が起動するUSBメモリを作成して、そちらで起動して、grub を再インストールした。
余談。USB2.0メモリを使ってこのあたりの作業したらとんでもなく時間がかかった。OSが起動するまで、USBメモリのアクセスLEDがずっとチカチカ。10分以上経過してから、ようやくデスクトップ画面が出てきた…。
◎ btrfsとやらで待たされる :
SSDから起動するようにしてみたら、"Scanning for BTRFS file system" なるメッセージが表示されたタイミングで、そこから30秒ぐらい待たされる状態になってしまった。
Linux Mint 関係の掲示板で同種の不具合事例を目にした。解決策も書いてあった。
_SOLVED "Scanning for BTRFS file system" during boot - Linux Mint Forums
おそらく、btrfs関連パッケージを削除しつつ、initramfs なるものを作り直しているのだろう…。
Linux Mint 関係の掲示板で同種の不具合事例を目にした。解決策も書いてあった。
_SOLVED "Scanning for BTRFS file system" during boot - Linux Mint Forums
sudo apt-get purge btrfs-tools sudo update-initramfs -ukall sudo apt purge btrfs-progs sudo update-initramfs -ukall
おそらく、btrfs関連パッケージを削除しつつ、initramfs なるものを作り直しているのだろう…。
◎ SSDに変えてはみたものの :
HDDからSSDに換装してみたところ、OSのデスクトップ画面が出てくるまで2分かかっていたのが、40秒で出てくるようになった。
たしかに速くはなった。でも、期待していたほど速くもない印象。と言うのも、もしこれが Debian Linux なら、HDDにインストールしてある環境でも1分ぐらいで起動してくれるので…。
Ubuntu Linux は、何故か起動が遅い…。いやまあ、こちらが把握してない色々なサービスが山ほど立ち上がってるとか、サポートしてるハードウェアの種類が多くてハードウェアのチェックで時間がかかってたりするのかなと想像するのだけど。
とは言え、Webブラウザの起動等、明らかにHDD利用時より速くなった気もする。これなら、Webブラウザを起動させようかな、という気分にもなれそう。今までは起動時間が長過ぎて、起動させなきゃならんのか、やだなあ…みたいな気分になっていた…。
たしかに速くはなった。でも、期待していたほど速くもない印象。と言うのも、もしこれが Debian Linux なら、HDDにインストールしてある環境でも1分ぐらいで起動してくれるので…。
Ubuntu Linux は、何故か起動が遅い…。いやまあ、こちらが把握してない色々なサービスが山ほど立ち上がってるとか、サポートしてるハードウェアの種類が多くてハードウェアのチェックで時間がかかってたりするのかなと想像するのだけど。
とは言え、Webブラウザの起動等、明らかにHDD利用時より速くなった気もする。これなら、Webブラウザを起動させようかな、という気分にもなれそう。今までは起動時間が長過ぎて、起動させなきゃならんのか、やだなあ…みたいな気分になっていた…。
[ ツッコむ ]
2024/09/05(木) [n年前の日記]
#1 [ubuntu][linux] Ubuntu LinuxをUSBメモリにインストールしてみた
サブPCにインストールしてある Ubuntu Linux 22.04 LTS が起動しない状態になった際、USBメモリから Ubuntu Linux Live DVD を起動して grub の再インストールをする羽目になったのだけど。
USBメモリから起動できる Ubuntu Linux を常に用意してあれば、こういう時に一々USBメモリに Ubuntu Linux Live DVD をインストールせずに済むから楽だろうかと思えてきた。できれば、Live DVD の iso を書き込む形ではなく、USBメモリをHDD扱いしてインストールする形のほうがいいなと…。ということで試しに作業。
インストールするメディアとしては、16GB の microSDHC + カードリーダーをUSBメモリ代わりに使った。手持ちのUSBメモリより microSD のほうが書き込みは速いので…。
さて、USBメモリをHDD相当として扱って Ubuntu Linux をインストールする場合、一般的には、USBメモリを2つ用意して、1つには Ubuntu Linux Live DVD をRufus等で書き込んで、そのUSBメモリからOSを起動しつつ、もう1つのUSBメモリにインストールしていく、という感じになるらしい。
ただ、今回は、Windows10 x64 22H2 + VMware で作業してみた。VMware上の仮想PCは、光学ドライブにisoを指定することができるので、isoからOSを起動して、インストール処理を進めて、インストール先のメディアを仮想HDDイメージではなくUSBメモリにしてやればいい。
ちなみに、仮想PCが立ち上がった時点で、VMware でUSBメモリを「ホストから切断」してやれば、仮想PC側でUSBメモリを認識することができる。
そんな感じで、Ubuntu Linux 22.04 LTS をUSBメモリ(microSDHC)にインストールして、サブPC上で起動できるところまでは確認できたのだけど…。sudo apt update、sudo apt upgrade をしてみたら、途中で「空き容量が無い」と言われてしまった。16GBでは、さすがに厳しいか…。32GB、できれば 64GB以上の容量が欲しい…。
Ubuntu Linux 22.04 LTS のデスクトップ版をインストールしたのがマズかっただろうか。Ubuntuをベースとして作られた、軽量と称されるディストリビューションなら ―― Lubuntu や Linux Lite なら容量的に少なく済んだりしないか…。試してみるか…。
USBメモリから起動できる Ubuntu Linux を常に用意してあれば、こういう時に一々USBメモリに Ubuntu Linux Live DVD をインストールせずに済むから楽だろうかと思えてきた。できれば、Live DVD の iso を書き込む形ではなく、USBメモリをHDD扱いしてインストールする形のほうがいいなと…。ということで試しに作業。
インストールするメディアとしては、16GB の microSDHC + カードリーダーをUSBメモリ代わりに使った。手持ちのUSBメモリより microSD のほうが書き込みは速いので…。
- microSDHC : KIOXIA EXCERIA BASIC KCA-MC016GS (UHS-I, CLASS10)
- カードリーダ (インストール時) : Transcend RDF5K (TS-RDF5K, USB3.0接続)
- カードリーダ (サブPC接続時) : BUFFALO BSCRMSDCWH (USB2.0接続, microSD専用)
さて、USBメモリをHDD相当として扱って Ubuntu Linux をインストールする場合、一般的には、USBメモリを2つ用意して、1つには Ubuntu Linux Live DVD をRufus等で書き込んで、そのUSBメモリからOSを起動しつつ、もう1つのUSBメモリにインストールしていく、という感じになるらしい。
ただ、今回は、Windows10 x64 22H2 + VMware で作業してみた。VMware上の仮想PCは、光学ドライブにisoを指定することができるので、isoからOSを起動して、インストール処理を進めて、インストール先のメディアを仮想HDDイメージではなくUSBメモリにしてやればいい。
ちなみに、仮想PCが立ち上がった時点で、VMware でUSBメモリを「ホストから切断」してやれば、仮想PC側でUSBメモリを認識することができる。
そんな感じで、Ubuntu Linux 22.04 LTS をUSBメモリ(microSDHC)にインストールして、サブPC上で起動できるところまでは確認できたのだけど…。sudo apt update、sudo apt upgrade をしてみたら、途中で「空き容量が無い」と言われてしまった。16GBでは、さすがに厳しいか…。32GB、できれば 64GB以上の容量が欲しい…。
Ubuntu Linux 22.04 LTS のデスクトップ版をインストールしたのがマズかっただろうか。Ubuntuをベースとして作られた、軽量と称されるディストリビューションなら ―― Lubuntu や Linux Lite なら容量的に少なく済んだりしないか…。試してみるか…。
[ ツッコむ ]
#2 [ubuntu][linux] SSDの状態をLinux上で調べる
SSDの状態を、Ubuntu Linux 22.04 LTS上で調べたい。
_smartctlを利用してデバイスの健康状態を診断する(S.M.A.R.T.) - Qiita
_Linux/UbuntuのsmartctlでS.M.A.R.T.対応HDD/SSDの診断情報を表示する - 情報技術の四方山話
Ubuntu Linux 22.04 LTS の場合、smartmontools パッケージをインストールして、smartctl を使えば、S.M.A.R.T.値を読み取れるらしい。また、gsmartcontrol パッケージもインストールすれば、GUIで値を確認できる。
たしかに読み取れたけど、各値が何を示しているのかさっぱり分からない。
gsmartcontrol を起動して確認してみたら、今までメインドライブとして使っていたHDDはこれといった問題が無さそうに見えたけど。SSDも、追加した別HDDも、値一覧の中にピンク色で表示されている部分がチラホラあって…。このまま使い続けてもいいのだろうか…。一応、smartctl で表示した際、下のような一行は出ているから、S.M.A.R.T.値としてはまだ大丈夫なのかもしれんけど…。
_smartctlを利用してデバイスの健康状態を診断する(S.M.A.R.T.) - Qiita
_Linux/UbuntuのsmartctlでS.M.A.R.T.対応HDD/SSDの診断情報を表示する - 情報技術の四方山話
Ubuntu Linux 22.04 LTS の場合、smartmontools パッケージをインストールして、smartctl を使えば、S.M.A.R.T.値を読み取れるらしい。また、gsmartcontrol パッケージもインストールすれば、GUIで値を確認できる。
sudo apt install smartmontools gsmartcontrol
$ smartctl --scan /dev/sda -d scsi # /dev/sda, SCSI device /dev/sdb -d scsi # /dev/sdb, SCSI device /dev/sdc -d scsi # /dev/sdc, SCSI device $ sudo smartctl -a /dev/sda $ sudo smartctl -A /dev/sda
たしかに読み取れたけど、各値が何を示しているのかさっぱり分からない。
gsmartcontrol を起動して確認してみたら、今までメインドライブとして使っていたHDDはこれといった問題が無さそうに見えたけど。SSDも、追加した別HDDも、値一覧の中にピンク色で表示されている部分がチラホラあって…。このまま使い続けてもいいのだろうか…。一応、smartctl で表示した際、下のような一行は出ているから、S.M.A.R.T.値としてはまだ大丈夫なのかもしれんけど…。
=== START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED
[ ツッコむ ]
#3 [ubuntu][linux] LinuxでSSD関係の設定を少しだけ確認
Ubuntu Linux 22.04 LTS上でSSD関係の設定を確認しておきたい。
◎ TRIMの設定を確認 :
以下を参考に作業。
_SSD-Trim、HDDデフラグ、いつやるか(ubuntu系Linux) : ご年配Linux
_Linux:SSDを搭載後にした設定 - SlackNote
見た感じ、週単位で処理が走るように設定されているのかな…? であれば、特に設定する部分は無いかな…。
_SSD-Trim、HDDデフラグ、いつやるか(ubuntu系Linux) : ご年配Linux
_Linux:SSDを搭載後にした設定 - SlackNote
$ sudo systemctl enable fstrim.timer $ sudo systemctl status fstrim.timer ● fstrim.timer - Discard unused blocks once a week Loaded: loaded (/lib/systemd/system/fstrim.timer; enabled; vendor preset: enabled) Active: active (waiting) since Thu 2024-09-05 21:05:43 JST; 3min 47s ago Trigger: Mon 2024-09-09 01:13:29 JST; 3 days left Triggers: ● fstrim.service Docs: man:fstrim 9月 05 21:05:43 i36100t systemd[1]: Started Discard unused blocks once a week.
$ sudo systemctl cat fstrim.timer # /lib/systemd/system/fstrim.timer [Unit] Description=Discard unused blocks once a week Documentation=man:fstrim ConditionVirtualization=!container ConditionPathExists=!/etc/initrd-release [Timer] OnCalendar=weekly AccuracySec=1h Persistent=true RandomizedDelaySec=6000 [Install] WantedBy=timers.target
見た感じ、週単位で処理が走るように設定されているのかな…? であれば、特に設定する部分は無いかな…。
◎ noatime の指定 :
/etc/fstab で noatime を指定すればストレージへの書き込み量が減って云々という話も見かけたのだけど。
ググっていたら、「今時の Ubuntu Linux のカーネルはデフォルトで realtime が指定されてるから noatime なんて指定しなくていいよ」 みたいな話を見かけた。
_最新のFedoraとUbuntuではrelatimeもnoatimeもいらない? - 科学と非科学の迷宮
_Linuxのrelatimeマウントオプションの詳細 - Qiita
であれば、コレも特に指定し直すことは無いかな…。
ググっていたら、「今時の Ubuntu Linux のカーネルはデフォルトで realtime が指定されてるから noatime なんて指定しなくていいよ」 みたいな話を見かけた。
_最新のFedoraとUbuntuではrelatimeもnoatimeもいらない? - 科学と非科学の迷宮
_Linuxのrelatimeマウントオプションの詳細 - Qiita
であれば、コレも特に指定し直すことは無いかな…。
[ ツッコむ ]
#4 [zatta] 100円ショップでミリペンを購入
手持ちのミリペン、Sakura PIGMA のペン先が乾いてしまって使えなくなっていた。代わりの個体を入手しようにも、近所で PIGMA を売ってる店は無いので困ったなとググってみたら、今時は100円ショップにもミリペン(ドローイングペン)の類が売ってる時もあると知った。気になる…。
100円ショップ Seria に寄ってみたところ、幸い店頭で売っていた。005 と 03 の2種類があった。2種類とも購入。パッケージには、水性 Milli-pen for Illustration、イラスト用ミリペン、と書いてある。発売元 ナカトシ産業株式会社。MADE IN CHINA。水性顔料インク。インクが乾くと、耐水性、耐アルコール性になるらしい。
少し使ってみた感じでは、悪くないなと。たしかにミリペンというか、PIGMAに近い印象。
ついでに、Seria で油性サインペンも購入。パッケージには、「油性サインペン PIN-01A」「01 OIL-BASED」と書いてある。インクは黒。三菱鉛筆株式会社。MADE IN VIETNAM。
少し使ってみたけれど、今まで利用していた SAKURA MICROPERM 01 と比べてしまうと、かなり太い線というか、極太な印象。これは買って失敗したかも…。
100円ショップ Seria に寄ってみたところ、幸い店頭で売っていた。005 と 03 の2種類があった。2種類とも購入。パッケージには、水性 Milli-pen for Illustration、イラスト用ミリペン、と書いてある。発売元 ナカトシ産業株式会社。MADE IN CHINA。水性顔料インク。インクが乾くと、耐水性、耐アルコール性になるらしい。
少し使ってみた感じでは、悪くないなと。たしかにミリペンというか、PIGMAに近い印象。
ついでに、Seria で油性サインペンも購入。パッケージには、「油性サインペン PIN-01A」「01 OIL-BASED」と書いてある。インクは黒。三菱鉛筆株式会社。MADE IN VIETNAM。
少し使ってみたけれど、今まで利用していた SAKURA MICROPERM 01 と比べてしまうと、かなり太い線というか、極太な印象。これは買って失敗したかも…。
[ ツッコむ ]
2024/09/06(金) [n年前の日記]
#1 [ubuntu][linux] 軽量Linuxと称されるディストリビューションをUSBメモリにインストールしてみた
_昨日、
Ubuntu Linux 22.04 LTS デスクトップ版を、16GBのUSBメモリ(microSDHC)にインストールしてみたら容量不足になってしまった。そこで、Ubuntuをベースにして作られた軽量ディストリビューションと言われているそれぞれをインストールしてみた。
◎ Linux Liteをインストール :
軽い軽いと言われている、Linux Lite というディストリビューションがあるらしい。
_Linux Lite Easy to Use Free Linux Operating System
_全世界中で羽のようだと大好評の Linux Lite 6.6 をインストールしてみました。 | 極楽はぜのブログ
現状では Linux Lite 7.0 が公開されているけれど、7.0 は Ubuntu 24.04 LTS がベースとのことなので、Ubuntu 22.04 LTS をベースにしている Linux Lite 6.6 を選択した。linux-lite-6.6-64bit.iso を入手して作業。
昨日の作業と同様に、Windows10 x64 22H2 + VMware を使って、16GBのUSBメモリ(microSDHC)へのインストールはできたのだけど…。Ubuntu 22.04 LTS より空き容量が厳しい状態になった…。Ubuntu と比べて、LibreOffice や GIMP等がインストールされているせいだろうか。sudo apt update はできるけど、sudo apt upgrade をする前に、不要なパッケージを sudo apt purge xxxx でアンインストールして空き容量を確保しておかないと厳しい…。
やはり16GBのストレージにインストールするのは厳しいなと…。
考えてみたら、HDD/SSDのパーティションサイズ/位置を変更するだけなら Gparted Live CD を使えば済むわけだし。Ubuntu系のソレが必要なのは grub の再インストール作業時ぐらいだから、GUI ではなく CUI だけ動けば十分なのかもしれない。デスクトップ版ではなく、サーバ版を入れればそれで済むのかも…。
_Linux Lite Easy to Use Free Linux Operating System
_全世界中で羽のようだと大好評の Linux Lite 6.6 をインストールしてみました。 | 極楽はぜのブログ
現状では Linux Lite 7.0 が公開されているけれど、7.0 は Ubuntu 24.04 LTS がベースとのことなので、Ubuntu 22.04 LTS をベースにしている Linux Lite 6.6 を選択した。linux-lite-6.6-64bit.iso を入手して作業。
昨日の作業と同様に、Windows10 x64 22H2 + VMware を使って、16GBのUSBメモリ(microSDHC)へのインストールはできたのだけど…。Ubuntu 22.04 LTS より空き容量が厳しい状態になった…。Ubuntu と比べて、LibreOffice や GIMP等がインストールされているせいだろうか。sudo apt update はできるけど、sudo apt upgrade をする前に、不要なパッケージを sudo apt purge xxxx でアンインストールして空き容量を確保しておかないと厳しい…。
やはり16GBのストレージにインストールするのは厳しいなと…。
考えてみたら、HDD/SSDのパーティションサイズ/位置を変更するだけなら Gparted Live CD を使えば済むわけだし。Ubuntu系のソレが必要なのは grub の再インストール作業時ぐらいだから、GUI ではなく CUI だけ動けば十分なのかもしれない。デスクトップ版ではなく、サーバ版を入れればそれで済むのかも…。
◎ Bodhi Linuxをインストール :
これまた軽量と言われている Bodhi Linux をインストールしてみた。
_Bodhi: The Enlightened Linux Distribution
_Ubuntu の仲間で最軽量かもしれない Bodhi Linux-7.0をインストールしました。 | 極楽はぜのブログ
Bodhi Linux 7.0 は Ubuntu 22.04 LTSベースとのことなので、7.0 を選択。bodhi-7.0.0-64.iso を入手して作業。
これも Windows10 x64 22H2 + VMware 上で作業してみたけど、作業が終わってもシャットダウンできなかった…。VMware側の不調だろうか。
容量はかなりイイ感じ。復旧作業時に必要になりそうなパッケージ(gparted, gddrescue, testdisk, vim, ranger等)をインストールしてみたけれど、全部で8.7GBぐらいで済んだ。16GBのmicroSDHCでも全然収まってくれそう。デスクトップ統合環境ではなく、ウインドウマネージャしか入ってないあたりが効いてるのだろうか。
ただ、Webブラウザが Chromium というのがちょっと引っ掛かる。Chromiumって重い印象なのだけど…。
もっとも、今時のWebにアクセスするなら Chromium系じゃないと、という判断かなという気もする。例えば Firefox では利用できない/対応していないWebサービスがチラホラあったりするし。その点 Chromium なら、どのサービスも利用できるはず。
_Bodhi: The Enlightened Linux Distribution
_Ubuntu の仲間で最軽量かもしれない Bodhi Linux-7.0をインストールしました。 | 極楽はぜのブログ
Bodhi Linux 7.0 は Ubuntu 22.04 LTSベースとのことなので、7.0 を選択。bodhi-7.0.0-64.iso を入手して作業。
これも Windows10 x64 22H2 + VMware 上で作業してみたけど、作業が終わってもシャットダウンできなかった…。VMware側の不調だろうか。
容量はかなりイイ感じ。復旧作業時に必要になりそうなパッケージ(gparted, gddrescue, testdisk, vim, ranger等)をインストールしてみたけれど、全部で8.7GBぐらいで済んだ。16GBのmicroSDHCでも全然収まってくれそう。デスクトップ統合環境ではなく、ウインドウマネージャしか入ってないあたりが効いてるのだろうか。
ただ、Webブラウザが Chromium というのがちょっと引っ掛かる。Chromiumって重い印象なのだけど…。
もっとも、今時のWebにアクセスするなら Chromium系じゃないと、という判断かなという気もする。例えば Firefox では利用できない/対応していないWebサービスがチラホラあったりするし。その点 Chromium なら、どのサービスも利用できるはず。
[ ツッコむ ]
2024/09/07(土) [n年前の日記]
#1 [ubuntu][linux] LubuntuをUSBメモリにインストールしてみた
_昨日、
Linux Lite や Bodhi Linux を、16GBのUSBメモリ(microSDHC)にインストールしてみたけれど、今日は Lubuntu Linux 22.04 LTS をインストールしてみた。
インストール作業は、Windows10 x64 22H2 + VMware 上で行った。仮想PCを新規作成して、lubuntu-22.04.4-desktop-amd64.iso から起動するようにする。USBメモリをホストから切断すれば、仮想PCから認識されるので、インストール処理の途中で、インストール先をUSBメモリにすればいい。
LibreOffice や VLC をアンインストールして、その他必要になりそうなパッケージをインストールしてみたけれど、結果的に、16GB中、9.2GBぐらいを使った状態になった。
このぐらいの容量で済むなら、Linux Lite や Bodhi Linux を使うより、素直に(?) Lubuntu を使ったほうがいいのかも。おそらくドキュメント類も Lubuntu のほうが多そうだし…。
インストール作業は、Windows10 x64 22H2 + VMware 上で行った。仮想PCを新規作成して、lubuntu-22.04.4-desktop-amd64.iso から起動するようにする。USBメモリをホストから切断すれば、仮想PCから認識されるので、インストール処理の途中で、インストール先をUSBメモリにすればいい。
LibreOffice や VLC をアンインストールして、その他必要になりそうなパッケージをインストールしてみたけれど、結果的に、16GB中、9.2GBぐらいを使った状態になった。
このぐらいの容量で済むなら、Linux Lite や Bodhi Linux を使うより、素直に(?) Lubuntu を使ったほうがいいのかも。おそらくドキュメント類も Lubuntu のほうが多そうだし…。
◎ パッケージのアンインストール作業その他 :
sudo apt purge libreoffice* -y sudo apt purge vlc -y sudo apt autoremove -y sudo apt install aptitude vim micro ne gparted testdisk gddrescue sakura net-tools -y sudo apt install fcitx5-mozc fonts-ipafont fonts-ipaexfont fonts-takao fonts-vlgothic -y sudo apt install gedit gedit-plugins
◎ パスワード無しでsudo :
本来、sudo visudo で、sudo 利用時のパスワード入力を省略する指定ができるはずなのだけど、ファイルの一番最後の行で記述しないと反映されなかった。Lubuntu だけ、そのあたり特殊なのかもしれない。
_Lubuntu::sudo | ヘンコウリレキ
_Lubuntu::sudo | ヘンコウリレキ
sudo visudo
yourname ALL=(ALL:ALL) NOPASSWD: ALL
[ ツッコむ ]
2024/09/08(日) [n年前の日記]
#1 [pc] サブPCのBIOSをアップデートしておいた
サブPCのM/B、ASRock Z170M EXTREME4 の BIOSを、7.20 から 7.40 にアップデートしておいた。とメモ。
M/Bのスペックは以下。
BIOS入手先は以下。
_ASRock > Z170M Extreme4 > BIOS
BIOSアップデート手順は以下。
M/Bのスペックは以下。
- M/B : ASRock Z170M EXTREME4 (Z170M EXTREAME4/M/ASRK, MicroATX, LGA1151, 第6世代 Skylake と第7世代 Kaby Lake に対応, チップセット Z170, DDR4 3466+(OC)/3200(OC)/2933(OC)/2800(OC)/2400(OC)/2133, 最大64GB, 275x260x60mm)
BIOS入手先は以下。
_ASRock > Z170M Extreme4 > BIOS
BIOSアップデート手順は以下。
- Z170M Extreme4(7.40)ROM.zip を入手して解凍。
- USBメモリのルートに、z17mx4_7.40 をコピー。サブPCのUSBポートに差しておく。
- PCのBIOS画面が出ている間に、F2キー or DELキーを押して、M/B のBIOS設定画面を表示。
- ツール → Instant Flash で、USBメモリのルートに入っている z17mx4_7.40 を選んで更新。
◎ アップデートした理由 :
Ubuntu Linux 22.04 LTS の起動時に、以下のメッセージが出てくるのが気になったので、BIOSを更新したら改善されないかと期待したのだけど、結果は変わらなかった。
_Ubuntu日本語フォーラム / DMAR:Firmware Bug:No firmware reserved〜で起動も再インストールもできません
_SOLVED DMAR: Firmware Bug: No firmware reserved region can cover this RMRR - Linux Mint Forums
このメッセージは無視して構わないという話も見かけた。ログレベルを変更することで目にしない状態にできる模様。
[ 0.075496] DMAR: [Firmware Bug]: No firmware reserved region can cover this RMRR [0x000000007800000-0x0000000088ffffff], contact BIOS vendor for fixes [ 0.099386] x86/cpu: SGX disabled by BIOS.
_Ubuntu日本語フォーラム / DMAR:Firmware Bug:No firmware reserved〜で起動も再インストールもできません
_SOLVED DMAR: Firmware Bug: No firmware reserved region can cover this RMRR - Linux Mint Forums
このメッセージは無視して構わないという話も見かけた。ログレベルを変更することで目にしない状態にできる模様。
[ ツッコむ ]
#2 [pc] PCケースのフロントパネルを壊してしまった
メモするのを忘れてたのでメモ。先日、サブPCにSSDを追加しようとした際、PCケースのフロントパネルを外そうとして、フロントパネルの一番上の突起を割ってしまった。金属のケース部分の穴に差し込んで、引っ掛けて固定するための突起なのだけど…。
この手のPCケースのフロントパネルって、大体はプラスチック製だから、数年経つと劣化して割れやすくなってしまう。だから、外そうとして「パキッ」と割ってしまいがち…。この設計ってどうにかならんか…。せめてネジ止めにするとかできないのかな…。
まあ、メーカにしてみたら、製造直後にパチンとハマれば「ハイ、オッケー。問題無し」な感覚で設計してるんだろうけど。何度も外したり取り付けたりすることを前提にしてないよな…。いや、そういう前提で設計されてるケースもあるだろうけど、たぶん値段が高いのではないか。自分、安いケースばかり買ってきたから…。
何かこう、スポンとまっすぐ入ったらちょっとやそっとじゃ動かなくて、だけどどこかをちょっとアレするとスポンと外れる、そういう仕組みを作れないものか…。
例えば電池ボックスの蓋みたいな? いや、その手の蓋は板を固定する形だからアレで済むのかな。PCケースのフロントパネルは金属部分を覆うような形だからちょっと違うかも。複数個所に、押したら抜ける感じのソレをつけても良さそうだけど、人間の腕は2本しかないから一度に2ヶ所しか押せないし…。うーん。
この手のPCケースのフロントパネルって、大体はプラスチック製だから、数年経つと劣化して割れやすくなってしまう。だから、外そうとして「パキッ」と割ってしまいがち…。この設計ってどうにかならんか…。せめてネジ止めにするとかできないのかな…。
まあ、メーカにしてみたら、製造直後にパチンとハマれば「ハイ、オッケー。問題無し」な感覚で設計してるんだろうけど。何度も外したり取り付けたりすることを前提にしてないよな…。いや、そういう前提で設計されてるケースもあるだろうけど、たぶん値段が高いのではないか。自分、安いケースばかり買ってきたから…。
何かこう、スポンとまっすぐ入ったらちょっとやそっとじゃ動かなくて、だけどどこかをちょっとアレするとスポンと外れる、そういう仕組みを作れないものか…。
例えば電池ボックスの蓋みたいな? いや、その手の蓋は板を固定する形だからアレで済むのかな。PCケースのフロントパネルは金属部分を覆うような形だからちょっと違うかも。複数個所に、押したら抜ける感じのソレをつけても良さそうだけど、人間の腕は2本しかないから一度に2ヶ所しか押せないし…。うーん。
[ ツッコむ ]
#3 [movie] 「ブレードランナー 2049」を視聴
BS12で放送されてたので視聴。名作映画「ブレードランナー」の続編。初見。
フツーに面白かった。特に設定面がイイ感じ。いや、人によってはありがちな設定と言い出しそうでもあるけれど、こういう設定、個人的に好きなんで…。
押井守監督曰く、「キャラ、ストーリー、世界観。この3つのうちどれかが成立してれば映画になる」「宮さんの映画はキャラしかない。俺の映画は世界観しかない」とのことだけど。その3つの評価軸で言えば、この映画は世界観しかない映画に相当するのかもしれないなと…。それはそれでOKというか、それもまた、映画を名乗っていいよなと…。
フツーに面白かった。特に設定面がイイ感じ。いや、人によってはありがちな設定と言い出しそうでもあるけれど、こういう設定、個人的に好きなんで…。
押井守監督曰く、「キャラ、ストーリー、世界観。この3つのうちどれかが成立してれば映画になる」「宮さんの映画はキャラしかない。俺の映画は世界観しかない」とのことだけど。その3つの評価軸で言えば、この映画は世界観しかない映画に相当するのかもしれないなと…。それはそれでOKというか、それもまた、映画を名乗っていいよなと…。
◎ AI嫁設定 :
バーチャルAI彼女の設定が実に良かった。あの設定は色々応用が利くというか、広げていけそうな気がする。なんとなく、メガドラゲームの「パルスマン」を思い出したりもした。パルスマンの彼女って彼の腕時計の中だけで生きてるという設定で…。
今期は、人型ロボットをテーマにしたSF(?)ロボットアニメが複数放送されていて。
それはともかく、ハリソン・フォードが演じる前作の主人公って、結局のところ人間なのか、それともレプリカントなのか…。この映画を見ても、自分は未だに分からないです…。
今期は、人型ロボットをテーマにしたSF(?)ロボットアニメが複数放送されていて。
- 只の家電ロボを自分の嫁と思い込み続ける独身男性の姿を描く「僕の妻は感情がない」
- 謎の少女型ロボットを人間扱いするかどうかで悩み続ける「ATRI -My Dear Moments-」
それはともかく、ハリソン・フォードが演じる前作の主人公って、結局のところ人間なのか、それともレプリカントなのか…。この映画を見ても、自分は未だに分からないです…。
[ ツッコむ ]
2024/09/09(月) [n年前の日記]
#1 [pc][neta] USBとはなんぞや
思考メモ。
ここ数日やっていた作業の関係で、目の前に何本もUSBメモリが散乱しているのです。邪魔。片付けたい。まとめて収納できる箱みたいなものは無いのかな。もし無かったら自分で作るしかないかな。そう思いながらヒントになりそうなアイデアがどこかに無いかググってたのですけど。その手のページを眺めているうちに、ふと気づいたのです。
もしかして…。世間様って、「USBメモリ」のことを「USB」と略し始めてる? 「USBメモリ」とは書かれてなくて、「USB]としか書いてないページをチラホラ見かけたのですけど…。いやまあ、文章の流れで、「ここで言ってるUSBってUSBメモリのことだろうな」とは分かりますけど。
こういう呼び方してるのは日本人だけかなと思っていたら、外国の人もUSBメモリをUSBと略しちゃってる動画を目にしてしまって。海外もかよ…。
でもまあ、世間様がそういう呼び方を始めちゃっているなら、もはや誰が何を言ってもその流れは止められないので…。こっちも諦めて、USBメモリをUSBと呼ばなきゃいけないことになるのかなあ、と…。
でも、本当にそんな呼び方しちゃっていいんだろうか。何か後になって問題が起きたりしないのだろうか。どうなんだろう。
「こないだUSBを買ったんだけど動かないんだよー」
「(USBを買った…? USBメモリのこと? それともUSB接続のHDD? SSD?) もうちょっと症状を詳しく」
「USBを繋げばネットに繋がるはずじゃない? 繋がらないんだよー」
「(USB接続無線LAN子機のことかー!) それはルータのSSIDを選んでキーを打ち込んで…」
「今までそんなことしたことないよ? ケーブル繋げばネットに繋がったけど」
「(USB接続有線LANアダプターのことかー!)」
みたいなことになるのかな。いや、これはUSBメモリをUSBと略してる事例とはまたちょっと違うか…。
思考メモです。オチは無いです。
そもそもUSBメモリも、USB接続スティックメモリを略してそうな気もする…。いや、USBフラッシュドライブをUSBメモリと呼んでるのかな…。それがいよいよUSBの3文字にまで略されつつあるのだろうか…。
ここ数日やっていた作業の関係で、目の前に何本もUSBメモリが散乱しているのです。邪魔。片付けたい。まとめて収納できる箱みたいなものは無いのかな。もし無かったら自分で作るしかないかな。そう思いながらヒントになりそうなアイデアがどこかに無いかググってたのですけど。その手のページを眺めているうちに、ふと気づいたのです。
もしかして…。世間様って、「USBメモリ」のことを「USB」と略し始めてる? 「USBメモリ」とは書かれてなくて、「USB]としか書いてないページをチラホラ見かけたのですけど…。いやまあ、文章の流れで、「ここで言ってるUSBってUSBメモリのことだろうな」とは分かりますけど。
こういう呼び方してるのは日本人だけかなと思っていたら、外国の人もUSBメモリをUSBと略しちゃってる動画を目にしてしまって。海外もかよ…。
でもまあ、世間様がそういう呼び方を始めちゃっているなら、もはや誰が何を言ってもその流れは止められないので…。こっちも諦めて、USBメモリをUSBと呼ばなきゃいけないことになるのかなあ、と…。
でも、本当にそんな呼び方しちゃっていいんだろうか。何か後になって問題が起きたりしないのだろうか。どうなんだろう。
「こないだUSBを買ったんだけど動かないんだよー」
「(USBを買った…? USBメモリのこと? それともUSB接続のHDD? SSD?) もうちょっと症状を詳しく」
「USBを繋げばネットに繋がるはずじゃない? 繋がらないんだよー」
「(USB接続無線LAN子機のことかー!) それはルータのSSIDを選んでキーを打ち込んで…」
「今までそんなことしたことないよ? ケーブル繋げばネットに繋がったけど」
「(USB接続有線LANアダプターのことかー!)」
みたいなことになるのかな。いや、これはUSBメモリをUSBと略してる事例とはまたちょっと違うか…。
思考メモです。オチは無いです。
そもそもUSBメモリも、USB接続スティックメモリを略してそうな気もする…。いや、USBフラッシュドライブをUSBメモリと呼んでるのかな…。それがいよいよUSBの3文字にまで略されつつあるのだろうか…。
[ ツッコむ ]
2024/09/10(火) [n年前の日記]
#1 [linux] antiX Linux 23.1をVirtualBox上で試用
Debianベースの軽量Linux antiX 23.1 64bit版 base を、仮想PCソフト VirtualBox 7.0.20 r163906上でインストールして試用してみた。Windows10 x64 22H2 + VirtualBox で試してる。
以前試用した時のメモを参考に作業。
_mieki256's diary - antiXを試用
_mieki256's diary - antiX 22 を VMware Player上で試用してみた
以前試用した時のメモを参考に作業。
_mieki256's diary - antiXを試用
_mieki256's diary - antiX 22 を VMware Player上で試用してみた
◎ インストール作業 :
公式サイトから、antiX-23.1_x64-base.iso を入手。
_Download - antiX Linux
antiX には、full, base, core, net の4種類があるけれど、今回は、インストールされるアプリが少な目だけどデスクトップ(ウインドウマネージャ)が表示されるbaseを選んだ。
仮想PCの設定は以下。
光学ドライブの設定で antiX-23.1_x64-base.iso を指定して起動。言語やタイムゾーンを選んでから起動して、起動後はデスクトップのインストールアイコンをクリック。滞りなくインストールできた。
_Download - antiX Linux
antiX には、full, base, core, net の4種類があるけれど、今回は、インストールされるアプリが少な目だけどデスクトップ(ウインドウマネージャ)が表示されるbaseを選んだ。
仮想PCの設定は以下。
- OS種類 : Debian 12 Bookworm 64bit
- RAM : 2GB
- CPUコア : 2個
- チップセット : ICH9
- GPU : VMSVGA - VRAM 128MB
- 仮想HDDイメージ : 16GB
光学ドライブの設定で antiX-23.1_x64-base.iso を指定して起動。言語やタイムゾーンを選んでから起動して、起動後はデスクトップのインストールアイコンをクリック。滞りなくインストールできた。
◎ 容量は圧倒的に少ない :
必要になりそうなアレコレをインストールしたけれど、ストレージ使用量は 5.1GBで収まった。
Ubuntuベースの軽量ディストリビューションは以下のような結果だったので…。
Ubuntuベースの軽量ディストリビューションは以下のような結果だったので…。
- Linux Lite : 16GBをオーバー
- Bodhi Linux 7.0.0 : 8.5GB
- Lubuntu Linux 22.04 LTS : 9.1GB
◎ VirtualBox Guest Additionsのインストール :
VirtualBox上で動かしているので Guest Additionsをインストールする。コレをインストールしないと、クリップボード共有、フォルダ共有、画面解像度変更が使えない。
デバイス → Guest Additions CDイメージの挿入、を選択。/mnt/sr0 にCDイメージの中身が割り当てられるので、VBoxLinuxAdditions.run を実行。
インストールできたら、ゲストOS(antiX)を再起動して、デバイス → 光学ドライブ → 仮想ドライブからディスクを除去。
~/.desktop-session/startup に以下を追記して各機能を使えるようにする。このファイルにコマンド等を書いておくと、ウインドウマネージャの起動時にそのコマンドが呼び出される。
例えば pub という名前のフォルダを共有すれば、共有フォルダ /media/sf_pub/ が作られる。しかし、このままでは一般ユーザが共有フォルダにアクセスできないので、ユーザを特定グループに追加してやる。
_VirtualBoxのホスト-ゲスト共有フォルダの設定 - Qiita
デバイス → Guest Additions CDイメージの挿入、を選択。/mnt/sr0 にCDイメージの中身が割り当てられるので、VBoxLinuxAdditions.run を実行。
sudo ./VBoxLinuxAdditions.run
インストールできたら、ゲストOS(antiX)を再起動して、デバイス → 光学ドライブ → 仮想ドライブからディスクを除去。
~/.desktop-session/startup に以下を追記して各機能を使えるようにする。このファイルにコマンド等を書いておくと、ウインドウマネージャの起動時にそのコマンドが呼び出される。
/usr/bin/VBoxClient-all &
例えば pub という名前のフォルダを共有すれば、共有フォルダ /media/sf_pub/ が作られる。しかし、このままでは一般ユーザが共有フォルダにアクセスできないので、ユーザを特定グループに追加してやる。
sudo adduser USERNAME vboxsf
_VirtualBoxのホスト-ゲスト共有フォルダの設定 - Qiita
◎ IceWMの画面解像度について :
コントロールセンタ → セッション → 画面解像度の設定 (ARandR) で変更できる。
今まで display.sh という名前で画面解像度設定を保存していたけれど、default.sh で保存したほうがいいらしい? default.sh で保存したらOS再起動時に自動で解像度が変更された。
startup ファイルに、display.sh だか default.sh の実行を記述してしまうのもアリだろうか?
今まで display.sh という名前で画面解像度設定を保存していたけれど、default.sh で保存したほうがいいらしい? default.sh で保存したらOS再起動時に自動で解像度が変更された。
startup ファイルに、display.sh だか default.sh の実行を記述してしまうのもアリだろうか?
◎ sudo apt updateでエラー :
sudo apt update をしてみたらいきなりエラー。以下を参考にして対処。
_antiX Linux 23.1 | デビアンな生活
_antiX Linux 23.1 | デビアンな生活
wget https://repo.antixlinux.com/antix-archive-keyring_20019.5.0_all.deb sudo apt install -yf ./antix-archive-keyring_20019.5.0_all.deb
◎ 日本語入力 :
fcitx5 か fcitx で日本語入力したい。ただ、antiX の場合は fcitx5-mozc をインストールすると動作させるのが難しいらしい。fcitx と fcitx-mozc をインストールして使うことにした。
~/.desktop-session/desktop-session.conf に以下を追記。
~/.desktop-session/startup に以下を追記。これで、ウインドウマネージャが起動する際に fcitx も立ち上がる。
sudo apt install fcitx fcitx-mozc sudo apt install fcitx-frontend*
~/.desktop-session/desktop-session.conf に以下を追記。
# set fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export DefaultIMModule=fcitx
~/.desktop-session/startup に以下を追記。これで、ウインドウマネージャが起動する際に fcitx も立ち上がる。
fcitx-autostart &
◎ Ctrl+Spaceを解放 :
antiX は Ctrl+Space でランチャーが表示されるけれど、Linux は Ctrl+Space で日本語入力の切替になる場合が多い。Ctrl + Space のキー割り当てを解放したい。
コントロールセンタ → デスクトップ → IceWM設定の編集、を選択。keys ファイルの中の、74行目あたり、Ctrl+Space の記述を、例えば Alt+Space などに置き換える。あるいは行頭に「#」をつけてコメントアウトする。これで、Ctrl+Spaceの割り当てを解放できる。
コントロールセンタ → デスクトップ → IceWM設定の編集、を選択。keys ファイルの中の、74行目あたり、Ctrl+Space の記述を、例えば Alt+Space などに置き換える。あるいは行頭に「#」をつけてコメントアウトする。これで、Ctrl+Spaceの割り当てを解放できる。
◎ キーリピート設定 :
以下を、~/.desktop-session/startup に追記。250ms以上押し続けたら、以後は30Hzでリピートする。
xset r rate 250 30 &
◎ CapsLockをCtrlキーにする :
/etc/default/keyboard の XKBOPTIONS= に、`ctrl:nocaps` を追加。
sudo nano /etc/default/keyboard
XKBOPTIONS="grp:lalt_lshift_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,ctrl:nocaps"
[ ツッコむ ]
2024/09/11(水) [n年前の日記]
#1 [linux] Conkyの文字化けを修正
軽量 Linux の antiX 23.1 をインストールすると Conky という情報表示ツールもインストールされるけれど、英語フォントで日本語文字列を表示しようとして文字化けしてしまう。解決したい。
スタートボタン → コントロールセンター → デスクトップ → システムモニター(Conky)の編集、を選ぶと、テキストエディタ Geany で、Conky 設定ファイル ~/.conkyrc が開かれる。このファイルを修正して保存すれば、Conky の表示も即座に変わる。
105行近辺にフォント指定を追加。
どうやら、「${font hogefont:bold:size=10} 〜 ${font}」で、その間だけフォントを変更して表示することができるらしい。
ちなみに、${time} は時間や日付の表示をする。%F は %Y-%m-%d と同じで、「2024-09-11」と表示される。また、%a と %A は曜日の表示。%a なら「火」、%A なら「火曜日」と表示される。
別の修正方法。27行目近辺のフォント指定を変更して、全体のフォント指定を変えてしまう手もある。
スタートボタン → コントロールセンター → デスクトップ → システムモニター(Conky)の編集、を選ぶと、テキストエディタ Geany で、Conky 設定ファイル ~/.conkyrc が開かれる。このファイルを修正して保存すれば、Conky の表示も即座に変わる。
105行近辺にフォント指定を追加。
${alignc}${time %a %d %b} ↓ ${alignc}${font Sans:bold:size=10}${time %F (%a)}${font}
どうやら、「${font hogefont:bold:size=10} 〜 ${font}」で、その間だけフォントを変更して表示することができるらしい。
ちなみに、${time} は時間や日付の表示をする。%F は %Y-%m-%d と同じで、「2024-09-11」と表示される。また、%a と %A は曜日の表示。%a なら「火」、%A なら「火曜日」と表示される。
別の修正方法。27行目近辺のフォント指定を変更して、全体のフォント指定を変えてしまう手もある。
xftfont DejaVu Sans:bold:size=10 ↓ xftfont Sans:bold:size=10
[ ツッコむ ]
#2 [pc] VirtualBoxのホストキーを変更しておいた
仮想PCソフトの VirtualBox は、標準設定では右Ctrlがホストキーになっているけれど。自分が利用している際、間違って右Ctrlを使ってしまって、その都度ダイアログが出てきて困ってしまった。自分、結構、右Ctrl を無意識に使っているらしい。
_VirtualBoxのホストキーを変更する - Qiita
_VirtualBoxのホストキーを変更する | NO MORE! 車輪の再発明
ホストキーは変更できる。ファイル → 環境設定 → 入力 → 仮想マシン。「ホストキーの組み合わせ」を、右Altキーにしておいた。とメモ。
_VirtualBoxのホストキーを変更する - Qiita
_VirtualBoxのホストキーを変更する | NO MORE! 車輪の再発明
ホストキーは変更できる。ファイル → 環境設定 → 入力 → 仮想マシン。「ホストキーの組み合わせ」を、右Altキーにしておいた。とメモ。
[ ツッコむ ]
#3 [linux] antiXの標準アプリ
軽量Linux antiX が、どういったアプリを標準アプリとして扱っているのか気になった。
_複数PCでの利用に向く「antiX Linux」、USB起動でも快適 | 日経クロステック(xTECH)
2022/12/22に公開されていた上記のページによると、以下のアプリが標準アプリっぽい。
しかし、本当にそうなのだろうか…。2年前の情報だし…。antiX 23.1 64bit full版のiso(antiX-23.1_x64-full.iso)から起動して確認してみた。
base版はWebブラウザが SeaMonkey だったけど、full版は違っていて、Firefox ESR なのだな…。また、full版には LibreOffice も含まれているけれど、base版には含まれてない。
でもまあ、それ以外のジャンルは、たしかにこういったアプリが標準扱いになっている模様。
_複数PCでの利用に向く「antiX Linux」、USB起動でも快適 | 日経クロステック(xTECH)
2022/12/22に公開されていた上記のページによると、以下のアプリが標準アプリっぽい。
- Webブラウザ : SeaMonkey, Dillo
- メール : SeaMonkey Mail
- オフィスソフト : qpdfview
- 画像ビューア : Mirage
- 画像編集 : MtPaint
- メディアプレイヤー : XMMS, mpv, Celluloid
- テキストエディタ : Geany, Leafpad
しかし、本当にそうなのだろうか…。2年前の情報だし…。antiX 23.1 64bit full版のiso(antiX-23.1_x64-full.iso)から起動して確認してみた。
- Webブラウザ : Firefox ESR
- メール : Claws Mail
- オフィスソフト : LibreOffice, qpdfview
- 画像ビューア : Mirage
- 画像編集 : mtPaint
- メディアプレイヤー : XMMS, mpv, Celluloid
- テキストエディタ : Geany, Leafpad
base版はWebブラウザが SeaMonkey だったけど、full版は違っていて、Firefox ESR なのだな…。また、full版には LibreOffice も含まれているけれど、base版には含まれてない。
でもまあ、それ以外のジャンルは、たしかにこういったアプリが標準扱いになっている模様。
◎ 余談。SeaMonkeyでいいのだろうか :
以下のような話を見かけた。
_Seamonkeyメモ
antiX 23.1 base版に同梱されていた SeaMonkey は 2.53.18 だったけど、2.53.xx はメモリリークを起こすという話があるらしい。低いハードウェアスペック上で動かすために antiX を選んでも、Webブラウザが無駄にメモリを馬鹿食いしていたら、それはなんだかアレだな…。
_Seamonkeyメモ
antiX 23.1 base版に同梱されていた SeaMonkey は 2.53.18 だったけど、2.53.xx はメモリリークを起こすという話があるらしい。低いハードウェアスペック上で動かすために antiX を選んでも、Webブラウザが無駄にメモリを馬鹿食いしていたら、それはなんだかアレだな…。
◎ アプリ一覧のスクリーンショット :
[ ツッコむ ]
2024/09/12(木) [n年前の日記]
#1 [linux] ROXTerm上でvimが変な文字を出してしまう
軽量Linuxの antiX 23.1 64bit は、仮想端末(仮想ターミナル、ターミナルエミュレータ)として ROXTerm を同梱している。その、antiX 23.1 64bit + ROXTerm 上で vim を使うと、vim 終了時に変な文字が出てくることに気づいた。
ROXTerm の TERM環境変数 を gnome-256color にすれば文字が出なくなるらしい。これはROXTerm の設定で変更できる。Preferences → edit Current Profile → General → TERM environment variable、で設定すればいい。
_antiX-23.1 日本語化スクリプト | ポン酢の備忘録
_Issue with vim.tiny in ROXTerm - antiX-forum
_Strange characters in vi/vim (escape sequences?) - antiX-forum
ROXTerm の TERM環境変数 を gnome-256color にすれば文字が出なくなるらしい。これはROXTerm の設定で変更できる。Preferences → edit Current Profile → General → TERM environment variable、で設定すればいい。
_antiX-23.1 日本語化スクリプト | ポン酢の備忘録
_Issue with vim.tiny in ROXTerm - antiX-forum
_Strange characters in vi/vim (escape sequences?) - antiX-forum
◎ micro editorでの不具合 :
ROXTerm上で micro editor を使った際に、Shift + 矢印キーで選択ができないことにも気づいた。
他の仮想端末、例えば Sakura や LXTerminal なら、問題無く機能する。ROXTerm だけがおかしい。
ROXTerm 上で TERM を色々変更したけれど効果は無かった。
ちなみに、Sakura や LXTerminal では、TERM は xterm-256color だった。
どうも ROXTerm は動作が怪しい…。Sakura をデフォルトの仮想ターミナルとして使ったほうがいいのかもしれない。以下で、x-terminal-emulator を変更できる。一覧が出てくるので、割り当てたい仮想端末を数字で選べばいい。
他の仮想端末、例えば Sakura や LXTerminal なら、問題無く機能する。ROXTerm だけがおかしい。
ROXTerm 上で TERM を色々変更したけれど効果は無かった。
ちなみに、Sakura や LXTerminal では、TERM は xterm-256color だった。
$ echo $TERM xterm-256color
どうも ROXTerm は動作が怪しい…。Sakura をデフォルトの仮想ターミナルとして使ったほうがいいのかもしれない。以下で、x-terminal-emulator を変更できる。一覧が出てくるので、割り当てたい仮想端末を数字で選べばいい。
sudo update-alternatives --config x-terminal-emulator
[ ツッコむ ]
#2 [zatta] スナップフィットというワードを知った
数日前にPCケースのフロントパネルの固定用突起を割ってしまったのだけど、そのあたりの仕組みについてググっていたら「スナップフィット」というワードがあることを知った。スナップショットじゃなくて、スナップフィット。
_スナップフィット - Wikipedia
例えば、接着剤無しで組み立てられるプラモデル ―― ガンプラでも採用されている技術/仕組みだそうで、「ガンプラ スナップフィット」でググるとたしかに関連ページが結構出てきた。
「スナップフィット」でググったら、壊れにくくするための色々なノウハウを知ることができた。突起部分の長さとか、出っ張りの幅とか、材質の弾性とか、そういったことが関係してくるらしい。突起の根元を直角にするか、カーブをつけるか、それだけでも強度が違ってくるのだとか。
_壊れづらいスナップフィット設計を出力するためのコツとは?|パラメーター、素材、出力の向き ・ 3Dプリンターとレジン&フィラメントの通販・購入はSK本舗
ただ、一度壊れてしまったものを修復する方法は見当たらなかった。そういった修理事例で、このワードを使うことは稀だろうから、まあ、出てこないよな…。
_スナップフィット - Wikipedia
例えば、接着剤無しで組み立てられるプラモデル ―― ガンプラでも採用されている技術/仕組みだそうで、「ガンプラ スナップフィット」でググるとたしかに関連ページが結構出てきた。
「スナップフィット」でググったら、壊れにくくするための色々なノウハウを知ることができた。突起部分の長さとか、出っ張りの幅とか、材質の弾性とか、そういったことが関係してくるらしい。突起の根元を直角にするか、カーブをつけるか、それだけでも強度が違ってくるのだとか。
_壊れづらいスナップフィット設計を出力するためのコツとは?|パラメーター、素材、出力の向き ・ 3Dプリンターとレジン&フィラメントの通販・購入はSK本舗
ただ、一度壊れてしまったものを修復する方法は見当たらなかった。そういった修理事例で、このワードを使うことは稀だろうから、まあ、出てこないよな…。
[ ツッコむ ]
2024/09/13(金) [n年前の日記]
#1 [cg_tools] Metasequoia 4を少しだけ試用
3DCGモデリングソフト Metasequoia 4 の Standard版が無料で利用できるようになった、というニュースを目にした。有償版の Metasequoia 4 EX は12,100円だけど、入出力その他で機能制限されたStandard版は無償化、ということらしい。
_「Metasequoia 4」Standard版が無償開放 〜老舗の高機能3DCGモデリングソフト - 窓の杜
_「Metasequoia(メタセコイア)」ポリゴン単位で立体モデルを生成・編集できる3DCGモデリングソフト - 窓の杜
_3DCGモデリングソフト「Metasequoia 4」Standard版相当機能が商用・非商用問わず無償化!EX版もより安価に | Game*Spark - 国内・海外ゲーム情報サイト
Metasequoia…懐かしいな…。Metasequoia 3 は購入したけれど使いこなせなくて、そのうち結局 blender を使うようになってしまったのだよな…。
気になったので少しだけ試用してみることにした。環境は Windows10 x64 22H2。
64bit版と32bit版があるけれど、32bit版を選んだ。Metaseq490a_Win32_Installer.exe を入手して実行するとインストーラが起動する。今回は、D:\Program Files (x86)\tetraface\Metasequoia4\ にインストールしてみた。
触ってみた感想は…。最初からツールバー上にアイコンが表示されていて、見た目で分かりやすくなってる気がする。アイコン+文字表示ができるので、慣れるまでは逐一文字を読んで機能を把握して、慣れてきたらアイコンで機能を見分けることができそう。Metasequoia 3 は文字表示かアイコン表示のどちらかしか選べなかったので、このあたりちょっと不便だった。
自分が3DCGモデリングソフトを試用する際のいつものお題、マグカップをモデリングしてみたけれど、操作方法をすっかり忘れていた上に一部の機能もよく分からなくて、30分ぐらいかかってしまった。ちなみに blender なら2分ぐらいで作れる…。
作業中、頂点を移動しようとして、ついうっかりGキー(blenderのショートカット)を押してしまったりもして…。自分、やっぱり blender に慣れてしまっているなと再認識。
_「Metasequoia 4」Standard版が無償開放 〜老舗の高機能3DCGモデリングソフト - 窓の杜
_「Metasequoia(メタセコイア)」ポリゴン単位で立体モデルを生成・編集できる3DCGモデリングソフト - 窓の杜
_3DCGモデリングソフト「Metasequoia 4」Standard版相当機能が商用・非商用問わず無償化!EX版もより安価に | Game*Spark - 国内・海外ゲーム情報サイト
Metasequoia…懐かしいな…。Metasequoia 3 は購入したけれど使いこなせなくて、そのうち結局 blender を使うようになってしまったのだよな…。
気になったので少しだけ試用してみることにした。環境は Windows10 x64 22H2。
64bit版と32bit版があるけれど、32bit版を選んだ。Metaseq490a_Win32_Installer.exe を入手して実行するとインストーラが起動する。今回は、D:\Program Files (x86)\tetraface\Metasequoia4\ にインストールしてみた。
触ってみた感想は…。最初からツールバー上にアイコンが表示されていて、見た目で分かりやすくなってる気がする。アイコン+文字表示ができるので、慣れるまでは逐一文字を読んで機能を把握して、慣れてきたらアイコンで機能を見分けることができそう。Metasequoia 3 は文字表示かアイコン表示のどちらかしか選べなかったので、このあたりちょっと不便だった。
自分が3DCGモデリングソフトを試用する際のいつものお題、マグカップをモデリングしてみたけれど、操作方法をすっかり忘れていた上に一部の機能もよく分からなくて、30分ぐらいかかってしまった。ちなみに blender なら2分ぐらいで作れる…。
作業中、頂点を移動しようとして、ついうっかりGキー(blenderのショートカット)を押してしまったりもして…。自分、やっぱり blender に慣れてしまっているなと再認識。
◎ Metasequoia 3のユーザー登録ができなくて悩んだ :
せっかくだから Metasequoia 3.1.6 もインストールしておこうと考えた。
metaseq316.exe を入手して実行するとインストーラが起動する。今回は、D:\Prog\Metasequoia3\Metaseq31\ にインストールしておいた。
Metaseq.exe を実行して起動するところまでは確認できたものの、ユーザー登録ができなくなて悩んだ。ヘルプ → ユーザー登録、で登録できるはずだけど、何度試しても、「シリアル情報をPCから読み取ることができません」みたいなメッセージが表示されてしまう。もしかして Windows10 x64 22H2 では動かない…?
原因判明。ユーザー登録時の注意事項の中に、管理者権限で実行すること、と記述されていた。.exe を右クリックして「管理者として実行」を選んで起動してからユーザー登録をしてみたらすんなり登録できた。
metaseq316.exe を入手して実行するとインストーラが起動する。今回は、D:\Prog\Metasequoia3\Metaseq31\ にインストールしておいた。
Metaseq.exe を実行して起動するところまでは確認できたものの、ユーザー登録ができなくなて悩んだ。ヘルプ → ユーザー登録、で登録できるはずだけど、何度試しても、「シリアル情報をPCから読み取ることができません」みたいなメッセージが表示されてしまう。もしかして Windows10 x64 22H2 では動かない…?
原因判明。ユーザー登録時の注意事項の中に、管理者権限で実行すること、と記述されていた。.exe を右クリックして「管理者として実行」を選んで起動してからユーザー登録をしてみたらすんなり登録できた。
◎ 余談。価格について :
Metasequoia 4 は Metasequoia 3 と比べて値段が上がってしまって購入を諦めた記憶があったのだけど、改めて調べてみたら Metasequoia 3 は 5,000円、Metasequoia 4 Standard版も5,400円でそんなに違いはなかった…。
_metaseq.net - Metasequoia - 購入方法(ユーザー登録) (WebArchive, 2013/03/25)
ただ、EX版は1万円以上していたので(当時は19,980円。一時期は20,350円になってたらしい)、おそらく自分はソレと比較して高いと思い込んでいたっぽい。
_metaseq.net - Metasequoia - ライセンス購入 (WebArchive, 2014/07/04)
_metaseq.net - Metasequoia - 購入方法(ユーザー登録) (WebArchive, 2013/03/25)
ただ、EX版は1万円以上していたので(当時は19,980円。一時期は20,350円になってたらしい)、おそらく自分はソレと比較して高いと思い込んでいたっぽい。
_metaseq.net - Metasequoia - ライセンス購入 (WebArchive, 2014/07/04)
[ ツッコむ ]
2024/09/14(土) [n年前の日記]
#1 [cg_tools] Metasequoia 4をもう少しだけ試用
3DCGモデリングソフト Metasequoia 4 Standard 4.9.0a 32bit版をせっかくインストールしたので、まだ試用中。
◎ マグカップの作り方 :
blenderでマグカップを作ると2分ぐらいで作れたけれど、Metasequoia 4 で作ったら30分かかってしまって、それはさすがにどうなのと思えてきた。何度も作り直して機能を把握しようと努めたところ、Metasequoia 4 でも2分ぐらいで作れるようになった。
手順をメモしておかないと忘れそうなので一応メモ。
穴と穴を繋ぐようにポリゴンを張ってくれる、穴埋め → ブリッジが便利だなと感じた。
回転体で作る方法も試したのだけど、曲面制御を有効にすると妙な形になってしまう。何故。ちなみに、線(直線)で開いた形状を作って、オブジェクトの設定で回転体を有効にすれば回転体は作れる…のかな。
手順をメモしておかないと忘れそうなので一応メモ。
- 基本部分を作成。基本図形 → 筒を作成。円柱じゃなくて、筒。横方向の分割数を12に。縦方向の分割数を5に。
- 作業をしやすくするため、全体を回転。筒形状を全選択してある状態で、回転 → Y軸 → 15度。これで側面の面の法線がX軸と一致して作業しやすくなる。
- 取っ手部分を作る。側面の2ヶ所の面を選んで、押出を2〜3回繰り返して、二本の棒が横に突き出ているような形に延ばす。
- 延ばした二本の棒の先端の上下を繋いで「コ」の字の形にする。棒の先端の面を選んで、Deleteキーで面を削除。穴を二つ作る。穴埋め → ブリッジを選んで、二つの穴を順に左クリックすると、穴を繋ぐように面が張られて上下が繋がる。
- 筒の底面を塞ぐ。底面の内側の辺を、選択 → 連続辺、で選択して、Deleteキーで削除。穴埋め → 穴埋め、で、内側の底部分と、外側の底部分を左クリックして穴を埋める。
- 全体的に滑らかな見た目にする。オブジェクトの設定で、曲面制御 → OpenSubdiv を選択。分割数を 4 か 8 に。
穴と穴を繋ぐようにポリゴンを張ってくれる、穴埋め → ブリッジが便利だなと感じた。
回転体で作る方法も試したのだけど、曲面制御を有効にすると妙な形になってしまう。何故。ちなみに、線(直線)で開いた形状を作って、オブジェクトの設定で回転体を有効にすれば回転体は作れる…のかな。
◎ 面の差し込み :
筒ではなく円柱から作る方法も試したけれど、上面と底面を小さくしつつポリゴンを増やす方法が分からない…。blender なら「面の差し込み」でできるのだけど…。
_【Blender】面を差し込む方法 | Blenderの易しい使い方
もしかして Metasequoia の場合、押出 → ベベル → 角度 0.0 → 面をドラッグ、でいいのかな? この操作でも似た感じの結果が得られたように見えた。
ただ、上面や底面を多角形ポリゴン1枚にしておかないと、押出 → ベベルで、面の差し込みっぽいことができない気がする。三角ポリゴン群がぐるりと円状に配置されてる形では、思ったような形にならない。
_【Blender】面を差し込む方法 | Blenderの易しい使い方
もしかして Metasequoia の場合、押出 → ベベル → 角度 0.0 → 面をドラッグ、でいいのかな? この操作でも似た感じの結果が得られたように見えた。
ただ、上面や底面を多角形ポリゴン1枚にしておかないと、押出 → ベベルで、面の差し込みっぽいことができない気がする。三角ポリゴン群がぐるりと円状に配置されてる形では、思ったような形にならない。
[ ツッコむ ]
2024/09/15(日) [n年前の日記]
#1 [cg_tools] Metasequoia 4をまだもう少しだけ試用
3DCGモデリングソフト Metasequoia 4 Standard 4.9.0a 32bit版をせっかくインストールしたので、まだもうちょっと試用中。せめてどんな機能があるか把握しておきたいので。
環境は、Windows10 x64 22H2 + Metasequoia 4.9.0a 32bit。
環境は、Windows10 x64 22H2 + Metasequoia 4.9.0a 32bit。
◎ 多角形ポリゴンと三角形四角形ポリゴンとの変換 :
Metasequoia 3.x までは三角形ポリゴンと四角形ポリゴンしか扱えなかったけれど、Metasequoia 4 は多角形ポリゴンを扱えるようになったらしい。
ただ、多角形と三角/四角形ポリゴンの変換操作が分からなくて調べてた。おそらく以下の操作で変換できるのかな。たぶん。
しかし、完全に問題無く変換できるわけではない模様。例えば三角形 → 四角形を試したところ、見た目では明らかに四角形にできそうな場所でも三角形がそのまま残ってしまった。このあたり何か制限があるのかもしれない。角度とか。
ただ、多角形と三角/四角形ポリゴンの変換操作が分からなくて調べてた。おそらく以下の操作で変換できるのかな。たぶん。
- 三角形/四角形ポリゴン群 → 多角形ポリゴンに : 選択部処理 → 隣り合う選択面を合成
- 多角形ポリゴン → 三角形ポリゴン群に : 選択部処理 → 面を三角形化
- 三角形ポリゴン群 → 四角形ポリゴン群に : 選択部処理 → 隣り合う三角形面を四角形面化
しかし、完全に問題無く変換できるわけではない模様。例えば三角形 → 四角形を試したところ、見た目では明らかに四角形にできそうな場所でも三角形がそのまま残ってしまった。このあたり何か制限があるのかもしれない。角度とか。
◎ blenderの面の差し込みと同じことをしたい :
昨日もメモしておいたけど、こちらにもメモ。
- ポリゴンを多角形ポリゴンにしておく。
- 押出 → ベベル → 角度 0.0。
- この状態で面を選択してドラッグすれば、面の差し込みと似た処理ができる。
◎ 材質設定の割り当て :
材質を設定する方法が分からなくて少しハマった。調べてみたら以下のような感じらしい。
- 面と、そこに割り当てたい材質設定をクリックして選択しておいてから、選択部処理 → 面に現在の材質を指定。
- もしくは、材質コマンド → 指定面のみ、を選んでから、設定したい面をクリックしていく。現在選択されている材質設定で、面の材質が指定されていく。
◎ 円の中に円を作りたい :
円の中に円を作りたい。下の画像で言えば、左の状態から右の状態にしたい。
どういう操作をしたら実現できるのか調べてた。忘れそうなので手順をメモ。もっと上手い方法があるのかもしれないけれど。
円部分を全部選択する。選択 → 通常にして、Shift + 左ボタンドラッグで、複数の面を選択できる。
多角形ポリゴンにする。選択部処理 → 隣り合う選択面を合成。
円部分が多角形ポリゴンになった。
多角形ポリゴンになれば、円の中に円を作れる。押出 → ベベル → 角度 0.0。
多角形ポリゴン上で、マウスの左ボタンドラッグをすれば、blenderの「面の差し込み」のようなことができる。
もう一つ円を作った。
真ん中の多角形ポリゴンを、Deleteキーを叩いて削除。穴ができる。
穴埋めをする。穴埋め → 穴埋め → 中心に頂点を配置。
穴にマウスカーソルを合わせると、線が黄色で表示される。この状態ならその穴を埋めることができると分かる。
左ボタンクリックすれば、穴埋めができる。
どういう操作をしたら実現できるのか調べてた。忘れそうなので手順をメモ。もっと上手い方法があるのかもしれないけれど。
円部分を全部選択する。選択 → 通常にして、Shift + 左ボタンドラッグで、複数の面を選択できる。
多角形ポリゴンにする。選択部処理 → 隣り合う選択面を合成。
円部分が多角形ポリゴンになった。
多角形ポリゴンになれば、円の中に円を作れる。押出 → ベベル → 角度 0.0。
多角形ポリゴン上で、マウスの左ボタンドラッグをすれば、blenderの「面の差し込み」のようなことができる。
もう一つ円を作った。
真ん中の多角形ポリゴンを、Deleteキーを叩いて削除。穴ができる。
穴埋めをする。穴埋め → 穴埋め → 中心に頂点を配置。
穴にマウスカーソルを合わせると、線が黄色で表示される。この状態ならその穴を埋めることができると分かる。
左ボタンクリックすれば、穴埋めができる。
◎ 余談。選択ツールの動作が気になる :
余談だけど、選択ツール(選択コマンド?)の動作というか、分類が気になる…。3種類に分かれているけれど、1つか2つで済むのではないか…。選択ツールを選んだ際、クリックで選択、ドラッグで矩形選択もしくは投げ縄選択、という仕様にもできそうな気もする。実はショートカットキーでそういうことができたりしないのかな。
と思っていたけど、試してみたらドラッグで矩形選択できた。投げ縄選択だけが仲間外れ扱いなのだな…。ちなみに blender は、左クリックで通常選択、左ドラッグで矩形選択、Ctrl+右ドラッグで投げ縄選択になるので、選択ツールは一つで済んでる。
移動、拡大、回転も、一つで済ませられそう。3種類の操作のうち1つを選んで利用できるハンドル表示ってあるよな…。でもまあ、その3つについては操作パネル(移動拡大回転を軸別でかけられるパネル)を使えばいいのかな。
3種類の操作が一つのハンドルにまとまってる系は、オブジェクトの上に描画される視覚情報が多くなるから、使いづらい面も…。初心者にとっても何が何やら分からなくて混乱するだろうし。このコマンドはコレしかできないと決めてしまうほうが分かりやすくなる。でも、作業効率は落ちる。
初心者にとって分かりやすいUIは、作業効率はえてして悪いし、作業効率が高いUIは初心者お断りになりがち。なかなか難しい。
と思っていたけど、試してみたらドラッグで矩形選択できた。投げ縄選択だけが仲間外れ扱いなのだな…。ちなみに blender は、左クリックで通常選択、左ドラッグで矩形選択、Ctrl+右ドラッグで投げ縄選択になるので、選択ツールは一つで済んでる。
移動、拡大、回転も、一つで済ませられそう。3種類の操作のうち1つを選んで利用できるハンドル表示ってあるよな…。でもまあ、その3つについては操作パネル(移動拡大回転を軸別でかけられるパネル)を使えばいいのかな。
3種類の操作が一つのハンドルにまとまってる系は、オブジェクトの上に描画される視覚情報が多くなるから、使いづらい面も…。初心者にとっても何が何やら分からなくて混乱するだろうし。このコマンドはコレしかできないと決めてしまうほうが分かりやすくなる。でも、作業効率は落ちる。
初心者にとって分かりやすいUIは、作業効率はえてして悪いし、作業効率が高いUIは初心者お断りになりがち。なかなか難しい。
[ ツッコむ ]
2024/09/16(月) [n年前の日記]
#1 [windows] ショートカットファイルのリンク先をまとめて変更したい
Windows10 x64 22H2上で、バックアップしてあったショートカットファイル群をコピーしてきたのだけど、リンク先のドライブ指定が古いままでそのままでは使えなかった。C:\ を D:\ にしたい…。
一々プロパティを開いて、手作業で修正してしまったのだけど、ちょっとこれは面倒臭いなと思えてきた。まとめて変更できるツールは無いのだろうか。
ググってみたら、そういうツールもあると知った。
_ショートカットファイルのリンク先を一括変更「Shortcut Target Changer」 - 今日のお気に入り - 窓の杜
_Cool Morning Soft
_Shortcut Director
ShortcutTargetChanger_300.zip や shcutdir100.lzh を入手して解凍。Windows10 x64 22H2上で任意の場所に置いて実行したみたところ起動してくれた。次回、こういう状況になったら利用してみよう…。
一々プロパティを開いて、手作業で修正してしまったのだけど、ちょっとこれは面倒臭いなと思えてきた。まとめて変更できるツールは無いのだろうか。
ググってみたら、そういうツールもあると知った。
_ショートカットファイルのリンク先を一括変更「Shortcut Target Changer」 - 今日のお気に入り - 窓の杜
_Cool Morning Soft
_Shortcut Director
ShortcutTargetChanger_300.zip や shcutdir100.lzh を入手して解凍。Windows10 x64 22H2上で任意の場所に置いて実行したみたところ起動してくれた。次回、こういう状況になったら利用してみよう…。
[ ツッコむ ]
2024/09/17(火) [n年前の日記]
#1 [python] Pythonでwavファイルをループ再生したい
Windows10 x64 22H2 + Python 3.10.10 64bt を使って、wavファイルをループ再生したい。tkinterを使ってウインドウ表示して、ボタンを押したら、winsound を使って再生開始/停止をしたい。
◎ 経緯 :
自分はPCに、オーディオセレクタ SONY SB-A40 を繋いで、複数のヘッドフォンをその時々で切り替えて使っているのだけど。どうもここ最近接触が悪くて、うっかりすると左側 or 右側の音が鳴ってなかったりする。
ちゃんと左右の音が出ているのか、それっぽいwavファイルをbatファイル経由で鳴らして確認していたけれど、これだとループ再生させたり、途中で強制停止させることができない。
wavファイルをループ再生させつつ、ボタンをクリックしたら停止/再生ができる何かが欲しいなと思えてきた。いやまあ、探せばシンプルな再生アプリが見つかりそうだけど…。
ちゃんと左右の音が出ているのか、それっぽいwavファイルをbatファイル経由で鳴らして確認していたけれど、これだとループ再生させたり、途中で強制停止させることができない。
wavファイルをループ再生させつつ、ボタンをクリックしたら停止/再生ができる何かが欲しいなと思えてきた。いやまあ、探せばシンプルな再生アプリが見つかりそうだけど…。
◎ AIに作ってもらった :
生成AIの Microsoft Copilot に、そういう処理をするPythonスクリプトを作ってもらった。
最初の生成結果はスレッドを使ってループ再生するスクリプトだったのだけど、ウインドウを閉じてもずっとループ再生してダメダメだった。そこで、「スレッドを使うな」だの「winsound.SND_LOOPを使え」だの何度も修正指示を出しみたところ、それらしいスクリプトにしてくれた。
_speakertestpy.pyw
これでいいんじゃないかな…。winsound を使っているから、Windows上でしか動かないけれど…。
_winsound --- Windows 用の音声再生インターフェース - Python 3.10.15 ドキュメント
使っている wavファイルは以下。たしか MUSIC MAKERを使って自作したwavファイルだったような気がするので CC0/Public Domain ってことで。
_speakertest.wav
余談。Google gemini にも作ってもらったけれど、そちらのほうがサンプルスクリプトらしい分かりやすいコードを出してきた。クラスを無理矢理作ったりしないし、各行にコメント文を逐一入れて解説してくれた。生成AIと言っても、生成結果が結構違うのだな…。
最初の生成結果はスレッドを使ってループ再生するスクリプトだったのだけど、ウインドウを閉じてもずっとループ再生してダメダメだった。そこで、「スレッドを使うな」だの「winsound.SND_LOOPを使え」だの何度も修正指示を出しみたところ、それらしいスクリプトにしてくれた。
_speakertestpy.pyw
wavfile = "speakertest.wav" import tkinter as tk from tkinter import filedialog import winsound class LoopPlayer: def __init__(self, root): self.root = root self.root.title("Speaker Test") self.root.geometry("270x130") self.is_playing = False self.file_path = wavfile self.play_button = tk.Button(root, text="Play", command=self.toggle_play) self.play_button.pack(pady=20, ipadx=40, ipady=8) self.file_label = tk.Label(root, text=self.file_path) self.file_label.pack() self.select_button = tk.Button(root, text="Select WAV", command=self.select_file) self.select_button.pack() self.toggle_play() self.root.bind("<Return>", (lambda event: self.toggle_play())) self.root.bind("<KeyPress-space>", (lambda event: self.toggle_play())) def select_file(self): self.file_path = filedialog.askopenfilename(filetypes=[("WAV files", "*.wav")]) if self.file_path: self.file_label.config(text=self.file_path.split("/")[-1]) def toggle_play(self): self.is_playing = not self.is_playing if self.is_playing: self.play_button.config(text="Stop") winsound.PlaySound(self.file_path, winsound.SND_FILENAME | winsound.SND_ASYNC | winsound.SND_LOOP) else: self.play_button.config(text="Play") winsound.PlaySound(None, winsound.SND_FILENAME) if __name__ == "__main__": root = tk.Tk() app = LoopPlayer(root) root.mainloop()
これでいいんじゃないかな…。winsound を使っているから、Windows上でしか動かないけれど…。
_winsound --- Windows 用の音声再生インターフェース - Python 3.10.15 ドキュメント
使っている wavファイルは以下。たしか MUSIC MAKERを使って自作したwavファイルだったような気がするので CC0/Public Domain ってことで。
_speakertest.wav
余談。Google gemini にも作ってもらったけれど、そちらのほうがサンプルスクリプトらしい分かりやすいコードを出してきた。クラスを無理矢理作ったりしないし、各行にコメント文を逐一入れて解説してくれた。生成AIと言っても、生成結果が結構違うのだな…。
◎ batファイルで鳴らすやり方 :
一応メモ。今までは以下のbatファイルで鳴らしてた。再生が終わると Y/N を尋ねてきて、y なら再度再生、n なら終了する。
_speakertest_play.bat
batファイルと言いつつ途中で PowerShell を呼び出してwavファイルを再生してるあたりが…。「だったら最初から PowerShellスクリプトで書けばいいじゃん。何やってんの」と言われそうだけど、PowerShellスクリプトは実行ポリシーを設定しないとそもそも実行できないので、そのあたりで悩んでしまってこうなったような気もする。
_PowerShellの実行ポリシーについて調査(その設定で本当に大丈夫ですか?) #ps1 - Qiita
_PowerShellの実行ポリシー変更 #Windows - Qiita
_speakertest_play.bat
@echo off chcp 65001 :REPLAY setlocal enabledelayedexpansion set WAVFILE=D:\home\Music\speakertest\speakertest.wav echo Play %WAVFILE% PowerShell -c "(New-Object Media.SoundPlayer %WAVFILE%).PlaySync();" endlocal set /p yn_check="Retry ? (y/N): " IF %yn_check:Y=Y%==Y goto REPLAY IF %yn_check:N=N%==N goto END :END
batファイルと言いつつ途中で PowerShell を呼び出してwavファイルを再生してるあたりが…。「だったら最初から PowerShellスクリプトで書けばいいじゃん。何やってんの」と言われそうだけど、PowerShellスクリプトは実行ポリシーを設定しないとそもそも実行できないので、そのあたりで悩んでしまってこうなったような気もする。
_PowerShellの実行ポリシーについて調査(その設定で本当に大丈夫ですか?) #ps1 - Qiita
_PowerShellの実行ポリシー変更 #Windows - Qiita
◎ サウンド設定を呼び出せれば済む話 :
M/B に載ってるサウンド用チップが Realtek Audio なら、設定ダイアログ上に、左右から音が出てるか確認する機能が載っているので、それを使えば済んでしまうのだけど…。どこを辿れば呼び出せるのかよく分からなくて…。
Realtek Audio Console で検索すれば出てくるのかな?
Realtek Audio Console で検索すれば出てくるのかな?
◎ まともなオーディオセレクタが欲しい :
オーディオセレクタ SONY AB-40 は、ステレオミニジャック対応で、4入力/2出力 or 2入力4出力なのだけど。この製品、もう売ってないのだよな…。売ってたとしても、結構なお値段。
代替になるオーディオセレクタが欲しいのだけど、製品ジャンル自体がマイナーなようで、日本メーカはこういう製品をもうどこも作ってない。中国製品の中から探すしか…。
代替になるオーディオセレクタが欲しいのだけど、製品ジャンル自体がマイナーなようで、日本メーカはこういう製品をもうどこも作ってない。中国製品の中から探すしか…。
[ ツッコむ ]
2024/09/18(水) [n年前の日記]
#1 [dtm] 音声合成ソフトVOICEVOXを試用
スピーカーのテストをするための音声データを作りたくなったけれど、自分の声で「Left」「Center」「Right」と吹き込むのはなんか嫌だなと思えてきて、音声合成ソフトを使ってみたくなった。
ググってみたら、VOICEVOXという音声合成ソフトが無料で利用できるらしいと知った。
_VOICEVOX | 無料のテキスト読み上げ・歌声合成ソフトウェア
_VOICEVOX Nemo
特に VOICEVOX Nemo のほうは、何かしらで使った際に「VOICEVOX Nemo」とクレジットを入れておくだけでいいらしい。
_Nemo 利用規約 | VOICEVOX
Windows10 x64 22H2上でインストールして試用してみることにした。
ググってみたら、VOICEVOXという音声合成ソフトが無料で利用できるらしいと知った。
_VOICEVOX | 無料のテキスト読み上げ・歌声合成ソフトウェア
_VOICEVOX Nemo
特に VOICEVOX Nemo のほうは、何かしらで使った際に「VOICEVOX Nemo」とクレジットを入れておくだけでいいらしい。
Nemo の音声ライブラリを用いて生成した音声は、「VOICEVOX Nemo」とクレジットを記載すれば、商用・非商用で利用可能です。
_Nemo 利用規約 | VOICEVOX
Windows10 x64 22H2上でインストールして試用してみることにした。
◎ インストール :
VOICEVOX.Web.Setup.0.20.0.exe を入手して実行。ネットから1.xGBの何かをダウンロードした後、インストール作業が始まる。今回は、現ユーザのみ使用を選んで、D:\Prog\VOICEVOX\ にインストールしてみた。
起動すると、キャラクターの声を選ぶ画面になる。が、設定 → オプション → マルチエンジン機能、を有効にする。ここで一旦終了。
VOICEVOX Nemo のファイル、voicevox_engine-windows-directml-0.20.0.vvpp を入手して、ダブルクリック。警告が出るけどそのまま続行。これで VOICEVOX Nemo のエンジンが、VOICEVOX に追加された。
全部で1.79GBほどストレージ容量を使う模様。
起動すると、キャラクターの声を選ぶ画面になる。が、設定 → オプション → マルチエンジン機能、を有効にする。ここで一旦終了。
VOICEVOX Nemo のファイル、voicevox_engine-windows-directml-0.20.0.vvpp を入手して、ダブルクリック。警告が出るけどそのまま続行。これで VOICEVOX Nemo のエンジンが、VOICEVOX に追加された。
全部で1.79GBほどストレージ容量を使う模様。
◎ 使ってみた感想 :
比較的それらしく喋ってくれて感心してしまった。ビミョーにイントネーションが怪しいところはあるけれど、そのあたりは指示し直して使うことになるのだろう…。
出力されるwavは、モノラル/24KHzらしい。
出力されるwavは、モノラル/24KHzらしい。
[ ツッコむ ]
#2 [python] edge-ttsを試用
英語に対応した音声合成ソフトを使いたいとググっていたら、PythonからMicrosoft Edge経由で音声合成(TTS)を呼び出せる、edge-tts なるモジュールがあると知った。
_Pythonで音声合成 〜edge-ttsを利用して英語の音声ファイルを作成〜 | 東陽テクニカ | “はかる"技術で未来を創る | ワン・テクノロジーズ・カンパニー
_UbuntuやRaspberry Piでも利用可能な音声合成エンジン、Edge-TTSの導入方法 - uepon日々の備忘録
_[Pythonプログラミング]最新のAI音声合成ライブラリEdgeTTSを試してみる : 乙Py先生のプログラミング教室
気になったので試用してみることにした。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。
_Pythonで音声合成 〜edge-ttsを利用して英語の音声ファイルを作成〜 | 東陽テクニカ | “はかる"技術で未来を創る | ワン・テクノロジーズ・カンパニー
_UbuntuやRaspberry Piでも利用可能な音声合成エンジン、Edge-TTSの導入方法 - uepon日々の備忘録
_[Pythonプログラミング]最新のAI音声合成ライブラリEdgeTTSを試してみる : 乙Py先生のプログラミング教室
気になったので試用してみることにした。環境は Windows10 x64 22H2 + Python 3.10.10 64bit。
◎ インストール :
pip でインストール。
色々なモジュールがインストールされた…。
pip install edge-tts
色々なモジュールがインストールされた…。
> pip install edge-tts Collecting edge-tts Downloading edge_tts-6.1.12-py3-none-any.whl.metadata (4.0 kB) Collecting aiohttp>=3.8.0 (from edge-tts) Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl.metadata (7.8 kB) Collecting certifi>=2023.11.17 (from edge-tts) Downloading certifi-2024.8.30-py3-none-any.whl.metadata (2.2 kB) Collecting aiohappyeyeballs>=2.3.0 (from aiohttp>=3.8.0->edge-tts) Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl.metadata (5.9 kB) Collecting aiosignal>=1.1.2 (from aiohttp>=3.8.0->edge-tts) Using cached aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB) Collecting attrs>=17.3.0 (from aiohttp>=3.8.0->edge-tts) Downloading attrs-24.2.0-py3-none-any.whl.metadata (11 kB) Collecting frozenlist>=1.1.1 (from aiohttp>=3.8.0->edge-tts) Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl.metadata (12 kB) Collecting multidict<7.0,>=4.5 (from aiohttp>=3.8.0->edge-tts) Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl.metadata (5.1 kB) Collecting yarl<2.0,>=1.0 (from aiohttp>=3.8.0->edge-tts) Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl.metadata (49 kB) Collecting async-timeout<5.0,>=4.0 (from aiohttp>=3.8.0->edge-tts) Using cached async_timeout-4.0.3-py3-none-any.whl.metadata (4.2 kB) Requirement already satisfied: typing-extensions>=4.1.0 in d:\python\python310-64\lib\site-packages (from multidict<7.0,>=4.5->aiohttp>=3.8.0->edge-tts) (4.5.0) Requirement already satisfied: idna>=2.0 in d:\python\python310-64\lib\site-packages (from yarl<2.0,>=1.0->aiohttp>=3.8.0->edge-tts) (3.4) Downloading edge_tts-6.1.12-py3-none-any.whl (29 kB) Downloading aiohttp-3.10.5-cp310-cp310-win_amd64.whl (379 kB) Downloading certifi-2024.8.30-py3-none-any.whl (167 kB) Downloading aiohappyeyeballs-2.4.0-py3-none-any.whl (12 kB) Using cached aiosignal-1.3.1-py3-none-any.whl (7.6 kB) Using cached async_timeout-4.0.3-py3-none-any.whl (5.7 kB) Downloading attrs-24.2.0-py3-none-any.whl (63 kB) Using cached frozenlist-1.4.1-cp310-cp310-win_amd64.whl (50 kB) Downloading multidict-6.1.0-cp310-cp310-win_amd64.whl (28 kB) Downloading yarl-1.11.1-cp310-cp310-win_amd64.whl (110 kB) Installing collected packages: multidict, frozenlist, certifi, attrs, async-timeout, aiohappyeyeballs, yarl, aiosignal, aiohttp, edge-tts Attempting uninstall: certifi Found existing installation: certifi 2022.12.7 Uninstalling certifi-2022.12.7: Successfully uninstalled certifi-2022.12.7 Successfully installed aiohappyeyeballs-2.4.0 aiohttp-3.10.5 aiosignal-1.3.1 async-timeout-4.0.3 attrs-24.2.0 certifi-2024.8.30 edge-tts-6.1.12 frozenlist-1.4.1 multidict-6.1.0 yarl-1.11.1
◎ 動作確認 :
edge-tts というコマンドと、edge-playback というコマンドが入るらしい。
edge-tts は、音声合成の結果をファイルとして出力する。mp3を出力して動作確認してみる。
hello.mp3、jhello.mp3 が保存された。再生してみたら、たしかに「ハローワールド」「こんにちは世界」と喋ってる。
edge-playback は、その場で音声として鳴らしてくれるけれど、mpv という再生ソフトが必要になるらしい。Ubuntu Linux 20.04 LTS上で mpv をインストールして試してみたけれどたしかに音声がその場で鳴った。しかし、Windowsではどうすればいいんだろう…?
Windows版のmpvもあるらしい。mpv-x86_64-20240918-git-22620af.7z を入手して、解凍して、任意のディレクトリに置いて、環境変数PATHに追加してみたら動作してくれた。
_mpv.io
_mpv_rのインストール方法(Windows)|kwks_workshop
> which edge-tts "D:\Python\Python310-64\Scripts\edge-tts.exe" > which edge-playback "D:\Python\Python310-64\Scripts\edge-playback.exe"
edge-tts は、音声合成の結果をファイルとして出力する。mp3を出力して動作確認してみる。
edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.vtt edge-tts --text "こんにちは、世界" -v ja-JP-NanamiNeural --write-media jhello.mp3 --write-subtitles jhello.vtt
hello.mp3、jhello.mp3 が保存された。再生してみたら、たしかに「ハローワールド」「こんにちは世界」と喋ってる。
edge-playback は、その場で音声として鳴らしてくれるけれど、mpv という再生ソフトが必要になるらしい。Ubuntu Linux 20.04 LTS上で mpv をインストールして試してみたけれどたしかに音声がその場で鳴った。しかし、Windowsではどうすればいいんだろう…?
Windows版のmpvもあるらしい。mpv-x86_64-20240918-git-22620af.7z を入手して、解凍して、任意のディレクトリに置いて、環境変数PATHに追加してみたら動作してくれた。
_mpv.io
_mpv_rのインストール方法(Windows)|kwks_workshop
◎ 音声の種類 :
edge-tts -l または edge-tts --list-voices で、選択できる音声の種類が表示される。めちゃくちゃたくさんあるなと思ったけれど、どうやら言語別で用意されてるようで、実際には男性か女性かぐらいしか選べない感じもする。
日本語に対応しているのは以下だろうか。
英語(en-us)は結構あるな…。男女別で分けると以下のような感じだろうか。
日本語に対応しているのは以下だろうか。
Name: ja-JP-KeitaNeural Gender: Male Name: ja-JP-NanamiNeural Gender: Female
英語(en-us)は結構あるな…。男女別で分けると以下のような感じだろうか。
Gender: Female en-US-AnaNeural en-US-AriaNeural en-US-AvaMultilingualNeural en-US-AvaNeural en-US-EmmaMultilingualNeural en-US-EmmaNeural en-US-JennyNeural en-US-MichelleNeural Gender: Male en-US-AndrewMultilingualNeural en-US-AndrewNeural en-US-BrianMultilingualNeural en-US-BrianNeural en-US-ChristopherNeural en-US-EricNeural en-US-GuyNeural en-US-RogerNeural en-US-SteffanNeural
[ ツッコむ ]
#3 [prog] AIにPythonスクリプトを作成してもらえないか実験
昨日も作業したのだけど、Microsoft Copilot に、Pythonスクリプトを作成してもらえないか試してた。
昨日は何度も修正要求を出して目的のスクリプトに辿り着いたけど、そのあたりをまとめたら以下のプロンプトになった。コレを渡したら、最初からそれらしいスクリプトを生成してくれた。
ちなみに、フツーはEnterを叩くと即座に送信してしまうので改行できないけれど、Shift+Enterで改行できるらしい。あるいは、まとめてコピーして貼り付けるだけでも改行は反映される模様。
生成結果は以下。
コメントで何をしてるか解説してくれているし、イイ感じかもしれない。プロンプト次第で生成結果が結構変わるのだな…。
余談。「すげえ。これならもうプログラマー要らねえじゃん」と言い出す人が出てきそうだけど、Python も tkinter も winsound もプログラマーが作ってくれているからこうして呼び出して利用できるわけで…。それに今回の事例に限って言えば、どのモジュール(ライブラリ)を使うのか、どのオプションを使うのか、そこまで逐一指示しないと、音が鳴り続けて止め方すら分からないダメダメなスクリプトを生成してきたので…。
やはり、ある程度分かってる人が ―― プログラムを書ける程度の知識を持ってる人ならコレを使ってちょっと楽ができそうかも、みたいな状況かなと。Copilot = 副操縦士、という名称はなんだか上手い気がする。
昨日は何度も修正要求を出して目的のスクリプトに辿り着いたけど、そのあたりをまとめたら以下のプロンプトになった。コレを渡したら、最初からそれらしいスクリプトを生成してくれた。
ちなみに、フツーはEnterを叩くと即座に送信してしまうので改行できないけれど、Shift+Enterで改行できるらしい。あるいは、まとめてコピーして貼り付けるだけでも改行は反映される模様。
以下に示す仕様でPythonスクリプトを作成してください。 ・ tkinterとwinsoundを使った、ウインドウサイズが300x140のGUIアプリです。 ・ wavファイルをwinsoud.SND_LOOP指定でループ再生します。 ・ スレッドは使いません。 ・ デフォルトのwavファイル名は「speakertest.wav」です。 ・ アプリを起動すると自動でwavが再生されます。 ・ ボタンをクリックすると再生を停止してボタン表示が「Play」になります。 ・ 再度ボタンをクリックすると再生を開始してボタン表示が「Stop」になります。 ・ ウインドウ上にwavファイル名が表示されます。 ・ ファイル選択ボタンをクリックするとファイル選択ダイアログが開いてwavファイルを選択できます。 ・ Enterキーかスペースキーを押すと再生または停止になります。 ・ ESCキーかQキーを押すとアプリが終了します。 ・ これらの処理をクラスを使わずに記述します。
生成結果は以下。
import tkinter as tk from tkinter import filedialog import winsound # デフォルトのwavファイル名 wav_file = "speakertest.wav" # 再生中かどうかのフラグ is_playing = True # 再生を開始する関数 def play_sound(): global is_playing winsound.PlaySound(wav_file, winsound.SND_LOOP | winsound.SND_ASYNC) button.config(text="Stop") is_playing = True # 再生を停止する関数 def stop_sound(): global is_playing winsound.PlaySound(None, winsound.SND_PURGE) button.config(text="Play") is_playing = False # ボタンがクリックされたときの処理 def toggle_sound(): if is_playing: stop_sound() else: play_sound() # ファイル選択ダイアログを開く関数 def select_file(): global wav_file file_path = filedialog.askopenfilename(filetypes=[("WAV files", "*.wav")]) if file_path: wav_file = file_path label.config(text=wav_file) if is_playing: play_sound() # キーが押されたときの処理 def on_key_press(event): if event.keysym in ["Return", "space"]: toggle_sound() elif event.keysym in ["Escape", "q"]: root.destroy() # ウインドウの設定 root = tk.Tk() root.title("WAV Player") root.geometry("300x140") # ラベルの設定 label = tk.Label(root, text=wav_file) label.pack(pady=10) # ボタンの設定 button = tk.Button(root, text="Stop", command=toggle_sound) button.pack(pady=10) # ファイル選択ボタンの設定 file_button = tk.Button(root, text="Select File", command=select_file) file_button.pack(pady=10) # キーイベントのバインド root.bind("<KeyPress>", on_key_press) # アプリ起動時に再生を開始 play_sound() # メインループの開始 root.mainloop()
コメントで何をしてるか解説してくれているし、イイ感じかもしれない。プロンプト次第で生成結果が結構変わるのだな…。
余談。「すげえ。これならもうプログラマー要らねえじゃん」と言い出す人が出てきそうだけど、Python も tkinter も winsound もプログラマーが作ってくれているからこうして呼び出して利用できるわけで…。それに今回の事例に限って言えば、どのモジュール(ライブラリ)を使うのか、どのオプションを使うのか、そこまで逐一指示しないと、音が鳴り続けて止め方すら分からないダメダメなスクリプトを生成してきたので…。
やはり、ある程度分かってる人が ―― プログラムを書ける程度の知識を持ってる人ならコレを使ってちょっと楽ができそうかも、みたいな状況かなと。Copilot = 副操縦士、という名称はなんだか上手い気がする。
[ ツッコむ ]
2024/09/19(木) [n年前の日記]
#1 [linux][ubuntu][python][dtm] 音声合成ソフトespeakを試用
Linux上で音声合成をして鳴らすことができる、espeak というプログラムがある。Python + pyttsx3 で音声合成する時に呼び出されるのだとか。VMware + Ubuntu Linux 20.04 LTS や、実機上の Ubuntu Linux 22.04 LTS上ででインストールして試用してみた。
Ubuntu Linux 20.04 LTS の場合、espeak 1.48.04 が、22.04 LTS の場合、espeak 1.48.15 が入った。
libespeak1 というパッケージもインストールされる。pyttsx3 を利用する時は、このパッケージが必要になるらしい。
_Debian -- bookworm の libespeak1 パッケージに関する詳細
_Debian -- パッケージのファイル一覧: libespeak1/bookworm/amd64
espeak はメジャーな言語(英語等)しかサポートしてなくて、日本語はサポートされていない。日本語も利用したい時は、espeak-ng を使うといいらしい。espeak をアンインストールしてから、espeak-ng をインストールしてみた。
Ubuntu Linux 20.04 / 22.04 LTS上では espeak-ng 1.50 が入った。
◎ インストール :
sudo apt install espeak libespeak-dev
Ubuntu Linux 20.04 LTS の場合、espeak 1.48.04 が、22.04 LTS の場合、espeak 1.48.15 が入った。
libespeak1 というパッケージもインストールされる。pyttsx3 を利用する時は、このパッケージが必要になるらしい。
_Debian -- bookworm の libespeak1 パッケージに関する詳細
_Debian -- パッケージのファイル一覧: libespeak1/bookworm/amd64
espeak はメジャーな言語(英語等)しかサポートしてなくて、日本語はサポートされていない。日本語も利用したい時は、espeak-ng を使うといいらしい。espeak をアンインストールしてから、espeak-ng をインストールしてみた。
sudo apt purge espeak libespeak-dev libespeak1 sudo apt install espeak-ng libespeak-ng-dev libespeak-ng1
Ubuntu Linux 20.04 / 22.04 LTS上では espeak-ng 1.50 が入った。
◎ 動作確認 :
使い方は以下。
機械的な男性の声で、「ハローワールド」と喋ってくれた。
声の種類というか言語の指定は「-v hoge」をつける。また、男女の声を選び分ける時は、言語指定の後に、「+m2」「+f2」等をつける。「+f1」から「+f4」まで指定して、声質が変わることを確認した。
また、「-s xxx」をつけることで、速度が変わる。デフォルトは175、らしい? 一定時間に何語喋るかを指定するそうで、指定した数値が少なければ遅くなり、多ければ早くなる。
espeak, espeak-ng で、英語、かつ、女性の声を指定するなら以下になる。
espeak と espeak-ng で、言語指定時の文字列が違っているのがちょっと面倒かもしれない。
一応、選択できる言語の種類を出力してみた。
_voices_espeak.txt
_voices_espeak-ng.txt
espeak "Hello world" or espeak-ng "Hello world"
機械的な男性の声で、「ハローワールド」と喋ってくれた。
声の種類というか言語の指定は「-v hoge」をつける。また、男女の声を選び分ける時は、言語指定の後に、「+m2」「+f2」等をつける。「+f1」から「+f4」まで指定して、声質が変わることを確認した。
また、「-s xxx」をつけることで、速度が変わる。デフォルトは175、らしい? 一定時間に何語喋るかを指定するそうで、指定した数値が少なければ遅くなり、多ければ早くなる。
espeak, espeak-ng で、英語、かつ、女性の声を指定するなら以下になる。
espeak -v "english-us+f2" -s 150 "hello world" or espeak-ng -v "English (America)+f2" -s 150 "hello world"
espeak と espeak-ng で、言語指定時の文字列が違っているのがちょっと面倒かもしれない。
一応、選択できる言語の種類を出力してみた。
_voices_espeak.txt
_voices_espeak-ng.txt
◎ pyttsx3から利用 :
Python + pyttsx3 で利用してみる。VMware + Ubuntu Linux 20.04 LTS上で動作確認した。
ユーザのホームフォルダに pyttsx3 をインストール。
利用できるボイス種類の一覧は、以下で表示できる。
動作確認用スクリプト。
ただ、VMware + Ubuntu Linux 20.04 LTS 上では、音声再生が途中で打ち切られてしまった…。実機なら正常に動作するのだろうか?
実機(Ubuntu Linux 22.04 LTS, Python 3.10.12, pyttsx3 2.97) でもダメだった。やはり音声再生が途中で打ち切られてしまう…。
espeak-ng を単独で呼び出した場合は最後まで再生されるのだけど、pyttsx3 経由だと音声が最後まで流れてくれない。
espeak-ng を使ってるのがマズいのかと、espeak をインストールし直してみたけれど、改善しなかった。
Windows10 x64 22H2 + Python 3.10.10 64bit + pyttsx3 2.97 なら、最後まで再生される。ちなみに Windows10 x64 22H2上で動かすと、Windowsにインストールされてる音声合成エンジン(SAPI5)を使ってくれるらしい。
ユーザのホームフォルダに pyttsx3 をインストール。
python3 -m pip install pyttsx3
利用できるボイス種類の一覧は、以下で表示できる。
import pyttsx3 engine = pyttsx3.init() voices = engine.getProperty('voices') for voice in voices: print(f"Voice: {voice.name}")
動作確認用スクリプト。
import pyttsx3 import time engine = pyttsx3.init() # engine.setProperty("voice", "english-us+f2") engine.setProperty("voice", "English (America)+f2") engine.setProperty("rate", 200) engine.say("hello world. Speaker test. Left, center, right.") engine.runAndWait() time.sleep(2)
ただ、VMware + Ubuntu Linux 20.04 LTS 上では、音声再生が途中で打ち切られてしまった…。実機なら正常に動作するのだろうか?
実機(Ubuntu Linux 22.04 LTS, Python 3.10.12, pyttsx3 2.97) でもダメだった。やはり音声再生が途中で打ち切られてしまう…。
espeak-ng を単独で呼び出した場合は最後まで再生されるのだけど、pyttsx3 経由だと音声が最後まで流れてくれない。
espeak-ng を使ってるのがマズいのかと、espeak をインストールし直してみたけれど、改善しなかった。
Windows10 x64 22H2 + Python 3.10.10 64bit + pyttsx3 2.97 なら、最後まで再生される。ちなみに Windows10 x64 22H2上で動かすと、Windowsにインストールされてる音声合成エンジン(SAPI5)を使ってくれるらしい。
◎ 余談。python3-espeakパッケージ :
Ubuntu Linux (or Debian Linux) では、Python3 から espeak を呼び出せる、python3-espeak というパッケージも用意されているらしい。こちらを使ったら、また違う動作になるのだろうか…?
_Debian -- bookworm の python3-espeak パッケージに関する詳細
_Debian -- bookworm の python3-espeak パッケージに関する詳細
◎ 余談その2。Python 2.7の場合 :
Windows10 x64 22H2 + Python 2.7の場合、pyttsx3 2.6 をインストールしたら動いてくれた。
_pyttsx3 - PyPI
_pyttsx3 - PyPI
pip install pyttsx3==2.6
◎ 参考ページ :
_pyttsx3 - PyPI
_Python で text-to-speach を試してみる - プログラマーのメモ書き
_python - Having problem using 'pyttsx3' on Ubuntu 20.04 - Stack Overflow
_【Python】合成音声pyttsx3使い方-テキストを読み上げ | アリッシアの朝
_eSpeak NG Text-to-Speech|npaka
_Python で text-to-speach を試してみる - プログラマーのメモ書き
_python - Having problem using 'pyttsx3' on Ubuntu 20.04 - Stack Overflow
_【Python】合成音声pyttsx3使い方-テキストを読み上げ | アリッシアの朝
_eSpeak NG Text-to-Speech|npaka
◎ 2024/09/20追記 :
pyttsx3 が正常に動作しない原因が分かった。pyttsx3 2.97 のバグっぽい。
あるいは、espeak-ng をそのまま使うこともできるらしい。libespeak-ng.so.1 を libespeak.so.1 としてリンクを張ればいい模様。
- espeak-ng ではなく、espeak をインストール。
- pyttsx3 をアンインストールして pyttsx3 2.88, 2.91, 2.95 をインストール。
sudo apt purge espeak-ng libespeak* sudo apt install espeak libespeak-dev python -m pip uninstall pyttsx3 python -m pip install pyttsx3=2.95
あるいは、espeak-ng をそのまま使うこともできるらしい。libespeak-ng.so.1 を libespeak.so.1 としてリンクを張ればいい模様。
sudo apt install espeak-ng libespeak-ng-dev libespeak-ng1 cd /usr/lib/x86_64-linux-gnu ln -s libespeak-ng.so.1 libespeak.so.1
[ ツッコむ ]
2024/09/20(金) [n年前の日記]
#1 [python][dtm] pyttsx3を試用
pyttsx3は、Pythonを使って音声合成を出力するモジュール(ライブラリ)。
気になったので少し試用してみた。動作確認環境は以下。
- Windowsの場合、SAPI5 を利用して音声合成する。
- Linuxの場合、espeak (espeak-ng) を利用して音声合成する。
気になったので少し試用してみた。動作確認環境は以下。
- Windows10 x64 + Python 3.10.10 64bit + pyttsx3 2.97
- Ubuntu Linux 22.04 LTS + Python 3.10.12 64bit + pyttsx3 2.95 + espeak-ng 1.50
◎ インストール :
Windows + Python 3.x なら、以下でインストールできる。
Linux上では注意が必要。現行バージョンは 2.97 だけど、Linux上では pyttsx3 2.97 はバグっていて、音声が途中で途切れてしまう。pyttsx3 2.95 まで戻したら正常に動作した。
Python 2.7.x上で使う場合も注意が必要。2024/09/19の時点では、Python 2.7.18 32bit上で pyttsx3 を使いたい場合、pyttsx3 2.6 をインストールしないと使えなかった。
_pyttsx3 2.6 : Python Package Index
pip install pyttsx3 or python -m pip install pyttsx3
Linux上では注意が必要。現行バージョンは 2.97 だけど、Linux上では pyttsx3 2.97 はバグっていて、音声が途中で途切れてしまう。pyttsx3 2.95 まで戻したら正常に動作した。
python -m pip uninstall pyttsex3 python -m pip install pyttsx3==2.95
Python 2.7.x上で使う場合も注意が必要。2024/09/19の時点では、Python 2.7.18 32bit上で pyttsx3 を使いたい場合、pyttsx3 2.6 をインストールしないと使えなかった。
_pyttsx3 2.6 : Python Package Index
python -m pip install pyttsx3==2.6
◎ espeakについて :
Linux の場合 espeak を使って音声合成するが、espeak は日本語をサポートしていない。espeak-ng なら日本語をサポートしているのでそちらを使うのも手。ただし、libespeak-ng.so.1 を libespeak.so.1 として使えるようにリンクを張らないといけない。
sudo apt install espeak-ng libespeak-ng-dev libespeak-ng1 cd /usr/lib/x86_64-linux-gnu ln -s libespeak-ng.so.1 libespeak.so.1
◎ espeakとedge-ttsの音声サンプル :
せっかくだから espeak (espeak-ng) と edge-tts の音声サンプルを載せておく。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge_tts_hello.ogg
espeak はフォルマント音声合成方式のせいか、なんだか機械的な声と言うか…。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak-ng "Hello world. Sally sells seashells by the seashore." -v "English (America)+f3" -s 150 -w espeak_ng_hello.wav
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge-tts -t "Hello world. Sally sells seashells by the seashore." -v en-US-AriaNeural --write-subtitles edge_tts_hello.vtt --write-media edge_tts_hello.mp3
edge_tts_hello.ogg
espeak はフォルマント音声合成方式のせいか、なんだか機械的な声と言うか…。
[ ツッコむ ]
#2 [windows] Windows10の音声合成データの追加
日本語版 Windows10 x64 22H2上では、音声合成用のデータとして最初から以下の2つが入ってるように見えるのだけど。
「ナレーター」の設定画面から音声データを追加できるらしい。
「英語(アイルランド)」「英語(オーストラリア)」「英語(カナダ)」「英語(英国)」などを追加してみた。この状態にすると、選べる音声データが増えた。
TTS_MS_JA-JP_HARUKA_11.0 TTS_MS_EN-US_ZIRA_11.0
「ナレーター」の設定画面から音声データを追加できるらしい。
- Ctrl + Win + N キーを押すと、ナレーターの画面が開く。
- ナレーターの声をカスタマイズする、のすぐ下に、音声を追加する、という項目があるのでクリック。
- 音声認識の設定画面が開くので、音声の管理 → 音声の追加、をクリック。
「英語(アイルランド)」「英語(オーストラリア)」「英語(カナダ)」「英語(英国)」などを追加してみた。この状態にすると、選べる音声データが増えた。
TTS_MS_JA-JP_HARUKA_11.0 TTS_MS_EN-US_DAVID_11.0 TTS_MS_EN-US_ZIRA_11.0 TTS_MS_EN-GB_HAZEL_11.0
[ ツッコむ ]
2024/09/21(土) [n年前の日記]
#1 [dtm] Mary TTSについて調べてる
音声合成ツールについて調べているうちに、Mary TTS というツールがあることを知った。
_MaryTTS - Introduction
_marytts/marytts: MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java
_英語テキスト朗読ツールMaryTTS | AIお助けボックス
気になったので試用してみようと思ったのだけど、インストール方法からして分からない…。もうちょっと調べてみないと…。
_MaryTTS - Introduction
_marytts/marytts: MARY TTS -- an open-source, multilingual text-to-speech synthesis system written in pure java
_英語テキスト朗読ツールMaryTTS | AIお助けボックス
気になったので試用してみようと思ったのだけど、インストール方法からして分からない…。もうちょっと調べてみないと…。
◎ ダメだった事例 :
以下の動画を参考にしながら作業。Windows10 x64 22H2 + Java 1.8.0_421上で実験。
_Install Open Mary TTS in Windows - YouTube
以下のページから marytts-5.2.zip を取得して解凍。任意のフォルダに置いた。
_MaryTTS - Download
音声データらしきものを取得。以下の .xml に zip ファイルのURLが書いてあるので、一つずつDLしていった。
_marytts/download/marytts-components.xml at master - marytts/marytts
ただ、github.com に置いてある zip は入手できるけど、mary.dfki.de のURLは404になっていて、そこに置いてあったらしい zip は入手できない…。
とりあえず、DLできたzipだけでも解凍。中には lib/*.jar があるので、marytts-5.2.zip を解凍してできたフォルダ内の lib/ の中にコピー。
これで、bin/marytts-server.bat を実行してサーバを起動しておいてから、bin/marytts-client.bat を実行すれば動くはずなのだけど。marytts-client.bat を実行した段階で、サーバ側もクライアント側も両方エラーを出して終了してしまう。
当時は Java 8 で動かしていたらしい。Java が新し過ぎると動かないのだろうか?
_Install Open Mary TTS in Windows - YouTube
以下のページから marytts-5.2.zip を取得して解凍。任意のフォルダに置いた。
_MaryTTS - Download
音声データらしきものを取得。以下の .xml に zip ファイルのURLが書いてあるので、一つずつDLしていった。
_marytts/download/marytts-components.xml at master - marytts/marytts
ただ、github.com に置いてある zip は入手できるけど、mary.dfki.de のURLは404になっていて、そこに置いてあったらしい zip は入手できない…。
とりあえず、DLできたzipだけでも解凍。中には lib/*.jar があるので、marytts-5.2.zip を解凍してできたフォルダ内の lib/ の中にコピー。
これで、bin/marytts-server.bat を実行してサーバを起動しておいてから、bin/marytts-client.bat を実行すれば動くはずなのだけど。marytts-client.bat を実行した段階で、サーバ側もクライアント側も両方エラーを出して終了してしまう。
当時は Java 8 で動かしていたらしい。Java が新し過ぎると動かないのだろうか?
[ ツッコむ ]
2024/09/22(日) [n年前の日記]
#1 [dtm][python] Coqui-TTSを試用
Coqui-TTS という音声合成ライブラリがあるらしい。ディープラーニングで作られたTTS(Text to Speech)なのだとか。元々は Mozilla TTS というプロジェクトだったそうで。
_coqui-ai/TTS: a deep learning toolkit for Text-to-Speech, battle-tested in research and production
_TTS - PyPI
_coqui-tts - PyPI
Pythonのモジュールとしてインストールできるらしいのだけど、TTS と coqui-tts の2つがあるようで…。どっちがどう違うのか、よく分からない…。
Ubuntu Linux 22.04 LTS上でインストールして試用してみた。とりあえず今回は TTS のほうを試用してみる。
ハードウェアは、CPU : Intel i3-6100T、GPU : 内蔵GPU、RAM : 8GB。Python バージョンは 3.10.12。
TTS 0.22.0 の他に、色々なモジュールが山ほど入った。仮想環境を作って試したほうが良かったかもしれない…。
_coqui-ai/TTS: a deep learning toolkit for Text-to-Speech, battle-tested in research and production
_TTS - PyPI
_coqui-tts - PyPI
Pythonのモジュールとしてインストールできるらしいのだけど、TTS と coqui-tts の2つがあるようで…。どっちがどう違うのか、よく分からない…。
Ubuntu Linux 22.04 LTS上でインストールして試用してみた。とりあえず今回は TTS のほうを試用してみる。
ハードウェアは、CPU : Intel i3-6100T、GPU : 内蔵GPU、RAM : 8GB。Python バージョンは 3.10.12。
$ python --version Python 3.10.12
◎ インストール :
python -m pip install TTS
TTS 0.22.0 の他に、色々なモジュールが山ほど入った。仮想環境を作って試したほうが良かったかもしれない…。
◎ 使い方 :
Pythonモジュールではあるけれど、tts というコマンドラインツールも入っているので、それを使って動作確認。
実行すると、自動で足りないモデルデータをダウンロードしてから音声を生成してくれた。モデルデータは以下の場所に保存されるらしい。
以下の2つのファイルが入った。113MB と 3.8MBのファイルサイズだった。
さておき。22050Hz、モノラルの音声が得られた。
tts --text "Hello world" --out_path speech.wav
実行すると、自動で足りないモデルデータをダウンロードしてから音声を生成してくれた。モデルデータは以下の場所に保存されるらしい。
/home/(USERNAME)/.local/share/tts/
以下の2つのファイルが入った。113MB と 3.8MBのファイルサイズだった。
tts_models--en--ljspeech--tacotron2-DDC vocoder_models--en--ljspeech--hifigan_v2
さておき。22050Hz、モノラルの音声が得られた。
◎ 印象 :
espeak (espeak-ng) や festival と比べると、かなり滑らかでイイ感じの音声に聞こえた。
ただ、生成には数十秒(30秒ほど)かかった。おそらく、Intel製内蔵GPUしか持ってない環境だからCPUで生成しているのだろうけど…。espeak や festival はすぐに音声が聞こえたけれど、それらと比べると結構な時間がかかる。品質と時間のトレードオフだろうか。
GPUを使えばもうちょっと速く生成できたりするのかな…?
ところで、渡すテキストによっては、途中で「ホニャララウンジャラウニャウニャ」的な謎の音声が含まれて出力されるようで…。どういう条件なら出現するのか、ちょっとよく分からない…。
ただ、生成には数十秒(30秒ほど)かかった。おそらく、Intel製内蔵GPUしか持ってない環境だからCPUで生成しているのだろうけど…。espeak や festival はすぐに音声が聞こえたけれど、それらと比べると結構な時間がかかる。品質と時間のトレードオフだろうか。
GPUを使えばもうちょっと速く生成できたりするのかな…?
ところで、渡すテキストによっては、途中で「ホニャララウンジャラウニャウニャ」的な謎の音声が含まれて出力されるようで…。どういう条件なら出現するのか、ちょっとよく分からない…。
◎ Windows10上でもインストール :
Windows10 x64 22H2上でもインストールしてみた。ハードウェア環境は、CPU : AMD Ryzen 5 5600X、RAM : 16GB、GPU : NVIDIA GeForce FTX 1060 6GB。Python は 3.10.10。
今回は、X:\aiwork\coqui-tts\ というディレクトリを作って、その中にPythonの仮想環境を coquitts という名前で作って作業してみた。
Ubuntu Linuxと同様に TTS をインストール。
全体的に 6.34GB ほどのファイル群がインストールされた。
動作確認。
Ubuntu Linux上と同じように生成できた。モデルデータも、自動でダウンロードしてから処理をしてくれる。モデルデータは以下にダウンロードされる模様。
ただ、GPU (CUDA) を使おうとして --use_cuda true をつけてみるとエラーが出る。
以下で解決策が紹介されてた。
_pipでPyTorchインストール時に「Torch not compiled with CUDA enabled」エラー - Qiita
ただ、この操作をしてみても、自分の環境では相変わらずエラーが出たので、上記で紹介されていた、以下のページの作業を試してみた。
_Previous PyTorch Versions | PyTorch
自分の環境は、CUDA 11.8 をインストール済みなので、以下を打った。
この状態なら、--use_cuda true をつけても処理ができるようになった。
GPUを使った場合、生成時間がかなり短くなってくれた。短文では違いが分からないけれど、長文を渡すと圧倒的に生成時間が短い。数十秒かかっていたのが、数秒で終わる印象。
今回は、X:\aiwork\coqui-tts\ というディレクトリを作って、その中にPythonの仮想環境を coquitts という名前で作って作業してみた。
cd X:\aiwork\coqui-tts python -m venv coquitts .\coquitts\Scripts\activate
Ubuntu Linuxと同様に TTS をインストール。
python -m pip install TTS
> which TTS "X:\aiwork\coqui-tts\coquitts\Scripts\tts.exe"
全体的に 6.34GB ほどのファイル群がインストールされた。
動作確認。
tts --text "Hello world. Sally sells seashells by the seashore." --out_path helloworld.wav
Ubuntu Linux上と同じように生成できた。モデルデータも、自動でダウンロードしてから処理をしてくれる。モデルデータは以下にダウンロードされる模様。
C:\Users\(USERNAME)\AppData\Local\tts\
ただ、GPU (CUDA) を使おうとして --use_cuda true をつけてみるとエラーが出る。
tts --text "Speaker test. Left. Center. Right." --out_path speakertest.wav --use_cuda true
AssertionError: Torch not compiled with CUDA enabled
以下で解決策が紹介されてた。
_pipでPyTorchインストール時に「Torch not compiled with CUDA enabled」エラー - Qiita
ただ、この操作をしてみても、自分の環境では相変わらずエラーが出たので、上記で紹介されていた、以下のページの作業を試してみた。
_Previous PyTorch Versions | PyTorch
自分の環境は、CUDA 11.8 をインストール済みなので、以下を打った。
python -m pip uninstall torch python -m pip cache purge python -m pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu118
この状態なら、--use_cuda true をつけても処理ができるようになった。
GPUを使った場合、生成時間がかなり短くなってくれた。短文では違いが分からないけれど、長文を渡すと圧倒的に生成時間が短い。数十秒かかっていたのが、数秒で終わる印象。
◎ サンプル音声 :
一応サンプル音声も載せてみる。
helloworld.ogg
以下のファイルは、波形編集ソフト(SoundEngine Free 5.23_2)で、ステレオ化、サンプリング周波数を22050Hzから44100Hzに変更している。
speakertest.ogg
vifam.ogg
先日載せた音声サンプルも比較のために再掲しておく。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge_tts_hello.ogg
tts --text "Hello world. Sally sells seashells by the seashore." --out_path helloworld.wav --use_cuda true
helloworld.ogg
以下のファイルは、波形編集ソフト(SoundEngine Free 5.23_2)で、ステレオ化、サンプリング周波数を22050Hzから44100Hzに変更している。
tts --text "Speaker test. Left. Center. Right." --out_path speakertest.wav --use_cuda true
speakertest.ogg
tts --text "Examine data link. Main trans engine. Number 1 2 ON. Number 3 4 OFF. Number 5 6 7 8 ON. Confirmed, round vernirn. Hello, I am VIFAM. Okay VIFAM. your number is 7. instrument recorder on. Permission to sortie. Permission granted. GOOD LUCK, VIFAM 7." --out_path vifam.wav --use_cuda true
vifam.ogg
先日載せた音声サンプルも比較のために再掲しておく。
Ubuntu Linux 22.04 LTS + espeak-ng 1.50 の出力サンプル。
espeak-ng "Hello world. Sally sells seashells by the seashore." -v "English (America)+f3" -s 150 -w espeak_ng_hello.wav
espeak_ng_hello.ogg
Windows10 x64 22H2 + edge-tts 6.1.12 の出力サンプル。
edge-tts -t "Hello world. Sally sells seashells by the seashore." -v en-US-AriaNeural --write-subtitles edge_tts_hello.vtt --write-media edge_tts_hello.mp3
edge_tts_hello.ogg
[ ツッコむ ]
2024/09/23(月) [n年前の日記]
#1 [linux][ubuntu] Linux機の/homeを別パーティションに引っ越し
数日前に、Ubuntu Linux 22.04 LTSをインストールしてあるサブPC(Intel i3-6100T機)の /home を別パーティションに引っ越ししたのだけど、作業手順をメモするのを忘れていたような気がするのでメモ。
元々、HDDの1パーティション(500GB程度)を /home に割り当てていたけれど、更に容量の大きいHDDのパーティション(3TB)に割り当てることにした。そのためには /home の中身を別パーティションに丸々コピーしないといけない。
ハードウェア構成は以下。
以下を参考にして作業。
_Ubuntuで使用中のhomeディレクトリを別パーティションに移動する (LiveUSBなど不要) - kamocyc’s blog
元々、HDDの1パーティション(500GB程度)を /home に割り当てていたけれど、更に容量の大きいHDDのパーティション(3TB)に割り当てることにした。そのためには /home の中身を別パーティションに丸々コピーしないといけない。
ハードウェア構成は以下。
- /dev/sda1 : Label HOMEOLD : 今までの /home (HDD Western Digital Caviar Black WD1002FAEX-00Z3A0, 1TB)
- /dev/sdb1 : Label HOME3TB : 新しい /home にしたいパーティション。 (HDD TOSHIBA DT01ACA300, 3TB)
- /dev/sdc1 : Label ROOT : / を割り当ててあるパーティション。(SSD PLEXTOR PX-256M2P, 256GB)
以下を参考にして作業。
_Ubuntuで使用中のhomeディレクトリを別パーティションに移動する (LiveUSBなど不要) - kamocyc’s blog
◎ 作業手順のメモ :
新 /home 用パーティションをマウントするためのディレクトリを作成。
マウント設定ファイル /etc/fstab を修正。今回は micro editor を使ったけれど、nano でも vim でも何でもいい。
以下を追記。自分の環境はパーティションにラベルをつけてあるので、ラベルで指定。つけてない場合は、UUIDを調べて記述することになる。
/etc/fstab の内容に基づいてマウントする。
/home の中身を、/media/home にコピーする。rsync を使う。参考記事では `-aXS` を指定してたけど、今どのファイルをコピーしているのか分かるようにしておきたかったので、`-v` も追加しておいた。
今まで使ってた /home用パーティションを割り当てるためのディレクトリを作成。
/etc/fstab の内容を以下に変更。今まで使ってた HOMEOLD パーティションは /media/homeold に割り当てて、新しいパーティション HOME3TB を /home にする。
OS再起動。
今回はすんなり引っ越しすることができた。
sudo mkdir /media/home
マウント設定ファイル /etc/fstab を修正。今回は micro editor を使ったけれど、nano でも vim でも何でもいい。
sudo micro /etc/fstab
以下を追記。自分の環境はパーティションにラベルをつけてあるので、ラベルで指定。つけてない場合は、UUIDを調べて記述することになる。
LABEL=HOME3TB /media/homeold ext4 errors=remount-ro 0 2
/etc/fstab の内容に基づいてマウントする。
sudo mount -a
/home の中身を、/media/home にコピーする。rsync を使う。参考記事では `-aXS` を指定してたけど、今どのファイルをコピーしているのか分かるようにしておきたかったので、`-v` も追加しておいた。
sudo rsync -vaXS /home/. /media/home/.
今まで使ってた /home用パーティションを割り当てるためのディレクトリを作成。
sudo mkdir /media/homeold
/etc/fstab の内容を以下に変更。今まで使ってた HOMEOLD パーティションは /media/homeold に割り当てて、新しいパーティション HOME3TB を /home にする。
LABEL=ROOT / ext4 errors=remount-ro 0 1 LABEL=HOMEOLD /media/homeold ext4 defaults 0 2 LABEL=HOME3TB /home ext4 defaults 0 2 LABEL=SWAP none swap sw 0 0
OS再起動。
sudo reboot
今回はすんなり引っ越しすることができた。
[ ツッコむ ]
#2 [windows][dtm] espeak-ngをWindows10上でもインストールしてみた
Windows10 x64 22H2上で、音声合成ツール espeak-ng 1.51 をインストールしてみた。
_Releases - espeak-ng/espeak-ng
espeak-ng-X64.msi を入手して実行するとインストーラが起動する。
どこかの段階でインストール先を尋ねてくるかなと期待したけど、問答無用で、C:\Program Files\eSpeak NG\ にインストールされた…。環境変数PATHも書き換えられて、件のフォルダパスが追加されている。
espeak-ng.exe にパスが通っているので、DOS窓を開いていきなり espeak-ng "hello world" と打てば音声が鳴る。ただ、再生された音声にはブツブツとノイズが入ってる感じがした。wav だか mp3 でファイル保存すれば違うのだろうか?
音質的に優れているわけでもないし、インストール場所も気に入らないので、アンインストールすることにした。ただ、アンインストール前に、インストールされた場所のファイル群を別の場所にコピーしておいた。
アンインストール後、別の場所にコピーしておいた espeak-ng.exe を実行してみたら、/usr/share/ 以下の何かのファイルが見つからないと言ってきてエラー表示になった。そこはLinux上で動かした際にアクセスするディレクトリ場所だよな…。Windows版を動かしてるはずなのに、何故…。
どうやら、インストーラでインストールする際に、Windows版が参照するべき場所を何かしら(レジストリ?)で指定してる気配がする。もしくは C:\Program Files\eSpeak NG\ 以下にデータが必ずあるはずだと決め打ちで処理しているか…。何にせよ、ファイル群を任意の場所に展開して実行すればそのまま動く作りではないらしい。
まあ、Linux上で動かせば使えるから、あえて Windows上で使わなくてもいいか…。
_Releases - espeak-ng/espeak-ng
espeak-ng-X64.msi を入手して実行するとインストーラが起動する。
どこかの段階でインストール先を尋ねてくるかなと期待したけど、問答無用で、C:\Program Files\eSpeak NG\ にインストールされた…。環境変数PATHも書き換えられて、件のフォルダパスが追加されている。
espeak-ng.exe にパスが通っているので、DOS窓を開いていきなり espeak-ng "hello world" と打てば音声が鳴る。ただ、再生された音声にはブツブツとノイズが入ってる感じがした。wav だか mp3 でファイル保存すれば違うのだろうか?
音質的に優れているわけでもないし、インストール場所も気に入らないので、アンインストールすることにした。ただ、アンインストール前に、インストールされた場所のファイル群を別の場所にコピーしておいた。
アンインストール後、別の場所にコピーしておいた espeak-ng.exe を実行してみたら、/usr/share/ 以下の何かのファイルが見つからないと言ってきてエラー表示になった。そこはLinux上で動かした際にアクセスするディレクトリ場所だよな…。Windows版を動かしてるはずなのに、何故…。
どうやら、インストーラでインストールする際に、Windows版が参照するべき場所を何かしら(レジストリ?)で指定してる気配がする。もしくは C:\Program Files\eSpeak NG\ 以下にデータが必ずあるはずだと決め打ちで処理しているか…。何にせよ、ファイル群を任意の場所に展開して実行すればそのまま動く作りではないらしい。
まあ、Linux上で動かせば使えるから、あえて Windows上で使わなくてもいいか…。
[ ツッコむ ]
以上、23 日分です。