ไม่มีเราเตอร์ + ไม่มีหน้าจอ + สาย Ethernet ปกติ + RPI 2 + Raspbian Lite 2018-11-13 + โฮสต์ Ubuntu 18.10
ก่อนอื่นเราต้องเปิดใช้งานเซิร์ฟเวอร์ SSH บน Pi ซึ่งถูกปิดใช้งานโดยค่าเริ่มต้นเพื่อความปลอดภัย
หากคุณมีเชลล์บน Pi ผ่านวิธีที่ไม่ใช่ SSH เช่นหน้าจอ + แป้นพิมพ์หรือ UART (ดูด้านล่าง) เพียงแค่เรียกใช้:
sudo systemctl enable ssh
sudo service sshd start
ตามที่อธิบายไว้ที่: SSH ไม่ทำงานกับการติดตั้งใหม่ซึ่งยังคงมีอยู่ในบูท
มิฉะนั้นให้ใส่การ์ด 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 และเชื่อมต่อสายเคเบิลอีเธอร์เน็ตจากแล็ปท็อปของคุณโดยตรงไปยัง 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 รับ Ethernet แต่โฮสต์นั้นเชื่อมต่อกับอินเทอร์เน็ตผ่าน 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 จะไม่สามารถเข้าถึงอินเทอร์เน็ตได้ด้วยวิธีนี้
คอมพิวเตอร์เดสก์ท็อปยังมีพอร์ตอนุกรมซึ่งคุณสามารถเชื่อมต่อสายโดยตรงกับสายได้ แต่คอมพิวเตอร์เหล่านี้ซ่อนอยู่ในแล็ปท็อปส่วนใหญ่ดังนั้นเราจึงจำเป็นต้องซื้ออะแดปเตอร์ USB ราคาถูก ที่นี่ฉันใช้แล้ว: https://www.amazon.co.uk/gp/product/B072K3Z3TLดูเพิ่มเติมที่: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between- ttyS0-ttyusb0 และ ttyama0 ในลินุกซ์ / 367882 # 367882
ก่อนอื่นเสียบการ์ด SD บนโฮสต์และแก้ไขconfig.txt
ไฟล์ที่มีอยู่ในพาร์ติชันแรกเพื่อเพิ่ม:
enable_uart=1
ตามที่อธิบายไว้ที่: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=141195
พาร์ติชั่นแรกนี้มี bootloader, ไฟล์การตั้งค่าและเคอร์เนล (Linux / ของคุณ), 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 ไปยัง USB 2 ตัวแล้วโดยทำเช่นนั้น!
คุณไม่จำเป็นต้องเชื่อมต่อ 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