树莓派折腾记:纯手机+数据线连接树莓派

文章更新:

20161207 初次成文
20170418 针对新版镜像提供新的解决方案

问题提出:

从这篇文章开始小苏会陆陆续续更新一些折腾树莓派的文章,因为小苏手中的树莓派是"3代B型",并且基于官方系统,所以这些文章都是基于树莓派3和官方系统的。

从一代开始。树莓派已经发行了多个版本,并且随着硬件和软件的更新,互联网上的诸多资料已经不适用与最新版的"树莓派3代B型"和最新版的树莓派系统。所以当我们在互联网上寻找资料时,往往会遇到"资料找到了,但并不适用"的尴尬情况。

所以这也正是我写这些文章的一大原因,自己这个博客的初衷就是"记录和分享",希望我的记录能帮助到很多的人吧~

树莓派拿到手,许多人连外壳都来不及装就迫不及待马上插卡上电开机。虽然我们可以从树莓派红绿两个指示灯的点亮情况看出树莓派是否正常开机&正常运行,但在不连接任何外设的情况下,我们是无法对树莓派进行任何操作的。树莓派自带HDMI接口和USB接口,我们可以通过HDMI线将树莓派和HDMI显示器连接,然后将鼠标和键盘连接在树莓派的USB口上来控制树莓派。这样虽然可以全面控制树莓派,但是需要的外设也太多了吧...

小苏打算入手树莓派时已经考虑到了这个问题,尤其小苏身在宿舍,总不能为一个小小的树莓派买一个大电视吧(捂脸哭)。于是内问百度外问谷歌,终于找到了连接树莓派的最简单方法,不用HDMI线,不用网线,不用显示屏,甚至连键盘鼠标也不用,只需要一部安卓手机和一条安卓数据线即可完成树莓派的连接:

所需材料:电源适配器×1+数据线×1(为树莓派提供电源),烧好官方最新系统的SD卡×1,安卓手机×1,安卓手机配套数据线×1(连接树莓派),树莓派主机×1

解决方案:

  1. 将最新系统烧写进SD卡,如果树莓派的SD卡工作在Windows环境下,则在"此电脑(我的电脑)"中可以看到一个名为"boot"的可移动磁盘,打开此磁盘,在磁盘根目录新建一个名为ssh(无后缀)的空文件,安全移除并弹出SD卡。如果此SD卡工作在Linux环境下,在终端中执行df命令你可以看到一个30m左右的fat32分区,cd进入此分区所对应的挂载点,然后执行:
touch ssh

在此分区的根目录下新建一个名为ssh(无后缀)的文件,卸载SD卡并弹出。

  1. 将烧好官方最新系统的SD卡插入树莓派,并且给树莓派上电开机;
  2. 用安卓手机配套数据线将手机的充电接口和树莓派的USB接口连接,连接成功后,大部分手机会在通知栏中显示:"正在通过USB充电",代表连接成功;
  3. 同时打开安卓手机的"便携式WLAN热点"和"USB网络共享"这两个功能,打开"ES文件管理器 - 我的网络"界面,点击标题栏处的"扫描按钮"("扫描按钮"在"x"按钮左边)开始扫描局域网中的设备,扫描可能需要较长时间(在我的手机上大约需要3~4分钟),当扫描结果中出现一个以"SFTP文件夹"开头的扫描结果时说明扫描完毕,我们记下这个结果的IP地址备用,这时可以关闭"便携式WLAN热点"的开关了,但不可以关闭"USB网络共享"的开关,也不可以拔掉数据线(此次扫描结果是192.168.42.1,但这个IP地址不会是固定的,当插拔数据线或者重启树莓派时这个IP地址都有可能变动);

Screenshot_20161207-151109.png

Screenshot_20161207-151458.png

Screenshot_20161207-151559.png

  1. 打开"JuiceSSH - 连接 - 点击右下角的'+'按钮"新建连接:

昵称:随意填写(比如Raspberry Pi - USB@Pi)
地址:填刚刚记下来的IP地址(比如我的是192.168.42.1)
认证:选择"新建认证",在新建认证界面中:

Screenshot_20161207-151624.png

昵称:随意填写(如RaspberryPi)
用户名:pi
密码:填写你设定的pi账户的密码,如果没有更改过,则填写默认值:raspberry

Screenshot_20161207-152314.png

填写完毕之后,点击右上角的"√"按钮回到"新建连接"界面,在"认证"下拉框中选择你刚刚新建的认证,
端口:22
其余项保持默认。

填写完毕后,点击右上角的"√"按钮回到"连接列表"界面,点击刚刚新建的连接进行连接,不出意外的话,应该很容易就能连入SSH了;

Screenshot_20161207-151651.png

执行ifconfig,你将会看到有一个名为usb0的网口,其IP地址为我们刚刚记住的"192.168.42.151"(图片中还有一个"wlan0"网口,这是因为演示时树莓派还连接着WIFI的缘故,初次连接时树莓派不可能连接WIFI,所以在ifconfig的执行结果中也不会有"wlan0"网口的出现);

  1. 因为我们开启了"USB网络共享"功能,所以在手机连接WIFI或者打开数据连接开关的情况下,树莓派可以通过手机访问外部网络,这时你可以对树莓派执行一些必须联机才可以进行的操作,比如更换软件源,安装vncserver等操作。

因为树莓派官方系统和安卓系统都是基于Linux内核,在Linux中,USB接口可以虚拟为有线网口,也就是说,用数据线连接树莓派和安卓手机,就相当于将两台电脑主机用网线连接一样,而通过"USB网络共享"这个功能,可以将手机虚拟为一个"路由器",而让树莓派变成了一个"网络终端",从而组建起一个微型的"局域网"。

而ES文件管理器的"扫描"操作就是在局域网中扫描其他设备与其开放端口,在上面我们可以看到扫描结果中的文件夹图标有"SFTP"标识,这表明IP为"192.168.42.151"的设备开放了22端口。而为了方便使用者使用,树莓派官方系统中默认开启sshd特性,而进行SSH和SFTP连接则正需要22端口,故22端口为开放状态,所以当我们得到局域网中树莓派的IP地址之后,便可以通过22端口登录树莓派的命令行界面。

资源下载(JuiceSSH):

酷安网:

http://www.coolapk.com/apk/com.sonelli.juicessh

Google Play:

https://play.google.com/store/apps/details?id=com.sonelli.juicessh

参考资料:

无显示器无路由器只凭手机登陆树莓派:
http://blog.sina.cn/dpool/blog/s/blog_cf59c1810102wju3.html

已有 12 条评论
  1. ### 赞一个

    楼主 我当时买了就不是用网线连接 就是hdmi插到电视机上面 超级麻烦
    现在学到了 希望你继续更新干货

  2. 望海涯



    好喜欢鼠标点击的效果♥

    1. 使用手机访问,用手指点击更有趣哈哈哈~
      (。・ω・。)ノ♡

  3. 来骚扰梯子又掉了的苏老板…看到就把这个评论删了吧

    1. 并不会删.../滑稽
      我要留住Pandaria大佬的黑历史。|・ω・`)

  4. 永远的萌新

    膜拜dalao~
    请问装了Ubuntu的台式机可以这样做吗?
    因为各种莫名其妙的原因,本来插着网线的机器,现在因为没有网络,开机都要等上10分钟了.....
    顺便问下,树莓派什么的....在哪里可以买到啊?

    1. Sorry...没有注意之前邮件的提醒...
      Ubuntu 能不能这么做我不大清楚,不过如果这样尝试的话可能需要把电脑上的网线拔掉...
      树莓派什么的,淘宝就可以买到啦,200以下应该可以搞定,没有假货的~
      另外有什么问题可以直接在群里和我说哦,在博客里回复的话可能不能及时看到。
      (。・ω・。)ノ♡

      1. 永远的萌新

        就是因为没有网线所以开机要等10分钟....
        测试了一下这个方法,并没有效果....
        大概是姿势不对...

        1. 不知道这篇帖子有没有参考价值(看帖子里第3楼的回复):

          https://tieba.baidu.com/p/4837677191

          但是我感觉他的命令打错了,应该是:

          sudo systemctl disable systemd-networkd-wait-online.service

          而不是:

          sudo systemctl disable systemd-networkd-wait-online

          (区别就在于命令末尾有没有加".service")
          我个人没有电脑所以我也不确定这条命令能不能解决问题...

          其他相关资料:

          http://www.jinbuguo.com/systemd/systemd-networkd-wait-online.service.html

          1. 永远的萌新

            虽然没有机会测试这个了,不过还是非常感谢~

  5. 永远的萌新

    每次连接了ip都会变,又要重新搜索一次,有点麻烦呢...
    不知道有没有更好的方法呢?
    例如固定ip什么的...

    1. 永远的萌新

      好吧,找到方法了,开启usb网络共享以后,在Android的终端输入arp -a就可以看到分配给树莓派的ip了...

添加新评论