Ваш сеанс SSH зависает, потому что вы подключены к usb0, а команда udhcpc изменила для него IP-адрес! На данный момент на другом конце вашего сеанса ssh ничего не прослушивается, поэтому ssh-клиент вашего локального компьютера в конечном итоге выходит из строя с ошибкой сломанного канала и завершает работу.
Очевидный обходной путь — подключиться к IP-адресу через tty.usbserial вместо ssh. Вы могли бы подумать, что назначенный IP-адрес USB-порта не должен меняться. Читайте дальше, чтобы понять, что происходит.
Большинство людей, впервые использующих BBB, подключают их напрямую к компьютеру, подключенному к Интернету, с помощью прилагаемого USB-кабеля. Это именно то, что проектировщики BBBs намеревались сделать для вас, и они проделали фантастическую работу с начальной веб-страницей BBB.
Этот хост-компьютер разделяет это соединение по-разному, хотя в зависимости от того, является ли это Windows, OS X или Linux, и то, как вы это делаете, зависит от версии ОС, которую вы используете.
Дерек Моллой (Исследование BeagleBone) и Джейсон Криднер (Youtube OS X Beaglebone video) содержат довольно подробные инструкции по использованию общего доступа к Интернету на основе хоста с вашим BBB. Инструкции для Linux и Windows по-прежнему хороши, но им необходимо обновить информацию OS X для Yosemite — Apple переключила свое программное обеспечение NAT и брандмауэра на pf с ipfw и natd. Если вы попытаетесь запустить udhcpc, как это сделал Джейсон в своем видео, это не сработает так же, как у него.
Итак, вернемся к вашей проблеме BBB SSH с OS X Yosemite. Вот как можно увидеть, что происходит: подключитесь к BBB с помощью последовательного/FTDI-кабеля, затем проверьте ip-конфигурацию usb0 на наличие beaglebone.
beaglebone:~# ifconfig -a usb0
usb0 Link encap:Ethernet HWaddr 0e:be:ff:00:ff:00 inet addr:192.168.7.2
Bcast:192.168.7.3 Mask:255.255.255.252
подтвердите, что вы можете пропинговать хост, который разделяет его подключение к Интернету
beaglebone:~# ping 192.168.7.1
PING 192.168.7.1 (192.168.7.1) 56(84) bytes of data.
64 bytes from 192.168.7.1: icmp_req=1 ttl=64 time=0.681 ms
64 bytes from 192.168.7.1: icmp_req=2 ttl=64 time=0.533 ms
^C
попробуйте подключиться к IP-адресу в Интернете (google dns)
beaglebone:~# ping 8.8.8.8
connect: Network is unreachable
проверьте маршруты и подтвердите, что исходящий маршрут по умолчанию отсутствует, поэтому описанный выше пинг не удался (подключенный через USB BBB по умолчанию имеет настройку сети 192.168.7.0/30, поэтому он может достигать только 192.168.7.0, .1, .2 и . 3 адреса).
beaglebone:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.7.0 0.0.0.0 255.255.255.252 U 0 0 0 usb0
поэтому, если вы запустите udhcpc, он добавит вам недостающий маршрут. вы также можете просто добавить маршрут напрямую, но вам также необходимо настроить DNS, и с общим доступом к Интернету в OS X он не будет работать без изменения IP-адреса BBB - см. ссылки в конце этого сообщение)
beaglebone:~# udhcpc -i usb0
udhcpc (v1.20.2) started
Sending discover...
Sending discover...
и вот где udhcpc меняет IP-адрес, а не просто повторно использует 192.168.7.2. Новый IP-адрес совместим с диапазоном IP-адресов, используемым OS X Internet Sharing, поэтому, возможно, именно поэтому DHCP-сервер возвращает его.
Sending select for 192.168.2.34...
Lease of 192.168.2.34 obtained, lease time 85536
Затем udhcpc выдает ошибку, потому что нет маршрута по умолчанию для удаления.
/etc/udhcpc/default.script: Resetting default routes
SIOCDELRT: No such process
Затем udhcpc добавляет маршрут по умолчанию — обратите внимание, что это адрес OS X Internet Sharing 192.168.2, а не исходный 192.168.7.
/etc/udhcpc/default.script: Adding DNS 192.168.2.1
все заработало, теперь вы видите новый маршрут и успешно пингуете внешний IP
beaglebone:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 usb0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 usb0
beaglebone:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=53 time=4.08 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=53 time=3.59 ms
^C
Есть несколько сообщений в блоге, которые показывают, как настроить это навсегда:
Общий доступ к Интернет-подключению OS X через USB к BeagleBone Black< / а> и
Изменение IP-адреса usb0 на BeagleBone Black
person
Brad Nicholas
schedule
01.06.2015