我正在使用树莓派参与一个气球项目。当我们有可能在农村地区找回树莓派时,我希望能够安全地关闭它。
假设没有路由器或网络附近,我想知道是否有办法将树莓派通过以太网电缆直接连接到笔记本电脑?
我正在使用树莓派参与一个气球项目。当我们有可能在农村地区找回树莓派时,我希望能够安全地关闭它。
假设没有路由器或网络附近,我想知道是否有办法将树莓派通过以太网电缆直接连接到笔记本电脑?
这是一个适用于Ubuntu的解决方案(这个想法也适用于Windows或Mac),我今天刚刚尝试过,效果非常好。
材料
在您的Ubuntu上的先决条件
安装网络管理器
$sudo apt-get install network-manager
安装nmap
$sudo apt-get install nmap
编辑笔记本电脑上的有线连接(Ubuntu)
通过以太网交叉线缆共享笔记本电脑的WiFi连接
使用以太网电缆将RPi与笔记本电脑连接起来
查找以太网连接(笔记本电脑)的广播地址,
$/sbin/ifconfig eth1 | grep "Bcast" | awk -F: '{print $3}' | awk '{print $1}'
10.42.0.255
使用此地址查找RPi的IP地址,在我的情况下是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
使用电脑登录您的树莓派(使用-X参数进行X11转发)
$ssh -X pi@10.42.0.96
现在您的树莓派已连接到电脑上并可共享 WiFi 连接。
pi@raspberrypi ~ $
共享电脑屏幕和键盘与树莓派
在树莓派上安装vncserver
$ sudo apt-get update
$ sudo apt-get install tightvncserver
通过下载 RealVNC 在电脑上安装 vncviewer(支持多种平台) http://www.realvnc.com/download/vnc/
为了能够在 VNC 服务器和 VNC 查看器之间进行拷贝和粘贴,您需要在树莓派上安装 autocutsel。
$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(安装 autocutsel 后需要重新启动 vncserver,您可以输入 $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窗口会弹出,输入您的RPi的IP地址(由您的笔记本电脑提供),后跟端口1,这是您的VNC服务器。例如,在我的情况下是10.42.0.96:1。
通过输入密码(自己设置密码)将其连接到托管在RPi上的vncserver
12.现在您可以在笔记本电脑上看到RPi的桌面,并且我打开了浏览器以显示共享WiFi连接也在工作。
network-manager
,只需使用默认的“网络设置”GUI界面。你应该点击“添加”,而不是“编辑”。无需使用nmap
,只需使用cat /var/lib/misc/dnsmasq.leases
。请参考:http://www.interlockroc.org/2012/12/06/raspberry-pi-macgyver/。 - Ciro Santilli OurBigBook.com没有路由器+没有屏幕+普通的以太网电缆+树莓派2+ Raspbian Lite 2018-11-13 + Ubuntu 18.10
首先,为了安全起见,默认情况下树莓派上的SSH服务器是禁用的,因此我们必须启用它。
如果您已经通过非SSH方法(例如screen + keyboard或UART)在Pi上拥有shell,请运行以下命令:
sudo systemctl enable ssh
sudo service sshd start
如此解释:https://raspberrypi.stackexchange.com/questions/58478/ssh-not-working-with-fresh-install 这种情况会持续到重启。
否则,将SD卡插入主机,在boot/
分区中创建一个名为ssh
的空文件。
在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
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
开始:
+
符号(添加新连接)在主机上查找树莓派的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)"; )
从树莓派内部来看,注意它可以通过主机的其他接口正常访问互联网:
ping google.com
例如,在我的笔记本电脑上,树莓派占用了以太网,但主机也通过WiFi连接到互联网。
如果主机网络适配器支持Auto MDI-X,则不需要交叉线缆。这适用于大多数最新硬件,包括我测试过的2012年联想T430等设备,该设备具有"Intel® 82579LM Gigabit Network Connection",并且记录了对Auto MDI-X的支持。
现在,您还可以:
UART串行USB转换器
如果您只想在树莓派上获取shell,这是SSH的替代方法: https://en.wikipedia.org/wiki/Serial_port
这不使用SSH或网络本身,而是使用旧的、更简单、更直接、更可靠、带宽更低、距离更短的串行接口。使用此方法,树莓派将无法访问互联网。
桌面电脑仍然有串口,您可以直接使用线连接树莓派,但这些串口在大多数笔记本电脑中是隐藏的,因此我们需要购买一个便宜的USB适配器。在这里我使用了“DSD TECH USB到TTL串行转换器”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 \
.您不需要使用交叉线缆,可以使用普通网络电缆,因为树莓派 LAN 芯片足够智能,可以自动重新配置以进行直接网络连接。
祝好!
elderberryphi.local
。 - lucidbrot为你的笔记本电脑和树莓派配置静态IP。在树莓派上进行以下配置。
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:
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 pi@169.254.0.2
0.0.0.0
且状态为启用
。将以太网线从RPi连接到笔记本电脑上,并打开RPi。在此屏幕上不断刷新,直到IP地址更改为169.254.*.*
。如果IP地址是其他任何值,则应更改“本地连接”的网络设置(确保它不是静态IP/DNS)。点击此“本地连接”行并点击下一步。HTTP(Web服务器)
。这样更容易找到RPi的IP地址。点击下一步。覆盖现有文件
并点击编写INI文件
按钮。然后点击下一步。立即运行DHCP服务器
并点击完成
。
DHCP服务器和获取Raspberry Pi的IP地址
这将启动实际的DHCP服务器,使用你刚刚在前面的向导中创建的配置。点击继续作为托盘应用程序
按钮,DHCP服务器将最小化到系统托盘中。169.254.0.2
,但也可能是*.01
或其他值。更容易访问DHCP服务器的Web UI的方法是通过http://localhost/dhcpstatus.xml。这将列出主机名为“raspberrypi”的IP地址。我们需要完成两个步骤:在树莓派上启用ssh,以及配置树莓派使用静态ip。
在SD卡的引导分区中添加一个名为ssh
的文件(不是根分区中的/boot
文件夹),这在其他地方有很好的文档说明。
打开树莓派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
首先,请确保在您的笔记本电脑上安装了带有GUI的networkmanager
。然后,确保dnsmasq
没有作为服务运行:
systemctl status dnsmasq
如果此命令打印出该服务已停止,则说明您已经做得很好。
接下来我们需要配置networkmanager
。打开/etc/NetworkManager/NetworkManager.conf
并在顶部添加以下两行:
[main]
DNS=dnsmasq
NetworkManager
服务可能就足够了。现在进入 NetworkManager
GUI(通常通过屏幕角落的图标访问),选择 编辑连接...
。在弹出的窗口中,点击 +
图标创建一个新连接。选择 Ethernet
作为类型并按下 创建...
。转到 IPv4 设置
选项卡,选择方法 共享给其他计算机
。给连接取一个好名字并保存。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 pi@10.42.0.182
connection refused
,则 pi 没有运行 ssh
服务器。如果出现 host unreachable
,我很抱歉。