美文网首页树莓派树莓派玩转树莓派
树莓派如何完全无头(无屏无网线无键盘鼠标)安装

树莓派如何完全无头(无屏无网线无键盘鼠标)安装

作者: Solomon_Xie | 来源:发表于2017-09-02 09:31 被阅读1804次
    无头树莓派

    最近终于闲下来可以放心的玩一玩买来后就闲置的树莓派3。头疼的是,我没有多余的键盘鼠标和屏幕,也不想每次都钻到放路由器的地方去插网线调试树莓派,所以就在百度谷歌国内国外到处搜索“无头安装树莓派”的方案,国内的文章和问答都搜不到,国外也没找到完整的教程。

    不过在一整天的Google中,终于找到一篇冷门文章,然后顺藤摸瓜,最终达成我的目的。感谢这篇文章https://caffinc.github.io/2016/12/raspberry-pi-3-headless/

    顺带一提,便于你的搜索引用,这个方案的英文术语叫"Raspberry Pi Headless setup"。只不过外文文章中搜到的也都不是"true headless",因为很多都要求最起码先要用网线去连接。

    正常连接的树莓派,各种线 全面无线化的树莓派

    开始前有几点要声明:

    1. 树莓派3是自带wifi的,所以利用这个特点我们可以不用连网线来安装。如果你用的是无wifi版本树莓派,那么依照这个思路可以插上无线wifi的usb后再尝试。
    2. 目前只尝试过树莓派最新的官方系统适用此方法,而且根据StackOverflow上的问答得知,这个特性也是新版系统才有的。
    3. 本方案是在Mac上完成的,Windows上也可以。

    准备

    1. 树莓派3
    2. SD卡(8G以上)

    没错,就是这么简单。这就是我想要的效果。

    安装系统先

    首先是常规的系统安装方法,很简单。下载好官方网站的Raspbian桌面系统后,解压成img格式文件。然后在Mac上用Etcher或ApplePi-Baker软件,Windows上用Rufus软件来将系统一键安装到SD卡。

    这一步不需要详细解释,一般人都可以自己搜索到这几样东西,然后按照软件上的图式操作,除了下载时间外,全程也就10分钟以内完成。

    Mac上用Ethcer安装树莓派系统

    设置Wifi连接

    这一步是本文最关键的一步,也是网上歧义分支最多的一步。在写这一步之前我想了一会儿,到底是应该先上结果还是先上过程。便于理解,还是先说过程的好;可是作为实用帖,先上结果比较有意思。

    只需要如下几步即完成:

    1. Mac和Windows用户直接打开树莓派SD卡文件夹,Linux用户打开SD卡所呈现的两个分区中叫boot且内存极小的主分区(非树莓派文件系统分区)

    2. 在根目录放置一个文件名为ssh的文件,无后缀名,内容有没有都无所谓。Windows用户怎么操作可以自己百度下。

    3. 在根目录放置一个文件名为wpa_supplicant.conf的文件,内容如下:

      country=GB
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      network={
          ssid="你的Wifi名称,注意大小写"
          psk="你的Wifi密码"
      }
      
    4. 把SD卡插回树莓派,开机。

    哒哒!完成!就是这么简单。然后来讲解一下原理。

    新版的树莓派系统,为了自带Wifi的树莓派做了不少努力,让你可以简单到在SD卡上建立一个叫ssh的文件,就自动识别为开启系统的SSH服务。然后你再放另一个文件,告诉它Wifi和密码,它就会自动连上网络。

    系统启动后,这两个会被删除。如果你改了Wifi密码,还可以再做一次。

    找到树莓派的IP地址

    首先要知道,用网线连接路由器得到的IP地址和用Wifi连接路由器得到的IP地址是不一样的。网上好多文章都没说清楚。

    这里我们要用Wifi连接。

    最简单的是进入路由器的设置主页,在DHCP列表中,找到树莓派的ip地址。

    或者可以通过命令行来检查。Mac或Linux上,用命令行输入arp -a,向路由器中所有可能的ip都找一遍,然后显示一个所有连上路由器的ip列表。可以树莓派先关机,看一下这个列表,再开机看一下这个列表,多出来的那个就是树莓派的地址。

    如果哪里都没有的话,那说明树莓派没有成功连接到Wifi:或者是配置错误,或者是刚开机还没来得及连接。

    通过SSH远程连接树莓派

    Mac和Linux上直接打开终端,用ssh pi@IP地址来连接,默认密码是raspberry。如果Mac上有设置SSH KEY这样的东西,就先要确定同样ip地址以前没有被记录过。如果连接不成功,那么就要到~/.ssh/known_hosts文件中删除这条ip那一行的记录,然后再连接ssh。

    Windows上一般网上都推荐用putty这样的简易小软件来连接(使用方法自行百度,很简单),其实最简单的是下载免安装版的git bash,然后在git开发的终端上,各种玩耍Linux和Mac上的命令。

    通过VNC远程连接树莓派桌面

    在已经成功用ssh连接到树莓派到话,如果连接树莓派桌面,需要在树莓派中安装一个叫tightvncservervnc服务。

    操作如下:

    终端中输入sudo apt-get install tightvncserver

    安装好后,输入tightvncserver回车,启动vnc服务。

    然后就可以连接了。

    Mac中,在文件夹Finder的菜单中,打开Go下的连接服务器,然后输入vnc://树莓派IP地址:5901。其中5901是默认的端口。
    Windows上可能需要安装个软件来连接,可以自己查一查。

    Mac VNC连接 连接桌面成功

    关于wpa_supplicant.conf

    网上文章关于wpa_supplicant.conf这个文件的编辑,产生了巨大的分歧和建议,这给我造成了不少的负担。

    在安装好树莓派系统后,SD卡实际上是分为两块磁盘的,一个为启动系统用的分区,另一个为存储文件系统用的分区。通常文件系统的这个分区,除了Linux电脑以外都没法识别和读取。而wpa_supplicant.conf这个文件偏偏又放置在文件系统分区的/etc/wpa_supplicant/目录下,所以必须用Linux才能访问。

    出于钻研精神,我在自己的Mac上安装了VirtualBox虚拟机,下载了小到ttyLinux和PuppyLinux,大到Ubuntu和麒麟系统。无数次的安装调试系统,尝试各种Linux系统,包括解决虚拟机读取SD卡的问题,最终还是用了大Ubuntu系统来解决。插上SD卡后,Ubuntu就立马显示出两块磁盘。然后迅速找到文件系统的那个分区,进入到/etc/wpa_supplicant/目录,发现竟然没有wpa_supplicant文件?后来才知道,文件是存在的,但是不显示出来,即使能看到也不能编辑。然后又各种搜索如何编辑这个文件的方法,结果大家都只是说说,还像那么回事一样的直接写用sudo nado /etc/wpa_supplicant/wpa_supplicant.conf来编辑,实际上完全不可行。绝望至此。

    然后突然看到网上StackOverflow还是QuoRa上有人回答这个问题,说新版的系统可以这样写:

    network={
        ssid="你的Wifi名称,注意大小写"
        psk="你的Wifi密码"
    }
    

    然后将这个文件放置在一般人可以访问的boot分区上,然后系统启动后会自动抓取、替换到主系统中。然后我很欢心的就去试了试,结果以失败告终。

    再次绝望之后,我失落的拿起一根很长的网线,不情愿的走到路由器,插上水晶头。虽然很成功的访问到了网络,可是就这么的不甘心。

    然后我在正常系统访问后,好奇的在主系统中访问到了/etc/wpa_supplicant/wpa_supplicant.conf这个文件,发现文件内容不光是网上问答所说的那两句,顶部还有几句简单的声明。

    于是我的好奇心重燃,拔掉网线,再次重新安装系统,将错误都清零,然后在boot分区的根目录放置的wpa_supplicant.conf中加入该有的这几句话。

    启动系统,

    哒哒!完成!

    实在太兴奋了,所以才写到此篇与大家分享。

    有时候技术宅就是能从这些小事上获得极大的成就感,这也就是他们自己不觉得枯燥的原因吧。

    相关文章

      网友评论

      • b2136db9a140:上来感谢一下作者,ZERO W适用,太方便了,根本不需要键鼠和显示器。:smile:
      • b2136db9a140:目前全网应该就你这一篇无头安装的中文资料,问一个问题,ZERO W支持这样做吗?
        Solomon_Xie:@Star_b876 哈 没什么版权,这是官方系统的设置方法,我也是借鉴国外的文章
        b2136db9a140:@solomonxie 嗯,我准备买个ZERO W来做个GOOGLE云打印服务器,准备按你篇文章来无关安装系统,另外,我在油管上也看到无关安装的视频,操作和你这篇文章一样的,版权不知哪个在前,哪个在后?:smile:
        Solomon_Xie:我只有一个树莓派3B,不太了解Zero。ssh和wpa_supplicant.conf都是raspbian系统的支持方式不限硬件,所以zero也能支持,前提是它得有无线网卡,
      • 辛迪_5651:请问楼主,初始安装成功后,ssh pi@ip 链接被关闭怎么解决?

        https://pastebin.com/1WVwUx1n

        这是log
        Solomon_Xie:pi已经正常联网了是吧,ssh不带参数直接输密码连接试试?我就是初始安装后直接连接的。
      • 12083afd4789:貌似不支持5G网络。而且确如楼主所说,那两个文件会被自动删除,并且就算没有连接成功,依然会被删除。
        阿群1986:树莓派3B只有2.4GHz WiFi频段,没有5GHz
      • EricKwoc:稳!燃起了入手新派的念头
      • 龚春辉:country=GB这块是什么意思啊,求指教,我看到有的是CN,按照你的方法我试了两次,每次都重装系统可是还是没用,求大神指教
        qcsunny:@撒谎的匹诺曹i GB是英国,WiFi不同国家规定不同的发射功率
        Solomon_Xie:@龚春辉 请问你用的树莓派版本和系统版本都是最新的吗?
        撒谎的匹诺曹i: @龚春辉 可以理解为标准。。CN是中国标准。GB好像是美国标准
      • 圣_狒司机:每个看似小的成就背后都是无数的汗水啊:smile:
        Solomon_Xie:的确如此,每个小改进,背后都有数百篇的阅读与思考
      • CSpy:好像很厉害的样子,先收藏一下
      • 2428a8feddd7:十分感谢楼主,之前也找过说可以直接在SD卡里该文件然后就能直接上网的办法,一直没找到,一个小小的改进背后有很多次的尝试:+1: ,赞:smiley:
        Solomon_Xie:“懒”是钻研的主要动力,为了以后方便,真的尝试了不少
      • qcsunny:更正一下,树莓派官方下载的Raspbian解压后得到的是img格式的文件⊙∀⊙
        Solomon_Xie:哦哦对,谢谢哈~

      本文标题:树莓派如何完全无头(无屏无网线无键盘鼠标)安装

      本文链接:https://www.haomeiwen.com/subject/rymljxtx.html