ASUS Tinker Board 2S新版Debian 10 V2.0.3系统与相依套件安装

asus tinker board 2 / 2s 推出至今,搭配debian操作系统操作的版本也从先前介绍的2.0.0版更新到了2.0.3版,这次华硕iot团队更新了debian操作系统的内容,这次更新的内容强化了通讯的功能、周边接口存取的功能,相关的更新内容请参考下表:
https://tinker-board.asus.com/download-list.html?product=tinker-board-2s
1. fix ov5647 mirror issue
2. fix ufw and iptables not working indebian 10
3. xfce4-power-manager: set blank after to“never”
4. add auto_ums config in config.txt
5. add modem manager
6. add asus.gpio library for python 3
7. support quectel em06-e lte module
8. support usb to serial chip ch934x
9. support winchiphead ch340/ch341
10. add support for asus api
11. enable config_tun kernel config
12. power manager add support for gpu configuration
13. fix debian apt-get repo issue
14. fix uart0 rts not working
本文将主要说明各种常用的python相依套件程序安装流程,也透过本篇的内容强化即将使用tinker board 2s进行各种项目开发的朋友,有更多可以参考的文件,这些python相依套件基本上都已经过各种范例的实测,在目前最新发表的debian-10 2.0.3版操作系统都是可以正常操作。
本次的安装介绍主要是针对新版核心(debian-10 2.0.3版)进行安装,相关安装流程与较旧版本核心的安装流程略有差异,若是新版核心建议还是按照本篇教学进行安装,以确保相关的套件流程都可以正确安装与执行。
本文将会针对以下这些ai应用程序设计中常用的套件程序安装进行说明:
1. nano (用于简易文本编辑器操作)
2. opencv 4.5.0 (用于相关视觉影像的接口操作)
3. imutils (用于视觉图像处理的接口操作)
4. pillow (用于视觉图像处理的接口操作)
5. tkinter (用于图形用户界面 gui 程序设计)
6. tensorflow 2.4.1 与tensorflow-lite runtime 2.5.0 (用于神经网络运算)
7. scikit-learn (用于神经网络运算)
8. mediapipe(用于各种人体肢体或表情变化侦测操作)
9. pygame(用于各种多媒体游戏或媒体拨放功能操作)
10. audioplayer、playsound(用于拨放mp3或wav音讯档案)
11. i2c接口与pca9685电路驱动(用于周边电路的控制)
一、安装简易文本编辑器nano
由于在许多的终端机操作环境下需要快速编修文件,采用精巧且功能完整的 nano 文本编辑器,一直是许多系统操作者的最爱之一,以下说明安装流程:
sudoapt-get update
sudoapt-get upgrade
sudoapt-get install nano
二、安装gtk-2.0相依套件libgtk2.0-dev
本次安装测试的过程当中,在安装opencv 4.5.0套件程序时,发生了相依套件断裂的问题,在tinker board 2s的debian 10 linux系统中因为没有安装gtk-2.0  的libgtk2.0-dev套件程序,这将导致在opencv4.5.0因cmake无法将 libgtk2.0-dev相依套件进行编译设定,虽然在后续的make流程都能完成,但最后会在最后python程序运行时间无法正确使用如imshow、puttext等画面显示或绘图的函数,并且会在运行时间报错,并且提示需要重新进行cmake。
为了将libgtk2.0-dev相依套件程序安装至系统,笔者初期使用sudo apt-get install libgtk2.0-dev这种方式安装相依套件程序,但系统却又报错,表示还有许多其他相关相依套件有「相依断裂」的问题,笔者尝试再以sudo apt-get install去安装那些相依套件程序,却依然发现更多的「相依断裂」,更糟糕的是还发生「循环相依」,所谓「循环相依」表示其他的相依套件程序又循环相依libgtk2.0-dev。
为了解决这种「相依断裂」与「循环相依」的问题,最后只能透过额外安装「套件安装设定程序」的方式来解决,本文将透过 aptitude 套件程序来解决这个问题。
透过「aptitude」套件程序便可以进行libgtk2.0-dev套件程序安装,以下说明安装流程:
sudo apt-get install aptitude
sudo aptitude install libgtk2.0-dev
三、安装opencv 4.5.0套件
本文使用 opencv 4.5.0 来进行视觉影像接口处理,笔者曾尝试以 sudo apt-get install python-opencv 来安装。但经过检查发现,以这种方式安装的opencv版本是3.6版,虽然简单python程序函式还是可以执行,可是当遇到更进阶的函式如dnn等相关进阶应用时,便会产生函数缺漏的问题,有鉴于此,笔者选择重新以build from source的方式进行安装。
在这里要特别强调一个重要关键,在安装opencv 4.5.0套件程序之前,「一定要」先装好上一步的gtk-2.0相依套件 libgtk2.0-dev,切莫跳过这个重要步骤。
由于opencv 4.5.0的安装过程需要大量的内存运作空间以进行后续的make流程,因此必须先行安装虚拟内存的套件程序,并且将虚拟内存设为10240mb,并且将tinker board 2s重新启动,以下说明虚拟内存设定流程:
sudo apt-getupdate
sudoapt-get upgrade
#安装dphys-swapfile套件程序
sudoapt-get install dphys-swapfile
#以nano编辑 /etc/dphys-swapfile配置文件案
sudonano /etc/dphys-swapfile
#寻找#conf_swapsize=  字符串内容,并且将批注符号# 取消。
#设定conf_swapsize=10240
#离开nano文本编辑器
sudoreboot #重新启动
下载并编译安装opencv 4.5.0,请注意,这个阶段的安装时间非常久,笔者大约安装了近4小时,且在make阶段时tinker board 2s的散热片会产生高温。笔者使用 make -j4 等多核心编译指令来以加快make流程。另外在编译过程务必确保电源稳定,最好拿电风扇帮忙散热,以确保编译过程顺利完成。以下说明opencv 4.5.0的安装流程:
sudoapt-get update
sudoapt-get upgrade
sudoapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-devlibavformat-dev libswscale-dev
sudoapt-get install libjpeg-dev libpng-dev
sudoapt-get install libavcodec-dev libavformat-dev libswscale-dev
sudoapt-get install libgtk2.0-dev libcanberra-gtk* libgtk-3-dev
sudoapt-get install python3-dev python3-numpy python3-pip
sudoapt-get install libtbb2 libtbb-dev libdc1394-22-dev
sudoapt-get install libv4l-dev v4l-utils
sudoapt-get install libopenblas-dev libatlas-base-dev libblas-de
sudoapt-get install liblapack-dev gfortran libhdf5-dev
sudoapt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev
sudoapt-get install protobuf-compiler
sudoapt-get install qt5-default
wget -oopencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
wget -oopencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
unzipopencv.zip
unzipopencv_contrib.zip
mvopencv-4.5.0 opencv
mvopencv_contrib-4.5.0 opencv_contrib
更新并取得 opencv
cd~/opencv
mkdirbuild
cd build
cmake -dcmake_build_type=release
-d cmake_install_prefix=/usr/local
-dopencv_extra_modules_path=~/opencv_contrib/modules
-denable_neon=on
-dwith_openmp=on
-dbuild_tiff=on
-dwith_ffmpeg=on
-dwith_tbb=on
-dbuild_tbb=on
-dbuild_tests=off
-dwith_eigen=off
-dwith_gstreamer=off
-dwith_v4l=on
-dwith_libv4l=on
-dwith_vtk=off
-dwith_qt=on
-dopencv_enable_nonfree=on
-dinstall_c_examples=off
-dinstall_python_examples=off
-dbuild_new_python_support=on
-dbuild_opencv_python3=true
-dopencv_generate_pkgconfig=on
-dbuild_examples=off
-dwith_gtk=on ..
make -j4
sudomake install
sudoldconfig
makeclean
buildand make
接着要透过 .bashrc 设定opencv 4.5.0路径,安装完成opencv 4.5.0之后,必须要设定相关执行路径,若跳过这个步骤,会导致python程序在 import cv2 时产生allocation memory 报错,以下说明 .bashrc 路径设定方式:
cd ~
#以nano文本编辑器编辑 .bashrc配置文件
sudonano ~/.bashrc
#到文件末端将以下叙述补在最后一行
exportld_preload=/usr/lib/aarch64-linux-gnu/libgomp.so.1
#执行 .bashrc 内容
source~/.bashrc
四、安装其他视觉图像处理与图形用户界面套件程序
本段要安装多个乘用的图像处理与 gui 套件
#安装pillow套件程序
cd ~
sudoapt-get update
sudoapt-get upgrade
pip3install setuptools
pip3install pillow
#安装tkinter套件程序
cd ~
sudoapt-get update
sudoapt-get upgrade
sudoapt-get install python3-tk
sudoapt-get install python3-pil.imagetk
#安装imutils套件程序
cd ~
sudoapt-get update
sudoapt-get upgrade
pip3install imutils
五、安装tensorflow 2.4.1 神经网络运算套件程序
tinker board 2s 具有强大的cpu与gpu运算效能,可进行神经网络运算,搭配opencv可以进行各种ai影像辨识的应用,依照tinker board 2s的各种硬件规格,笔者认为神经网络的框架可采用tensorflow 2.4.1来进行神经网络的推论(inference)运算,以下说明套件程序安装流程:
#更新操作系统套件信息
sudoapt-get update
sudoapt-get upgrade
#更新安装pip3套件程序
sudoapt-get install python-pip python3-pip
#移除旧版tensoflow套件程序
sudo pipuninstall tensorflow
sudopip3 uninstall tensorflow
#安装各种系统相依套件程序
sudoapt-get install gfortran
sudoapt-get install libhdf5-dev libc-ares-dev libeigen3-dev
sudoapt-get install libatlas-base-dev libopenblas-dev libblas-dev
sudoapt-get install liblapack-dev
#安装各种python3各种套件程序
sudo -hpip3 install --upgrade setuptools
sudo -hpip3 install pybind11
sudo -hpip3 install wrapt
sudo -hpip3 install termcolor
sudo -hpip3 install cython==0.29.21
sudo -hpip3 install h5py==2.10.0
更新系统套件
#安装下载工具
pip3install gdown
sudo cp~/.local/bin/gdown /usr/local/bin/gdown
#下载tensorflow2.4.1套件程序安装文件
gdownhttps://drive.google.com/uc?id=1wdg8rbi0ph0sq6ttd3zgjdin_wanuglo
#安装tensorflow2.4.1套件程序
sudo -hpip3 install tensorflow-2.4.1-cp37-cp37m-linux_aarch64.whl
安装 tensorflow
六、安装tensorflow-lite runtime 2.5.0 套件程序
对于tinker board 2s / 2gb而言,由于受限于主存储器仅有2gb的缘故,因此对于神经网络进行推论运算时所需使用的主存储器容量,就必须要谨慎运用这有限的容量,若需要在神经网络推论时有较高的运算效能,往往就必须要选择神经网络模型规模较小的模型格式,在tensorflow族系里有种tensorflow-lite格式就是一种模型规模较小的格式,在tensorflow的原厂网站里也特别将tensorflow-lite格式定义适用于物联网应用场域。
以下说明套件程序安装的方式
cd ~
sudoapt-get update
sudoapt-get upgrade
pip3installhttps://github.com/google-coral/pycoral/releases/download/v2.0.0/tflite_runtime-2.5.0.post1-cp37-cp37m-linux_aarch64.whl
更新系统与安装 tf runtime
使用 tfruntime 执行视觉分类
七、安装其他支持神经运算的套件程序scikit-learn
cd ~
sudoapt-get update
sudoapt-get upgrade
sudopip3 install sklearn
八、安装mediapipe python相依套件
google mediapipe 是一款非常热门的 ml 套件,把各种视觉辨识变得更简单好用
sudo aptupdate
sudo aptinstall -y python3-dev protobuf-compiler python3-pip git make libssl-dev
sudopip3 install pip --upgrade
sudopip3 install opencv_contrib_python
gitclone https://github.com/pinto0309/mediapipe-bin && cd mediapipe-bin
./v0.8.4/numpy120x/mediapipe-0.8-cp37-none-linux_aarch64_numpy120x_download.sh
sudopip3 install
cmake-3.20.2-cp37-none-linux_aarch64.whl
numpy-1.20.3-cp37-none-linux_aarch64.whl
mediapipe-0.8-cp37-none-linux_aarch64.whl
sudopip3 install opencv-python dataclasses
安装 mediapipe 与相关套件
mediapipe – facemesh
mediapipe – hand
九、安装pygame套件
https://www.pygame.org/news
sudoaptitude install libsdl-image1.2-dev
wgethttps://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz
sudoapt-get install python-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-devlibsdl1.2-dev libsmpeg-dev python-numpy subversion libportmidi-dev ffmpeglibswscale-dev libavformat-dev libavcodec-dev
sudoapt-get install libfreetype6-dev
pip3install pygame-1.9.6.tar.gz
十、安装audioplayer套件
https://pypi.org/project/audioplayer/
sudoapt-get install python-gst-1.0
sudoapt-get install gir1.2-gstreamer-1.0
sudoapt-get install gstreamer1.0-tools
sudoapt-get install gir1.2-gst-plugins-base-1.0
sudoapt-get install gstreamer1.0-plugins-good
sudoapt-get install gstreamer1.0-plugins-ugly
pip3install audioplayer
pip3install playsound==1.2.2
十一、安装playsound套件
https://pypi.org/project/playsound/
sudoapt-get install python-gst-1.0
sudoapt-get install gir1.2-gstreamer-1.0
sudoapt-get install gstreamer1.0-tools
sudoapt-get install gir1.2-gst-plugins-base-1.0
sudoapt-get install gstreamer1.0-plugins-good
sudoapt-get install gstreamer1.0-plugins-ugly
pip3install playsound==1.2.2
十二、安装i2c接口与pca9685电路驱动套件程序
在操作i2c接口驱动套件程序安装之前,必须先至 tinker-config 系统管理工具启用 i2c 接口服务,之后才能安装相关套件与操作范例程序。
sudo tinker-config
以空格键进行点选(打星号)
完成设定后,选择,并且立刻进行重新启动即可进行后续套件程序的安装。
设定完成之后,继续安装,快完工了!
https://pypi.org/project/smbus2/
pip3install smbus2
pip3install setuptools
sudopip3 install adafruit-circuitpython-servokit
sudopip3 install adafruit-pca9685
总结
本次的安装介绍主要是针对新版核心(debian-10 2.0.3版)进行安装,相关安装流程与较旧版本核心的安装流程略有差异,若是新版核心建议还是按照本篇介绍进行安装,以确保相关的套件流程都可以正确安装与执行。


哪款蓝牙耳机的音质好?2022音质好的蓝牙耳机盘点
私有云的特点
九联科技通过IATF 16949国际汽车管理体系认证
感应LED小夜灯开始成为智能家居的新宠
这家初创公司想颠覆MEMS行业
ASUS Tinker Board 2S新版Debian 10 V2.0.3系统与相依套件安装
同等电压的交流电和直流电哪个对人体伤害大
CMOS图像传感器带来了怎样的新战场
如何在生成的代码中使用UVM Register Layer?
特锐祥(TRX)贴片Y1电容,容量高达10000pF
抹去北汽新能源的标签,借助ARCFOX之名重
小米9/iQOO对比评测: 谁在拍照上更胜一筹?
福田汽车:预计今年商用车市场规模约为400万辆,明年达420万辆-430万辆
jk边沿触发器工作原理
胶囊机器人敲开智慧医疗大门
环保热潮下物联网有什么新机遇
Nreal Light混合现实眼镜斩获“最佳混合现实设备”奖
SMT加工中不可或缺的一种工艺!
研华认证首个ARM-Based Design Partner 携手艾博唯提供可信赖的灵活客制化服务
vivo携手FIRST电影展开启超短片单元手机电影赛道