Подключить Raspberry Pi через Ethernet к ноутбуку без маршрутизатора? [закрыто]


99

Я работаю над проектом воздушного шара с Raspberry Pi. Когда мы потенциально восстановим Raspberry Pi, он, скорее всего, будет в сельской местности, и я хотел бы безопасно выключить Pi в этот момент.

Не имея поблизости маршрутизатора или сети, мне было интересно, есть ли способ подключить Raspberry Pi с помощью кабеля Ethernet непосредственно к ноутбуку?


Вы не задумывались о том, чтобы настроить его как точку доступа? Это то, что я делал в прошлом.
Спенсер

Ответы:


75

Это решение для Ubuntu (эта идея также работает для Windows или Mac), которую я только что попробовал сегодня, и она отлично работает.

Материал

  1. перекрестный кабель Ethernet (название причудливое, но это просто обычный кабель Ethernet)
  2. ноутбук (убунту)
  3. Raspberry Pi (у меня Pi2)

Предварительные требования к вашей Ubuntu

  1. Установить сетевой менеджер

    $sudo apt-get install network-manager

  2. Установить Nmap

    $sudo apt-get install nmap

Отредактируйте проводное соединение на вашем ноутбуке (Ubuntu)

  1. Измените настройки IpV4 на «Поделиться с другими компьютерами»
  2. Сохраните настройку
  3. Перезагрузите ноутбук

Совместное использование Wi-Fi-подключения вашего ноутбука через перекрестный кабель Ethernet

  1. Подключите RPi к ноутбуку с помощью кабеля Ethernet.

  2. Найдите широковещательный адрес соединения Ethernet (портативный компьютер),

$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}' 10.42.0.255

  1. Используйте этот адрес, чтобы узнать IP-адрес вашего RPi, в моем случае это 10.42.0.96, потому что 10.42.0.1 - мой ноутбук

    $nmap -n -sP 10.42.0.255/24

  Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-20 23:07 CET
  Nmap scan report for 10.42.0.1
  Host is up (0.00031s latency).
  Nmap scan report for 10.42.0.96
  Host is up (0.0023s latency).
  Nmap done: 256 IP addresses (2 hosts up) scanned in 2.71 seconds
  1. Войдите в свой RPi со своего ноутбука (-Y с X-переадресацией)

    $ssh -Y pi@10.42.0.96

  2. И вот! Теперь ваш RPi подключен к вашему ноутбуку, и RPi может использовать соединение WiFi.

    pi@raspberrypi ~ $

Делитесь дисплеем и клавиатурой вашего ноутбука с помощью RPi

  1. Установите vncserver на Raspberry Pi

    $ sudo apt-get update

    $ sudo apt-get install tightvncserver

  2. Установите vncviewer на свой ноутбук, загрузив RealVNC (он поддерживает несколько платформ) http://www.realvnc.com/download/vnc/

  3. Чтобы иметь возможность копировать и вставлять с VNC server <--> VNC viewer, вам необходимо установить autocutsel на ваш RPi.

$sudo apt-get install autocutsel

Если этот сайт не работает, попробуйте загрузить .deb прямо с зеркального сайта, например mirror.hmc.edu/debian/pool/main/a/autocutsel/autocutsel_0.10.0-1_armhf.deb,
и установите его.

$sudo dpkg -i autocutsel_0.10.0-1_armhf.deb

  1. Запустите vncserver на своем RPi (вы должны перезапустить vncserver после установки autocutsel, вы можете сделать это $vncserver -kill :1)

    $vncserver :1

  2. Добавьте autocutsel -fork в /home/pi/.vnc/xstartup

 #!/bin/sh
 xrdb $HOME/.Xresources xsetroot -solid grey 
 autocutsel -fork
 #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 #x-window-manager &
 # Fix to make GNOME work 
 export XKL_XMODMAP_DISABLE=1 
 /etc/X11/Xsession
  1. Запустите vncviewer на своем ноутбуке

    $vncviewer

  2. Появится окно vncviewer и введите IP-адрес вашего RPi (предоставленный вашим ноутбуком), а затем порт 1, который является вашим VNC-сервером. например: 10.42.0.96:1 в моем случае.

  3. Подключите его к vncserver, размещенному на вашем RPi, введя пароль (установите пароль самостоятельно)

    12.Теперь вы можете увидеть рабочий стол RPi на своем ноутбуке, и я открыл свой браузер, чтобы показать, что общее WiFi-соединение также работает.

См. Рабочий стол Raspberry Pi на вашем ubuntu


извините, я не могу опубликовать более двух ссылок, потому что я новичок в Stackoverflow, однако это мои ссылки: Совместное использование Wi-Fi через Ethernet на дисплее общего доступа ubuntu путем установки VNC на Raspberry для отображения
Николь Финни

Ссылка на исправление проблемы копирования и вставки между сервером VNC и клиентом VNC Копирование / вставка TightVNC между локальной ОС и Raspberry Pi
Николь Финни

Спасибо, я добавил ваш ответ в закладки для использования в будущем!
Mohd Shahril

Спасибо! Это отличный ответ, я везде в интернете искал такую ​​понятную процедуру! Один небольшой комментарий - для некоторых вы можете захотеть проверить eth0 вместо eth1 (в одной из команд в ответе).
Нишант Келкар

3
Вы уверены, что кроссоверные кабели нормальные? Я думаю, что нет, см .: en.wikipedia.org/wiki/Ethernet_crossover_cable Обычные работают, как вы сказали, в Ubuntu 16.04, RPI 2 Raspbian 2016.05. В 16.04 устанавливать не нужно network-manager, просто используйте графический интерфейс «Сетевые настройки» по умолчанию. И вам, вероятно, следует нажать «Добавить» вместо «Изменить». Нет нужды nmap, просто cat /var/lib/misc/dnsmasq.leases. См .: interlockroc.org/2012/12/06/raspberry-pi-macgyver
Чиро Сантилли 郝海东 冠状 病 六四 事件 法轮功

21

Перекрестный кабель не нужен. Вы можете использовать обычный сетевой кабель, поскольку чип локальной сети Raspberry Pi достаточно умен, чтобы перенастроить себя для прямого сетевого подключения. Ура


21

Без маршрутизатора + без экрана + обычный кабель 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-карту на свой хост и создайте волшебный пустой файл с именем sshfile в 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 на 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

И иди:

  1. + знак (Добавить новое подключение)
  2. Ethernet
  3. Создайте
  4. Настройки IPv4
  5. Метод: общий для других компьютеров
  6. Установите для этого хорошее имя
  7. Сохранить

введите описание изображения здесь

Найдите 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, но хост также подключен к Интернету через Wi-Fi.

Перекрестный кабель не требуется, если сетевая карта хоста поддерживает Auto MDI-X . Это относится к самому последнему оборудованию, включая, например, Lenovo T430 2012 года, с которым я тестировал, который имеет «Intel® 82579LM Gigabit Network Connection», который документирует поддержку 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

Этот первый раздел содержит загрузчик, его файлы конфигурации и ядро ​​(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, я уже сжег 2 UART на 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


1
Единственный метод (испробовал около десятка разных стратегий), который у меня работает (я использую Fedora 29). Спасибо!
Daniel Schütte

В моем случае файл /var/lib/misc/dnsmasq.leases пуст ...
borizzzzz

@Kirjain благодарит за отчет. Ваша установка абсолютно идентична моей (хост, гость, оборудование)? Если нет, то какие у вас различия?
Чиро Сантилли 郝海东 冠状 病 六四 事件 法轮功

1
@CiroSantilli 新疆 改造 中心 996ICU 六四 事件 цистерны за помощь. У меня такое же оборудование, но на моем PI установлена ​​новейшая (июнь 2019 г.) версия raspbian buster, а мой хост - ubuntu 18.04. После предоставления моему хосту и моему статическому IP-адресу PI, я дошел до проверки связи PI с хоста. Но когда я пытаюсь использовать ssh, я получаю сообщение об ошибке, о которой вы упомянули в своем ответе. И да, я создал пустой файл ssh в загрузочном разделе моего PI. Согласно примечаниям к выпуску downloads.raspberrypi.org/raspbian/release_notes.txt, этот подход все же должен быть допустимым.
borizzzzz

@AlexeyGy хм, разве это не первое, что я говорю в ответ? :-)
Чиро Сантилли 郝海东 冠状 病 六四 事件 法轮功

8

Я только что реализовал и успешно протестировал это. Такая же ситуация с моим проектом, хочу подключиться к Raspberry Pi без роутера или Wi-Fi. Просто простой кабель Ethernet.

Используя программу ssh putty, укажите адрес как

raspberrypi.local

Войдите и войдите, и вы получите доступ к терминалу.

В качестве альтернативы, если настроен сервер VNC, используйте сервер VNC и поместите

raspberrypi.local: 1

В адресе сервера. введите пароль своего VNC-сервера, и теперь у вас есть доступ к графическому интерфейсу, чтобы делать то, что вы хотите.

Возможно, это был запуск сценариев в удаленном месте. В ситуации с плакатами безопасно отключите Pi. Простые прыщи.


1
"ssh pi@raspberrypi.local" работает для простой старой новой установки rasberrian на терминале Linux Mint.
Эллиот Роберт

Стоит отметить, что это зависит от имени хоста. Так что, если вы изменили имя хоста пи, теперь это может бытьelderberryphi.local
lucidbrot

7

Настройте статический ip для вашего ноутбука и raspberry pi. На rapberryP я настраиваю его следующим образом.

pi@rpi>sudo nano /etc/network/interfaces

Затем настройте следующие параметры для подключения к ноутбуку.

iface eth0 inet static

address 192.168.1.81

netmask 255.255.255.0

broadcast 192.168.1.255

4

настроить статический ip на raspberry pi:

sudo nano /etc/network/interfaces

а затем добавьте:

iface eth0 inet static
     address 169.254.0.2
     netmask 255.255.255.0
     broadcast 169.254.0.255

тогда вы можете получить доступ к своей малине через ssh

ssh pi@169.254.0.2

3

Вот инструкции для пользователей Windows по подключению к RPi с помощью только кабеля Ethernet и DHCP-сервера. Нет необходимости в перекрестном кабеле, так как RPi справится с этим. У меня есть сообщение в блоге , что документы эти с фотографиями здесь , которые могут быть легче следовать.

Загрузки

Загрузите DHCP-сервер для Windows (ссылка для скачивания здесь ). Разархивируйте zip-файл и откройте приложение dhcpwiz, которое настроит DHCP-сервер.

Конфигурация DHCP-сервера

Нажмите "Далее" на первом экране.

На втором экране найдите строку «Подключение по локальной сети» и убедитесь, что это IP-адрес 0.0.0.0и состояние enabled. Подключите кабель Ethernet от RPi к ноутбуку и включите Pi. Нажимайте «Обновить» на этом экране, пока IP-адрес не изменится на 169.254.*.*. Если это что-то еще, вам следует изменить настройки сети для подключения по локальной сети (убедитесь, что это не статический IP / DNS). Щелкните строку «Подключение по локальной сети» и нажмите «Далее».

Проверить HTTP (Web Server). Это значительно упрощает поиск IP-адреса RPi. Нажмите "Далее".

Возьмите значения по умолчанию и нажимайте Далее, пока не дойдете до Writing the INI fileэкрана. Проверьте Overwrite existing fileи нажмите Write INI fileкнопку. Затем нажмите Далее.

На последнем экране отметьте Run DHCP server immediatelyи нажмите «Готово».

DHCP-сервер и получение IP-адреса вашего Raspberry PI

Это запустит настоящий DHCP-сервер, используя конфигурацию, которую вы только что создали в предыдущем мастере. Нажмите Continue as tray appкнопку, и DHCP-сервер будет свернут на панели задач.

В любое время от 1 секунды до 5 минут вы увидите предупреждение на панели задач с вашим ноутбуком и новым IP-адресом RPi. Это предупреждение действительно быстрое, и вы, вероятно, его пропустите. Обычно IP-адрес вашего RPi есть 169.254.0.2, но это может быть *.01или что-то еще. Легче получить доступ к веб-интерфейсу DHCP-сервера по адресу http: //localhost/dhcpstatus.xml . Это отобразит имя хоста как «raspberrypi» с его IP-адресом.

Теперь вы можете вставить или удаленный рабочий стол в свой RPi и настроить его параметры беспроводной сети или все, что захотите.

Поиск неисправностей

Это может быть несколько привередливым. У меня пропало соединение, и я не смог снова подключиться к SSH, используя IP-адрес. Обычно я могу перезапустить Pi и снова получить IP-адрес. Иногда мне приходится перезапускать и RPi, и DHCP-сервер. Иногда мне приходится делать это несколько раз. В какой-то момент, когда у меня не было соединения в течение 15 минут, я скопировал все файлы из папки dhcpsrv2.5.1 в новую папку и повторил попытку; это сразу сработало.


1
Голосующие против, пожалуйста, прокомментируйте, иначе ваш голос бесполезен для большинства людей.
byronyasgur

2

Вы можете использовать перекрестный кабель Ethernet - http://en.wikipedia.org/wiki/Ethernet_crossover_cable

Предполагая, что ваш RPi является клиентом DCHP, тогда лучше всего запустить простой DHCP-сервер на вашем ноутбуке, чтобы назначить RPi IP-адрес.


3
Перекрестный кабель не нужен, поскольку на RPi есть программное обеспечение, которое может работать с обычным кабелем Ethernet.
Мэтью Мойзен

1

Да, вы можете подключить raspberry напрямую к компьютеру без роутера. Для этого необходимо, чтобы raspberry и ваш компьютер находились в одной подсети, и у них обоих настроен статический IP-адрес (и кабель Ethernet, подключенный между двумя устройствами).

Идеальной конфигурацией будет следующая:

Raspberry на eth0: IP: 192.168.1.10 Подсеть: 255.255.255.0

Ваш компьютер: IP: 192.168.1.11 Подсеть 255.255.255.0

Чтобы установить ручной IP-адрес на малине, вы можете следовать этому руководству

На вашем ПК вы можете установить IP-адрес вручную в настройках сетевого адаптера, и процедура зависит от вашей операционной системы.

Когда вы настроили два статических IP, вы можете подключиться к Raspberry через SSH, используя набор IP (192.168.1.10).

Еще один способ попроще - прикрепить к GPIO кнопку выключения малины! Взгляните сюда!


1

Для меня сработало сочетание ответов Николь Финни и Чиро Сантилли с некоторыми ответами из других источников.

Настройка пи

Нам нужно будет сделать две вещи: активировать ssh на пи и настроить пи на использование статического IP.

Активация ssh

Добавьте файл с именем sshв загрузочный раздел SD-карты (а не в /bootпапку в корневом разделе). Это хорошо задокументировано в других местах.

Статический IP

Откройте /etc/dhcpcd.confSD-карту пи и раскомментируйте пример для статического IP (начинается примерно со строки 40). Установите адреса на

# Example static IP configuration:
interface eth0
static ip_address=10.42.0.182/24
static routers=10.42.0.1
static domain_name_servers=10.42.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

Настройка вашего ноутбука

Во-первых, убедитесь, что networkmanagerна вашем ноутбуке установлен (с графическим интерфейсом). Затем убедитесь, что dnsmasqон не работает как служба:
systemctl status dnsmasq
если эта команда выводит сообщение о том, что служба остановлена, значит, все в порядке.

Далее нам нужно настроить networkmanager. Откройте /etc/NetworkManager/NetworkManager.confи добавьте следующие две строки вверху:

[main]
DNS=dnsmasq

Затем перезагрузитесь. Возможно, в этом шаге нет необходимости. Возможно, достаточно перезапустить NetworkManagerслужбу. Теперь перейдите в NetworkManagerграфический интерфейс (обычно доступ к которому осуществляется с помощью значка в углу экрана) и выберите. Edit Connections...В появившемся окне щелкните +значок, чтобы создать новое соединение. Выберите Ethernetв качестве типа и нажмите Create.... Перейдите на IPv4 Settingsвкладку и выберите метод Shared to other computers. Дайте соединению хорошее имя и сэкономьте.

Подключите Raspberry Pi и убедитесь, что ваш ноутбук использует ваше новое соединение в качестве Ethernet-соединения. Если это так, ваш пи теперь должен иметь IP, присвоенный ему вашим компьютером. Вы можете найти это, предварительно запустив ifconfig. Это должно дать вам несколько блоков текста, по одному для каждого сетевого интерфейса. Вас интересует тот, который похож на enp0s25или eth0. В нем должна быть строка, которая читает что-то подобное, чтобы
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
посмотреть на широковещательный адрес (в данном случае 10.42.0.255). Если он отличается от моего, выключите пи и вставьте SD-карту обратно в свой ноутбук, чтобы изменить значение static ip_addressна то, где первые три числа такие же, как в вашем широковещательном адресе. Также измените static routersи первый domain_name_serversна свой ноутбукinetадрес. Снова включите пи и подключите его. Выполните еще ifconfigраз, чтобы убедиться, что адреса не изменились.

ssh в пи

ssh pi@10.42.0.182
Если вы получили connection refused, пи не работает sshсервером. Если получишь host unreachable, извини.

Надеюсь, это кому-то поможет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.