Cách kết nối và sử dụng ssh mà không cần màn hình bằng BUILDROOT


12

Tôi muốn xây dựng một hệ thống tối thiểu cho raspberry pi (B +) để cải thiện hiệu suất của thuật toán nhận diện khuôn mặt của tôi ... Tôi đã tìm thấy BuildRoot: đối với cấu hình tôi thấy rằng không cần thiết phải tự thực hiện cấu hình và thay vào đó tôi đã sử dụng được cung cấp một :

make raspberrypi_defconfig
make

Bây giờ tôi không có Cáp HDMI để kết nối pi ... khi kết nối nó với máy tính xách tay của tôi, đèn led đỏ được bật và đèn led xanh bắt đầu nhấp nháy: điều đó có nghĩa là pi đang đọc thẻ SD chính xác. Đây là lần đầu tiên tôi Tôi đang sử dụng buildroot và tôi không biết cách bật ssh cho pi hoặc cách hiển thị địa chỉ pi. Lưu ý đây không phải là bản sao của Chuẩn bị cho ssh mà không có màn hình vì trong giải pháp họ cung cấp

Để bật ssh khi khởi động, hãy sao lưu boot.rc trên phân vùng khởi động trên ảnh SD và thay thế bằng boot_enable_ssh.rc

Chà, tôi không có một tập tin gọi là boot.rc

Tôi có thể truy cập thẻ sd bằng cách sử dụng Ubuntu 14.04, chạy ls từ thư mục khởi động cho thấy điều này:

bootcode.bin  cmdline.txt  config.txt  fixup.dat  start.elf  zImage

Tôi cũng đã cố gắng sử dụng một ip tĩnh bằng cách thêm 10.42.0.5 vào cmdline.txt nhưng sau đó tôi không thể kết nối với pi với địa chỉ này. Vì vậy, tôi có hai vấn đề:

  1. Cách kết nối với địa chỉ pi khi sử dụng buildroot: Liên kết với Giải pháp
  2. Cách thiết lập và kết nối với pi bằng ssh bằng cách sử dụng buildroot và witout HDMI.

Btw tôi đang sử dụng cáp ethernet để kết nối với pi

Cảm ơn :)

CẬP NHẬT : tôi đã thêm liên kết đến giải pháp cho vấn đề đầu tiên Bây giờ địa chỉ pi xuất hiện sau khi quét mạng ethernet:

nmap -sP 10.42.0.0/24
Nmap scan report for 10.42.0.5
Host is up (0.00076s latency).

Bây giờ vấn đề tôi gặp phải là làm thế nào để kích hoạt ssh để không thể kết nối với HDMI witout pi (sử dụng Buildroot)

Khi cố gắng ssh pi (buildroot là tên máy chủ hệ thống được sử dụng):

ssh buildroot@10.42.0.5
ssh: connect to host 10.42.0.5 port 22: Connection refused

Tôi nghĩ rằng bởi vì nó không được kích hoạt !!!


AFAIK là SSH được bật bởi mặc định BTW BTW bạn đang sử dụng cổng ethernet hoặc một số bộ chuyển đổi USB WiFi?
wb9688

AFAIK có nghĩa là gì? Không, tôi đang sử dụng cáp ethernet
The Beast

A s F ar A s I K now ...! Trên PC đang chạy Ubuntu, sudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'bạn có thể cần phải điều chỉnh địa chỉ mạng được chỉ định bởi 192.168.x.0/24vị trí X nằm trong khoảng 0-255, bao gồm bạn trong phạm vi địa chỉ Lớp C riêng dành cho mạng LAN. Việc này sẽ lọc kết quả cho địa chỉ MAC duy nhất mà Giao diện Ethernet trên Pi sẽ có ...
SlySven

1
@SlySven tôi đã sử dụng thay vì sudo nmap -sP 10.42.0/24cho tôi 1 máy chủ lưu trữ (đó là máy tính xách tay của tôi) nhưng không phát hiện thấy thiết bị nào khác !!! Lưu ý: địa chỉ ethernet của tôi là 10,42.0.1 và lệnh sudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'cho đầu ra trống
The Beast

1
@ wb9688 có, tôi đã sử dụng nó khi cài đặt raspbian và kết nối dễ dàng ssh@10.42.0.5sau khi chọn ip tĩnh đó
The Beast

Câu trả lời:


3

Nếu tất cả những gì bạn đã làm là make raspberrypi_defconfig && make, thì bạn vẫn còn rất nhiều việc phải làm để có được một hệ thống chạy hữu ích.

Cấu hình mặc định của BuildRoot là tắt mọi thứ trừ BusyBox. Máy chủ ssh không phản hồi vì bạn đã không nói với BuildRoot rằng bạn muốn biên dịch nó!

Bắt đầu bằng cách chạy make menuconfigtrong thư mục BuildRoot của bạn. Openssh có thể được kích hoạt bằng cách điều hướng đến các gói Target, ứng dụng Mạng, openssh.

Có lẽ sẽ rất khó để làm việc này mà không có màn hình trên Pi. Bạn không cần sử dụng nó trong phiên bản cuối cùng, một khi bạn đã làm việc ssh, nhưng sẽ rất khó để chẩn đoán các vấn đề khởi động mà không có màn hình. Mua cho mình cáp HDMI hoặc bộ chuyển đổi HDMI -> DVI và sử dụng bảng điều khiển cục bộ.


1
Để gỡ lỗi, tôi cũng khuyên bạn nên lấy cáp USB sang TTL UART. Điều đó chỉ hoạt động trên hình ảnh buildroot 2016.05 rpi2. Nên đủ để OP thiết lập x11vnc.
Ciro Santilli 心 心 事件

3

Lời nói đầu: Tôi đang sử dụng buildroot-2017.02.3 cho Raspberry PI 2 và bật openssh từ make menuconfig. Không có thay đổi gì thêm, đăng nhập ssh không hoạt động, vì mặc định được tạo /etc/ssh/sshd_configkhông cho phép đăng nhập root.

Tùy chọn A: Thêm người dùng

Bạn có thể thêm người dùng thông qua buildroot. Các mục thủ công sau đây có thể giúp:

Về cơ bản, bạn tạo một tệp văn bản xác định người dùng của bạn theo một cú pháp đặc biệt như vậy:

foo -1 foo -1 =bar /home/foo /bin/sh - no_comment

và nói với buildroot trong make menuconfig> System Configuration> user tablesnơi để tìm tập tin bảng người dùng của bạn. Nội dung mẫu ở trên sẽ tạo thêm người dùng foobằng mật khẩu bar(đăng nhập được kích hoạt). Người dùng này có thể đăng nhập qua ssh ngay lập tức, vì anh ta không root.

Tùy chọn B: Cho phép đăng nhập Root

Khi bạn sử dụng thẻ SD cho hệ thống (ví dụ: trên quả mâm xôi), bạn chỉ cần gắn thẻ vào PC, chỉnh sửa /media/<pathToYourSD>/etc/ssh/sshd_config(yêu cầu sudo) và xác định vị trí dòng

#PermitRootLogin prohibit-password

và thay đổi thành

PermitRootLogin yes

Điều này cho phép root để đăng nhập thông qua ssh. Lưu ý rằng tôi đã đặt mật khẩu cho root. Không chắc chắn nếu điều này hoạt động mà không có mật khẩu. Nếu bạn không thể gắn thẻ sd, bạn sẽ phải viết các tập lệnh xây dựng bài thực hiện sửa đổi giống như mô tả, nhưng trên máy chủ lưu trữ bản dựng (trước khi rootfs được đóng gói).


1

Không có bộ định tuyến + cáp Ethernet thông thường + RPI 2 + Buildroot 2016.05 + máy chủ Ubuntu 16.04

Nó đã hoạt động sau khi tôi chia vấn đề này thành hai phần:

  1. để ethernet SSH hoạt động với Raspbian và kết nối cáp trực tiếp (đã có cài đặt sshd daemon đúng cách đang chạy) /raspberrypi//a/54394/33424

  2. tìm hiểu cách thực hiện cấu hình sshd phù hợp trên QEMU + buildroot: /programming//a/39301480/895245

    Trên bảng thực, bạn không có cửa sổ QEMU để sửa đổi /etc/ssh/sshd_configtất nhiên, vì vậy bạn sẽ cần phải:

    • sửa đổi nó trên máy chủ trước khi flash (một trong hai BR2_ROOTFS_OVERLAY, gắn kết output/images/sdcard.imgvới https://askubfox.com/a/496576/52975 hoặc chơi với output/target)
    • kết nối qua UART nối tiếp. Bạn sẽ muốn làm cho nó hoạt động sớm hay muộn, vì đó là cách tốt nhất để gỡ lỗi bản phân phối buildroot của bạn trên bảng.

.configchỉ đơn giản là raspberrypi2_defconfig+ opensshkích hoạt với make menuconfig.

Sau đó, chỉ cần:

ssh "root@$(cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3)"

TTL trên hình ảnh chỉ được sử dụng cho nguồn điện.


0

Tôi biết điều này là yên tĩnh cũ nhưng tôi đã có cùng một vấn đề. Tôi đã phải chỉnh sửa tập tin cấu hình sshd trong /etc/ssh. Tôi đã chỉnh sửa tập tin đó bằng cách gắn thẻ sd trên một hệ thống khác. Bạn sẽ phải cho phép root đăng nhập bằng ssh (một cái gì đó như PermitRootLogin có ).



-1

Đây là cách tôi đã thực hiện một thiết lập pi không đầu:

  1. tải về etcher và phần mềm raspbian mới nhất từ ​​raspberrypi.org

  2. Đã sử dụng etcher để ghi tập tin vào thẻ sd của tôi

  3. etcher tự động đẩy thẻ sd, đặt lại vào máy tính của bạn một lần nữa

  4. tạo một tệp không có gì trong đó, được gọi là ssh (đảm bảo không có tiện ích mở rộng nào được bật khi lưu)

  5. đưa nó vào pi mâm xôi của tôi, kết nối ethernet từ RPi với bộ định tuyến và kết nối với micro usb ti RPi.

  6. Bắn RPi lên, đợi 1-2 phút.

  7. đã đi đến trang bộ định tuyến của tôi (nhập ip bộ định tuyến của bạn, phải trên chính bộ định tuyến của bạn

  8. Tìm kiếm các thiết bị được kết nối, tìm thấy địa chỉ ip raspberry pi của tôi.

  9. ghi địa chỉ IP và mở terminal

  10. trong thiết bị đầu cuối viết: ssh pi @ YOURPIiphere!

  11. thay thế YOURPIiphere bằng địa chỉ ip rpis

  12. nhấn enter và nhập mật khẩu mặc định, mâm xôi

  13. để định cấu hình RPi do sudo raspi-config, chỉnh sửa cài đặt của bạn, khởi động lại!

Hy vọng sự giúp đỡ này!


1
OP đang sử dụng Buildroot, không được dựng sẵn Raspbian
Jeremiah Rose
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.