gpsdの長年の疑問解決

gpsdというgpsのデータを流してくれるプログラムがあるのだが、起動オプションに-G を付ければ、あらゆるネットワークインターフェースで受け付けしてくれるはずだった。

しかし、Debian 7あたりから外部から接続できなくなった。
どうやら systemd が余計な事をしてくれていて、ローカルホスト以外を受け付けないように邪魔しているようなのだが、新しく導入されたシステムなので解決方法が分からなかった。

今日、検索してやっと解決方法を見つけた

But we aren’t there yet. gpsd may be listening on all interfaces, but systemd’s hold on the socket means gpsd can’t hear anything on interfaces other than the loopback. We have to tell systemd to allow gpsd to hear other interfaces. We run systemctl edit --full gpsd.socket. Then we can edit it. After editing, the [Socket] stanza looks like so:

When you are done editing, systemctl does what it needs to do internally to preserve your changes from being over-written during upgrades. It also does the equivalent of a systemctl daemon-reload for you.

We now restart both gpsd units like so:

こんなもんわかるかボケ!

これでやっとデスクトップマシンの地図表示プログラムで、サーバーからデータを取得してGPSの現在位置を表示できる。

自宅固定だからほぼ動かないけど、測定誤差でふらふら動くから結構おもしろい。

【Raspberry PI4】設定メモ

※取り敢えず、やった事のメモなのであまり参考にならないと思う。
日本語入力
$ sudo apt install fcitx-mozc

zoneminder
$ sudo apt install apache2 mariadb-server
$ sudo mysql_secure_installation
$ sudo apt install php libapache2-mod-php php-mysql
$ sudo apt install zoneminder vlc-plugin-base

VNC
GUIの「Raspberry PIの設定」ではグレーアウトしていて変更できないので、端末からコマンドで設定。

$ sudo raspi-config
→5 Intafacing Options→P3 VNC→「はい」
/var/log/syslog で libbcm_host.so が無いと怒られる。/opt/vc/lib に存在するけど、/etc/ld.so.conf にpath追加して、ldconfig するも変わらず。

How to Install VNC on Raspberry Pi OS (64 bit)
https://www.tomshardware.com/how-to/install-vnc-raspberry-pi-os

標準の設定が使えないから、tightvncserver を入れて回避するしかないようだ

IRC
$ sudo apt install ngircd

ircbotの為にJREインストールだけど、JDK入れちゃう。
GUIはOFFにする予定なのでheadless
# apt install default-jdk-headless

以下のパッケージが新たにインストールされます:
ca-certificates-java default-jdk-headless default-jre-headless java-common
openjdk-11-jdk-headless openjdk-11-jre-headless

その他
# apt install php-xml
# apt install samba
# smbpasswd -a noizumi
# apt install ntp
# apt install gpsd gpsd-clients
# apt install bind9
# apt install exim4
# apt install cron-apt

# apt install dovecot-imapd

Mixed mbox and Maildirの設定はドキュメントの通りでOKでだった。
これでサブフォルダー掘り放題や 🙂

【業務連絡】ACアダプター到着。fsckちう

Begin: Loading essential drivers … done.
Begin: Running /scripts/init-premount … done.
Begin: Mounting root file system … Begin: Running /scripts/local-top … done.
Begin: Running /scripts/local-premount … done.
Begin: Will now check root file system … fsck from util-linux 2.29.2
[/sbin/fsck.ext3 (1) — /dev/sda2] fsck.ext3 -a -C0 /dev/sda2
/dev/sda2: recovering journal

ハードディスクのチェックが入ってるので、もう暫く掛かります。

【追加】
復旧しますた。

Raspberry PI4 で動かした新しいZoneminder、何かカッコイイぞ。

Raspberry PI4到着

早速、64bit beta を入れて動かしている。
HDD起動は四苦八苦したけど何とかHDDブートできるようになった。

やった事は、Raspberry Pi 4 の 64bit版と USB Bootを参考にさせて貰って、HDDにSDカードコピーをやったけど、USBからブートできなかった。

そこで、SDの/boot/cmdline.txt 編集してハードディスクのカーネル起動指定して、/etc/fstab もハードディスクの領域をマウントするように書き換え。

再起動して、sudo apt update && sudo apt  upgrade やって、sudo rpi-update をやったら、SDカードなしでもUSB HDDブートするようになった。

GUI環境だが、chroniumというブラウザで、abema.tv も観られるし、艦これも動く。

Abema TVはハードウェアデコーダがあるせいかスムーズに動いているが、Youtubeの1080p動画は読み込みマークが頻繁に出て視聴に耐えられなかった。

艦これはもっさりしていて、Intel Atom X5と同等くらいかな? という感じで、遊べない事はないけど、感覚的に操作に追いついていない感じ。

監視カメラサーバーの環境構築しようと syaptic パッケージマネージャ入れて、zoneminder を検索すると……ありませんでした。

ARMの32bit版パッケージがあるから 64bit beta でも当然あると考えたのが甘かったわ。

【皇紀2680年6月7日 12:49追加】
https://wiki.zoneminder.com/Debian_10_Buster_with_Zoneminder_1.32.3_the_Easy_Way?title=Debian_10_Buster_with_Zoneminder_1.32.3_the_Easy_Way&oldid=15622

debian buster の Multimedia Repositoryを追加してないだけだった orz

【/皇紀2680年6月7日 12:49追加】

Raspberry PI4 8GBこうにう

KSYで、スターターキットV1をこうにう。
RSのページも見たが、売り切れで10月まで入らんとか書いてあったので、ちと高いけど、セットになってるのを買った(13,640円)

サーバー止まると監視カメラも記録できないし、ファイルサーバーも使えないので、早急にサーバーを立てる必要がある。10月まで待っておれん。

ただ、問題は、PI4って、USBのハードディスクブートできるのかねえ。
サクっと検索した限りではイケるっぽいので、今まで eSATAで使ってたハードディスクケースはUSBにしないといかんな。

【業務連絡】再起動のfsckで引っかかる

サーバーがおかしくなったので、シリアルで繋いでみたら

[6879670.724188] ata2.00: failed to read SCR 1 (Emask=0x40)
[6879670.729572] ata2.00: failed to read SCR 0 (Emask=0x40)
[6879670.734932] ata2.01: failed to read SCR 1 (Emask=0x40)
[6879670.740297] ata2.15: exception Emask 0x4 SAct 0x0 SErr 0x0 action 0x6 frozen
[6879670.747575] ata2.00: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[6879670.755037] ata2.00: failed command: READ DMA EXT
[6879670.759975] ata2.00: cmd 25/00:08:20:bc:c9/00:00:e8:00:00/e0 tag 2 dma 4096 in
[6879670.759975] res 40/00:00:00:4f:c2/00:00:00:00:00/00 Emask 0x4 (timeout)
[6879670.775019] ata2.00: status: { DRDY }
[6879670.778896] ata2.01: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[6879670.786353] ata2.15: hard resetting link
[6879671.272764] ata2.15: SATA link up 1.5 Gbps (SStatus 113 SControl F310)
[6879671.280206] ata2.00: hard resetting link
[6879672.380925] ata2.01: hard resetting link
[6879673.424658] ata2.01: failed to resume link (SControl 0)
[6879673.435971] ata2.00: configured for UDMA/33
[6879673.441275] ata2: EH complete

なんてのが延々出ていた。
そして強引に電源ブチで再起動してみると、fsckが走り出し、異常終了。

/dev/sda2: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
fsck exited with status code 4
done.
Failure: File system check of the root filesystem failed
The root filesystem on /dev/disk/by-uuid/a655bf7a-3a32-4f2a-b0f1-fa0086bc9c39 requires a manual fsck

マニュアルで fsck をやれというのでやっているがとてつもなく時間が掛かりそう。

【業務連絡】サーバー復旧しますた

センチュリーのCRNS35EU3S6G というハードディスクケースがおかしくなって、RAID1なのに、PCに繋いだら不明な領域のDisk1とLinuxの内容のDisk0の二台見える始末。

切り替えスイッチで一旦STANDARDに切り替えた後、MIRRORINGに切り替えたらRAID1のディスク1台になったけど、中身は不明な領域。

昨晩、Disk0の内容をLogitecのLHR-2BRHEU3へパーティションコピーして、朝になっても終わらんから、そのまま出社して、家に帰ったらコピーできてたから、OpenRD Ultimateに接続したらすんなり起動。

LogitecのRAID1のディスクケースは何がイカンのかと言えば、停電とかで電源落ちたらそのまんま。費用ケチってソフトスイッチにしてやがるので、電源ボタン長押ししないと電源入らない。

そして、OpenRD起動させる時も結構問題があって、ディスクケースの電源入れて、OpenRDの電源再投入しても、起動せず、シリアル端末開いて、enter押したら、Marvell>> ってプロンプトが出るので、 boot[enter]ってやると起動する。

それに買ってすぐにACアダプタぶっ壊れるし、eSATAで接続できて、RAID1なハードディスクケースって、もうこの二社しか無いからセンチュリーがいつRAID解除されるか分からん不具合があるから、Logitec使うしか無いよなあ。

Virtualbox 6.0のビデオドライバがクソ

会社で Virtualbox で Linux 仮想マシンを動かし、業務に使用しているが、仮想ビデオドライバがうまく動いていたのが Ubuntu 14.04 までで、それ以降がうまく動かない。

Ubuntu 18.04 などは、端末のウィンドウを最大化して戻すという事をやると、数分フリーズするので使い物にならない。

あれこれ試して、Ubuntu Mate(マテ) 18.04 ならストレス無く動くので、Ubuntu Mateを使っている。

全画面表示で、ちゃんとフルスクリーンになるし、ウィンドウサイズ変更にも追随するので、動作はしていると思うが、「追加のドライバー」を見ると、「プロプライエタリなドライバーは使われていません。」などと表示され、動作があやしい。

Virtualbox がこんなクソっぷりだが、VMWare の方はちゃんと高速に動作する。個人使用なら VMWare 一択だろう。

OpenRD Ultimateをだましだまし使う

debian jassie から stretch へアップグレードしたが、nandフラッシュのエラーで新カーネルを書き込めず、ファイルが無いにも関わらず、3.16.0-10-kirkwood のカーネルが起動していた。

/lib/modules/3.16.0-10-kirkwood 以下が無いので、組み込みモジュールを使用するcdc-acm.ko が読み込めず、GPSが使用できない状態になっていた。

モジュールを読み込めないせいで、GPSを有効にできないので、jassieのカーネル取ってきて、インストール。

これだと、nandのエラーが出ない。

よし、GPSのデバイスが使えるようになった。

これで時刻サーバーとしてバッチリ 🙂