Raspbianのifup@.serviceがおかしくてUSB 3G/4G モデムが動かなかった
RASPBIAN JESSIE WITH PIXEL Version January 2017 にアップグレードした後からUSB 3G/4G モデムが動かなくなりました。手動でifupをしてやれば動くのですが、モデムを抜き差しした時に自動でifupしなくなったのです。
1週間悩んでやっと動くようになりました。
以前の記事でUSB 3G/4Gモデムを動かすようにしました。
USB 3G モデム L-02CをRaspberry Pi 3で使えるようにしてMVNOのSIMカードで通信する
YouTubeのライブ配信もできるようにして遊んでました。モデムを挿しておけば勝手に動いてくれるので存在を忘れるくらい便利に使っていました。
ですが、パッケージのアップグレードでファームウエアが更新されてからUSBモデムが自動で動かなくなりました。モデムを挿したままRaspberry Pi 3の電源を入れれば動いていたはずなのに動かなくなりました。手動でifupコマンドを入れれば動きます。
あぁ・・・、systemdまわりはきちんと理解してないから面倒なんだよなぁ・・・。
まずはログをチェック。怪しいメッセージはこれ。
ppp0がタイムアウトして動かないのはわかるのですが何故そうなるのかがわかりません。最後にDependencyとあるので依存関係のある何かが動かないのが原因とはわかります。
さて何だろう?検索しても最近でそんな話題はでてきません。皆さん困ってないってこと?
そもそもRaspbianというかDebianというか、カーネルによるものか?ディストリビューションか?区別が付かないLinux初心者にはバグ報告はどこをどう見れば良いのかわかりません。
地道に設定の再確認をしていきます。
/etc/network/interfacesファイルを見直します。hotplugをautoに置き換えてみますが関係ないようです。元に戻します。
モデムを挿したイベント時のrules.dの記述を再確認します。やはり問題ないようにしか見えません。
それらしい症状を誰か書いてないか検索します。誰も困ってない・・・。
やることが無くなってきたのでifup@.serviceファイルを見てみます。
…
あれ?素人目にも怪しい気がする・・・
"After"が二つある。下のAfterの文は"BindsTo"と被ってる。syslogのメッセージの内容と合致する。これはおかしい気がする。
ifup@.serviceの内容を検索してみます。なんか検索結果が少ないです。そんなマイナーなファイルなのか。似たような内容の結果が見つかりましたので比較してみていきます。やはり2つ目の"After"行はいらない感じです。
消してしまいましょう。
期待して再起動をしてみます。
・・・
起動すると・・・ モデムのランプが点きました。接続成功です。
といく事で、この記事公開時でのRASPBIAN JESSIE WITH PIXELの/lib/systemd/system/ifup@.serviceファイルには不具合があるようです。
2つ目のAfter行はコメントアウトしておきましょう。こんな依存関係は成立しないですよね。
1週間悩んでやっと動くようになりました。
以前の記事でUSB 3G/4Gモデムを動かすようにしました。
USB 3G モデム L-02CをRaspberry Pi 3で使えるようにしてMVNOのSIMカードで通信する
YouTubeのライブ配信もできるようにして遊んでました。モデムを挿しておけば勝手に動いてくれるので存在を忘れるくらい便利に使っていました。
ですが、パッケージのアップグレードでファームウエアが更新されてからUSBモデムが自動で動かなくなりました。モデムを挿したままRaspberry Pi 3の電源を入れれば動いていたはずなのに動かなくなりました。手動でifupコマンドを入れれば動きます。
あぁ・・・、systemdまわりはきちんと理解してないから面倒なんだよなぁ・・・。
まずはログをチェック。怪しいメッセージはこれ。
systemd[1]: Expecting device sys-subsystem-net-devices-ppp0.device... ... systemd[1]: Job sys-subsystem-net-devices-ppp0.device/start timed out. ... systemd[1]: Timed out waiting for device sys-subsystem-net-devices-ppp0.device. systemd[1]: Dependency failed for ifup for ppp0.
ppp0がタイムアウトして動かないのはわかるのですが何故そうなるのかがわかりません。最後にDependencyとあるので依存関係のある何かが動かないのが原因とはわかります。
さて何だろう?検索しても最近でそんな話題はでてきません。皆さん困ってないってこと?
そもそもRaspbianというかDebianというか、カーネルによるものか?ディストリビューションか?区別が付かないLinux初心者にはバグ報告はどこをどう見れば良いのかわかりません。
地道に設定の再確認をしていきます。
/etc/network/interfacesファイルを見直します。hotplugをautoに置き換えてみますが関係ないようです。元に戻します。
モデムを挿したイベント時のrules.dの記述を再確認します。やはり問題ないようにしか見えません。
それらしい症状を誰か書いてないか検索します。誰も困ってない・・・。
やることが無くなってきたのでifup@.serviceファイルを見てみます。
sudo leafpad /lib/systemd/system/ifup@.serviceまだこのファイルの書き方を理解していないので眺めるだけです。一応1行づつ見ていきます。
…
あれ?素人目にも怪しい気がする・・・
[Unit] Description=ifup for %I After=local-fs.target network-pre.target networking.service systemd-sysctl.service Before=network.target BindsTo=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device ConditionPathIsDirectory=/run/network DefaultDependencies=no ...
"After"が二つある。下のAfterの文は"BindsTo"と被ってる。syslogのメッセージの内容と合致する。これはおかしい気がする。
ifup@.serviceの内容を検索してみます。なんか検索結果が少ないです。そんなマイナーなファイルなのか。似たような内容の結果が見つかりましたので比較してみていきます。やはり2つ目の"After"行はいらない感じです。
消してしまいましょう。
期待して再起動をしてみます。
・・・
起動すると・・・ モデムのランプが点きました。接続成功です。
といく事で、この記事公開時でのRASPBIAN JESSIE WITH PIXELの/lib/systemd/system/ifup@.serviceファイルには不具合があるようです。
2つ目のAfter行はコメントアウトしておきましょう。こんな依存関係は成立しないですよね。
コメント
コメントを投稿