スキップしてメイン コンテンツに移動

RasPiでなんちゃてサイネージ

ここ
 横浜クラフトデザインさん
を参考に「GPIOのボタンを押したら、対応する動画を再生する」ものをRaspberryPi 1B+ を使って作りました。(OSはbusterのLite)
1B+なので、Python3が回っているだけでロードアベレージが常に1以上・・・。
でも、omxplayerのおかげでmp4は普通に再生されます!

rc.local から再生アプリを起動するようになっているのですが、welcome画像が一瞬表示されて、ログインttyが表示されてしまいました。

Copilot先生に聞いたら、
・kamakura1.pyをサービス化
・tty1サービスを停止
・consoleをtty2に変更
の3本立てを提案されました。

1.kamakura1.pyをサービス化
 1)/etc/systemd/system/kamakura1.service を以下内容で作成===================================================================
[Unit]
Description=kamakura1 Program
After=network.target
Wants=network.target

[Service]
ExecStart=/usr/bin/python3 /home/pi/kamakura1.py
StandardInput=tty
StandardOutput=tty
TTYPath=/dev/tty1
Restart=always

[Install]
WantedBy=multi-user.target
===================================================================
 2)以下コマンドでsystemdに登録
sudo systemctl daemon-reload
sudo systemctl enable kamakura1.service
sudo systemctl start kamakura1.service
 3)rc.localのkakakura1.py起動個所を削除

2.tty1を停止・無効化
 1)以下コマンドで無効化・停止
sudo systemctl disable getty@tty1.service
sudo systemctl stop getty@tty1.service

3.consoleをtty2に変更
 1)以下コマンドで変更
sudo mount -o remount,rw /
sudo mount -o remount,rw /boot
sudo vi /boot/cmdline.txt
 ※tty1をtty2にした



効果ありました。
(kamakura1.pyをサービス化しなくても、tty1を解放するだけで良いような気もします) 

コメント

このブログの人気の投稿

LS220DのHDD交換

 BuffaloのNASであるLS220Dの赤色LEDが点滅していました。。。 HDD故障だそうです。 元から入っていたのは、東芝の1TB(TOSHIBA DT01ACA1)でした。 手元にWDの2TB(WD20EARS)、4TB(WD40EZRX)、6TB(WD60EZAZ)、SeaGateの4TB(ST4000DM000)、8TB(ST8000AS0002)が あったので、後日容量アップができるのでは、と思い入れてみました。 RAID再構築をクリックしてみたら・・・  WD   2TB:「指定したメソッドに対するパラメータが不正です。」   4TB:「指定したメソッドに対するパラメータが不正です。」   6TB:リビルド成功  SeaGate   4TB:「指定したメソッドに対するパラメータが不正です。」   8TB:「指定したメソッドに対するパラメータが不正です。」 という散々な結果でした。 何がダメなんだろう?と思い返してみると、WDの6TBだけは未使用の ものでした。 ほかのHDDは入れる前にパーティション情報をWindows上で消したけど、 もしかしてMBR領域(というかHDDの先頭セクタ0)になにか情報があると ダメなのかも。 ということで、Linux機にWD 4TB(/dev/sdb)をつないで、  sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1  sudo sgdisk -Z /dev/sdb を実行してからLS220に入れました。 「破損」という表示になってしまいしたが、RAID再構築を押すと 再構築が始まった、、、、ぽい。

Windows Server 2016 にOracle11gをインストール

.Net3.5が要るらしい。 orz 一回目のインストールの際に「.Net3.5が必要」ってダイアログが山ほど出てきた。 .Net3.5が必要な場合のエラーダイアログはどうして「ダウンロードしてインストールせよ」なんだろう? 参考にした  http://otndnld.oracle.co.jp/easy/oracle11gr1/windows/pdf/SelfStudy_01_win.pdf だと、LISTNERの追加設定(?)が必要そうに書いてあるけど、やってみたら「すでに作成済み」ってなる。 それを信じて進めてみたらどうにもうまくいかない。。。 OracleDBをGUIで操作しよう、っていうのが間違いのようか気がする (逆にSQLserverをCLIでやるのは狂気の沙汰だと思う)。 一旦、アンインストールすることにして、スタートメニューにある「Universal Installer」 を実行してアンインストールしようとしたら「batファイルを実行せよ」というダイアログが。 ググりかたが悪かったのか、 「アンインストールはUniversal Installerからしかないぜ。その他の方法はどーなっても知らないぜHAHAHA」(意訳) と書いてるOracleさんしか見つからない。 どっちを信じたらとも思ったが、目の前のほうが正しいだろうという考えに従いそのバッチ を実行しました。(Universal Installerさんは何度やっても消そうともしてくれないし) バッチ実行後、しばらく放置したら終わったらしい。 Oracleさんがインストールされていたっぽいディレクトリもだいたい消えていた。 消えたよね?ってことで一度再起動してから、Oracle11gのインストールを再び実行。 エラーは出ずに無事終了。 (.Net3.5がインストール済みだったからかな??)  sqlplus / as sysdba は問題ない。でも、別PC(Linux機)からの接続はNG。  lsnrctl status コマンドの実行結果から、やはりlocalhost以外からの接続はLISTENしてない模様。 listener.oraをちょっと修正して、LISTNERサービスを再起動。  lsnrctl status を再度実行すると、IPアドレスの分も表示されたので、外部からも接続できるだろう...

VirtualBoxのUSBメモリからの起動

検索すると、USBメモリからの起動はできないような感じだけど、 UEFIブートだとできた。 手順 1.設定→システム→UEFIを有効化 2.設定→USB でUSBメモリを仮想から使えるようにする3.F12を押しつつ仮想を起動  ※ブートメニューが出てくるまで挫けずがんばる4.ブートメニューの「Boot Manager」に入って、USBメモリを選択 UEFIじゃないのは無理なのかも。