วิธีเชื่อมต่อและใช้งาน ssh โดยไม่มีหน้าจอโดยใช้ BUILDROOT


12

ฉันต้องการสร้างระบบขั้นต่ำสำหรับ raspberry pi (B +) เพื่อปรับปรุงประสิทธิภาพของอัลกอริทึมตรวจจับใบหน้าของฉัน ... ฉันได้พบBuildRoot: สำหรับการกำหนดค่าฉันพบว่าไม่จำเป็นต้องทำการกำหนดค่าด้วยตนเองและฉันได้ใช้ หนึ่ง:

make raspberrypi_defconfig
make

ตอนนี้ฉันไม่มีสาย HDMI เพื่อเชื่อมต่อ pi ... เมื่อเชื่อมต่อกับแล็ปท็อปของฉันไฟ LED สีแดงติดอยู่และไฟ LED สีเขียวเริ่มกระพริบนั่นหมายความว่า pi กำลังอ่านการ์ด SD อย่างถูกต้องเป็นครั้งแรกที่ฉัน ใช้ buildroot และฉันไม่รู้วิธีเปิดใช้งาน ssh สำหรับ pi หรือวิธีแสดง pi adress โปรดทราบว่านี่ไม่ใช่การคัดลอกเตรียมพร้อมสำหรับ ssh ที่ไม่มีหน้าจอ เนื่องจากในโซลูชันที่มีให้

หากต้องการเปิดใช้งาน ssh เมื่อเริ่มต้นให้สำรองข้อมูล boot.rc บนพาร์ติชันสำหรับเริ่มระบบบนอิมเมจ SD และแทนที่ด้วย boot_enable_ssh.rc

ฉันไม่มีไฟล์ชื่อ boot.rc

ฉันสามารถเข้าถึงการ์ด sd โดยใช้ Ubuntu 14.04, เรียกใช้ ls จากโฟลเดอร์บูตแสดงสิ่งนี้:

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

ฉันได้ลองใช้ ip แบบคงที่ด้วยการเพิ่ม 10.42.0.5 ไปยัง cmdline.txt แต่หลังจากนั้นฉันไม่สามารถเชื่อมต่อ pi กับที่อยู่นี้ได้ ดังนั้นฉันมีสองประเด็น:

  1. วิธีเชื่อมต่อกับ pi adress เมื่อใช้ buildroot: ลิงก์ไปยังโซลูชัน
  2. วิธีการตั้งค่าและเชื่อมต่อกับ pi โดยใช้ ssh โดยใช้ buildroot และ witout HDMI

Btw ฉันใช้สายอีเธอร์เน็ตเพื่อเชื่อมต่อกับ pi

ขอบคุณ :)

UPDATE : ฉันได้เพิ่มลิงค์ไปยังโซลูชันสำหรับปัญหาแรกตอนนี้ที่อยู่ pi ปรากฏขึ้นหลังจากการสแกนเครือข่ายอีเธอร์เน็ต:

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

ตอนนี้ปัญหาที่ฉันมีคือวิธีการเปิดใช้งาน sshเพื่อให้สามารถเชื่อมต่อกับ pi witout HDMI (โดยใช้ Buildroot)

เมื่อพยายาม ssh pi (buildroot คือชื่อโฮสต์ของระบบที่ใช้):

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

ฉันคิดว่าเป็นเพราะ ssh มันไม่ได้เปิดใช้งาน !!!


AFAIK เปิดใช้งาน SSH โดยค่าเริ่มต้น… BTW คุณใช้พอร์ตอีเธอร์เน็ตหรืออะแดปเตอร์ USB WiFi บางตัวหรือไม่
wb9688

AFAIK หมายถึงอะไร ไม่ฉันใช้สายเคเบิลอีเธอร์เน็ต
The Beast

A s F ar A s I Kตอนนี้ ... ! ในพีซีที่ใช้ Ubuntu ลองsudo nmap -sP 192.168.0.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'คุณอาจต้องปรับแต่งที่อยู่เครือข่ายที่ระบุโดย192.168.x.0/24ที่ X อยู่ระหว่าง 0-255 ซึ่งจะครอบคลุมคุณสำหรับช่วงที่อยู่คลาส C ส่วนตัวที่สำรองไว้สำหรับ LAN วิธีนี้จะกรองผลลัพธ์สำหรับที่อยู่ MAC ที่ไม่ซ้ำกันซึ่งส่วนต่อ
ประสาน

1
@SlySven ฉันได้ใช้แทนsudo nmap -sP 10.42.0/24ให้ฉันเป็นโฮสต์ 1 (มันเป็นแล็ปท็อปของฉัน) แต่ไม่พบอุปกรณ์อื่น ๆ !!! หมายเหตุ: ที่อยู่ ethernet ของฉันคือ 10.42.0.1 และคำสั่งsudo nmap -sP 10.42.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'ให้เอาต์พุตว่างเปล่า
The Beast

1
@ wb9688 ใช่ฉันใช้เมื่อติดตั้ง raspbian และเชื่อมต่อได้อย่างง่ายดายด้วยssh@10.42.0.5หลังจากเลือก ip แบบคงที่
The Beast

คำตอบ:


3

หากทั้งหมดที่คุณทำคือmake raspberrypi_defconfig && makeคุณยังมีงานอีกมากที่ต้องทำเพื่อให้ได้ระบบที่มีประโยชน์

การกำหนดค่าเริ่มต้นของ BuildRoot สำหรับทุกอย่างที่จะปิดยกเว้น BusyBox เซิร์ฟเวอร์ ssh ไม่ตอบสนองเพราะคุณไม่ได้บอก BuildRoot ว่าคุณต้องการรวบรวมมัน!

เริ่มต้นด้วยการรันmake menuconfigในไดเรกทอรี BuildRoot ของคุณ Openssh สามารถเปิดใช้งานได้โดยไปที่แพ็คเกจเป้าหมาย, แอปพลิเคชั่นเครือข่าย, openssh

มันอาจจะเป็นเรื่องยากมากที่จะได้งานนี้โดยไม่ต้องมีจอภาพบน Pi คุณไม่จำเป็นต้องใช้ในรุ่นสุดท้ายเมื่อคุณทำงานได้ แต่มันยากที่จะวินิจฉัยปัญหาการเริ่มต้นโดยไม่มีจอภาพ ซื้อสาย HDMI หรือ HDMI -> ตัวแปลง DVI ด้วยตัวเองแล้วใช้คอนโซลท้องถิ่น


1
ในการแก้ไขปัญหาฉันขอแนะนำให้ใช้สายเคเบิล USB กับ TTL UART นั่นใช้งานได้กับภาพ buildroot 2016.05 rpi2 ควรจะเพียงพอสำหรับ OP x11vncในการติดตั้ง
Ciro Santilli 法轮功病毒审查六四事件法轮功

3

คำนำ: ฉันใช้ buildroot-2017/02/03 สำหรับราสเบอร์รี่ PI ที่ 2 make menuconfigและเปิดใช้งานจาก หากไม่มีการเปลี่ยนแปลงเพิ่มเติมล็อกอิน ssh จะไม่ทำงานเนื่องจากค่าเริ่มต้นที่สร้างขึ้น/etc/ssh/sshd_configไม่อนุญาตให้ลงชื่อเข้าใช้รูท

ตัวเลือก A: เพิ่มผู้ใช้

คุณสามารถเพิ่มผู้ใช้ผ่าน buildroot รายการคู่มือต่อไปนี้อาจช่วยได้:

โดยพื้นฐานแล้วคุณสร้างไฟล์ข้อความที่กำหนดผู้ใช้ของคุณในรูปแบบพิเศษดังนี้:

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

และบอก buildroot ในmake menuconfig> System Configuration> user tablesการที่จะหาไฟล์ตารางผู้ใช้ของคุณ เนื้อหาตัวอย่างข้างต้นจะสร้างผู้ใช้เพิ่มเติมfooด้วยรหัสผ่านbar(เปิดใช้งานการเข้าสู่ระบบ) ผู้ใช้รายนี้สามารถเข้าสู่ระบบผ่านทาง ssh ได้ทันทีเนื่องจากเขาไม่ได้รูท

ตัวเลือก B: อนุญาตให้ล็อกอินรูท

เมื่อคุณใช้การ์ด SD สำหรับระบบ (เช่นบนราสเบอร์รี่) คุณสามารถเมานต์การ์ดบนพีซีของคุณแก้ไข/media/<pathToYourSD>/etc/ssh/sshd_config(จำเป็นต้องใช้ sudo) และค้นหาบรรทัด

#PermitRootLogin prohibit-password

และเปลี่ยนเป็น

PermitRootLogin yes

สิ่งนี้อนุญาตให้รูทเข้าสู่ระบบผ่าน ssh โปรดทราบว่าฉันได้ตั้งรหัสผ่านสำหรับรูท ไม่แน่ใจว่าใช้งานได้หรือไม่หากไม่มีรหัสผ่าน หากคุณไม่สามารถเมานต์การ์ด sd ของคุณคุณจะต้องเขียนสคริปต์การสร้างโพสต์ที่ทำการปรับเปลี่ยนเช่นเดียวกับที่อธิบายไว้ แต่ในการสร้างโฮสต์ (ก่อนที่จะบรรจุ rootfs)


1

ไม่มีเราเตอร์ + สายอีเธอร์เน็ตปกติ + RPI 2 + Buildroot 2016.05 + โฮสต์ Ubuntu 16.04

มันทำงานได้ไหมหลังจากที่ฉันแบ่งปัญหานี้เป็นสองส่วน:

  1. รับอีเธอร์เน็ต SSH ทำงานกับ Raspbian และการเชื่อมต่อสายเคเบิลโดยตรง (ซึ่งมีการติดตั้ง sshd daemon ทำงานอย่างถูกต้องแล้ว) /raspberrypi//a/54394/33424

  2. เรียนรู้วิธีการกำหนดค่า sshd ที่เหมาะสมใน QEMU + buildroot: /programming//a/39301480/895245

    บนกระดานจริงคุณไม่มีหน้าต่าง QEMU เพื่อปรับเปลี่ยน/etc/ssh/sshd_configหลักสูตรดังนั้นคุณจะต้อง:

    • แก้ไขมันบนโฮสต์ก่อนที่จะกระพริบ (เช่นBR2_ROOTFS_OVERLAYเมาท์output/images/sdcard.imgด้วย/ubuntu//a/496576/52975หรือเล่นกับoutput/target)
    • เชื่อมต่อผ่านอนุกรม UART คุณจะต้องทำให้การทำงานนี้ไม่ช้าก็เร็วเนื่องจากเป็นวิธีที่ดีที่สุดในการดีบัก distro buildroot ของคุณบนกระดาน

.configเป็นเพียงraspberrypi2_defconfig+ การใช้งานด้วยopensshmake menuconfig

จากนั้นเพียง:

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

ภาพ TTL ใช้สำหรับพลังงานเท่านั้น


0

ฉันรู้ว่านี่เก่าเงียบ แต่ฉันมีปัญหาเดียวกันอย่างยอดเยี่ยม ผมต้องแก้ไขไฟล์ sshd /etc/sshการตั้งค่าใน ฉันแก้ไขไฟล์นั้นโดยติดตั้งการ์ด SD ในระบบอื่น คุณจะต้องอนุญาตให้รูทเข้าสู่ระบบโดยใช้ ssh (เช่นPermitRootLogin ใช่ )


-1

SSH เปิดใช้งานโดยค่าเริ่มต้น - ลองpi@10.42.0.5(หรือroot@10.42.0.5ถ้าคุณหมดหวังจริงๆ!) ธรรมดาssh 10.42.0.5อาจมีค่าเกินไป

คุณใช้รหัสผ่านหรือsshเพื่อเชื่อมต่อ?


OP ต้องการใช้ภาพ buildroot ไม่ใช่ Raspbian ด้วย raspbian raspberrypi.stackexchange.com/questions/38/…ใช้งานได้
Ciro Santilli 法轮功病毒审查六四事件法轮功

-1

นี่คือวิธีที่ฉันได้ติดตั้ง pi หัวขาด:

  1. ดาวน์โหลด etcher และซอฟต์แวร์ raspbian ล่าสุดจาก raspberrypi.org

  2. ใช้ etcher เพื่อเบิร์นไฟล์ไปยังการ์ด sd ของฉัน

  3. etcher นำการ์ด SD ออกโดยอัตโนมัติวางกลับเข้าไปใน conputer ของคุณอีกครั้ง

  4. ทำไฟล์โดยไม่มีอะไรเรียกว่า ssh (ตรวจสอบให้แน่ใจว่าไม่มีการเปิดใช้งานส่วนขยายเมื่อบันทึกไว้)

  5. แตกมันลงในราสเบอร์รี่ pi ของฉันเชื่อมต่ออีเธอร์เน็ตจาก RPi กับเราเตอร์และสร้างไมโครยูเอสบี RPI

  6. ยิง RPi ขึ้นรอ 1-2 นาที

  7. ไปที่หน้าเราเตอร์ของฉัน (พิมพ์เราเตอร์ ip ของคุณควรอยู่ในเราเตอร์ของคุณเอง

  8. มองหาอุปกรณ์ที่เชื่อมต่อพบที่อยู่ ip ราสเบอร์รี่ของฉัน

  9. จดที่อยู่ IP และเปิดเทอร์มินัล

  10. ใน terminal เขียน: ssh pi @ YOURRPIiphere!

  11. แทนที่ YOURRPIiphere ด้วยที่อยู่ ip ของ rpis

  12. กด enter และพิมพ์รหัสผ่านเริ่มต้นราสเบอร์รี่

  13. เพื่อกำหนดค่า RPi do sudo raspi-config, แก้ไขการตั้งค่าของคุณ, รีบูต!

หวังว่าความช่วยเหลือนี้!


1
OP กำลังใช้ Buildroot ไม่ใช่สร้างไว้ล่วงหน้า Raspbian
Jeremiah Rose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.