树莓派初始配置及软件安装

树莓派安装完系统后,总是需要设置一堆东西,然后还要安装各种软件,等等。而且我经常把树莓派玩坏……重装系统是常有的事。我受够了每次都要上网查一堆资料,下面我将总结一下所有东西。

基本设置

第一次开机

  我的树莓派是3B/3B+,系统为2018-11-13-raspbian-stretch.img,就是带桌面但没那么多软件那个。烧录系统只需要10分钟。(最新的系统是buster,有些内容不兼容)

  第一次开机时间有点久。进入桌面后,先设置Country(China),Language(Chinese),Timezone(Shanghai),勾选Use US keyboard。接着输入‘pi’用户新的密码。然后连接WiFi。不要更新软件,更新的话时间有点久,而且容易出错,跳过。

  重启。

  树莓派现在对中文支持较好,重启后并不会出现中文乱码。赞!

换源&更新

Stretch

  众所周知,树莓派官方软件源在中国很慢,所以要换源。编辑软件源list文件:

1
sudo nano /etc/apt/sources.list

  注释官方源,然后在下面选一个输进去:

1
2
3
4
5
6
7
8
9
10
11
#清华大学
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

#中国科技大学
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

#阿里云
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi

  修改系统更新源:

1
sudo nano /etc/apt/sources.list.d/raspi.list

  同样,注释掉官方源,换成下面这个:

1
2
#中国科技大学
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ stretch main ui

  然后执行:

1
sudo apt-get update && sudo apt-get upgrade -y

  等待漫长的软件更新吧!(至少要半个小时)你可以去我博客看看其他文章先,等更新完成后再继续下面步骤。

Buster

  Raspbian于2019/06/12升级到了Buster,基于目前最新的Debian. 换源方法是一样的,只不过源改为:

1
2
3
4
#/etc/apt/sources.list
#中科大
deb http://mirrors.ustc.deu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.deu.cn/raspbian/raspbian/ buster main contrib non-free rpi
1
2
3
#/etc/apt/sources.list.d/raspi.list
#中科大
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main

  实际上,就只是把 Stretch源 中的 stretch 换成了 buster

换pip源

  换成国内pip源:

1
2
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  上面是清华源,其他源也行:

1
2
3
4
5
6
7
8
#阿里云
http://mirrors.aliyun.com/pypi/simple/
#中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
#豆瓣(douban)
http://pypi.douban.com/simple/
#中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple/

必备软件

  在前面加sudo apt-get install来安装下面的软件。

1
2
3
4
5
6
ttf-wqy-microhei #文泉驿的中文字体#Jussie和lite才需安装
scim-pinyin #中文输入法,重启生效
vim #命令行的代码编辑器
cmake #跨平台的自动化建构系统
nestopia #玩NES游戏#不玩就不安装
smplayer #媒体播放器,VLC太容易卡死了

  还有一些软件要通过安装包安装:

  1. 对rar解压支持(貌似有错误:(

    1
    2
    3
    4
    5
    cd ~/Download
    sudo wget http://rarlab.com/rar/rarlinux-3.8.0.tar.gz
    tar zxvf rarlinux.3.8.0.tar.gz
    cd rar
    make && make install
    

必备Python库

  在前面加sudo pip3 install来安装下面的库。

1
2
3
4
5
6
7
8
9
numpy #数学计算 #如果出错,装上libatlas-base-dev
matplotlib #可视化
nltk #自然语言处理
jieba #中文语言处理
scipy #科学计算
pandas #数据分析#需要 cython 库#如果出错,用sudo apt-get install python-pandas安装
statsmodels #统计模型
scikit-learn #机器学习
scrapy #爬虫

杂七杂八

音质提升

  树莓派3.5mm输出口有底噪,可在/boot/config.txt文末加入一行:

1
audio_pwm_mode = 2

  保存并重启,音质有少量提升。顺便说一句,3B+播放时如果把音量调为0会听到明显的电流声,3B反而没有,3B的音质竟然比3B+好,因吹斯听。

玩具

1
2
cmatrix #黑客屏保
figlet #ASCII字符画

深度学习

Jupyter Notebook

  先升级 pip ,否则会出现 unsupported operand types …,逐个输入下面的命令:

1
2
3
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
python3 get-pip.py

  然后执行下面这个命令:

1
sudo pip3 install jupyter

  如果出现安装不成功的情况,可以逐个安装依赖的库(建议多试几次上面,实在不行再逐个安装):

1
sudo pip3 install ipython-genutils decorator traitlets tornado pyzmq backcall pygment ptyprocess pexpect pickleshare parso jedi wcwidth prompt-toolkit ipython ipykernel jinja2 attrs pyrsistent jsonschema nbformat entrypoints testpath webencodinga bleach defusedxml pandocfilters mistune nbconvert Send2Trassh terminado notebook ipywidgets qtconsole

  安装好后,输入下面命令生成配置文件:

1
jupyter notebook --generate-config

  修改配置文件:

1
sudo nano ~/.jupyter/jupyter_notebook_config.py

  修改内容如下:

1
2
3
#c.NotebookApp.ip = 'localhost'
改为
c.NotebookApp.ip = '*'
1
2
3
#c.NotebookApp.open_browser = True
改为
c.NotebookApp.open_browser = False
1
2
3
#c.NotebookApp.port = 8888
改为
c.NotebookApp.port = 8888
1
2
3
#c.NotebookApp.notebook_dir = ''
改为
c.NotebookApp.notebook_dir = '/home/pi'

  配置完成后修改密码:

1
jupyter notebook password

  然后就可以使用Jupyter Notebook了,方法是在树莓派上输入jupyter notebook,然后在电脑上的浏览器中打开树莓派的ip地址:8888

Opencv 3.4.0

参考博客【树莓派】树莓派+OpenCV3.4 + python3.5 成功以及注意细节,安装后占4.8GB,如果空间不足就别装

  安装numpy:

1
sudo pip3 install numpy

  扩大micro SD卡空间:进入raspi-config,选择Advanced Options,选择Expand Filesystem,重启。

  安装所需要的库(一次一行,别一次全装,安装出错看log):

1
2
3
4
5
6
7
8
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

  新建一个文件夹叫opencv,并进入该文件夹

1
2
mkdir opencv
cd opencv

  从Github上下载安装文件

1
2
wget https://github.com/Itseez/opencv/archive/3.4.0.zip
wget https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip

  解压这两个文件

1
2
unzip 3.4.0.zip 
unzip 3.4.0.zip.1

  创建build文件夹,并进入

1
2
3
cd opencv-3.4.0
mkdir build
cd build

  然后开始cmake,以下命令在同一行,但不要急!看命令后面的解释:

1
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include ..

  千万要注意,上面的路径不要写错!最好去看看有没有对应的文件或文件夹,也就是下面几个

1
2
3
4
OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv_contrib-3.4.0/modules #解压出来的东西
PYTHON_INCLUDE_DIR=/usr/include/python3.5 
PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so 
PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include #numpy的安装路径

  确保无误后再开始cmake

  最后开始编译,欲速则不达,不要用make -j4等加速

1
sudo make && sudo make install

  等四五个小时后就安装完成了。

Tensorflow

参考博客从零开始:在树莓派上构建tensorflow——详细至极,他装的是1.1.0,我装的是1.13.1。安装后占200多M

  先下载这些库,其实你不安装也行,待会安装tensorflow时它会自动安装,但那时容易出错。

1
sudo pip3 install grpcio protobuf numpy tensorboard gast termcolor astor keras absl-py futures enum markdown h5py mock pbr

  如果某个库,比如 h5py 装不了,可以去浏览器下载:https://piwheels.org/simple/h5py/h5py-2.9.0-cp35-cp35m-linux_armv7l.whl(这个链接就是 pip3 install 之后出现的链接),然后执行:

1
2
cd /home/pi/Downloads/ #去到下载目录
sudo pip3 install h5py-2.9.0-cp35-cp35m-linux_armv7l.whl

  其他安装不了的库也这样安装。

  如果上网的姿势很科学,可以直接:

1
sudo pip3 install tensorflow

  如果你觉得上面的速度太慢了,可以去浏览器下载(或用wget):https://piwheels.org/simple/tensorflow/tensorflow-1.14.0-cp35-none-linux_armv7l.whl,然后执行:

1
2
cd /home/pi/Downloads #去到下载目录,如果用wget则不用这行
sudo pip3 install tensorflow-1.14.0-cp35-none-linux_armv7l.whl

  然后就等等等等15~30分钟吧。

  下面我们试试图像识别,运行下面的命令:

1
2
3
cd && mkdir tensorflow
cd tensorflow/
wget https://raw.githubusercontent.com/tensorflow/models/tutorials/image/imagenet/classify_image.py

  然后你就会在/home/pi/tensorflow文件夹里看到一个classify_image.py,运行该程序,它会自动下载图像识别库(85M)(只有第一次会下载,以后就不用了)。

  等到它下载完成后,通过下面命令进行图像识别:

1
python3 /home/pi/tensorflow/classify_image.py --image_file <图片路径>

  比如我在网上找了一张hamster图片:

仓鼠

  运行后显示的结果是(效果还行):

1
2
3
4
5
hamster (score = 0.70514)
mink (score = 0.00465)
polecat, fitch, foulmart, foumart, Mustela putorius (score = 0.00370)
black-footed fettet, ferret, Mustela nigripes (score = 0.00274)
skunk, polecat, wood pussy (score = 0.00266)

  貌似只能识别动物和物品(试了一下黄色图片,识别不了)。