查看: 3460|回复: 0

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

[复制链接]
  • TA的每日心情

    2020-3-6 09:52
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2018-12-25 14:19:59 | 显示全部楼层 |阅读模式
    分享到:
    1.png
    △ 无头树莓派

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

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

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

    2.png
    △ 正常连接的树莓派,各种线

    3.png
    △ 全面无线化的树莓派


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



    准备
    • 树莓派3
    • SD卡(8G以上)

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



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

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

    4.png
    △ 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上可能需要安装个软件来连接,可以自己查一查。
    5.png
    △ Mac VNC连接

    6.png
    △ 连接桌面成功

    关于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中加入该有的这几句话。

    启动系统

    哒哒!完成!

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

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


    本文作者:solomonxie,转载自简书

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则



    手机版|小黑屋|与非网

    GMT+8, 2024-4-23 21:43 , Processed in 0.123836 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.