ไม่มีเราเตอร์ + ไม่มีหน้าจอ + สาย Ethernet ปกติ + RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
ก่อนอื่นเราต้องเปิดใช้งานเซิร์ฟเวอร์ SSH บน Pi ซึ่งถูกปิดใช้งานโดยค่าเริ่มต้นเพื่อความปลอดภัย
หากคุณมีเชลล์บน Pi อยู่แล้วด้วยวิธีการที่ไม่ใช่ SSH เช่นหน้าจอ + แป้นพิมพ์หรือ UART (ดูด้านล่าง) ให้เรียกใช้:
sudo systemctl enable ssh
sudo service sshd start
ตามที่อธิบายไว้ที่: /raspberrypi/58478/ssh-not-working-with-fresh-installสิ่งนี้ยังคงมีอยู่ในรองเท้าบู๊ต
มิฉะนั้นให้ใส่การ์ด SD ของเขาบนโฮสต์ของคุณและสร้างไฟล์เปล่าวิเศษที่มีชื่อssh
ไฟล์ในboot/
พาร์ติชัน
บนโฮสต์ Ubuntu มันจะติดตั้งโดยอัตโนมัติและคุณสามารถทำได้:
sudo touch /media/$USER/boot/ssh
ซึ่งคุณสามารถยืนยันได้ด้วย:
lsblk
ซึ่งประกอบด้วย:
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 43.9M 0 part /media/ciro/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/ciro/rootfs
หากคุณไม่เปิดใช้ SSHD daemon บน Pi การเชื่อมต่อ SSH จะล้มเหลวด้วย:
ssh: connect to host 10.42.0.160 port 22: Connection refused
เมื่อเราลองใช้ในภายหลัง
หลังจากเปิดใช้งานเซิร์ฟเวอร์ SSH
จากนั้นบูต Pi และเชื่อมต่อสาย Ethernet จากแล็ปท็อปของคุณเข้ากับ Pi โดยตรง:
บน Ubuntu 17.04 เพื่อแก้ไขข้อบกพร่องนี้ตามที่กล่าวไว้ในคำตอบนี้ก่อนอื่นคุณต้อง:
sudo apt-get install dnsmasq-base
บนโฮสต์เปิดตัวจัดการเครือข่าย:
nm-connection-editor
และไป:
+
ลงชื่อ (เพิ่มการเชื่อมต่อใหม่)
- อีเธอร์เน็ต
- สร้าง
- การตั้งค่า IPv4
- วิธีการ: แชร์กับคอมพิวเตอร์เครื่องอื่น
- ตั้งชื่อให้ดี
- บันทึก
ค้นหา IP ของ Pi บนโฮสต์:
cat /var/lib/misc/dnsmasq.leases
ผลลัพธ์บางอย่างเช่น:
1532204957 b8:27:eb:0c:1f:69 10.42.0.160 raspberrypi 01:b8:27:eb:0c:1f:69
10.42.0.160
คือ IP จากนั้นตามปกติ:
ssh pi@10.42.0.160
ฉันยังมีสิ่งต่อไปนี้ใน.bashrc
:
piip() ( cat /var/lib/misc/dnsmasq.leases | cut -d ' ' -f 3; )
pissh() ( sshpass -p raspberry ssh "pi@$(piip)"; )
จากภายใน Pi สังเกตว่าสามารถเข้าถึงอินเทอร์เน็ตได้ตามปกติผ่านอินเทอร์เฟซอื่น ๆ ของโฮสต์ของคุณ:
ping google.com
ตัวอย่างเช่นบนแล็ปท็อปของฉัน Pi ใช้อีเทอร์เน็ต แต่โฮสต์ก็เชื่อมต่อกับอินเทอร์เน็ตผ่าน WiFi เช่นกัน
สายครอสโอเวอร์จะไม่จำเป็นต้องใช้ถ้าการ์ดเครือข่ายโฮสต์สนับสนุนAuto MDI-X เป็นกรณีนี้สำหรับฮาร์ดแวร์ล่าสุดรวมทั้งตัวอย่าง 2012 Lenovo T430 ผมทดสอบด้วยซึ่งมี "การเชื่อมต่อIntel® 82579LM Gigabit Network" ซึ่งเอกสารสนับสนุน Auto MDI-X
ตอนนี้คุณยังสามารถ:
ตัวแปลง USB แบบอนุกรม UART
นี่เป็นอีกทางเลือกหนึ่งสำหรับ SSH หากคุณต้องการรับเชลล์บน Pi: https://en.wikipedia.org/wiki/Serial_port
สิ่งนี้ไม่ได้ใช้ SSH หรือระบบเครือข่าย แต่เป็นรุ่นที่เก่ากว่าง่ายกว่าตรงกว่าเชื่อถือได้มากกว่าแบนด์วิธต่ำกว่าอินเตอร์เฟสแบบอนุกรมระยะทางที่ต่ำ Pi จะไม่สามารถเข้าถึงอินเทอร์เน็ตด้วยวิธีนี้
คอมพิวเตอร์เดสก์ท็อปยังคงมีพอร์ตอนุกรมที่คุณสามารถเชื่อมต่อกับสายโดยตรงกับ Pi ได้ แต่สิ่งเหล่านี้ซ่อนอยู่ในแล็ปท็อปส่วนใหญ่ดังนั้นเราจึงจำเป็นต้องซื้ออะแดปเตอร์ USB ราคาถูก ที่นี่ฉันใช้: https://www.amazon.co.uk/gp/product/B072K3Z3TLดูเพิ่มเติมที่: /unix/307390/what-is-the-difference-between- ttys0-ttyusb0-and-ttyama0-in-linux / 367882 # 367882
ก่อนอื่นให้เสียบการ์ด SD บนโฮสต์และแก้ไขconfig.txt
ไฟล์ที่มีอยู่ในพาร์ติชันแรกเพื่อเพิ่ม:
enable_uart=1
ตามคำอธิบายที่: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
พาร์ติชันแรกนี้มี bootloader ไฟล์คอนฟิกูเรชันและเคอร์เนล (Linux / your) ซึ่งconfig.txt
เป็นหนึ่งในนั้น พาร์ติชันที่สองมีระบบไฟล์รูท Linux จริง
ตอนนี้เชื่อมต่อคอมพิวเตอร์ของคุณกับ Pi เป็น:
คุณต้องต่อสายเคเบิล 3 เส้นเท่านั้น:
- กราวด์สู่พื้นดิน
- Tx บน Pi ถึง Rx บนพอร์ต USB เข้ากับพอร์ตอนุกรม
- Rx บน Pi ถึง Tx บน tye USB เข้ากับพอร์ตอนุกรม
นอกจากนี้ยังมีบันทึกไว้ที่: https://www.raspberrypi.org/documentation/usage/gpio/README.md
ระวังอย่าเชื่อมกราวด์กับ 5V เพราะฉันได้เบิร์น UART 2 ตัวเป็นชิป USB และ RPI UART โดยทำเช่นนั้น!
คุณไม่จำเป็นต้องเชื่อมต่อ 5V กับ 5V เลย ฉันคิดว่าคุณสามารถเพิ่มพลังให้ Pi ของคุณได้เช่นนั้น แต่ฉันอ่านมาแล้วว่านี่เป็นความคิดที่ไม่ดีเพียงแค่ใช้แหล่งจ่ายไฟ USB ตามปกติ
สุดท้ายเสียบด้าน USB ของขั้วต่อเข้ากับคอมพิวเตอร์โฮสต์ของคุณและรับเปลือกด้วย
sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200
ออกด้วยCtrl-A \
.
นี่คือวิดีโอที่ Adafruit แสดง: https://www.youtube.com/watch?v=zUBPeoLW16Q
ดูสิ่งนี้ด้วย
คำถามที่คล้ายกันใน RPI SE: /raspberrypi/3867/ssh-to-rpi-without-a-network-connection