ODROID
関連記事
市場に出ている ODROID ARM ボードは複数存在します。この wiki ページでは全てのボードで共通している設定を説明します。執筆時点では、ODROID-C2 と ODROID-U3 で問題なく動作することが確認済みです。
インストール
Arch ARM プロジェクトのページに書かれている指示に従ってインストールしてください:
カーネルアップデート
initramfs を使わずに起動する Raspberry Pi のカーネルとは異なり、AArch64 のカーネル (kirkwood や linux-odroid-c2 など) は Arch x86_64 や i686 と同じように mkinitcpio によって生成された initramfs を必要とします。アップデート時に、mkinitcpio は ARM のカーネルモジュールを検出することができず、以下のような警告を表示しますが無害です:
-> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [autodetect] find: ‘/sys/devices/platform/’: No such file or directory -> Running build hook: [modconf] ... -> Running build hook: [fsck] ==> WARNING: No modules were added to the image. This is probably not what you want.
CPU スケーリングと温度の管理
C2 のヘッドレスモード
サーバーとして使用する (ディスプレイが必要ない) 場合、/boot/boot.ini
の以下の行をアンコメントすることでビデオサブシステムを無効化する代わりにメモリを約 300 MB 空けることができます:
setenv nographics "1"
CPU 周波数スケーリング
cpupower パッケージを使うことで CPU ガバナーを選択して使用電力を節約できます。/etc/default/cpupower
を編集して governor= 行を設定してから cpupower.service
を起動してください。
オンライン・オフラインのコアを表示
hotplug ガバナーを使用している場合、アイドル状態のコアを無効化することで消費電力を削減し発熱を抑えられます:
lscpu | grep line
CPU 温度の表示
awk '{printf "%3.1f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp
CPU 周波数の表示
awk '{printf "%3.1f MHz\n", $1/1000}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
CPU ガバナーの表示
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
軽量なモニタリングスイート
monitorix にはバージョン 3.8.2 から ODROID 用のサポートが加えられており /etc/monitorix/monitorix.conf
の gensens = y
設定で有効にできます。コアの温度や CPU 周波数が記録されます。スクリーンショットが こちら にあります。
ハードウェアの設定
LED
特定の ODROID モデルには LED が2つ搭載されています: 赤色の LED は電源が供給されているときに常時点灯し、青色の LED は設定が可能です。
青色 LED
デフォルトでは、青色 LED はハートビート LED です。カーネルが起動しているときに点灯します。モデルによっては、以下のように変更することができます:
- ODROID-C2:
/sys/class/leds/blue:heartbeat/trigger
- ODROID-U3:
/sys/class/leds/led1/trigger
利用可能なトリガを確認
# cat /sys/class/leds/blue:heartbeat/trigger
none rc-feedback nand-disk timer oneshot [heartbeat] backlight gpio cpu0 cpu1 cpu2 cpu3 default-on transient flash torch sd emmc battery-charging-or-full battery-charging battery-full battery-charging-blink-full-solid ac-online
一時的な設定
TRIGGER
を上記の利用可能なトリガのどれかに置き換えて下さい。以下の設定は再起動すると消失します。
# echo TRIGGER > /sys/class/leds/blue:heartbeat/trigger
永続的な設定
TRIGGER
を上記の利用可能なトリガのどれかに置き換えて下さい。以下の設定は再起動しても消失しません。
/etc/tmpfiles.d/leds.conf
w /sys/class/leds/blue:heartbeat/trigger - - - - TRIGGER
CPU ファン
/sys/devices/platform/odroidu2-fan
インターフェイスを使うことで CPU ファンを制御することができます。
ファンのモード
# echo auto > /sys/devices/platform/odroidu2-fan/fan_mode
# echo manual > /sys/devices/platform/odroidu2-fan/fan_mode
ファンの速度 (Manual のみ)
0 (0%) から 255 (100%) までの値を設定できます:
# echo 0 > /sys/devices/platform/odroidu2-fan/pwm_duty
# echo 255 > /sys/devices/platform/odroidu2-fan/pwm_duty
トラブルシューティング
ブリッジインターフェイスが機能しない
ODROID-C1+ と ODROID-C2 ではネットワークブリッジが正しく動作しません [1]。netctl や systemd-networkd などのネットワークツールでは Linux コンテナに必要なネットワークブリッジを作成することが不可能です。
解決方法として専用の systemd サービスを使って自動的にブリッジを設定する odroid-auto-bridgeAUR が存在します。作成されたブリッジは systemd-networkd や netctl などで管理できます。詳しくは 上流の readme を見てください。
LXC に DHCP で IP アドレスを割り当てることができない
ODROID ホストで Linux コンテナを動作させるのは厄介です。上記のネットワークブリッジの問題の他に、ホスト OS のデフォルトの転送ポリシーを変更してコンテナから DHCP リクエストが出来るように設定する必要があります。また、コンテナに固定 IP を設定するという方法もあります。
DHCP 機能を使いたい場合は ufw をホスト OS にインストール・設定してください (詳しくは Uncomplicated Firewall#基本設定を参照)。そして /etc/default/ufw
を以下のように編集します:
/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
上記の設定を行わないと ufw のルールやプロファイルによってポート 67 と 68 を許可しても DHCP の割当を機能させることはできません。