Подключите Raspberry Pi через Ethernet к ноутбуку без роутера?

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

9 ответов

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

материал

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

Необходимые условия на вашем Ubuntu

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

    $sudo apt-get install network-manager

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

    $sudo apt-get install nmap

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

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

Совместное использование WiFi вашего ноутбука через 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-forwarding)

    $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-сервера <-> 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

Обычный кабель Ethernet + RPI 2 + Raspbian Jessie Lite 2017-04-10 + хост Ubuntu 18.04

Подключите кабель Ethernet от вашего ноутбука напрямую к Pi:

В Ubuntu 17.04, чтобы обойти эту ошибку, как упоминалось в ответе, вам сначала нужно:

sudo apt-get install dnsmasq-base

Затем откройте менеджер сети:

nm-connection-editor

И идти:

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

Найти IP Пи на хосте:

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

Теперь вы также можете:

Это более краткая версия: http://www.interlockroc.org/2012/12/06/raspberry-pi-macgyver/ которой упоминалось: https://raspberrypi.stackexchange.com/a/4294/33424

Последовательный кабель для USB

Другой вариант, если вы просто хотите получить оболочку на Pi, это использовать последовательный кабель.

При этом используется не SSH или сама сеть, а скорее более старый, более простой, более прямой, более надежный, с меньшей пропускной способностью, с меньшим расстоянием последовательного интерфейса. Пи не будет иметь доступа к Интернету с этим методом.

Вам просто нужен дешевый последовательный разъем USB, как этот: https://thepihut.com/products/adafruit-usb-to-ttl-serial-cable-debug-console-cable-for-raspberry-pi

Затем вы присоединяете разъемы к соответствующим последовательным контактам GPIO (TX, RX, 5V и земля), как описано на сайте: https://www.raspberrypi.org/documentation/usage/gpio/README.md

Наконец, подключите разъем USB к вашему хост-компьютеру и получите оболочку с:

sudo apt install screen
sudo usermod -a -G dialout $USER
screen /dev/ttyUSB0 115200

Выход с Ctrl-A \,

Настольные компьютеры по-прежнему имеют последовательный порт, который можно подключать напрямую к сети с Pi, но они скрыты в большинстве ноутбуков, а затем нам нужен USB-адаптер, см. Также: https://unix.stackexchange.com/questions/307390/what-is-the-difference-between-ttys0-ttyusb0-and-ttyama0-in-linux/367882

Вот видео от Adafruit, показывающее его: https://www.youtube.com/watch?v=zUBPeoLW16Q

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

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

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

raspberrypi.local

Авторизуйтесь и получите доступ к терминалу.

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

raspberrypi.local:1

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

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

Настройте статический IP для вашего ноутбука и Raspberry Pi. На RapberryPI настройте его следующим образом.

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

Настроить статический 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

Ниже приведены инструкции для пользователей 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. Хит Next.

Возьмите значения по умолчанию и нажимайте Далее, пока не доберетесь до 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 в новую папку и попытался снова; это сразу сработало.

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

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

Малина на eth0: IP: 192.168.1.10 Подсеть: 255.255.255.0

Ваш ПК: IP: 192.168.1.11 Подсеть 255.255.255.0

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

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

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

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

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

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

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

Настройка пи

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

Активация SSH

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

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

открыто /etc/dhcpcd.conf на SD-карте пи и раскомментируйте пример для статического 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 GUI (обычно доступный по значку в углу экрана) и выберите 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, Мне жаль.

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

Другие вопросы по тегам