为了使自己在COVID-19大流行期间保持娱乐状态,我购买了Raspberry Pi。我以为可以使用以太网连接通过SSH在笔记本电脑上对它进行编程,但是我发现这需要我知道Raspberry Pi的IP地址。

没有键盘/鼠标插入它,我无法设置Raspberry Pi的Wi-Fi和/或使用监视器检查其IP地址(据我所知)。

SD卡读卡器,我无法按照这样的教程进行无头设置。

有人能想到解决此问题的方法吗?

Raspberry Pi已在其中装有SD卡它安装了Raspbian操作系统。

评论

您是否有ttl级USB到RS232串行加密狗?

我不愿意再次写这个作为答案,但是这是我通过以太网将其连接到Windows pc的方法。建立连接后,您可以设置可连接到wifi的cron作业,这样就不必每次都执行此操作

最近,这已在Hacker Public Radio上进行了报道(还与查找Raspberry Pi的IP地址有关):在网络上定位计算机(第3052集)

nmap -sn 192.168.1.0/24通常为我执行此操作。请注意,网络可能会有所不同。

如果您拥有Pi,则必须购买SD卡读卡器。即使您今天解决此问题,明天也将需要它。同样在键盘方面,尽可能便宜的紧凑型USB键盘也是不错的选择...即使没有有线键盘也无法进入许多PC的BIOS

#1 楼

欢迎来到Pi的世界-一旦启动并运行,您将获得许多小时的乐趣。

首先与您的供应商联系,以查看他们在卡上放置的操作系统版本启用了ssh-大多数供应商都没有这样做。如果没有:


尝试ping raspberry.local-可能找到它。
检查路由器,看看是否有新设备
查看计算机的ping程序。或'电话/平板电脑-我使用一种叫做fing

,一旦您拥有IP地址,就需要从Linux或Mac计算机的终端在PC或ssh上加载并使用PUTTY。

ssh pi@x.x.x.x


其中xxxx是上面的Pi的IP地址。抱歉,我没有使用PUTTY,但是互联网上有很多指南:-)

如果这不起作用,那么不幸的是,如果没有SD卡读/写器,您将被卡住,因为您没有启用ssh-最低限度需要您能够将文件调用ssh添加到SD卡的/ boot分区,然后才能从Mac,Linux或最新的Windows PC通过ssh pi@raspberrypi.local访问它。

您可以获得低成本的USB到SD卡适配器-但是这将需要几天的时间。

评论


请注意,raspberry.local使用Apple的Boujour协议,默认情况下Windows上不存在该协议。要使其在Windows上运行,一个巧妙的技巧是安装iTunes for Windows。在Linux上,它有时会自动运行,但如果不能运行,则说明您没有安装Avahi

– slebetman
20-4-17的7:32

@slebetman Windows将其称为“零配置网络”,自2005年以来一直可用microsoft.com/en-us/research/video/…M / S大约两年前中断了自己的实现,但又对其进行了修复。您可以安装iTunes或从Apple安装Bonjour,以使其更稳定,或者希望M / S不要再破坏它了:)

–user115418
20-4-17的12:20

Windows上的零配置是另一种与Bonjour不兼容的协议,并且不实现.local域,该域是Windows发布零配置后由Apple单独开发的基于DNS的协议的一部分。在2020年初,.local域在Windows中仍然不起作用(当我指示员工使用.local域连接到测试服务器时,我在Windows 7和Windows 10上进行了测试,发现Windows从2月开始不支持它。 2020)

– slebetman
20-4-17在12:30



我四处搜寻,发现Windows仅在使用.Net 4.6及更高版本构建的较新应用程序中支持mDNS(.local域):social.technet.microsoft.com/Forums/en-US/…。这解释了为什么我们的软件都无法连接到.local域,因为它们都基于Java8。如果未安装Bonjour之类的旧版.Net和Win32应用程序,则无法访问.local域。

– slebetman
20-4-17在12:51



@slebetman太疯狂了。 “今天我们将设置Raspberry Pi。为了能够通过SSH登录,请先将iTunes下载到Windows 10桌面上。”

–曼上尉
20年4月17日在18:53

#2 楼

要查找Raspberry Pi的IP地址,可以尝试以下操作之一:



ping的通用名称(rpirpi4rpi3raspberry
查看您的路由器管理控制台以列出局域网上的所有设备
使用局域网分析工具(例如Android的Fing)

如果默认情况下未启用ssh,则不拥有SD读取器,USB闪存驱动器,microSD卡的USB适配器,您可能会卡住。

评论


关于raspberry(在网络上):不是raspberrypi吗?

– Peter Mortensen
20-04-17在13:54

尝试两者。如果一个工作...

–沃尔丁纳
20-4-20上午0:27

默认情况下,所有使用Raspbian的Pi计算机都命名为raspberrypi.local,因为这是映像中内置的名称。由于您似乎从未拥有过一个pi(您可以从一个pi开始,但似乎在增长),应该尽快更改它,因为在同一网络上的两台同名计算机是一个问题...除非您使用的是怪异的软件在您的PC上安装Mac(可以使用Mac),然后加载support.apple.com/kb/DL999?locale=zh_CN,但某些Windows Service Pack可能会破坏此功能,请参见superuser.com/questions/1330027/…以获得一项修复

–user115418
20 Apr 30'23:41

#3 楼

根据以太网MAC地址可能使用的OUI,截至2020年4月,Raspberry Pi设备正使用两种OUI。

Raspberry Pi Foundation已确认-MAC供应商列表。

一种解决方案是使用以下方法搜索台式机系统的ARP表:

linux>    sudo arp -a | tr -d : | egrep "b827eb|dca632"

windows>  arp -a | findstr dc-a6-32
windows>  arp -a | findstr b8-27-eb


您可能需要使用类似fping的命令填充ARP表(我不确定是否有Windows等效版本)

 linux>      sudo fping -a -g 10.99.99.0/24


您还可以使用Nmap在LAN上找到所有侦听SSH的主机:

 linux>      sudo nmap 10.99.99.0/24 -p 22


这不是我的第一个解决方案-我会在第一个实例中检查防火墙中的DHCP日志。

#4 楼



您是在寻找理论解决方案还是实用解决方案?

SD卡也具有SPI接口,只要您能提供稳定的3.3V电压即可。为您的卡供电并消除时钟信号的抖动,可以使用一些其他的开关和电线来解决它。 (也许在MISO上增加一个LED和一个串联电阻以获得一些反馈)。

有一个视频,其中Atmel AVR芯片也通过SPI手动编程。 SD卡的协议不同,这既不实用也不建议。但是从理论上讲,任何东西都可以读/写。

让我们手动编写AVR程序

评论


但是,AVR微控制器可能没有足够的RAM来容纳用于较新SD卡接口(例如SDHC)所需的缓冲区(目前所有SD卡-您不再可以购买旧的SD卡(通常为1 GB或以下))

– Peter Mortensen
20-4-17在14:14



不需要,因为您不需要它。从理论上讲,您可以通过直接将VCC和GND连接到3V3电源,将MOSI连接到开关,将MISO连接到LED和串联电阻,以及将SCK连接到去抖按钮来编程SD卡。就像视频中一样,仅将卡代替AVR。您可能需要一些笔和纸,也需要非常好的耐心,灵巧性和记忆力。

– Nyos
20-4-17的14:23

那就是精神,其余的都是……行人。我曾期望诸如“通过电阻器连接GPIO x和y导致其崩溃到终端,并且此发夹具有正确的电阻”之类的东西。您知道,就像将宜家茶几用于便宜的家用19英寸机架一样,CD音频电缆的末端也用于HP 48计算器串行电缆等。

–chx
20-4-18在3:54



为什么我希望YouTube URL可以转至著名的Rick Astley视频? 🤔

–地毯
20年5月4日20:00

#5 楼

可以通过串行终端访问Pi,但这需要笔记本电脑上的USB串行加密狗。

购买SD卡读卡器以启用ssh容易得多-这些功能可用于< $ 5。

一旦启用,您就可以使用带有Pi主机名的本地链接地址(默认为raspberrypi)通过以太网进入Pi,可以在大多数操作系统上使用尽管raspberrypi上的其他变体可能会在Windows上运行。

评论


您不应该能够通过连接到USB的PC上的USB端口直接访问pi吗?

– NomadMaker
20年4月17日在6:40

@NomadMaker我相信这在Pi4&PiZero BUT上是可能的,但您需要先配置Pi!

–地铁
20年4月17日在6:48

@NomadMaker在早期的Pi上,完全没有(在Pi 3+上,用于供电的USB端口甚至没有连接数据线)。 Pi Zero可以做到,但需要特殊设置。我认为Pi 4也可以,但我不确定。

–奥斯汀·海梅加恩(Austin Hemmelgarn)
20-04-17在17:58

那是一个有趣的反传统观念。串行终端设置是否正常?

–彼得-恢复莫妮卡
20-4-18上午8:57

在“使用a起作用”之后,是否不缺少任何单词?

– Peter Mortensen
20年4月20日在16:57

#6 楼

与流行的看法相反,还有一种方法可以完全不使用SD卡来启动Raspberry Pi!以前的所有答案都建议使用不切实际的方法,并且该方法也适用于此方法,尽管我希望您会发现它比以前建议的方法更实用。
方法1:从MSD(大容量存储设备,即USB)启动Flash /拇指驱动器)
首先,我想指出的是,您可以通过USB启动Raspberry Pi。但是,只有在使用以下任何型号(或者如果您有SD卡读卡器)时,此方法才有效:

Pi 2B v1.2
Pi 3A +
Pi 3B
Pi 3B +

不幸的是,如果您没有SD卡读卡器并且您的型号不是上面列出的支持的读卡器之一,则不能使用此方法。
如果如果您有SD卡和SD卡读卡器,那么本指南适合您!
方法2:https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md
使计算机将所有文件提供给Raspberry Pi
。使用这种方法,您甚至不需要SD卡即可启动Pi并运行它!您只需要将Pi上的DATA MicroUSB端口连接到计算机上即可。
此方法仅适用于以下Raspberry Pi型号:

Pi计算模块
Pi计算模块3
Pi Zero
Pi Zero W
Pi A
Pi A +
Pi 3A +

请查看此官方GitHub项目有兴趣! https://github.com/raspberrypi/usbboot
您的计算机将提供Raspberry Pi引导所需的所有文件(请确保您已阅读README.md中的“运行自己的(不是MSD)构建文件”部分;是你想做的。)

评论


您仍然需要SD卡读取器才能在第二个选项中进行更改。

–user115418
20-04-19在15:29

@Andyroo不,那是不正确的。您只需要卸下SD卡即可尝试启动到该模式。有关完整详细信息,请参见raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/…。

–牙刷
20-4-19在17:18



@Toothbrush歉意-我知道它现在是如何工作的,但是Pi首先会从OPs卡启动,我不想将我唯一的卡放在有源Pi SD插槽中以添加ssh文件:-)第二个选项(不是MSD)确实将FAT分区文件复制到子目录中,因此满足上面的阅读器要求。

–user115418
20-4-20在11:13

@Andyroo不,不是必需的。 “激活此启动模式后(通常是在从SD卡启动失败后),Raspberry Pi将其USB端口置于设备模式,并等待主机的USB复位。[…]主机首先将结构发送给主机。设备向下控制端点0。它包含启动的大小和签名(未启用安全性,因此不需要签名)。第二,代码在端点1(bootcode.bin)下传输。” —raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/…

–牙刷
20-4-21在17:51



@Andyroo“您只需要将FAT分区文件复制到一个子目录(它必须至少具有bootcode.bin和start.elf),”试图说您需要复制启动Raspberry Pi所必需的文件固件到usbboot读取并发送到引导Raspberry Pi的目录。它继续说明复制默认情况下无法复制完整的内核发行版。 “要提供一个文件系统,有很多选择,您可以在内核中构建一个initramfs,在启动目录中添加一个initramfs或为文件系统提供其他接口”

–牙刷
20-4-21在17:53



#7 楼

较新的树莓派PI将从USB端口启动。您可以按照通常的步骤在USB记忆棒上安装raspbian。在启动时,您插入SD卡(请勿在启动前进行操作,否则它将尝试从SD卡启动)并在其中写入数据。

评论


不完全的。 Pi 2B v1.2、3A,3B需要先从SD引导以设置控制位,3B +将从USB引导,而4则将有一天,但现在还没有。 github.com/raspberrypi/documentation/blob/master/hardware/…

–user115418
20-04-17在22:24

#8 楼

如果Raspbian安装已经启用了SSH,并且您知道密码,则只需查找IP。但是,默认安装已禁用SSH。

如果您具有Raspberry Pi 3B +和USB驱动器,则可以在USB驱动器上安装启用ssh的Rasbian并从中启动。不幸的是,其他Raspberry型号默认情况下不会从USB启动。

或者,您可能拥有不知道的SD卡写入器。例如,许多电话和数码相机都有SD卡插槽,并且在连接时可以从PC访问该插槽。要按照您在问题中链接的教程,只需在卡上创建两个文本文件即可。

#9 楼

Rasbpian在默认情况下启用IPv6时启动。如果您的笔记本电脑也支持IPv6,它也可以解决所有问题:

首先,广播ping您的本地网络:

ping6 ff02::1%eno1


所有机器将答案。
通过ssh登录(只需尝试所有地址):

ssh pi@fe80::f000%eno1


eno1在此示例中是指我的笔记本电脑的以太网设备。

评论


可能会找到IP地址(假设LAN支持IPv6-有些不支持),但未启用ssh(仍需要SD卡适配器才能通过IPv6启用ssh)-在这些情况下,串行化是唯一的方法:-(

–user115418
20年4月18日在14:18

ang我完全忘记了默认情况下未启用ssh。

–赫尔曼
20年4月18日在17:24

#10 楼

是的,有一个非常方便的方法。
看看PiConfig-Raspberry Pi网络配置器:
https://www.kickstarter.com/projects/827010089/raspberry-pi-network-configurator-piconfig

https://www.geeky-gadgets.com/piconfig-raspberry-pi-network-configurator-23-03-2015/

这是专用于
它是五年前在Kickstarter上成功资助的,似乎仍然可以买到它。


#11 楼

根据您提到的限制(没有可用的USB键盘,也没有SD卡读卡器来修改Raspbian图像以包含您的wifi凭据),只剩下一个选择。那就是在Raspberry Pi上附加一个串行控制台,然后您就具有完全访问权限。 RPi串行连接

要连接串行控制台,您将需要一条特殊的USB电缆,该电缆可以连接到Pi上的右侧插头引脚。在“ Raspberry Pi USB控制台电缆”中搜索“ Raspberry Pi串行USB电缆”。如果周围有FTDI转换器,则可以使用它。

除了使用电缆,您还可以使用ESP8266并通过Wifi进行串行;)

没有SD卡读/写器的下一个最佳选择是借用一个您邻居的USB键盘。这样,您就可以通过HDMI将PI连接到电视,并使用键盘登录并修改wifi凭据。通过中断引导并在引导命令后添加


init = / bin / bash


,甚至可以不用鼠标来执行此操作。这样raspbian将以文本模式启动。

#12 楼

有网络启动选项,一些详细信息可以在这里找到。它使用另一个树莓派作为网络启动服务器,但是任何机器都可以充当它。
我没有任何树莓派,所以我从未尝试过使用它们,很多年前,我在普通的x86_64机器上都做了它,有点麻烦进行配置,但是可以。

#13 楼

实际上,通常情况下,如果没有SD卡,通常无法运行Raspberry pi,因为它存储了将要​​运行的操作系统。它是Raspberry Pi的辅助存储单元。但是,或者,您也可以使用pendrive(首先使用),使用可引导的硬盘驱动器,然后运行Raspberry Pi。

现在您可以很有趣地做两件事,
1.将树莓派与网络连接(使用以太网介质以避免输入凭据),然后转到路由器以查找树莓派IP地址。您可以通过转到路由器上的“已连接客户端状态”来完成此操作。
2。使用Raspberry pi IP通过SSH连接您的PI,或者您可以使用VNC(在互联网上搜索如何使用VNC连接到Raspberry pi,这很简单),然后尽情享受。

N.T.。出于娱乐目的,您可以在Raspberry pi上使用Volumio,MusixBox或RuneAudio操作系统。 (对于这些操作系统,我不确定是否可以使便携式硬盘驱动器成为媒体,但如果是这样,请选择Raspbian或Raspbian Noobs或其他Linux框架。)

最好。