2012-05-10 38 views
5

tôi cần phải biết làm thế nào để kết nối với một beaglebone (hoặc BeagleBoard) với SSH khi tôi cắm nó vào một mạng mới với một cáp ethernet như thế này:không thể kết nối với beaglebone.local

$ ssh [email protected] 

Cho đến nay tôi đã chỉ có thể truy cập vào nó như thế này, nếu tôi biết địa chỉ IP:

$ ssh [email protected]<ip_address> 

Nhưng tôi không bao giờ biết địa chỉ IP của hội đồng quản trị trên các mạng mới vì vậy tôi hy vọng sẽ truy cập nó với một cái tên như: beaglebone.local.

Ngay bây giờ khi tôi cố gắng để làm điều này tôi nhận được lỗi này:

"ssh: Could not resolve hostname beaglebone.local: nodename nor servname provided, or not known" 

Tôi đã kiểm tra tên máy và lưu trữ tệp, và thêm vào "127.0.0.1 beaglebone" để các host trên beaglebone, nhưng không chắc chắn tôi có thể làm gì khác?

# cat /etc/hostname 
    beaglebone 

    # cat /etc/hosts 
    127.0.0.1  localhost.localdomain    localhost 
    127.0.0.1  beaglebone 

Trả lời

5

Tôi gặp sự cố tương tự khi chạy beaglebone của mình trên Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.05-beaglebone-2012.04.22.img.xz. Trong bản phân phối này, "beaglebone.local" sẽ xuất hiện trên mạng sau khi khởi động hệ thống.

Khoảng 50% thời gian sau khi khởi động lại, "beaglebone.local" sẽ không xuất hiện trên mạng (mặc dù xương sẽ có sẵn theo địa chỉ IP). Khi điều này xảy ra, "trạng thái systemctl avahi-daemon.service" đã chỉ ra rằng avahi-daemon thất bại với "exit code 255". Thật thú vị, một "systemctl start avaihi-daemon.service" tiếp theo sẽ luôn thành công và "beaglebone.local" sẽ xuất hiện trên mạng.

Ngoài ra "journalctl | grep avahi" đã trả về một thông báo duy nhất có nội dung như "Daemon đã chạynin gon PID NNN".

Vì vậy, tôi "cố định" vấn đề bằng cách thêm dòng "ExecStartPre =/bin/rm -f/var/run/avahi-daemon/pid" vào phần [Dịch vụ] của/lib/systemd/system/avahi-daemon.service. Với phần bổ sung này, "beaglebone.local" hiện xuất hiện trên mạng 100% khởi động lại.

Tôi nói "cố định" (tức là, trong dấu ngoặc kép) vì tôi đã không thể theo dõi nguyên nhân gốc để lại xung quanh tệp pah avahi pid đi lạc và do đó không có bản sửa lỗi thực sự.

- Frank

0

Tôi ghét trả lời các câu hỏi của riêng mình. Các hack sau đây sẽ hoạt động cho đến khi một cách tốt hơn xuất hiện:

Kịch bản lệnh này (trong đó xxx.xxx.xxx là ba số đầu tiên trong IP của máy tính) sẽ tìm thấy beaglebone hoặc beagleboard (được cắm vào ethernet) mạng mới với DHCP) bằng cách lặp qua tất cả địa chỉ ip trên mạng con và cố đăng nhập vào từng địa chỉ gốc. Nếu nó tìm thấy một thì hãy thử mật khẩu của bạn. Nếu nó không hoạt động chỉ cần nhấn enter cho đến khi vòng lặp bắt đầu lại. Nếu nó không tìm thấy hội đồng quản trị sau đó cái gì khác có lẽ là sai.

for ip in $(seq 1 254); do ssh [email protected]$ip -o ConnectTimeout=5; [ $? -eq 0 ] && echo "xxx.xxx.xxx.$ip UP" || : ; done 

CẬP NHẬT 1

Hôm nay tôi cắm-trong beaglebone và thấy Bonjour nhận ra rằng nó đã gia nhập mạng. Vì vậy, tôi đã thử nó và nó đã làm việc. Không có ý tưởng tại sao nó quyết định đột ngột nhưng nó đã làm. Lạ nhưng có thật.

+0

Một cách dễ dàng hơn, nếu bạn biết địa chỉ mac của cổng ethernet của beagle-board: 'nmap -sP ; arp -an | grep ' –

+1

Đó là một ý tưởng tuyệt vời. Mặc dù không làm việc cho tôi. Cách khác, ping địa chỉ quảng bá và sau đó chạy arp sẽ cung cấp cho bạn một danh sách, sau đó bạn có thể tìm thấy MAC của bạn. # ping 192.168.1.255 # arp -an – ow3n

+1

Bạn cũng có thể sử dụng nmap -F xxx.xxx.xxx.1/24 và tìm các cổng đang mở. Thông thường can9 tại cổng 3000 là một dấu hiệu tốt. Tôi hiểu đây không phải là giải pháp để tiếp tục mọi lúc. – Seeker

0

Để 'beaglebone.local' hoạt động, máy chủ của bạn phải nhận ra Zeroconf. BeagleBone sử dụng Avahi để cho các hệ thống khác trên mạng LAN biết rằng nó đang ở đó và phục vụ các ứng dụng và nó nên được gọi là 'beaglebone'. Nếu có nhiều hơn một, cái thứ hai thường được gọi là 'beaglebone-2.local'.

0

Tôi gặp vấn đề này khá thường xuyên với Mac OS X 10.7. Nhưng không giống như Frank Halasz "trạng thái systemctl avahi-daemon.service" không có lỗi. Và trên thực tế, vấn đề ở phía Mac. Khởi động lại Bonjour với các lệnh sau đã khắc phục sự cố.

$ sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist 
$ sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist 
Các vấn đề liên quan