树莓派3B上手一二

早些时间心血来潮买过一个树莓派,但是当时只是玩一玩,买来按照网上的教程摆弄了一下就闲置了。最近毕业设计,做时序数据分析的相关的工作,刚好想起能够用到树莓派+Node-RED来生成模拟的时序数据。于是开始搭建相关的环境。特此记录一下。

系统镜像下载

树莓派如今已是一个状态的生态圈。其本身有Linux定制的发行版树莓派系统。首先官网去下载系统系统镜像:



上面有两个版本左边是带有图形界面的,右边是没有图形界面的。个人推荐不带图形界面的,既然是玩树莓派的,我想大多数还是有一定Linux基础的,真没有必要装图形界面。

下载好以后我们能够看到压缩包中存在一个.img后缀的文件,这个就是系统镜像。

系统烧录

由于本人使用的macOS,所以接下来实际操作的都是在macOS环境下进行的,在windows下进行系统烧录,可以参考这篇文章

1)格式化SD卡

这里我使用SD官方的SD格式化工具SD Card Formatter,下载地址

下载好以后,安装并打开该工具,然后插入SD卡,SD Card Formatter会自动识别插入的Sd卡,我们直接点击format进行格式化。



2)烧录系统镜像

在mac下烧录系统是很容易的,因为Linux/UNIX本身有相关的命令操作。

首先在命令行我们使用命令df -h来显示目前的挂载情况

这里稍微补充一下Linux/UNIX下的磁盘的命名规则:

本人的mac只有一块磁盘就像下面的disk1,而后面的s1、s4则代表这块磁盘上的分区

$ df -h  # 我只粘贴了有代表性的输出
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 234Gi 99Gi 132Gi 43% 1230474 9223372036853545333 0% /
/dev/disk1s4 234Gi 2.0Gi 132Gi 2% 2 9223372036854775805 0% /private/var/vm
# 重点是下面这一个条
/dev/disk3s1 15Gi 2.4Mi 15Gi 1% 0 0 100% /Volumes/BOOT

上面的disk3则是我们的SD的磁盘,并且,只有一个分区s1,我们还可以看到容量为15Gi就是我们预期的格式化好了之后的容量。当然,既然这里能够显示则说明,这些磁盘我们已经挂载好了。接下来首先需要取消挂载:

# 千万注意一定要取消挂载正确的磁盘!不要把你的mac磁盘给取消挂载了:)
# 另外,请记住disk3s1这个名称,后面要用
$ diskutil unmount /dev/disk3s1
Volume BOOT on disk3s1 unmounted
# 这个时候再df发现我们的SD已经不再显示里面了,说明卸载成功

接下来进行正式的烧录,使用dd命令将系统镜像写入,需要特别特别注意disk后的数字,不能搞错!/dev/disk3s1是分区,/dev/disk3是块设备,/dev/rdisk3是原始字符设备

我们接下来就是要吧镜像烧录到原始字符设备

# 下面dd用于将系统镜像写入
# bs代表了文件系统的页大小这里设置为4m
# if=后面接上镜像文件的对应路径
# of=后面接上原始字符设备的路径,因为上面是我们卸载之前是disk3s1,所以这里就是rdisk3 $ sudo dd bs=4m if=(镜像存放路径)/XXX.img of=/dev/rdisk3 # 不放心可以在命令行末尾双击tab会出现类似下面的输出
# rdisk3 rdisk3s1

回车开始烧录,这个过程按机器的差异时间会有所不同。烧录完成以后会出现下面的输出:

443+0 records in
443+0 records out
1858076672 bytes transferred in 237.453302 secs (7825019 bytes/sec)

至此,树莓派系统的烧录工作就完成了。补充:为了方便以后的SSH连接树莓派,完成树莓派的系统烧录之后,先别着急推出SD,打开SD卡(通常在桌面),我们在系统目录下创建一个名为SSH(大写,没有文件后缀)的文件,以供树莓派开启SSH。

命令行下如何进入SD卡?所有挂载的外部设备都会在/Volumes下查创建对应的文件夹:

$ cd /Volumes
$ ls -l
lrwxr-xr-x 1 root wheel 1 4 8 10:59 Macintosh HD -> /
drwxr-xr-x+ 3 root wheel 96 11 11 15:22 Preboot
drwxrwxrwx@ 1 zhen staff 2560 4 12 10:30 boot # 这个boot名称的设备就是SD卡

至此,系统初始化工作完全搞定。

登陆系统

以下的操作我们都是在没有显示器的情况下进入树莓派系统,如果你本身有外接显示器,自然不需要这么麻烦,连接然后开机就行了:)

树莓派3B本身带有wifi模块,但是,如果要开启首先你需要进入系统进行配置:),所以最开始你需要有线连接树莓派

理论上,mac在有以太网转雷电或者是转USB情况下,我们可以通过网线直连树莓派和mac,但是本身尝试了多次发现就是发现不了同一网段的树莓派(树莓派都给mac分配了IP地址了),猜测macOS High Serria安全性增强了?这个坑以后在研究一下,填了。

另外一种是路由器组网方式



按照这样的连接,你的mac和树莓派都在同一网段中,同时你还可以登陆路由器的管理界面去查看树莓派分配到的IP地址,然后通过ssh连接树莓派。

组网完成以后,登陆网关,找到设备管理(不同品牌的路由器界面不同,道理上类似)





可以看到我们的树莓派已经分配到了IP,然后我们直接通过命令行登陆:

$ ssh pi@192.168.1.100
# 注意默认的用户名和密码分别为pi和raspberry # 将树莓派加入到已识别的主机中
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:p1UPTb5aXIOUiiqdpdaP/e2MV+vbkZJVey0wCYOUEJE.
Are you sure you want to continue connecting (yes/no)? yes # 输入密码,看到一堆信息之后,我们成功进入系统
pi@raspberrypi:~ $

注意:由于我们使用的lite版的树莓派系统,vi使用过程中会出现上下左右方向键成为ABCD等字符,同时mac上的delete(windows上是backspace)都会失效,我们要进行如下的操作:

# 1、编辑/etc/vim/vimrc.tiny
$ sudo vi /etc/vim/vimrc.tiny
# 将 set compatible 改为 set nocompatible 这里解决方向键ABCD问题
# 2、依旧在该文件中添加 set backspace=2 解决删除问题
# :wq保存

打开wifi模块

首先我们扫描当前环境中能够找到的wifi

$ sudo iwlist wlan0 scan # 此步骤非必须,如果你本来就知道wifi名称就可以不用扫描
# 如果当前环境中有很多会出现类似下面的格式的信息:
Cell 10 - Address: 94:D9:B3:15:7F:28
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=70/70 Signal level=-16 dBm
Encryption key:on
ESSID:"210"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
...
# 我删除很多不重要的输出信息,这里重点看ESSID,这个就是wifi名称。
# 接下来我们需要在下面的文件中开启它: $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
# 添加如下的信息
network={
ssid="你的Wi-Fi名称"
psk="Wi-Fi密码"
}
# 如果有多个wifi,你可以创建多个network

最后一步,首先请重启($ sudo reboot)树莓派,然后拔掉网线,通过mac登陆网关,你会发现树莓派已经通过wifi连接到了。下面两款设备都是wifi连接的。



此外,由于lite版本,树莓派不具备vim,所以需要我们手动下载:

# 首先移除掉旧的vi
$ sudo apt-get remove -y vim-common
# 然后安装vim
$ sudo apt-get install -y vim

接下来在用户目录下打开(没有就创建).vimrc,并添加如下的vim配置

$ vim ~/.vimrc
# 添加:
set nocompatible "不兼容vi
set nu "显示行号
set nowrap "不自动折行
set scrolloff=3 "距离顶部底部3行
hi MatchParen ctermbg=DarkRed guibg=lightblue
set encoding=utf-8 "编码方式
set fenc=utf-8 "存储时候的编码方式
set hlsearch "搜索高亮
syntax on "语法高亮
set ts=4 "一个tab长度为4
set expandtab "tab替换为空格(配合上面即一个tab四个空格)
set autoindent "自动缩进

至此,树莓派的初始环境已经OK!

树莓派3B上手一二的更多相关文章

  1. 树莓派3b在rt-thread上移植LittlevGL

    树莓派3b在rt-thread上移植LittlevGL 目录 树莓派3b在rt-thread上移植LittlevGL 1.本文概述 2.资源准备 3.上手体验 4.rt-thread与lvgl进行无缝 ...

  2. 树莓派3B的食用方法-1(装系统 网线ssh连接)

    首先要有一个树莓派3B , 在某宝买就行, 这东西基本上找到假货都难,另外国产和英国也没什么差别,差不多哪个便宜买哪个就行. 不要买店家的套餐,一个是配的东西有些不需要,有的质量也不好. 提示:除了G ...

  3. 树莓派3B+(一)

    第一步:安装raspbian系统 介绍:Raspbian是为树莓派设计,基于Debian的操作系统,由一个小团队开发.其不隶属于树莓派基金会,但被列为官方支持的操作系统. 下载地址:https://w ...

  4. 树莓派3B+上运行.Net Core项目

    最近买了个树莓派3B+,准备把自己写的一个.Net Core爬虫挂在上面跑 买之前没有想到树莓派因为是今年新出的,导致驱动以及系统啥的都不是很完善,导致走了很多弯路,早知道买树莓派3就不用那么多折腾了 ...

  5. 树莓派3B+通过路由器进SSH和VNC

    1.打开树莓派官网 www.raspberrypi.org 选择 ”Raspbian Stretch with desktop and recommended software“ 并下载 镜像包含推荐 ...

  6. 树莓派3b+ Ubuntu 16.04 MATA系统 ssh远程登陆后修改主机名、用户密码和用户名

    写在前面: 刚刚开始写博客,记录下自己的学习过程,备忘. 最近在使用树莓派做智能小车的开发,使用的是树莓派3b+,安装的是Ubuntu 16.04 MATA 系统,安装系统后需要修改主机名,登陆密码以 ...

  7. 树莓派3B安装LEDE

    本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...

  8. 树莓派3b安装Nginx和php7和百度语音合成模块

    1.安装sox系统mp3音频播放模块(项目需要) sudo apt-get install lame sudo apt-get install sox sudo apt-get install lib ...

  9. 树莓派3B+首次登陆通过网络

    树莓派3B+默认串口不能登录,即使可使用可需要通过连线方式连接,如何才能直接通过网络ssh登录树莓派呢? 串口问题及使用 树莓派3的UART串口的使用问题,该串口问题的官方反馈及回复请参考这两篇官方博 ...

随机推荐

  1. 二进制I/O

    1 import java.io.BufferedInputStream; 2 import java.io.BufferedOutputStream; 3 import java.io.DataIn ...

  2. Go与接口:接口即约定

    接口 接口类型是对其他类型行为的概括与抽象.我们可以通过接口来约定某一类通用行为.Go语言的接口是隐式的:只要实现接口A的所有方法就代表实现了接口A. 接口即约定 接口是什么样的? package i ...

  3. JavaSE-Java基础面试题

    重载与重写的区别 重载:本类中,方法名相同,参数列表不同,(参数类型.参数顺序.参数个数),返回值类型可以不同,访问修饰符可不同 重写:子类中,方法名相同,参数不能改,返回值类型一致或其子类,访问权限 ...

  4. JDK1.8源码(二)——java.lang.Integer类

    一.初识 1.介绍 int 是Java八大基本数据类型之一,占据 4 个字节,范围是 -2^31~2^31 - 1,即 -2147483648~2147483647.而 Integer 是 int 包 ...

  5. 解决CSDN文章下载后,依然请求跳转至首页出错的问题

    1. 搜索关键字:"onerror"     然后找到如下所示代码: <div style="display:none;">     <img ...

  6. 多文件Makefile编写

    工作过程中,平时不怎么关注Makefile的书写规则,对于遇到的编译错误一般能看懂Makefile的基本规则也能解决.但如果想要编写Makefile文件还是有相当的难度的,更不用说包含多个目录和文件的 ...

  7. PyRevit开发第一步:获取Revit文档Document

    1.安装PythonShell插件 PythonShell 2018 插件下载 交流QQ群: 17075104 新建项目后,运行功能Python Shell, 在弹出的窗口中复制或输入以下引用代码模块 ...

  8. Servlet生命周期和方法

    一.五个生命周期方法,有三个很重要,初始化方法.提供服务方法和销毁方法 1.三个主要方法 2.另外两个重写的成员方法只做了解 二.生命周期详解 其中,每次刷新页面都是一次对servlet访问: 页面访 ...

  9. 恶意软件开发——突破SESSION 0 隔离的远线程注入

    一.前言 在Windows XP,Windows Server 2003以及更早的版本中,第一个登录的用户以及Windows的所有服务都运行在Session 0上,这样的做法导致用户使用的应用程序可能 ...

  10. 谈谈如何进阶Java高级工程师

    从入门到瓶颈(++文末附学习脑图++) 首先,先自我介绍一下,楼主94年的,四川人,普通大专毕业. 第一阶段 实习阶段 2015年,实习阶段去浙江温州(没错,就是皮革厂的那个地方)找了份软件实施的工作 ...