Ubuntu24.04とPX-Q3PE4とchinachuで録画サーバーを作る

環境

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.1 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
$ uname -a
Linux tiny-rec01 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug  2 20:41:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

ユーザーの追加とタイムゾーンの設定

# 必要に応じてデフォルトのエディタを変更
$ sudo update-alternatives --config editor

# 必要に応じてadduserでユーザーを作っておきsudoできるようにしておく
$ sudo adduser rec
$ sudo visudo

#タイムゾーンの設定
$ timedatectl
               Local time: Wed 2024-07-17 13:03:12 UTC
           Universal time: Wed 2024-07-17 13:03:12 UTC
                 RTC time: Wed 2024-07-17 13:03:13
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl
               Local time: Wed 2024-07-17 22:03:44 JST
           Universal time: Wed 2024-07-17 13:03:44 UTC
                 RTC time: Wed 2024-07-17 13:03:45
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

PX-Q3PE4ドライバーのインストール
https://github.com/kazuki0824/recisdb-rs を見ながら粛々と入れる

$ wget https://github.com/tsukumijima/px4_drv/releases/download/v0.4.5/px4-drv-dkms_0.4.5_all.deb
$ sudo apt install -y ./px4-drv-dkms_0.4.5_all.deb

# インストール後に下記エラーが出るがよくわからない
N: Download is performed unsandboxed as root as file '/home/rec/px4-drv-dkms_0.4.5_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

# 確認
$ lsmod | grep -e ^px4_drv
px4_drv               237568  0

$ ls /dev/px4video*
/dev/px4video0  /dev/px4video1  /dev/px4video2  /dev/px4video3  /dev/px4video4  /dev/px4video5  /dev/px4video6  /dev/px4video7
# なんかエラーが出るが動いてるっぽいので無視
[  530.875453] ------------[ cut here ]------------
[  530.875456] UBSAN: array-index-out-of-bounds in /var/lib/dkms/px4_drv/0.4.5/build/driver/ptx_chrdev.c:78:25
[  530.875485] index 2 is out of range for type 'ptx_chrdev [1]'
[  530.875499] CPU: 2 PID: 1255 Comm: recisdb Tainted: G           OE      6.8.0-41-generic #41-Ubuntu
[  530.875502] Hardware name: LENOVO 10RRS3B900/3136, BIOS M1UKT28A 02/18/2019
[  530.875503] Call Trace:

B25デコーダーのインストール
https://github.com/kazuki0824/recisdb-rs を見ながら粛々と入れる

$ wget https://github.com/kazuki0824/recisdb-rs/releases/download/1.2.2/recisdb_1.2.2-1_amd64.deb
$ sudo apt install ./recisdb_1.2.2-1_amd64.deb

# インストール後に下記エラーが出るがよくわからない
N: Download is performed unsandboxed as root as file '/home/rec/recisdb_1.2.2-1_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

#うまくいくとこんな感じの表記になる
$ recisdb checksignal --device /dev/px4video2 --channel T27
[2024/09/01 16:32:10] INFO:     recisdb version 1.2.2
[2024/09/01 16:32:10] INFO:     Tuner: /dev/px4video2
[2024/09/01 16:32:10] INFO:     Channel: T27 / Terrestrial: 27
41.04dB

$ recisdb tune --device /dev/px4video2 --channel T27 --time 10 test.m2ts
[2024/09/01 16:36:59] INFO:     recisdb version 1.2.2
[2024/09/01 16:36:59] INFO:     Tuner: /dev/px4video2
[2024/09/01 16:36:59] INFO:     Channel: T27 / Terrestrial: 27
[2024/09/01 16:36:59] INFO:     Recording duration: 10 seconds
[2024/09/01 16:37:00] INFO:     Decode: Enabled
[2024/09/01 16:37:00] INFO:     Recording...
[2024/09/01 16:37:10] INFO:     Decoder: 21479424B received, and 18858656B converted.

うまくいかない場合はこんなエラーが出る

# チャンネルがなかったりするとこんな感じ
$ recisdb checksignal --device /dev/px4video2 --channel T18
[2024/09/01 16:31:52] INFO:     recisdb version 1.2.2
[2024/09/01 16:31:52] INFO:     Tuner: /dev/px4video2
[2024/09/01 16:31:52] INFO:     Channel: T18 / Terrestrial: 18
[2024/09/01 16:31:58] ERROR:    Channel selection failed. The channel may not be received.

# BCASカードが認識できなかった時
$ recisdb tune --device /dev/px4video2 --channel T27 --time 10 test.m2ts
[2024/09/01 16:34:37] INFO:     recisdb version 1.2.2
[2024/09/01 16:34:37] INFO:     Tuner: /dev/px4video2
[2024/09/01 16:34:37] INFO:     Channel: T27 / Terrestrial: 27
[2024/09/01 16:34:37] INFO:     Recording duration: 10 seconds
[2024/09/01 16:34:38] INFO:     Decode: Enabled
[2024/09/01 16:34:38] ERROR:    Failed to initialize the decoder. (BCAS_CARD_ERROR_NO_SMART_CARD_READER)
[2024/09/01 16:34:38] INFO:     Disabling decoding and continue...
[2024/09/01 16:34:38] INFO:     Recording...

Mirakurun の設定とインストール
https://github.com/Chinachu/Mirakurun

# nodejsのインストールとmirakurunのインストール
$ curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ sudo apt install build-essential
$ sudo npm install pm2 -g
$ sudo npm install mirakurun -g --unsafe-perm --foreground-scripts --production
$ curl http://127.0.0.1:40772/api/version
$ sudo mirakurun stop

# ISDBScanner でチャンネルスキャン
$ sudo wget https://github.com/tsukumijima/ISDBScanner/releases/download/v1.1.6/isdb-scanner -O /usr/local/bin/isdb-scanner
$ sudo chmod +x /usr/local/bin/isdb-scanner
$ isdb-scanner --exclude-pay-tv ./scanned/

# ISDBScanner でチャンネルスキャンしたデータをmirakurunにコピー
$ sudo cp -a scanned/Mirakurun/channels.yml /usr/local/etc/mirakurun/channels.yml
$ sudo cp -a scanned/Mirakurun/tuners.yml /usr/local/etc/mirakurun/tuners.yml
$ sudo chown -R root /usr/local/etc/mirakurun/
$ sudo mirakurun start

chinachu のインストール
https://github.com/Chinachu/Chinachu/wiki/Gamma-Installation-V2 この辺を見ながら

$ git clone https://github.com/Chinachu/Chinachu.git ~/chinachu
$ cd ~/chinachu/
$ ./chinachu installer


# pythonの古い文法が使われててエラーが出るので修正
$ vim ~/chinachu/.nave/installed/14.18.3/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/input.py
# 234行目の Ur を r に変更する
234       build_file_contents = open(build_file_path, 'Ur').read()
# 変更後
234       build_file_contents = open(build_file_path, 'r').read()


$ cp config.sample.json config.json
$ vim config.json
$ echo [] > rules.json
$ ./chinachu service wui execute
$ ./chinachu update
$ sudo pm2 start processes.json
$ sudo pm2 save
$ sudo pm2 startup

windows10 でディスプレイの電源が自動で切れなくなったときの対処法

PCの電源が常に入ってる状態でログオフし数分置いとくといつもは勝手にでディスプレイの電源が切れるが何かの拍子に切れない事があるのでそれのメモ

結論から言うとvlcが邪魔していて動作していなかったよう

このページが参考になりました。
いくら待ってもスリープ状態にならない時の原因と対処法 (Windows)

次に、下記を実行してみてください。

C:\WINDOWS\system32> powercfg /requests

このコマンドは、アプリケーションとドライバーの電源要求を列挙します。電源要求があると、ディスプレイの電源を自動的に切ることや、低電力のスリープ状態に移行することができません。

DISPLAY:「ディスプレイの電源を切る」
SYSTEM:「PCをスリープ状態にする」
AWAYMODE:「退席中モード」

とりあえず、cmd.exeを管理者モードで起動しコマンドを打ってみる

C:\Users\sekki>powercfg /requests
DISPLAY:
[PROCESS] \Device\HarddiskVolume4\Program Files\VideoLAN\VLC\vlc.exe
[PROCESS] \Device\HarddiskVolume4\Program Files (x86)\Google\Chrome\Application\chrome.exe
Video Wake Lock

SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_104386AE&REV_1000\4&2de74382&0&0001)
現在 1 つのオーディオ ストリームが使用中です。
[PROCESS] \Device\HarddiskVolume4\Program Files\VideoLAN\VLC\vlc.exe
[DRIVER] レガシー カーネルの呼び出し元

AWAYMODE:
なし。

実行:
[PROCESS] \Device\HarddiskVolume4\Program Files (x86)\Google\Chrome\Application\chrome.exe
WebRTC has active PeerConnections

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

多分このプロセスが邪魔している(chromeは音楽を流していたせい)
vlc.exeは起動していないのになぜかプロセスが残っていた。

DISPLAY:
[PROCESS] \Device\HarddiskVolume4\Program Files\VideoLAN\VLC\vlc.exe
[PROCESS] \Device\HarddiskVolume4\Program Files (x86)\Google\Chrome\Application\chrome.exe
Video Wake Lock

タスクマネージャーからvlcのプロセスを殺す。

DISPLAY:
[PROCESS] \Device\HarddiskVolume4\Program Files (x86)\Google\Chrome\Application\chrome.exe
Video Wake Lock

chromeの音楽を止めると

DISPLAY:
なし。

となる

何もしてない状態だとこんな感じ

C:\Users\sekki>powercfg /requests
DISPLAY:
なし。

SYSTEM:
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0900&SUBSYS_104386AE&REV_1000\4&2de74382&0&0001)
現在 1 つのオーディオ ストリームが使用中です。

AWAYMODE:
なし。

実行:
なし。

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

これで無事画面が消えるようになりました。
とりあえず、(ディスプレイの画面を消す場合)DISPLAYが「なし。」になる事が重要そうです。

今回はVLCのプロセスを殺して解決しましたが頻発するようであれば下記のようなコマンドで行けそう?(未確認)

powercfg -requestsoverride PROCESS  "\Device\HarddiskVolume4\Program Files\VideoLAN\VLC\vlc.exe" DISPLAY

マスコットアプリ文化祭のアプリ公開!

===================================
SekkiWallpaperChanger
===================================

【 ソフト名 】SekkiWallpaperChanger
【 製 作 者 】セッキー
【 種 別 】壁紙変更ツール
【 開発環境 】Visual Basic 2013
【 動作環境 】Windows8.1
【最終更新日】2014/12/11
—————————————-

◇ どんなソフト? ◇
端末の向きによって壁紙が変わるソフトを作ってみました
簡易デバイス方向センサーって物を積んでる端末限定で動作します

◇ 動作条件 ◇
miix2とdell venue 8で 動作確認をしました
windows7ではエラーはいて落ちます

◇ 使 い 方 ◇
SekkiWallpaperChangerを起動します
設定ボタンを押し壁紙と表示の仕方を選択します。
一応サンプルで数枚画像入ってますが、別の画像でもおkです

以上

あとは使って慣れてください

このソフトを使って発生した損害に対して一切の責任を持ちません

SekkiWallpaperChanger

Cyberduckが繋がらない時の対処法

ConoHaのオブジェクトストレージを使おうと思ってCyberduckがつながらなかった時の対処法

編集→環境設定→プロキシ のチェックを外す

オブジェクトストレージ操作例:Cyberduck – ConoHa https://www.conoha.jp/guide/guide.php?g=49

Cyberduckが繋がらないのは (Idea Clip) http://tsenda.jp/ideaclip/2007/10/cyberduck.html

起動の度にチェックをはずさないと行けない模様?

プロ生ちゃんボイス収録プロジェクトのグッズが届いてました!

最近色々忙しくて家に帰れなく、久しぶりに帰宅してみたら机の上に厚さ一センチくらいのダンボールが来てました

以前出資した 暮井 慧(プロ生ちゃん/CV:上坂すみれ)ボイス収録プロジェクト の景品が届いたようです

中身は
2014-08-11 02.14.13

こんな感じでした

自分が申し込んだコースは5400円コースで内容は
・暮井 慧からの御礼メッセージ入りポストカード
・プロジェクト限定 暮井 慧クリアフォルダー
・プロジェクト限定 暮井 慧ミニブックレット
・プロジェクト限定 暮井 慧イラストボード
・上坂すみれさんのサイン(抽選で10名)
になっています

今回、運良く10人のうちの1人に選ばれたらしく上坂すみれさんのサインゲット出来ました!
この10枚の色紙毎に違う文字が書かれていて自分のには「プログラミング生放送」って書いてありました
放送しろって事ですかね

さて、少し話は変わりますが、このCROSSクラウドファンディングにはミニメール機能と言ってオーナーからメッセージが受ける取る機能が有るみたいです。
こんな機能知らずに何となくミニメールって所押したら2件メッセージが来てました
1つは、近日中に発送するよ という内容
もう一つは、出資ありがとうね後デジタルデータ配布するよっていう趣旨のメッセージ

デジタルデータ・・・だと・・・
こんなのあるのかー!知らなかったー!
またプロ生ちゃん画像が増えていく・・・
しかも、差し出し日が2014/07/24って・・・

自分みたいな人は居ないと思いますが、もし気付かなかった人は覗いてみれば幸せになれるかもしれません。

ではこの辺で

最後に・・・
プロ生ちゃんマジ天使

Tera Termを使ったときに注意した方が良い事

なんとなーくタスクマネージャー覗いてたら見つけてたことが有ったので

Tera Termでログインし、セッションの複製をした時にプロセスのコマンドラインにアドレス・ユーザー名・パスワードがそのまま書いてあるので注意が必要です。

1、普通にログインします
1

3

4

2、”ファイル”→”セッションの複製”をクリックします
スクリーンショット 2014-05-31 21.38.08

3、プロセスをみます
タスクマネージャーを開き”Tera Term”を右クリック”プロセスの表示”をクリックします
スクリーンショット 2014-05-31 21.38.28

コマンドラインの所に色々書いてあるのを確認
スクリーンショット 2014-05-31 21.52.12

HttpWebRequest.GetResponseで例外が出てもレスポンスを読む方法

.NETのHttpWebRequest.GetResponseでステータスコードが4xxの場合にエンティティボディを取得する | Pistolfly

ここを参考にしました

        Dim content As String = Nothing
        Dim response As HttpWebResponse
     

        Try
            Dim request = DirectCast(GetWebRequest(uri), HttpWebRequest)
            response = request.GetResponse
        Catch ex As WebException
            response = ex.Response
        End Try


        Using reader = New System.IO.StreamReader(response.GetResponseStream)
            content = reader.ReadToEnd
        End Using

こんにちはGitHub

今までSubversionを使っていつかはGit使ってみたいなーっと思って一年ちょっと立ってしまった

めんどくさそう っと思いきややってみると意外と簡単だった

黒い画面とかよくわからない人のための、ゆるふわgit入門 ~github for Windows~ 

何か人様に見せれるような物作ろう っと思いました(小並感