树莓派3B Raspbian Buster SD 卡 / TF卡 系统重装 + 自带Python3.7 安装 Tensorflow + Keras (Numpy自带) 详细 图文教程

目录

1 前言

2 Raspbian系统重装

   2.1 软硬件准备

      2.1.1 SD卡的选择

      2.1.2 树莓派镜像

      2.1.3 Raspbian安装参考教程

   2.2 Raspbian重装

      2.2.1 SD卡分区删除与建立

       2.2.2 Boot下设置

3 Raspbian配置

   3.1 树莓派的连接

      3.1.1 修改密码

      3.1.2 时区选择

      3.1.3 修改系统软件源(apt-get安装时用到的源)

      3.1.4更换pip源

   3.2 个人喜好的设置

      3.2.1 安装vim

      3.2.2 远程桌面安装

      3.2.3 中文显示

      3.2.4 根据个人喜好设置

4 pip3安装Tensorflow + Keras

   4.1 pip3 安装部分依赖

    4.2 安装Tensorflow + Keras

   4.3 网络问题的解决方法

      4.3.1 法一:树莓派Wget下载

      4.3.2 法二 :第三方软件下载后上传到树莓派


1 前言

要做毕业设计了,想到用以前买的树莓派做个智能小车跑跑,结果其中遇到了很多坑,以前一直没记录的习惯,遇到BUGs直接问度娘了,现在灵光一现,从现在的进度开始记也不算太迟。

先说下初步设想,树莓派小车采集图像数据,PC进行图像处理和模型训练,再下载到小车上进行运行。

现在硬件基本都搭好了,最近在模型下载到小车的树莓派上出了问题,显示元组越界,查了网说可能是PC和树莓派上的python版本不对?,然后树莓派(Stretch)安装了3.6.3的版本(当时树莓派Stretch上的Python版本为3.5.3),并替换了原本树莓派上的python2.7.13(本来想替换树莓派上的python3的)。由于手抖,软连接又把原来3.5.3的python3替换了。由于是Linux小白,也不懂具体的运作机理,干脆重装了系统。

期间参考使用了virtualenv虚拟环境装(参考:“树莓派4b虚拟环境下安装python3.5、tensorflow、numpy、和h5py等:https://blog.csdn.net/IVIVI_PLUS/article/details/100016090”),发现在激活虚拟环境后,pip3安装会直接安到全局环境中,索性使用自带的venv装虚拟环境,希望能成功安装各种深度学习的库到虚拟环境中吧。

2 Raspbian系统重装

本来Pi 3B配的系统是Raspbian jessie,然后鬼迷心窍更新成stretch,各种换源等操作后,有时候安装会出现dpkg等错误,折腾了一段时间了。。这次是由于python和python3改不来了,干脆重装。。期间装virtualenv虚拟环境中的软件时,也出现了各种问题,也用过venv,但最终都放弃了,他们都存在pip安装的一些问题。

其中,virtualenv比之venv更复杂,pip3安装时会安装到全局环境中,加了--user后也是如此;venv则在pip3安装时会提示无权限,加了sudo后同样安装到了全局环境中(只是没试过venv pip3安装时 + --user)。后来干脆直接将Tensorflow、Keras这些装到Raspbian-buster的全局环境中,发现python3.7安装这些工具意外的顺利。

值得一提的,官网上下载的镜像(我下载了带桌面不带推荐软件的镜像)是buster版的,和树莓派4B一样。。。现在用着还OK,也就没再换了。

   2.1 软硬件准备

硬件:PC、SD读卡器、SD(TF)高速卡

软件:分区工具DiskGenius;SD卡镜像写入工具win32diskImager;树莓派镜像

      2.1.1 SD卡的选择

因为树莓派用的是SD卡(或者叫TF卡),树莓派的读取和写入速度不快,所以用的闪迪的32G Ultra 灰卡,也足够树莓派日常,就没换新的,用DiskGenius清空分区后重新建立就好了,参见:“树莓派——树莓派3B+重装系统详细步骤:https://blog.csdn.net/qq_24546137/article/details/84558423”。

      2.1.2 树莓派镜像

官网下载镜像:https://www.raspberrypi.org/downloads/

我下的“桌面纯净版”,因为毕设中有些用到的指令需要桌面显示,否则报错。另外,有桌面的版本可以进行远程桌面连接。需要注意的,官网上下载到的版本是buster(Raspbian的最新版,树莓派4B上装的),和stretch比可能会有点不一样。

      2.1.3 Raspbian安装参考教程

网上的一些参考,点击超链接浏览:

1、树莓派3b+安装Raspbian系统

2、树莓派RASPBIAN系统安装个人经验教训

3、没有显示器情况下,安装和使用树莓派

4、树莓派3B装系统,python环境3.5,安装numpy,tensorflow,keras和opencv

   2.2 Raspbian重装

      2.2.1 SD卡分区删除与建立

左侧栏选择SD卡,右键,删除分区(不要选错了,删错盘!),之后再右键SD卡的盘,保存分区。

 

之后右键SD卡盘,快速分区,注意选择自定义1个分区、使用FAT32,同时去掉对其扇区整数倍的勾,大小我是选的默认大小。

分区完毕,开始载入系统镜像,选择镜像路径和SD卡所在盘符,写入就好。

 完成写入后先不要退出SD卡。

       2.2.2 Boot下设置

打开SD卡所在硬盘(默认名为boot),在该盘目录下新建空白文件名为“ssh”,以开启树莓派的ssh功能。

若需要外接HDMI,电脑记事本编辑config.txt,写入如下代码,我的除了hdmi_ignore_edid=0xa5000080需要自行写入外,其余可以删去注释“#”激活项。(因为已经配置了ssh和wifi,不用设置HDMI也无妨)

hdmi_safe=1
config_hdmi_boost=4
hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=82   

为了让树莓派自动连接wifi,编辑wpa_supplicant.conf ,ssid写wifi名,psk写密码,可以按照格式增加network结构体增加可联网的wifi信息。(其中ssid的“ ”中的内容是无限名,psk中的“ ”内容则是无线密码)

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="wifiname"
    psk="password"
    priority=1
}

network={
    ssid="H3C_B72892"
    psk="a86668***"
    key_mgmt=WPA-PSK
}

至此树莓派的系统基本设置已完成。

3 Raspbian配置

开启SSH、设置wi-fi、开启强制HDMI前文已经包含,下面主要讲启动树莓派之后的设置。

   3.1 树莓派的连接

我用的登录树莓派的软件主要是putty或直接电脑的远程桌面,分别对应不需要桌面时的情况和需要桌面的情况。当如前文开启了ssh后,可以登录putty(远程桌面还需要下载软件,后文介绍),需要直到树莓派所在的局域网ip(前提:PC与树莓派处于同一局域网中,比如同一个2.4G的wifi下,其中树莓派3B不支持5GHz的wi-fi连接)。至于具体的ip可以在windows的cmd上用ipconfig或arp -a进行查看,不过个人认为比较麻烦,有时候也搜不到,我用的是Advance IP Scanner。

另外,树莓派默认ssh账户为pi,密码为raspberry

以下操作最先都是在putty中完成。

      3.1.1 修改密码

登录pi后,建议修改新的并且记得住的密码。

# 修改pi密码
sudo passwd pi
# 修改root密码
sudo passwd root

      3.1.2 时区选择

# 打开时区设置
sudo dpkg-reconfigure tzdata

时区选择:亚洲(Asia)-->上海(Shanghai)

      3.1.3 修改系统软件源(apt-get安装时用到的源)

# 个人习惯先备份(可省略)
sudo cp /etc/apt/sources.list /etc/apt/sources_old.list

# 树莓派系统默认使用nano做为编辑器
# 修改完成后使用ctrl+x退出,退出时会提示是否保存文件, 按Y后再按回车即可
sudo nano /etc/apt/sources.list

# 修改系统源为清华大学源
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

退出文件后,可以更新软件了。

# 更新软件列表
sudo apt-get update
# 更新软件
sudo apt-get upgrade

      3.1.4更换pip源

# linux 编辑~/.pip/pip.conf,由于我的不存在.pip目录,故需要新建一个.pip目录
mkdir ~/.pip

# 同样个人习惯备份
sudo cp ~/.pip/pip.conf ~/.pip/pip_old.conf

# 使用nano编辑配置
sudo nano ~/.pip/pip.conf

# 更换为清华的源,保存同上,ctrl+x,按y 回车确定
[global]
timeout = 1000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
use-mirrors = true 
mirrors = https://pypi.tuna.tsinghua.edu.cn/simple 
trusted-host = pypi.tuna.tsinghua.edu.cn

其中最核心的是[golbal]中的index-url项替换。

   3.2 个人喜好的设置

按照个人习惯,可以安装vim、可以安装远程桌面服务、可以更换树莓派为中文等。

      3.2.1 安装vim

vim说实话我觉得比nano复杂一点,基本小的修改我用的nano,代码编写直接在pc上用pycharm了,vim的基本使用包括3种状态——简单来说是:普通(不可编辑)、编辑(可输入与删除)、控制(文件保存和退出等指令),进入文件时默认为普通状态,按i(等)按键进入编辑状态编辑,完成后按esc回到普通状态,输入“:wq”写入文件并退出。

# 安装vim
sudo apt-get install vim

vim配置,打开高亮和代码行号

# 个人习惯备份
sudo cp /etc/vim/vimrc /etc/vim/vimrc_old
# 修改配置
sudo vim /etc/vim/vimrc

# 语法高亮
syntax on
# 显示行号
set nu

 

      3.2.2 远程桌面安装

# 安装vnc服务
sudo apt-get install tightvncserver
# 安装远程桌面
sudo apt-get install xrdp 

 

      3.2.3 中文显示

# 安装中文字体库
sudo apt-get install ttf-wqy-zenhei

# 设置中文显示
sudo raspi-config

 进入树莓派的设置中心,使用方向按键控制上下,使用回车或esc键控制进退,选择4 Localisation Options --> I1 Change Locale进入语言设置。

 在语言设置界面,使用方向按键“↓”或下翻页“PGDN END”按住不放,一直到光标停在zh_CN.UTF-8,按空格键打勾(即*号),再按回车键(相当于ok)。

 按下回车键后,进入默认语言选择,这里选择zh_CN.UTF-8,光标选择后按下回车,树莓派自动进行中文替换。

替换完成后,会自动回到设置总界面,按esc即可退出。

最后重启树莓派。

# 重启树莓派
sudo reboot

      3.2.4 根据个人喜好设置

树莓派安装好了远程桌面,可以尝试使用win10自带的远程桌面登录。

登录后界面可以根据个人喜好进行调整。

4 pip3安装Tensorflow + Keras

下面开始环境安装,需要注意的是buster版自带的python是3.7的,不过对安装并无影响,甚至安装Tensorflow等会顺利很多。

未更新软件的先运行一波更新。

# 更新软件列表
sudo apt-get update
# 更新软件
sudo apt-get upgrade

   4.1 pip3 安装部分依赖

# 进入想要存放下载文件的目录(以防因网络问题需要wget下载),这里直接在pi目录下
cd ~

# 安装各类依赖(部分依赖可能没给全,安装Tensorflow、Keras等包时会自动检测的,到时候再补也是完全OK的)
sudo pip3 install grpcio
sudo pip3 install libatlas-base-dev
sudo pip3 install h5py

    4.2 安装Tensorflow + Keras

# Tensorflow建议安装1.13版的,不带版本号安装的1.14的我用不了
sudo pip3 install tensorflow==1.13.1
sudo pip3 install keras

# -*- 若因网络问题出现timeout或hash值错误,建议手动下载whl文件并进行本地安装,举个例子:
# 在安装grpcio时因网络问题报错,会弹出提示让你运行“wget + 一堆网址”手动下载,你可以按照提示运行,或者直接复制网址,粘贴到浏览器或粘贴到下载器的新建任务中,会快很多。(有时候用火狐浏览器下载依然会断掉,用QQ浏览器虽然只是快一点,但不会断;使用迅雷可能会更快一点,特别当你氪金后,他的服务器一高兴说不定会帮你加速)

# 在树莓派终端使用wget下载的话,再输入sudo pip3 install + 包的详细名称(包的名称可以使用tab填充)就可以安装了;使用电脑的软件下载的话需要另外将文件上传到树莓派中,我用的FileZilla,文件一拖就可以上传了,不管传文件还是传代码比原先用keil下载代码到stm32上都方便太多,也快太多。
# 安装示例:sudo pip3 install grpcio-1.28.1-cp37-cp37m-linux_armv7l.whl

   4.3 网络问题的解决方法

问题例子:运行pip3 install grpcio后出现timeout或hash no mach报错,并提示使用代码“wget + 一串网址”进行手动下载。

      4.3.1 法一:树莓派Wget下载

复制“wget + 那串网址”,粘贴到终端中运行,下载完成后输入代码(在输入sudo pip3 install 和包开头的字母后可尝试用tab键自动填充包名):

# 注:此代码只适用我下载的版本
sudo pip3 install grpcio-1.28.1-cp37-cp37m-linux_armv7l.whl

      4.3.2 法二 :第三方软件下载后上传到树莓派

复制报错提示的网址,于第三方软件(浏览器或下载软件)下载好包后,使用FileZilla将文件上传到树莓派,并使用法一中的安装代码进行安装。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值