
新しく設定しようとしています。「ポケットビーグル」Ubuntu(20.04)ノートパソコンとネットワーク接続を共有しています。 PocketBeagle は Debian バージョン: 10.3/2020-04-06(参考資料)。
「ポケットビーグル」WiFiもイーサネットもなくUSBポートしかありません。をサポートし、ssh
両方のIPのいずれかまたは両方を介してこの方法でボードにアクセスできます。おそらく次のように見せると簡単になります。
ifconfig
走る「ポケットビーグル」公開された:
$ ifconfig
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.2 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::6264:5ff:fefa:813a prefixlen 64 scopeid 0x20<link>
ether 60:64:05:fa:81:3a txqueuelen 1000 (Ethernet)
...
usb1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.6.2 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 fe80::6264:5ff:fefa:813e prefixlen 64 scopeid 0x20<link>
ether 60:64:05:fa:81:3e txqueuelen 1000 (Ethernet)
...
ifconfig
走る「Ubuntu」公開された:
$ ifconfig
enx606405fa813b: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.1 netmask 255.255.255.0 broadcast 192.168.7.255
inet6 fe80::2267:92a0:a191:297d prefixlen 64 scopeid 0x20<link>
ether 60:64:05:fa:81:3b txqueuelen 1000 (Ethernet)
...
enx606405fa813d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.6.1 netmask 255.255.255.0 broadcast 192.168.6.255
inet6 fe80::3898:bc86:d0c2:cb53 prefixlen 64 scopeid 0x20<link>
ether 60:64:05:fa:81:3d txqueuelen 1000 (Ethernet)
...
いくつかの研究の最後に、次のように共有を実装するプログラムを開発しました。
使用「Ubuntu」GUI、私は変わった「イーサネット接続」
60:64:05:FA:81:3D
デフォルトではMACに付属しています。「自動DHCP」に「接続の共有」。192.168.6.1
割り当てられたIPアドレスが変更されます。「ポケットビーグル」到着する10.42.0.1
。
このように変更した後は、次のようになります。「Ubuntu」CLI レポートは次のとおりです。
$ ifconfig
enx606405fa813d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80::3898:bc86:d0c2:cb53 prefixlen 64 scopeid 0x20<link>
ether 60:64:05:fa:81:3d txqueuelen 1000 (Ethernet)
...
- このとき、インターフェースでは「ポケットビーグル」変更はありませんが、接続共有には明らかに間違っています。 CLI で次のコマンドを実行しました。「ポケットビーグル」
$ sudo connmanctl config usb1 --ipv4 manual 10.42.0.2 255.255.255.0 10.42.0.1 --nameservers 10.42.0.1
[sudo] password for debian:
Error usb1: Method "SetProperty" with signature "sv" on interface "net.connman.Service" doesn't exist
次のコマンドを使用してサービスを照会してみてくださいconnmanctl
。
$ sudo connmanctl
Error getting VPN connections: The name net.connman.vpn was not provided by any .service files
connmancconnmanctl> services
connmanctl>
私はそれについて全く慣れていませんが、connmanctl
私の研究によると、これがDNSサービスを正しく設定する唯一の方法です。私が台無しにしたのではないでしょうか?たぶん私が何かを逃しているのではないでしょうか?それから「既存の方法」の設定を試みることにしました。
- 次のコマンドシーケンスは、そのエントリを再構成するために使用されます。「ポケットビーグル」「既存の方法」インターフェース:
$ sudo ifconfig usb1 10.42.0.2 netmask 255.255.255.0 up
$ sudo route add default gw 10.42.0.1 usb1
$ sudo nano /etc/resolv.conf
#
# add line: nameserver 10.42.0.1
# save & exit editor
#
# yes - this is an awful kludge, but it did provide DNS
これが効果がありました!- これ「ポケットビーグル」インターネットに正常に接続され、DNSが機能しました。
debian@beaglebone:~$ ping unix.stackexchange.com
PING unix.stackexchange.com (151.101.1.69) 56(84) bytes of data.
64 bytes from 151.101.1.69 (151.101.1.69): icmp_seq=1 ttl=56 time=9.01 ms
64 bytes from 151.101.1.69 (151.101.1.69): icmp_seq=2 ttl=56 time=11.8 ms
...
問題:明らかに問題は私の使用にありますconnmanctl
。「ポケットビーグル」それ自体。私が何を間違っているのでしょうか?なぜconnmanctl
期待どおりに動作しないのですか?
答え1
Pocketbeagleでも同様の問題が発生しました。デフォルト設定は、ローカルDNSサーバーとして機能するdnsmasqで構成されています。デフォルトでは、接続するたびにインターネットにアクセスできず、プライマリCloud9 IDEにアクセスできるように独自のDNSを提供します。
私の一時的な修正は、以下を実行することです。
sudo dhclient -r <usb0 or usb1>
。
これにより、ホストPCから自動的にDNSを取得し、一時的に設定する必要があります。このコマンドは、Pocketbeagleが再起動されるたびに再実行する必要があります。私が知る限り、connmanctl は Pocketbeagle で DNS を管理しません。したがって、ネームサーバー設定はボーン - Ubuntu イメージやボーン - Debian に影響を与えない場合があります。
DNSリゾルバを自動的に実行するには、systemd-resolved
起動時にサービスが開始されるようにサービスをインストールして有効にする必要があります。これが私がインターネットに接続するときに一般的に使用する方法です。