【CPU温度やI/Oの監視】Rapberry Pi4サーバにMonitorixをインストールする方法

【CPU温度やI/Oの監視】Rapberry Pi4サーバにMonitorixをインストールする方法

前書き:ラズパイサーバが停止するので監視したい Raspberry Pi4にPLEXマルチメディアサーバを導入して、約一ヶ月ほど運用した結果、2〜3日の稼働でシステム停止してしまう問題に遭遇しています。 この問題の対症療法として、Watch Dog Timerとheartbeatを用いてシステム停止時に自動再起動を行う対応を実施しました。 ...

2020年11月28日 · 7 分 · nchika
【WatchDogTimer】Raspberry Pi4サーバがフリーズ(停止)した場合に自動再起動する方法【HeartBeat】

【WatchDogTimer】Raspberry Pi4サーバがフリーズ(停止)した場合に自動再起動する方法【HeartBeat】

前書き:ラズパイサーバがよく止まる ラズパイにPLEXマルチメディアサーバを導入して、約一ヶ月ほど運用した結果、2〜3日の稼働でシステム停止してしまう問題に遭遇しています。半日で停止する事もありました。 Plexメディアサーバー用に、 ・ラズパイ4(8GB) ・HDD 1TB ・SSD 128GB(Boot用) ・microSDは無し の環境を作成中。 このケースはmicroSDカード差込口を逆方向まで持ってくる基板が付いてきたけど、それを経由するとmicroSDの読み込みでエラーが頻出する。 なのでSSDブートに切り替え中。 pic.twitter.com/uvqZR5Gz0s ...

2020年11月28日 · 7 分 · nchika
Cortex-A8 (ARMv7-A, e.x. BeagleBone Black)におけるコンテキストスイッチ/割り込み操作/Halt

Cortex-A8 (ARMv7-A, e.x. BeagleBone Black)におけるコンテキストスイッチ/割り込み操作/Halt

前書き:XINUソースコードから学ぶアセンブラ実装 本記事では、ARM Cortex-A8における コンテキストスイッチ 割り込み処理 Halt(システム停止) に関して、XINUソースコードのアセンブラ実装を例として紹介します。 ...

2020年11月21日 · 5 分 · nchika
Cortex-A8 (ARMv7-A, e.x. BeagleBone Black)のレジスタ情報/アセンブラ命令/インラインアセンブラの書き方

Cortex-A8 (ARMv7-A, e.x. BeagleBone Black)のレジスタ情報/アセンブラ命令/インラインアセンブラの書き方

 前書き:XINU (Real Time OS)で学んだARMに関する情報 本記事では、ARM CPU(Cortex-A8、32bit)に対する調査内容を備忘録としてまとめています。 ...

2020年11月21日 · 7 分 · nchika
【Go言語(Golang)】os.Exit()をユニットテストする方法(カバレッジも取得する方法)

【Go言語(Golang)】os.Exit()をユニットテストする方法(カバレッジも取得する方法)

前書き:os.Exit()の結果は親プロセスが受信 Go言語のos.Exit()は以下に示すコードで実装されており、最終的にシステムコールのexit()を呼び出し、プロセスを終了させます。 func Exit(code int) { if code == 0 { // Give race detector a chance to fail the program. // Racy programs do not have the right to finish successfully. runtime_beforeExit() } syscall.Exit(code) } システムコールExit()の引数codeは、そのプロセスの終了状態として親プロセスに伝わる仕様です(他言語のexit()コードも同等の挙動をします)。つまり、テストコードからos.Exit()をコールするメソッドを呼び出しても、その結果を取得できません。 ...

2020年11月20日 · 4 分 · nchika
【Go言語(Golang)】ユニットテスト時にgo-flagsに任意の引数を渡す方法

【Go言語(Golang)】ユニットテスト時にgo-flagsに任意の引数を渡す方法

前書き:flag(Go標準)のテスト方法ばかり検索ヒット Go言語は、コマンドライン引数をパースする機能を持つflagパッケージが標準機能として提供されています。flagパッケージは、引数パース機能に対するユニットテストを簡単にするために、“flag.Commandline.Set()“が用意されています。 その一方で、OSSとして公開されているgo-flagsパッケージはどうでしょうか?flagパッケージよりも、go-flagsの方がコマンドライン引数を簡単に扱える特徴(ショート/ロングオプションサポート、Helpメッセージ自動生成など)がありますが、テスト用の仕組みが見当たりません。 Googleで検索しても、go-flagsパッケージによるコマンドライン引数パースをテストする方法が出てこなかったため、本記事ではその方法(ベストな方法ではなく、妥協した方法)を紹介します。 ...

2020年11月20日 · 3 分 · nchika
【Bash】同じシェルスクリプトの二重起動(並列実行)を防止する方法

【Bash】同じシェルスクリプトの二重起動(並列実行)を防止する方法

前書き :同じタイミングで動かれると困る 同じシェルスクリプトが二重起動すると、処理によっては「無駄で時間のかかる処理を二重に行い、システムリソースを消費する事」があります。 ...

2020年11月8日 · 3 分 · nchika
【苦行】C言語で正規表現を用いる方法【標準Cライブラリ(glibc)使用】

【苦行】C言語で正規表現を用いる方法【標準Cライブラリ(glibc)使用】

 前書き:C言語で正規表現を使う理由などない 正規表現(Regular Expression)は強力な機能なため、様々なLinuxコマンドやプログラミング言語、アプリに導入されています。特に、sed/awk/egrepコマンドやPerl/Rubyは、正規表現による文字列操作の代名詞のような存在です。 ...

2020年11月1日 · 18 分 · nchika
【環境構築】Raspberry PiにPlex Media Serverをインストール【Kodi、Embyとの比較】

【環境構築】Raspberry PiにPlex Media Serverをインストール【Kodi、Embyとの比較】

前書き:メディアサーバの候補はどれか 撮りためた写真や動画、購入した音楽などが増えてくると、ローカルで管理するよりもメディアサーバで管理した方が家族にも共有しやすくて便利です。 Raspbery Piをメディアサーバとして運用する事を考え、使いやすそうなアプリを探した結果、Plex、Kodi、Embyの3種類が候補に上がりました。 ...

2020年10月31日 · 7 分 · nchika
【Tips】何度も繰り返す開発環境構築をMakefileとシェルスクリプトで楽にする

【Tips】何度も繰り返す開発環境構築をMakefileとシェルスクリプトで楽にする

前書き:環境構築は面倒だから、楽をしたい 開発環境の構築は、その規模の大小に関わらず、面倒な作業です。 環境構築の面倒な部分 忘れてしまった環境構築手順を思い出す事 設定ファイルの修正(数が多いと特に面倒) パッケージマネージャが使えない場合、アプリの手動ビルド&インストール 依存関係が自動解決できない場合、依存関係を調査 構築を複数回繰り返す事(自宅/会社PCへの対応あるいは環境を壊した時) 環境構築は、プログラミングをする前段階の作業ですので、ここで消耗したくありません。 ...

2020年10月29日 · 7 分 · nchika
【環境構築】Raspberry Pi 4台で作るKubernetesクラスタ

【環境構築】Raspberry Pi 4台で作るKubernetesクラスタ

前書き:憧れのラズパイクラスタ Raspberry Piでスパコンを構築する取り組みは昔からありましたが、最近は「Kubernetesクラスタを作ったよ」という報告が増えてきました。私もラズパイ4(8GB)を一台購入してラズパイが合計4台となったのをキッカケに、憧れのラズパイクラスタに手を出してみました! ...

2020年9月27日 · 9 分 · nchika
Raspberry Pi3/4にDockerとdocker-composeをインストールする方法

Raspberry Pi3/4にDockerとdocker-composeをインストールする方法

前書き 本記事では、Raspberry Pi3/4(32bit、64bit)のいずれかに対して、Dockerおよびdocker-composeをインストールする方法を紹介します。 ...

2020年9月27日 · 3 分 · nchika
感想:ランス03 リーザス陥落

感想:ランス03 リーザス陥落

ランス03は、ランス3のリメイク作品(24年ぶり) ランス03(2015)は、1991年に発売されたランス3のリメイク作品です。 ランスシリーズは、02→01→03の順でリメイクされ続けており、03の段階でシステム面が一通りブラッシュアップされた印象です。絵柄を比較しただけで時代の流れを感じてしまう。 ...

2020年9月26日 · 更新: 2026年7月27日 · 7 分 · nchika
Raspberry Pi4のimage(データ)をバックアップし、より大容量なmicroSDカードにリストアする方法

Raspberry Pi4のimage(データ)をバックアップし、より大容量なmicroSDカードにリストアする方法

前書き 本記事では、Raspberry Pi4のOS imageをバックアップし、より大容量なmicroSDカードにバックアップimageをリストアする方法を紹介します。 ...

2020年9月2日 · 4 分 · nchika
【セキュリティ対策】Raspberry Pi4に新規ユーザを追加し、piユーザを削除

【セキュリティ対策】Raspberry Pi4に新規ユーザを追加し、piユーザを削除

前書き:piユーザは脆弱 Raspberry Piのデフォルトユーザであるpiユーザ(管理者権限あり)は、パスワードがraspberryに設定されています。この情報は悪意のあるユーザも当然知っているため、近年ではpiユーザを狙い撃ちにしたマルウェアが増えています。 ...

2020年9月1日 · 4 分 · nchika
【環境構築】fish shellを用いたDebian環境にSDKMANおよびJava(JDK)をインストールする方法

【環境構築】fish shellを用いたDebian環境にSDKMANおよびJava(JDK)をインストールする方法

前書き:SDKMANはbash(もしくはzsh)前提 SDKMANは、JDK(Java開発環境)やGroovy、Scala、Gradleなどのバージョン管理ツールです。主に、JVM系のツールを管理します。Rubyのrbenv、Pythonのpyenvと同様の立ち位置のツールであり、CLIから任意のバージョンのソフト(例:Java)をインストール/使用/削除できます。 SDKMANの公式サイトに書かれている通り、SDKMANはbashで実装されています。そのため、Login Shellがbashの場合は問題なく動作しますが、fish環境では実行時にエラーが出てしまいます。 ...

2020年8月30日 · 5 分 · nchika
【環境構築】Debian 10にSteamをインストールする方法:glXChooseVisual failedエラー回避

【環境構築】Debian 10にSteamをインストールする方法:glXChooseVisual failedエラー回避

前書き:Steam公式はLinuxをサポート済み Steamは、PCゲームの購入ができるプラットフォームであり、2012年からLinux環境でも動作します。Debian公式サイトにSteamの導入方法を紹介した記事がありますが、グラフィックボードがNVIDIA環境の場合は追加手順が必要です。 本記事では、追加手順を含めて、Steamのインストール方法を紹介します。 ...

2020年8月28日 · 3 分 · nchika
元Win/MacユーザがメインPCをLinux(Debian)にした感想

元Win/MacユーザがメインPCをLinux(Debian)にした感想

前書き 本記事では、メインPCをLinuxに変えて良かった事/不便だった事を紹介します。 前提情報ですが、私のPC使用歴はWindowsが18年(Win2000〜Win10)、Macが8年(OS X 10.8〜macOS 10.15)、Linuxが4年(Debian8〜10)です。WindowsとLinuxは仕事で使用しており、ターミナルでのコマンド操作(CLI)に苦手意識はありません。むしろ、CLIが好きです。 ...

2020年8月26日 · 7 分 · nchika
Debian(64bit)で32bitバイナリを実行もしくは作成する方法(C言語)

Debian(64bit)で32bitバイナリを実行もしくは作成する方法(C言語)

検証環境 Debian10(64Bit)、Ryzen 7 3800X環境で検証します。CPUアーキテクチャはIntel/AMDを想定しており、ARMに関しては本記事で説明しません。 ...

2020年8月19日 · 3 分 · nchika
【Java 11】Shebangを用いたJavaソースファイル(単一)の実行方法 + Shebangエラー回避方法

【Java 11】Shebangを用いたJavaソースファイル(単一)の実行方法 + Shebangエラー回避方法

前書き:コンパイル無しでJavaアプリが動かせる 最近のJavaは、リリースペースが半年に一回と早まり、新機能が次々と追加されています。新機能の中で、Java 11からコンパイル無しでJavaソースファイル(単一ファイル)が実行できる機能があり、本記事ではその使い方(およびShebangエラー回避方法)を説明します。 ...

2020年7月23日 · 3 分 · nchika