我正在使用Raspberry Pi进行气球项目。当我们可能恢复Raspberry Pi时,它很可能会在农村地区,我想安全地关闭Pi。
如果没有附近的路由器或网络,我想知道是否有办法将Raspberry Pi与以太网电缆直接连接到笔记本电脑?
这是Ubuntu的解决方案(这个想法也适用于Windows或Mac)我今天刚尝试过,它就像一个魅力。
材料
ubuntu的先决条件
$sudo apt-get install network-manager
$sudo apt-get install nmap
编辑笔记本电脑上的有线连接(Ubuntu)
通过以太网交叉电缆共享笔记本电脑的WiFi连接
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
$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
$ssh -Y [email protected]
pi@raspberrypi ~ $
使用RPi共享笔记本电脑的显示屏和键盘
$ sudo apt-get update
$ sudo apt-get install tightvncserver
$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 -kill :1
)
$vncserver :1
#!/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
对我有用的是Nicole Finnie和Ciro Santilli的答案以及其他地方的答案。
我们需要做两件事:在pi上激活ssh,并配置pi使用静态ip。
在sd卡的启动分区中添加名为ssh
的文件(而不是根分区中的/boot
文件夹)。其他地方也有很好的记录。
在pi的SD卡上打开/etc/dhcpcd.conf
,并取消注释静态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
(带GUI)。然后,确保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并确保您的笔记本电脑使用新连接作为以太网连接。如果是,你的pi现在应该由你的电脑提供ip。你可以先运行ifconfig
找到这个。这应该为您提供几个文本块,每个网络接口一个。你对像enp0s25
或eth0
这样的东西很感兴趣。它应该有一行读取类似的东西
inet 10.42.0.1 netmask 255.255.255.0 broadcast 10.42.0.255
看看广播地址(在这种情况下是10.42.0.255
)。如果它与我的不同,请关闭pi并将SD卡放回笔记本电脑中,将static ip_address
更改为前三个数字与广播地址相同的位置。同时将static routers
和第一个domain_name_servers
更改为笔记本电脑的inet
地址。重新启动pi并连接它。再次运行ifconfig
以查看地址没有更改。
ssh [email protected]
如果你得到connection refused
,pi没有运行ssh
服务器。如果你得到host unreachable
,我很抱歉。
希望这有助于某人!
您不需要交叉电缆。您可以使用普通网络电缆,因为Raspberry Pi LAN芯片足够智能,可以重新配置自身以进行直接网络连接。干杯
没有路由器+没有屏幕+常规以太网线+ RPI 2 + Raspbian Lite 2018-11-13 + Ubuntu 18.10
首先,我们必须在Pi上启用SSH服务器,默认情况下禁用该服务器以确保安全性。
如果您已经通过非SSH方法(如屏幕+键盘或UART(见下文))在Pi上安装了shell,请运行:
sudo systemctl enable ssh
sudo service sshd start
如下所述:https://raspberrypi.stackexchange.com/questions/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
如果您未在Pi上启用SSHD守护程序,则SSH连接将失败,并显示:
ssh: connect to host 10.42.0.160 port 22: Connection refused
当我们稍后再试。
启用SSH服务器后
接下来,启动Pi,并将笔记本电脑中的以太网电缆直接连接到Pi:
在Ubuntu 17.04上工作this bug,如你所提到的on this answer首先需要:
sudo apt-get install dnsmasq-base
在主机上,打开网络管理器:
nm-connection-editor
去:
+
sign(添加新连接)在主机上找到Pi的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 [email protected]
我的.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联想T430,which has和documents support for Auto MDI-X的“英特尔®82579LM千兆网络连接”。
现在您还可以:
UART串行USB转换器
如果你只想在Pi:https://en.wikipedia.org/wiki/Serial_port上获得一个shell,这是SSH的替代品
这不是使用SSH或网络本身,而是使用更旧,更简单,更直接,更可靠,带宽更低,距离更短的串行接口。 Pi将无法使用此方法访问Internet。
台式电脑仍然有一个串口,你可以直接连接到线与线,但这些隐藏在大多数笔记本电脑中,所以我们需要买一个便宜的USB适配器。我在这里使用过:https://www.amazon.co.uk/gp/product/B072K3Z3TL参见:https://unix.stackexchange.com/questions/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 /您的)内核,config.txt
就是其中之一。第二个分区包含实际的Linux根文件系统。
现在将您的计算机连接到Pi:
您只需要连接3根电缆:
这也记录在:https://www.raspberrypi.org/documentation/usage/gpio/README.md
注意不要将地线连接到5V,我已经烧掉了2个UART到USB芯片和一个RPI UART!
您根本不需要将5V连接到5V。我认为你可以像这样为你的Pi供电,但我已经读到这是一个坏主意,只需使用通常的USB电源。
最后,将连接器的USB端插入主机,并获得一个shell:
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的类似问题:https://raspberrypi.stackexchange.com/questions/3867/ssh-to-rpi-without-a-network-connection
我刚刚成功实施并测试了这个。与我的项目相同的情况,想要连接到没有路由器或wifi的Raspberry Pi。只需一根简单的以太网线。
使用ssh putty程序将地址设为
raspberrypi.local
登录并进入,您可以访问终端。
或者,如果设置了VNC服务器,请使用VNC服务器并放置
raspberrypi.local:1
在服务器地址中。输入您的VNC服务器密码,您现在可以通过GUI访问来执行您想要的操作。
在可能的情况下,它是在远程位置运行脚本。在海报情况下,安全关闭Pi。简单的粉刺。
为您的笔记本电脑和覆盆子pi配置静态IP。在树莓PI上配置如下。
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
在raspberry pi上配置静态ip:
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 [email protected]
以下是Windows用户使用以太网电缆和DHCP服务器连接到RPi的说明。不需要交叉电缆,因为RPi可以处理它。我有一篇博文,用here图片记录下来,这可能更容易理解。
下载
下载DHCP Server for Windows(下载链接是here)。解压缩zip文件并打开dhcpwiz应用程序,该应用程序将配置DHCP服务器。
DHCP服务器配置
在第一个屏幕上点击下一步。
在第二个屏幕上,查找“本地连接”行并验证其IP地址是0.0.0.0
,其状态是enabled
。将以太网电缆从RPi连接到笔记本电脑,然后打开Pi。在此屏幕上点击刷新,直到IP地址更改为169.254.*.*
。如果是其他任何内容,则应更改本地连接的网络设置(确保它不是静态IP / DNS)。单击此“本地连接”行,然后单击“下一步”。
检查HTTP (Web Server)
。这使得查找RPi的IP地址变得更加容易。点击下一步。
取默认值并点击Next直到你到达Writing the INI file
屏幕。检查Overwrite existing file
并点击Write INI file
按钮。然后点击Next。
在最后一个屏幕上,检查Run DHCP server immediately
并点击“完成”。
DHCP服务器和获取Raspberry PI的IP地址
这将使用您在上一个向导中创建的配置启动实际的DHCP服务器。单击Continue as tray app
按钮,DHCP服务器将最小化到您的系统托盘。
从1秒到5分钟的任何时间,您将在系统托盘上看到带有笔记本电脑和RPi新IP地址的警报。此警报非常快,您可能会错过它。通常你的RPi的IP是169.254.0.2
,但它可能是*.01
甚至是别的东西。在http://localhost/dhcpstatus.xml访问DHCP服务器的Web UI更容易。这将使用其IP地址将主机名列为“raspberrypi”。
现在,您可以将putty或远程桌面放入RPi,并配置其无线设置或您想要做的任何事情。
故障排除
这可能有点挑剔。我的连接似乎丢失,无法使用IP地址重新连接。通常,我可以重新启动Pi并再次获取IP地址。有时我必须重启RPi和DHCP服务器。有时我必须多次这样做。有一次,当我没有连接15分钟时,我将dhcpsrv2.5.1文件夹中的所有文件复制到一个新文件夹并再次尝试;它立刻起作用了。
您可以使用交叉以太网电缆 - http://en.wikipedia.org/wiki/Ethernet_crossover_cable
假设您的RPi是DCHP客户端,那么最好在笔记本上运行一个简单的DHCP服务器,为RPi分配一个IP地址。
是的,您可以在没有路由器的情况下将树莓果直接连接到您的PC。为此,覆盆子和您的计算机必须位于同一子网上,并且它们都配置了静态IP(以及连接在两个设备之间的以太网电缆)。
理想的配置如下:
Ras0在eth0:IP:192.168.1.10 SubNet:255.255.255.0
您的PC:IP:192.168.1.11 SubNet 255.255.255.0
要在覆盆子上设置手动IP,您可以关注this guide
在PC中,您可以在网络适配器设置中设置手动IP,该过程取决于您的操作系统。
配置了两个静态IP后,可以使用IP集(192.168.1.10)通过SSH连接到raspberry。
另一种更简单的方法是在GPIO上附加一个按钮来关闭覆盆子! Take a look here!