りんけーじ - blog

2025/04/29 23:04 : FreeBSDでYubiKeyを使ってOpenPGPする

FreeBSD+GnuPG+YubiKeyで、OpenPGPした。

初期設定をちょこっとしてあげれば、あとはちゃんと動く。

楕円曲線暗号(EC)も使えた。

もっと読む...

2025/04/27 11:04 : trustmarkで遊ぶ

ステガノグラフィであるTrustMarkをFreeBSD上で遊んだ記録。

もっと読む...

2025/01/31 08:01 : FreeBSDでOpenObserve v0.12.1を動かす

OpenObserveをFreeBSDでビルドして動作させた記録。

実験は2024/10頃に実施して、今更記録を起こしている。OpenObserveのバージョンはv0.12.1。以前やったときはv0.6.0であった。

結論: がんばればちゃんとビルドできるし、クラスタも動くよ。

もっと読む...

2024/04/18 22:04 : NanoPi NEOでFreeBSDする

freebsd@generic:~ % uname -a
FreeBSD generic 14.0-STABLE FreeBSD 14.0-STABLE #0 stable/14-n267114-72c3d91294c4: Thu Apr  4 08:28:31 UTC 2024     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/arm.armv7/sys/GENERIC arm

するためのあれこれ。

適当なマシンで、以下のとおり準備する。うっかりSTABLEを使ったが、まあ、なんでもいいだろう。

# pkg install u-boot-nanopi_neo-2024.01
# dd if=FreeBSD-14.0-STABLE-arm-armv7-GENERICSD-20240404-72c3d91294c4-267114.img.xz of=/dev/da0 bs=524288
# dd if=/usr/local/share/u-boot/u-boot-nanopi_neo/u-boot-sunxi-with-spl.bin of=/dev/da0 conv=notrunc,sync bs=1k seek=8

このイメージはデフォルトでSSHが有効で、ユーザ名freebsd/パスワードfreebsdでログインできる。さすがにrootユーザでのSSHログインはできないので、suとrootユーザの初期パスワードrootを使ってrootになる。

あとはパスワードを変更して(忘れたままインターネットに接続するようなアホはいないな?)、pkgでやりたい放題すればよい。

ちなみに、

WARNING: 32-bit kernels are deprecated and may be removed in FreeBSD 15.0.

とのことなので、15.0になったら64bitにしようね。

2024/04/14 20:04 : FreeBSDでOMRON UPSを監視する

OMRONのUPSを使っているが、長年監視を放置していた。いい加減監視したいと思って設定したので、記録を残しておく。まず、OpenBSD/NetBSDな人は以下を参照のこと。

オムロン製UPSをOpenBSD/NetBSDで使うためのメモ (GitHub Gist)

本記事は上記を参考に、FreeBSD 14.0向けに設定してみた記録になる。

やることは以下。

  • nutをインストールする
  • UPSのVendor IDとProduct IDを調べる
  • nutユーザがデバイスを使えるようにdevdを設定する
  • nutを設定する(※本稿では全部は扱わない)

諸事情あってproduct IDはすべて伏せている。参考にして設定する奇特な人は、XXXXのような部分は適宜読み替えてほしい。

nutをインストールする

pkgでいっぱつ。

# pkg install nut

UPS関係だから名前にUPSが入ってるだろうと思って pkg search ups しても出てこない。nutという名前は覚えて帰ろう。

UPSのVendor IDとProduct IDを調べる

なんでもいいので調べる。ここでは dmesgugenX.X を調べたあと、usbconfigdump_device_desc を使って調べた。

# usbconfig -d ugenX.X dump_device_desc
ugen0.3:  at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
(...snip...)
  idVendor = 0x0590 
  idProduct = 0xXXXX 

nutユーザがデバイスを使えるようにdevdを設定する

nutはnutユーザで動作するので、通常 root:wheel/dev/ugenX.X (の指す /dev/usb/X.X) を触れない。devd を設定して、OMRON UPSだったらnutユーザにプレゼントしよう。設定後は service devd restart をお忘れなく。

/usr/local/etc/devd/nut-usb-omron.conf:

notify 100 {
  match "system" "USB";
  match "subsystem" "INTERFACE";
  match "type" "ATTACH";
  match "vendor" "0x0590";
  match "product" "0xXXXX";
        action "chgrp nut /dev/$cdev; chmod g+rw /dev/$cdev";
};

/usr/local/etc/devd/nut-usb.conf を参考に書いたが、subsystemはDEVICEではなくINTERFACEになるようだ。うまくいかないなら devd -d を実行して確認するといい。

nutを設定する

こんな感じ。driverは参考資料では blazer_usb だが、maintenance-onlyだよ、というので nutdrv_qx に変えた。

/usr/local/etc/nut/ups.conf:

[XXXXX]
        driver = nutdrv_qx
        port = auto
        desc = "OMRON XXXXX"
        vendorid = 0590
        productid = XXXX
        subdriver = ippon

通信テストは、以下のようにしてドライバを直接実行すればいい。read: (... のような出力が定期的に出ればOK。

# /usr/local/libexec/nut/nutdrv_qx -DDDD -a XXXXX

あとはUPSがどうなったらどうしたい、の話になるので、man nut.conf でも実行してnutと仲良くなるといい。

私はドライバ出力を食ってprometheusに出力したかっただけなので、nut自体は使っていない。

古い記事