#norelated Plamo Linuxの作成者、こじまみつひろさんの日記です。
<<
2022.8
>>
[diary/Kojima] |
||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
・bash スクリプト
某所の原稿で最近のbashの変数展開回りの機能をあれこれ調べてたついでに書いてみた、指定したディレクトリ以下のavifな形式の画像ファイルをjpg形式に変換して、zipファイルに纏めるためのスクリプト。
# 何に使うのかはナイショ(w
#!/bin/bash tdir=$1 pushd "${tdir}" for i in *avif ; do heif-convert $i ${i/avif/jpg} done popd zip -r "${tdir}".zip "${tdir}"/*jpg
以前は、空白文字を含むファイル名やディレクトリ名を処理するためにIFSをイジったりしてたけど、変数名を"..."で括るだけで問題なく処理できるようになったのはちょっとビックリ。
このあたり、bshの仕様でシェルスクリプトを学んだから、未だに文字列の有無のチェックに
if [ "${tst}.x" != ".x" ]; then ...
みたいな書き方をしてしまうあたりから学び直さないといけないなぁ。。
・郵便切手
別にイヤガラセとかの意図はなく、単に古い切手を消費したかっただけ(w
・ガルパンどろソース
関西人(しかも兵庫 :-)なんで、オリバーの「どろソース」は常備しているものの、大洗の方で大人気になっているとは知らなかった(w
・銀河鉄道999ビール
たまたま覗いた近所のスーパー(MaxValue)で、こんなの見つけた(w
メーテルがヴァイツェン、エメラルダスがレッドエール、車掌さんが黒ビールだそうな。
・Linux firmware
最近、周辺機器用のfirmwareはカーネルとは独立したlinux_firmwareパッケージで配布されている。/lib/firmware/ 以下のfirmwareは一つ一つは小さいものの、全部合わせると848MBと結構な規模になる。
最近の大容量なHDDから見ると「848MB」は微々たるものなんだけど、インストーラのようにシステム一式をinitramfsに載せる場合、圧縮した状態で200MBくらいに抑えているのでfirmwareを全部入れるのは難しい。
起動時に、カーネルと共にinitramfsイメージも読み込むのだけど、そこで結構時間がかかっているので、あまりinitramfsを大きくしたくない。
firmwareの多くは無線LANとかGPU、サウンドカード用なので、インストールの際にはあまり必要ないか、と思って省いていたものの、手元のGPU組み込みなRyzen5(AMD Ryzen 5 3400G with Radeon Vega Graphics)で試したところ、/lib/firmware/amdgpu/ 以下の firmware が無いと正しく初期化できないようで、KMSが機能し始めたあたりで動作不能に陥いる(KMSな画面に切り替わらない)。
もちろん、VirtualBoxとかではfirmwareが無くても問題なく表示できるし、VESAなVGAモードを表示するだけならfirmwareは必要なかろう、 と思ってたんだけど、KMSが絡むとそういうわけにもいかないらしい。
仕方ないんで、インストーラに /lib/firmware/amdgpu/ 以下を持ちこんでみると、KMSも無事動作して、実機インストールもできたんだけど、他にも必須もfirmwareがあるんだろうなぁ。。とりあえず intel と nvidia なfirmware はインストーラに持ち込んでおくべきかな。
・イカナゴ その2
明石まで足を延し、1kg700円のイカナゴを5kg買ってきて2度目のイカナゴ炊き。 前から1週間ほど経ってる分、イカナゴもだいぶ大きくなっていた。
・イカナゴ
今年の初炊き。3kgだったかな?
昔は数十kg炊いてあちこちに配ってたんだけど、最近は不漁でずいぶん高くなってしまい寂しい限り。
・ffmpeg-5.0の対応状況
ffmpegがメジャーバージョンアップして、共有ライブラリのバージョンも変り、APIも変ったようなので、 ffmpegを使ってるマルチメディア系ソフトウェアの対応状況を調べてみた。
久しぶりに新バージョンが公開されたmplayerだけど、これはもともとffmpegを内蔵しているので、 特に影響は無さそう。一応、内蔵のffmpegも5.0になっているらしい。
mpv は、元となった mplayer と比べて更新頻度が高く、0.34.1 で対応済み。
VLCは開発中の4系でffmpeg-5.0に対応したようだけど、3系へはbackportされてないっぽい。
libfreerdp2.so.2.6.0はffmpeg-5.0のlibavcodec.so.59に問題なくリンクできる。
gegl-0.4.36のff-{load,save}.soがffmpeg-5.0に未対応。多分、gimp-3.0くらいで対応するつもり?
参照している `avcodec_get_context_defaults3' という関数が ffmpeg-5.0では deprecated として削除されたのでビルドできない。開発チーム的には対応しているようなので、次のリリースでは対応してそう。
libasound_module_rate_lavrate.so, libasound_module_pcm_a52.so が参照しているものの、ffmpeg-5.0でビルドし直せば問題なさそう。
型変換でエラーが出るので、meson.build の common_flags のリストに"-fpermissive"を追加すればビルドはできるようだけど、動くかどうかはよく分からない。一応、Input/ffaudio.so は ffmpeg-5.0のライブラリを見るようにはなった。
もともとBLFS方面のパッチをあてて ffmpeg-4 系に対応させていたので、かなり大規模な変更が必要っぽいけど、もうQuickTime用のライブラリは不要な気がするな。
ffmpeg4のライブラリは互換性のために残しておくつもりなので、 とりあえず、vlc/geglあたりの最新版をffmpeg4系でビルドしておけば、ffmpeg5に移行しても何とかなるかな?
・ファイル名の長さ制限
最近、WindowsのNTFSなら問題ないけど、Linuxのext4/xfs/btrs だと”filename too long"なエラーになる ファイルに遭遇したので、少し各ファイルシステムのファイル名の最大長を調べてみた。
Wikipediaによると、ファイル名の最大長はNTFSが256「文字」なのに対し、ext4/xfs/btrfs だと256「bytes」らしい。多分、このあたりの制限で長すぎるファイル名がLinux上では展開できないようだ、と判断し、NTFSなFSをloopbackでマウントして、そこに展開してみることにした。
当初、mkfs.ntfs は " mkntfs [options] device [number-of-sectors]" という使い方なので、 loopback用のファイルをNTFSにできないのかな、と心配したけど、-F(force)オプションを指定すれば、 ファイルもNTFS形式にフォーマットでき、loopback 経由でマウントできた。
最近のカーネルだと、mount -t ntfs3 すれば、従来のfuse経由ではなく、カーネル・ネィティブな NTFS ドライバが使えるっぽい
このloopbackマウントしたNTFSなFS上だと、Linux上ではエラーになる長いファイル名も問題なく展開できたので、 NTFSも捨てたものじゃないな、と見直しているところ。NTFSってFSの世代的にはXFSよりも新しくZFSと同世代だから、 FUSEではなく、nativeなkernel driverで対応するようになったNTFSって、案外面白いかも知れない。
試してないけど、NTFS3 を組み込んだ5.15カーネルなら NTFS を rootfs にできるんじゃないかな?
kojima@pl74_1031:/loop/Test2$ cat /proc/mounts | grep loop /dev/loop0 /loop ntfs3 rw,relatime,uid=0,gid=0,iocharset=utf8 0 0 kojima@pl74_1031:/loop/Test2$ touch A.txt kojima@pl74_1031:/loop/Test2$ touch a.txt kojima@pl74_1031:/loop/Test2$ ls -al 合計 4,096 drwxr-xr-x 1 kojima users 0 3月 16日 12:13 ./ drwxrwxrwx 1 root root 4,096 3月 16日 12:12 ../ -rw-r--r-- 1 kojima users 0 3月 16日 12:13 A.txt -rw-r--r-- 1 kojima users 0 3月 16日 12:13 a.txt
大丈夫なんじゃね? > case sensitive -- kojima 2022-03-16 (水) 12:14:03
・ねこの日
毎年、「ねこの日」に合わせてカルディで「ねこの日バッグ」を売り出してて、 昨年までは先着順で私が行くころには「プレミアム」は売り切れ、通常版を買うしかできなかったんだけど、 今年はネットショップとスマホアプリでそれぞれ抽選になってて、両方とも申し込んでみたところ、 ビギナーズ・ラックで両方とも当選した(w
自分としてはゲットできただけで満足で、中身は母と妹に譲ってしまったんだけど、 まぁ、200年に一度の「スペシャルねこの日」として記憶に残る日であった(w