Raspberry Pi 2でiPhoneのUSBテザリングを使う
新しい記事をQiitaに書きました。
Raspberry Pi 2/3/Zero でiPhoneのUSBテザリングを使う
Raspbian jessie を使っています。
iPhoneのUSBテザリングについては以下のページに情報がありますが、この方法ではwheezyではうまくいきましたが、jessieではダメでした。
http://www.daveconroy.com/how-to-tether-your-raspberry-pi-with-your-iphone-5
Raspberry Pi How To: Tether to iPhone 5
でもうまくいく方法を見つけました。
準備。
$ sudo apt-get install ipheth-utils libimobiledevice-utils ifuse usbmuxd $ sudo mkdir /media/iphone
iPhoneをUSBケーブルでつなぎます。私が試したのはiPhone6。
$ sudo ifuse /media/iphone
これでテザリングできるようになります。
iPhoneをつなげたときに、自動でifuseを実行するようにするためには上記のページを参考にしてudevのスクリプトを修正すればよいはずです。
以下はメモ
このページの手順をなぞってみる
Raspberry Pi How To: Tether to iPhone 5
$ sudo apt-get install ipheth-utils libimobiledevice-utils ifuse
ここでiphoneをUSBケーブルでつなぐ。
$ ifconfig -s Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 344 0 0 0 290 0 0 0 BMRU lo 65536 0 136 0 0 0 136 0 0 0 LRU
インタフェースが増えてない。
$ dmesg |tail [ 33.030589] cfg80211: Calling CRDA to update world regulatory domain [ 36.190643] cfg80211: Calling CRDA to update world regulatory domain [ 39.350699] cfg80211: Calling CRDA to update world regulatory domain [ 42.510714] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA [ 306.713474] usb 1-1.5: new high-speed USB device number 4 using dwc_otg [ 306.816790] usb 1-1.5: New USB device found, idVendor=05ac, idProduct=12a8 [ 306.816816] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 306.816833] usb 1-1.5: Product: iPhone [ 306.816849] usb 1-1.5: Manufacturer: Apple Inc. [ 306.816866] usb 1-1.5: SerialNumber: 4c6f6a8607e5231b47ae51381dc55f2306b1120e
なんか反応が薄い。ipheth が登録されていない。
手動でmodprobeしてみる。
$ sudo modprobe ipheth $ dmesg |tail [ 36.190643] cfg80211: Calling CRDA to update world regulatory domain [ 39.350699] cfg80211: Calling CRDA to update world regulatory domain [ 42.510714] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA [ 306.713474] usb 1-1.5: new high-speed USB device number 4 using dwc_otg [ 306.816790] usb 1-1.5: New USB device found, idVendor=05ac, idProduct=12a8 [ 306.816816] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 306.816833] usb 1-1.5: Product: iPhone [ 306.816849] usb 1-1.5: Manufacturer: Apple Inc. [ 306.816866] usb 1-1.5: SerialNumber: 4c6f6a8607e5231b47ae51381dc55f2306b1120e [ 432.201372] usbcore: registered new interface driver ipheth $ ifconfig -s Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 344 0 0 0 290 0 0 0 BMRU lo 65536 0 136 0 0 0 136 0 0 0 LRU
まだダメ。udevから起動されるはずの/lib/udev/ipheth-pairを手動で動かしてみる。
$ sudo /lib/udev/ipheth-pair /lib/udev/ipheth-pair: -3: cannot get default device
なんかエラーになっているので、straceで見てみる。
$ sudo strace -o /tmp/strace.log /lib/udev/ipheth-pair /lib/udev/ipheth-pair: -3: cannot get default device
...
getrusage(0x1 /* RUSAGE_??? */, {ru_utime={0, 0}, ru_stime={0, 20000}, ...}) = 0
read(3, "\3351\243}]\325\326\202\231\202\337\211\tX%\2626\6\254\230fMp\261\2507\223\310\373\347E1", 32) = 32
read(3, "#\246\301a\375\336\247N\177\320\277BzhXQ\\2\264\360\206\262(\254\364<\234\307=A*\317", 32) = 32
read(3, "\214\316\305\352z\":\345", 8) = 8
fstat64(3, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
futex(0x76f4c3a4, FUTEX_WAKE_PRIVATE, 2147483647) = 0
stat64("/var/run/usbmuxd", 0x7eeb59c8) = -1 ENOENT (No such file or directory)
write(2, "/lib/udev/ipheth-pair: -3: canno"..., 53) = 53
futex(0x76f4c3a8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
close(3) = 0
exit_group(-1) = ?
+++ exited with 255 +++
"/var/run/usbmuxd"が無いのが直接の原因。ネットでusbmuxdを検索するとそういうパッケージがあることがわかる。
$ sudo apt-get install usbmuxd
このパッケージがインストールされていなかった。
これでiPhoneを抜いて、挿し直すと
$ ifconfig -s Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 434 0 0 0 358 0 0 0 BMRU eth1 1500 0 0 0 0 0 3 2 0 0 BMRU lo 65536 0 136 0 0 0 136 0 0 0 LRU
eth1ができた。
$ sudo mkdir /media/iphone $ sudo ifuse /media/iphone
iPhoneの画面に「このコンピュータを信頼しますか?」というダイアログが出ているので、とりあえず「信頼する」のボタンを押す。
$ ifconfig eth1 eth1 Link encap:Ethernet HWaddr d2:4f:7e:c4:26:f7 inet addr:172.20.10.3 Bcast:172.20.10.15 Mask:255.255.255.240 inet6 addr: fe80::d04f:7eff:fec4:26f7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:272 errors:0 dropped:1 overruns:0 frame:0 TX packets:271 errors:17 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:52399 (51.1 KiB) TX bytes:39804 (38.8 KiB)
使えるようになった。
要するに、usbmuxd も必要だった。