前回の【初期設定編】では、SHARP Brain SH3へBrainuxをインストールし、基本的な初期設定まで完了しました。

今回は、いよいよインターネット接続に挑戦します。

「USB無線LAN子機を接続すれば、すぐネットにつながるだろう。」

私も最初はそう思っていました。

ところが実際には、Wi-Fiには接続できているのにインターネットへアクセスできなかったり、再起動すると設定が消えてしまったりと、予想以上に苦戦することになります。

それでも一つずつ原因を確認しながら設定を進めた結果、最終的には再起動後でも自動でネットワークへ接続し、Googleへの通信も問題なく行えるようになりました。

この記事では、実際に遭遇したトラブルと、その解決方法を紹介します。

今回の検証では、USB無線LAN子機とUSB OTGケーブルを使用しました。

USB無線LAN子機は認識したもののネットにつながらない

Brain SH3をWi-Fiへ接続する場合は、USB無線LAN子機が必要です。

使用できるかどうかは搭載チップやドライバーによって異なるため、購入前に対応状況を確認してください。

Brain SH3へUSB無線LAN子機を接続すると、Linux側では正常に認識されました。

Wi-Fiへの接続も成功し、IPアドレスも取得できています。

IPアドレスは取得できているのに通信できない

この時点では「もう終わった」と思っていました。

実際、IPアドレスまで取得できているので、普通ならブラウザを開けばインターネットへ接続できるはずです。

しかし、実際にはまったく通信できませんでした。

例えば、GoogleのDNSサーバーへpingを送ろうとすると、次のようなエラーが表示されます。

ping 8.8.8.8
ping: connect: Network is unreachable

Network is unreachable は、簡単に言うと「通信先へ行く経路が分からない」という状態です。

つまり、USB無線LAN子機そのものが認識されていないわけではなく、Wi-Fiにもつながっているのに、外部のインターネットへ出るための道順が設定されていない可能性がありました。

最初はドライバーやWi-Fi設定を疑った

最初はUSB無線LAN子機のドライバーや、Wi-Fiのパスワード設定に問題があるのではないかと思いました。

特にBrain SH3は通常のパソコンではなく、電子辞書をLinux化した環境です。

そのため、USB無線LAN子機との相性やファームウェア不足を疑って、何度も設定を見直しました。

しかし、IPアドレスは取得できています。

この時点で、無線LAN子機の認識やWi-Fi接続そのものは成功している可能性が高いと判断しました。

そこで次に確認したのが、Linuxのルーティング情報です。

調べていくと、原因はまったく別のところにありました。

原因はデフォルトルートが設定されていなかった

ip route を確認すると、ローカルネットワークへの経路しかありませんでした。

Linuxでは、この「default via」がインターネットへ出るための出口になります。

この設定がないと、同じネットワーク内の通信はできても、外部サイトへアクセスすることはできません。

現在のルーティング情報を確認するため、次のコマンドを実行しました。

ip route

すると表示されたのは、ローカルネットワークの情報だけでした。

192.168.x.0/24 dev wlan0 proto kernel scope link src 192.168.x.xxx

本来であれば、次のようなデフォルトルートが表示されるはずです。

default via 192.168.x.1 dev wlan0

この設定が存在しないため、Brain SH3は自宅のWi-Fiには接続できていても、インターネットへ通信する経路が分からない状態になっていました。

試しに次のコマンドでデフォルトルートを追加すると、すぐにインターネットへ接続できるようになりました。

sudo ip route add default via 192.168.x.1 dev wlan0

ただし、この方法には一つ問題があります。

Brain SH3を再起動すると、毎回デフォルトルートが消えてしまうのです。

つまり、その都度同じコマンドを入力しなければネットへ接続できませんでした。

そこで、起動時に自動でデフォルトルートを追加する設定を行うことにしました。

※IPアドレスやネットワークインターフェース名は、環境によって異なります。

この記事では分かりやすさとプライバシーに配慮し、一部を一般化して記載しています。

起動時にデフォルトルートを自動設定する

毎回コマンドを入力するのは面倒なので、起動時に自動でデフォルトルートを設定するよう変更しました。

ネットワーク設定ファイルを作成する

まずは、ネットワーク設定ファイルを新しく作成します。

sudo nano /etc/network/interfaces.d/wlan

ファイルを開いたら、次の内容を入力しました。

auto wlan0
allow-hotplug wlan0

iface wlan0 inet dhcp
    post-up ip route add default via 192.168.x.1 dev wlan0 || true

この設定では、Wi-Fiインターフェースが起動したあとに、自動でデフォルトルートを追加するようになっています。

そのため、毎回ターミナルから ip route add を実行する必要がありません。

再起動後も設定が保持されるか確認

設定を保存したら、Brain SH3を再起動しました。

起動後に、ルーティング情報を確認します。

ip route

すると、今度は起動直後からデフォルトルートが自動で設定されるようになっていました。

default via 192.168.x.1 dev wlan0
192.168.x.0/24 dev wlan0 proto kernel scope link src 192.168.x.xxx

これで、再起動するたびにコマンドを入力する必要はなくなりました。

以前は再起動のたびに設定が消え、「また同じ作業か…」という状態だったので、このときはかなりホッとしました。

しかし、まだ問題は終わっていなかった

「これでインターネットも使えるようになった!」と思い、ブラウザを開こうとしました。

ところが、期待とは裏腹にWebサイトは表示されません。

デフォルトルートは正しく設定され、IPアドレスへの通信も成功しています。

それにもかかわらず、GoogleなどのWebサイトへアクセスできない状態が続きました。

どうやら原因はルーティングではなく、別の場所にあるようです。

そこで次に確認したのが、LinuxのDNS(名前解決)の設定でした。

Webサイトにアクセスできない原因はDNSだった

デフォルトルートの問題は解決しましたが、ブラウザはまだ正常に表示できません。

IPアドレスへの通信はできているのに、GoogleなどのWebサイトへアクセスできない状態です。

ここで疑ったのが、DNSによる名前解決でした。

IPアドレスでは通信できるのにWebサイトが開けない

まず、GoogleのDNSサーバーへpingを送ってみました。

ping 8.8.8.8

すると、正常に応答が返ってきました。

つまり、この時点でインターネットへの通信自体は成功しています。

デフォルトルートも正しく設定されており、外部ネットワークへ出る経路は確保できている状態です。

ところが、今度はGoogleのドメイン名を指定するとエラーになりました。

ping google.com

Temporary failure in name resolution

IPアドレスでは通信できるのに、ドメイン名では通信できません。

この症状から、通信経路ではなくDNSの名前解決に問題があると判断しました。

原因はresolvconfによるDNS管理だった

Linuxでは、WebサイトのURLに含まれるドメイン名をIPアドレスへ変換してから通信します。

例えば、google.comへアクセスする場合も、内部では対応するIPアドレスを調べてから接続しています。

この変換を行う仕組みがDNSです。

今回のBrain SH3では、IPアドレスへの通信は成功していました。

しかし、google.comのようなドメイン名を指定すると通信できません。

つまり、インターネット接続そのものではなく、DNS設定がうまく反映されていない状態でした。

そこでDNS設定を確認したところ、BrainuxではresolvconfによってDNS設定が自動管理されていることが分かりました。

そのため、/etc/resolv.confを直接編集しても、再起動やネットワーク再接続のタイミングで内容が上書きされてしまいます。

最初はここに気づかず、「設定したはずなのになぜ戻るのか」とかなり悩みました。

DNS設定を永続化するには、/etc/resolv.confではなく、resolvconfが参照する設定ファイルを編集する必要があります。

resolvconfでDNSを設定する

原因がDNSにあると分かったので、resolvconfの設定ファイルを編集します。

ここでは、Google Public DNSとCloudflare DNSを登録しました。

どちらか片方だけでも動作しますが、予備として複数登録しておくと安心です。

resolvconfの設定ファイルを編集する

まず、次のコマンドで設定ファイルを開きます。

sudo nano /etc/resolvconf/resolv.conf.d/base

ファイルを開いたら、次の内容を追加しました。

nameserver 8.8.8.8
nameserver 1.1.1.1

8.8.8.8はGoogle Public DNSです。

1.1.1.1はCloudflare DNSです。

どちらもよく使われているDNSサーバーなので、今回はこの2つを設定しました。

この設定により、Brain SH3がドメイン名をIPアドレスへ変換できるようになります。

つまり、google.comのようなWebサイト名を指定して通信できる状態に近づきます。

DNS設定を反映して確認する

設定を保存したら、次のコマンドでDNS情報を更新します。

sudo resolvconf -u

続いて、現在のDNS設定を確認します。

cat /etc/resolv.conf

表示された内容に、先ほど追加したDNSサーバーが含まれていれば問題ありません。

nameserver 8.8.8.8
nameserver 1.1.1.1

ここで重要なのは、/etc/resolv.confを直接編集しないことです。

直接編集しても一時的には反映されますが、再起動するとresolvconfによって上書きされる可能性があります。

今回のように設定を残したい場合は、/etc/resolvconf/resolv.conf.d/baseへ書くのがポイントでした。

最後にgoogle.comへpingを送って確認する

DNS設定が反映できたら、最後にgoogle.comへpingを送って確認します。

ping google.com

正常に設定できていれば、次のように応答が返ってきます。

PING google.com (...)
64 bytes from ...
64 bytes from ...
64 bytes from ...
64 bytes from ...

4 packets transmitted, 4 received, 0% packet loss

ドメイン名を指定して通信できたため、DNSによる名前解決も正常に動作していることが確認できました。

これで、Brain SH3はIPアドレスだけでなく、Webサイト名でもインターネットへ接続できる状態になりました。

ここまで来て、ようやく「本当にネットにつながった」と実感できました。

何日も悩んだネットワークトラブルがついに解決

何日も悩まされていたネットワークトラブルが、ようやく解決した瞬間でした。

USB無線LAN子機は認識しているのに通信できなかったり、デフォルトルートが再起動のたびに消えてしまったり、DNSだけが正常に動かなかったりと、予想以上に苦戦しました。

途中では「もう無理かもしれない」と思ったこともありましたが、一つずつ原因を切り分けながら確認していくことで、少しずつ問題を解決できました。

Linuxでは、エラーメッセージを手がかりに原因を絞り込み、一つずつ対処していくことの大切さを改めて実感しました。

電子辞書が本当のLinux端末へ生まれ変わった

最終的には、再起動後でも自動でネットワークへ接続できる環境を構築できました。

さらに、GoogleなどのWebサイトへも問題なくアクセスできるようになり、実用的なLinux環境として利用できる状態になっています。

電子辞書として販売されていたBrain SH3が、本当にLinux端末へ生まれ変わった瞬間でした。

ここまで来ると、単なる改造に成功しただけではなく、「電子辞書でここまでできるのか」という驚きと達成感のほうが大きく感じられました。

何度も試行錯誤を繰り返したぶん、Googleから正常に応答が返ってきたときの喜びは格別でした。

Brain SH3が本当のLinux端末になった

今回の設定により、Brain SH3は単にLinuxが起動するだけではなく、普段使いもできるLinux端末として利用できる状態まで仕上がりました。

ここまで動作するようになった機能

今回の作業で、次の機能が正常に利用できるようになりました。

  • Brainuxが正常に起動
  • USBキーボード・マウスが利用可能
  • USB無線LAN子機を認識
  • Wi-Fiへ接続
  • デフォルトルートを起動時に自動設定
  • DNSによる名前解決が正常動作
  • インターネットへ接続可能
  • Swap 1GBを確保
  • 32GB microSDへ環境を移行

最初はLinuxを起動するだけでも一苦労でしたが、ここまで設定を進めたことで、毎回手動で設定をやり直す必要もなくなり、再起動後でもそのままインターネットを利用できるようになりました。

電子辞書とは思えない完成度

電子辞書として販売されていたBrain SH3が、ここまでしっかり動作するLinux端末になるとは、自分でも驚きました。

USB OTGケーブルを利用すれば、USBキーボードやUSBマウス、USB無線LAN子機なども利用できます。

インターネットへ接続できるようになったことで、ブラウザによるWeb閲覧やパッケージの更新、各種ソフトウェアのインストールも行えるようになりました。

以前は「電子辞書」という印象しかありませんでしたが、現在では小型のARM Linux端末として十分楽しめる環境になっています。

性能よりも「触っていて楽しい」が大きい

もちろん、最新のノートパソコンやミニPCと比べれば性能は高くありません。

Webブラウジングも重いページでは待ち時間がありますし、動画視聴や高い処理能力を必要とする用途には向いていません。

しかし、その制約も含めてLinuxを学ぶ教材としては非常に面白く、小さな電子辞書の中でLinuxが動いているというだけでもワクワクします。

Linuxの勉強やターミナル操作、軽いWeb閲覧、SSH接続、ソフトウェアの動作確認など、さまざまな用途に活用できる一台になりました。

何より、自分の手で一つずつ問題を解決しながら環境を完成させていく過程は、とても達成感がありました。

まとめ

今回は、Brain SH3をインターネットへ接続するまでの手順を紹介しました。

実際にはWi-Fiへ接続するだけでは終わらず、デフォルトルートが消える問題やDNSによる名前解決など、いくつもの壁がありました。

しかし、一つずつ原因を切り分けながら設定を進めることで、最終的には再起動後も自動でネットワークへ接続できる環境を構築できました。

ここまで来ると、Brain SH3は単なる電子辞書ではなく、小型のARM Linux端末として十分楽しめます。

今回ハマったポイント

  • USB無線LAN子機は認識しているのにインターネットへ接続できない(デフォルトルートがない)
  • default route が再起動すると消える
  • DNSの名前解決ができず、google.com にアクセスできない
  • /etc/resolv.conf を直接編集しても resolvconf によって上書きされる

Brain SH3用のUSB無線LAN子機を探している方へ

Brain SH3でBrainuxを利用するには、USB無線LAN子機が必要です。

ただし、すべてのUSB無線LAN子機が利用できるわけではありません。

※USB無線LAN子機は製品ごとに搭載チップやLinuxドライバーの対応状況が異なります。

購入前には、搭載チップやLinux対応状況を必ず確認してください。

USB無線LAN子機の詳細を見る
margin: 0; padding: 0;