ODROID

From ArchWiki
Jump to navigation Jump to search

関連記事

市場に出ている ODROID ARM ボードは複数存在します。この wiki ページでは全てのボードで共通している設定を説明します。執筆時点では、ODROID-C2 と ODROID-U3 で問題なく動作することが確認済みです。

ノート: ARM アーキテクチャのサポートは https://archlinuxarm.org から得ることができます。公式の Arch Linux フォーラムには ARM 関連の問題は投稿しないでください。フォーラムエチケット#Arch Linux ディストリビューションのサポートオンリーを参照。

インストール

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.confgensens = 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]netctlsystemd-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 の割当を機能させることはできません。

参照