Подключите Raspberry Pi через Ethernet к ноутбуку без роутера?
Я работаю над проектом воздушного шара с малиновым пи. Когда мы потенциально вернем малиновую пи, она, скорее всего, будет в сельской местности, и я бы хотел безопасно отключить пи в этой точке. Без роутера или сети поблизости мне было интересно, есть ли способ подключить Raspberry Pi с помощью кабеля Ethernet непосредственно к ноутбуку?
9 ответов
Это решение для Ubuntu (идея также работает для Windows или Mac), которую я только что попробовал сегодня, и оно работает как шарм.
материал
- перекрестный кабель Ethernet (название необычное, но это обычный кабель Ethernet)
- ноутбук (убунту)
- малиновый пи (у меня пи2)
Необходимые условия на вашем Ubuntu
Установить сетевой менеджер
$sudo apt-get install network-manager
Установить nmap
$sudo apt-get install nmap
Редактировать проводное соединение на вашем ноутбуке (Ubuntu)
- Измените настройки IpV4 на "Поделиться с другими компьютерами"
- Сохранить настройки
- Перезагрузите свой ноутбук
Совместное использование WiFi вашего ноутбука через Ethernet кроссовер
Подключите RPI к ноутбуку с помощью кабеля Ethernet
Посмотрите широковещательный адрес соединения Ethernet (ноутбук),
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
Используйте этот адрес, чтобы узнать 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
Войдите в свой RPi со своего ноутбука (-Y с X-forwarding)
$ssh -Y pi@10.42.0.96
И вот! Теперь ваш RPi подключен к вашему ноутбуку, и RPi может совместно использовать соединение WiFi.
pi@raspberrypi ~ $
Поделитесь дисплеем и клавиатурой вашего ноутбука с RPi
Установите vncserver на Raspberry Pi
$ sudo apt-get update
$ sudo apt-get install tightvncserver
Установите vncviewer на свой ноутбук, загрузив RealVNC (он поддерживает несколько платформ) http://www.realvnc.com/download/vnc/
Чтобы иметь возможность копировать и вставлять с 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
Запустите vncserver на вашем RPi (вы должны перезапустить vncserver после установки autocutsel, вы можете выполнить
$vncserver -kill :1
)$vncserver :1
Добавьте 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
Запустите vncviewer на своем ноутбуке
$vncviewer
Появится окно vncviewer и введите IP-адрес вашего RPi (предоставленного вашим ноутбуком), а затем порт 1, который является вашим VNC-сервером. например: 10.42.0.96:1 в моем случае.
Подключите его к vncserver, размещенному на вашем RPi, введя пароль (установите пароль самостоятельно)
12.Теперь вы можете увидеть рабочий стол RPi на своем ноутбуке, и я открыл свой браузер, чтобы показать, что общее WiFi-соединение также работает.
Обычный кабель 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
И идти:
+
подписать (добавить новое соединение)- Ethernet
- Создайте
- Настройки IPv4
- Метод: Общий для других компьютеров
- Установите для него хорошее имя
- Сохранить
Найти 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.
Теперь вы также можете:
- выход в интернет с PI через Wifi-соединение вашего Ubuntu
- открыть VNC, чтобы избавиться от дисплея, а также: https://raspberrypi.stackexchange.com/questions/14611/how-to-set-up-raspberry-pi-without-a-monitor/54393
Это более краткая версия: 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
, Мне жаль.
Надеюсь, это поможет кому-то!