5
8

More than 5 years have passed since last update.

Android上のwolからLinuxの自宅サーバーを起動する

Posted at

初めに

Wakeup On LANという、有線LANにマジックパケットを送信することで外部から電源を投入できる仕組みがあります。
これを使うと、自宅サーバーを常時稼働させる必要がなくなり大変便利です。
しかし、筆者が利用しているHomeGateWayはAterm BL900HWであり、Wakeup On LANマジックパケット送信ができません。
そこで、Wifi運用のAndroid端末にSSHして、そこからLinuxの自宅サーバーを起動することを考えます。

準備(ルータ)

  • AndroidのSSHポートへポートマッピング設定を行って下さい。自宅サーバーを開設している方なら大丈夫だと思いますので説明は省きます。

準備(Android)

  • 家に置いておくAndroidが必要です。多分Froyoで大丈夫。Wifiはスリープ中でも常時ONにする設定が必要です。
  • SSHサーバーアプリは別途導入して下さい。筆者は(当時DroidSSHDの不具合の多さに辟易したので)QuickSSHDを購入しました。
    • なお、QuickSSHDはarmでしか動きません。AST21の動作確認はadbで行いましたが、どうしたもんでしょうね。
  1. wolコマンドを用意します。
  2. まず、Android NDKを用意し、build/tools/make-standalone-toolchain.shを使ってtoolchainを設定します(このスクリプトは、コンパイラとplatform/android-/arch-をsysrootとしてコピーする原理のようです)。
  3. https://sourceforge.net/p/wake-on-lan/code/HEAD/tree/ をチェックアウトし、sh autogen.sh、続いて./configure --host=arm-linux-androideabiとします。
  4. config.hのrpl_mallocrpl_reallocHAVE_ETHER_HOSTTONの各行をコメントアウト。HAVE_STRUCT_ETHER_ADDRを1、HAVE_STRUCT_ETHER_ADDR_ETHER_ADDR_OCTETを1に設定します。
  5. makeすると、src/wolが生成されるので、これをAndroidに転送します。転送方法はsshでもadbでも構いません。ただし、SDカード領域に転送したアプリは実行できないので、/data/local(/tmp)配下に転送することになるでしょう。

なお、x86マシンの場合は、--host=i686-linux-androidとなります。

準備(Linuxマシン)

BIOS

  • 例として、A78M-E35マザーボードの場合、Power Management SetupのEuP 2013をdisabled、Wakeup Event SetupのWake up Event byをBIOS、Resume By PCI-E Deviceをenabledに設定します。

Linux

  • sudo ethtool -s eth0 wol gとしてwolを有効化、sudo ethtool eth0から確認します。
  • MACアドレスを確認しておきます。

使い方

  • 指定ポートにSSHします。
  • SSH上からwolコマンドを実行すると、当該端末の電源を投入できます。

ログ

MacBookAir -> 大学 -> 自宅のAndroidとアクセスしています。

neige:~ *******$ ssh ***
[*******@***01 ~]$ ssh root@****.yi.org -p **22 -v -2
root@****.yi.org's password: 
root@android:/data/data/com.teslacoilsw.quicksshd/home # /data/local/wol 44:8a:5b:**:**:**
Waking up 44:8a:5b:**:**:**...
root@android:/data/data/com.teslacoilsw.quicksshd/home # 
[*******@***01 ~]$ logout
neige:~ *******$

追伸

最初はbusyboxのether-wakeで実験していたのだけど、導入手順がかなりややこしい(そしてx86向けにコンパイルできなかった)ので別アプリにしたところとても簡単に導入できるようになった。

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8