Car PC 9号

TOP/Car PC/Car PC9号 (2018/4/1車載開始!)

今回の構築指針

  • 電源オフ状態→電源オン→音楽スタートまでの起動時間短縮
    • フルUEFI化
      • M/B変更
      • ↑それに伴い、CPU,RAM,SSDの変更
      • フルUEFI対応OSへ変更 (Fedora等)
  • ケース整理
  • スクリプト群の整理
  • 自作アプリ整理
    • 最新ライブラリに合わせてビルド環境調整、ソースコード修正等
  • FHD(1080i)化に伴い、全体的にレイアウト刷新(予)
    • ↑その関係でOS自体を新しくしたかったのもある。
  • その他

SPEC

メモ

OS関連

  • Fedora27ベース
  • UEFIインストール
systemd
  • Cent6.xの時は、Run level 4で自前スクリプトを動かして処理してたけど、
  • mz20h270.serviceのUnitファイルを作成し、これで起動。結構すっきり!
  • journaldの出力先をram-diskへ。
    • /etc/systemd/journald.conf
      Storage=volatile
NetworkManager
  • ネットワークも、NetworkManagerで管理!
電源ボタンイベント
  • systemd-logindで、イベント奪われるので、ignoreに。
    • /etc/systemd/logind.conf
      • HandlePowerKey=ignore
        HandleSuspendKey=ignore
  • そんでもって、acpidを入れてこちらで処理。
    • 電源ボタン押されたら、自前scriptで終了処理。
ファイルシステム
  • SSD領域
    • / – xfs
    • /data – xfs
  • HDD領域
    • /Backup – xfs
  • RAMディスク
    • /run
    • /tmp
    • /var/tmp
    • /var/log

ミドルウェア関連

httpd(apache)
  • fedora27では、2.4系なので、configを書き直した。
node.js
  • Cent6.xの時は、ソースビルドでインストールしてたけど、Fedora27では、dnfで入れた。
    • バージョンは8.9.4ですね。
  • npmでは、socket.ioとmqttをインストール。
mapserver
  • mapserver7.xから、mapファイルの書式が結構変わって、自作アプリから出力しているmapファイルで、エラーでまくったので、dnfで入るパッケージを入れるのは諦めた。
    • fedora27では、mapserver-7.0.5が入る。。。
  • 仕方ないので、fedora23用のmapserver-6.2.2をsrpmからビルドして入れた。
php7
  • mysql_*が無くなって、mysqli_*になったのでそのへん対応
  • f27のapache2.4ではデフォがphp-fpmだったので、mod_phpに。^^;そのうち、nginx+php-fpmで整備しますが。
mariadb
  • Default Storage EngineをAriaに。
  • InnoDB,rocksdbはオフに。
  • 車載運用のため、SSDの寿命を考慮し、下記シーケンスで起動
    • 起動時
      • /Backup/mysqlより、/tmp/mysqlへコピー
      • /tmp/mysqlを/var/lib/mysqlへbindマウント
      • mariadb起動
    • shutdown時
      • mariadb停止
      • /tmp/mysqlを、/Backup/mysqlへコピー
      • /var/lib/mysqlのbindマウントを解除
postgresql
  • postgisエクステンションインストール
  • 基本はreadメインなので、mariadbのようにram-disk運用はなし
Xorg
  • logを/tmpへ&カーソル表示off
    /usr/bin/xinit /opt/mz20h270/rc/XINITRC — -logfile /tmp/Xorg.log -nocursor
  • 解像度変更  HDMI-1 → 1080i
    /usr/bin/xrandr –output HDMI-1 –mode 1920x1080i
xmms
  • pcmデバイス  HDMI-1 audio
    pcm_device=hw:0,3
Xpenguins
  • とりあえず大きいペンギン8匹で(w
    xpenguins -t Big_Penguins -n 8 &

自作アプリ関連

gid3view
  • xmmsで再生中のid3タグ情報の表示&publish(→ステアリングパッドrpi2やnode.jsへ)
  • サムネイルの表示ウィンドウのボーダー設定
  • ウィンドウのカーソル表示オフ、編集モードオフに
odoinfo,(odorec)
  • odoメータ、tripメータ、表示
  • odorecで自作odoメータマイコンよりデータ受信
    • USBシリアル経由
vtemp
  • 各種値表示
    • PC入力電圧
    • リアシート付近室内温度
    • リアシート付近室内湿度
    • 室内気圧
    • 標高(GPSデータ)
    • 7M水温
glocation,(gps2)
  • GPSデータからの逆ジオコーディング情報表示
    • 5分に1度 or 市区町村が変わったタイミングで、情報を通知&記録
    • 都道府県別で、簡易地図を表示
    • 現在地の市区町村を赤く
  • GPSデータは、gps2デーモンで受け取る
    • PCIeシリアル経由
soarer_logo
  • 画面 下にSOARERロゴバーを表示
recv
  • ステアリングサテライトスイッチからの入力に応じて、いろいろ制御。
    • USBシリアル経由

実行画面イメージ

起動時間について

車載PC9号機
mz20h270
車載PC8号機
mz20h77
エンジンオフ状態→IGN-ON→電源ON 5秒 5秒
M/B電源off→BIOS(COLDスタート) 3秒 5秒
BIOS→grub 1秒 2秒
 grub→音楽スタート  6秒 6秒
 エンジンオフ→音楽スタート  15秒  18秒
  • 結局、COLDスタート状態だと、3秒の短縮しかできなかった。。。
  • エンジンオフ→電源ONの時間は、電源(M4-ATX-HV)の仕様上短縮不可能。。最短が5sec。
  • メインの電源をHardOff状態にしなければ(WARMスタート状態)、M/B電源off→BIOSは、0.5秒となった。(旧M/Bは変わらず5秒弱かかる)

NaO's Page