惠普(HP)PC 主机 开发环境搭建

参考:


惠普(HP)PC 主机 开发环境搭建_第1张图片

主机购买:https://item.jd.com/7338325.html

1. 安装 Ubuntu 16.04

  • 修改 BIOS:HP 电脑 F10 进BIOS,“禁用” 安全引导模式,“启用” 旧引导模式。
  • U盘启动:开机 按 F9,根据提示选择 Ubuntu 16.04 安装U盘启动。
  • 系统分区:根据实际PC存储磁盘情况进行分区: \boot, , \srv, swap, for bios 等
  • 语言选择: English

1.1 apt-get 安装

# 更新安装包
$ sudo apt-get update
# 安装 ssh-server
$ sudo apt-get install openssh-server
# 支持 exFat 移动硬盘
$ sudo apt-get install exfat-utils
# 安装pip3
$ sudo apt-get install python3-pip
# 安装 ffmpeg
$ sudo apt-get install ffmpeg
# 安装 cmake
$ sudo apt-get install cmake
# 安装 git 
$ sudo apt-get install git
# 安装 JRE,sshpass (ssh 隧道用)
$ sudo apt-get install openjdk-8-jre
$ sudo apt-get install sshpass

1.2 安装 NVIDIA 显卡驱动

关闭图形界面再安装驱动,命令为:

$ sudo service lightdm stop
#或者
$ sudo /etc/init.d/lightdm stop

其他显卡驱动相关,可参考:https://www.jianshu.com/p/a2ed3764e2b8
显卡驱动冲突可能造成 循环登陆问题,解决办法参考:https://www.jianshu.com/p/a2ed3764e2b8

检测需要的显卡驱动版本(CentOS)

# 安装gcc
$ yum -y install gcc-c++
# 添加 EIRepo 源
$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# 安装显卡驱动检测
$ sudo yum install nvidia-detect
# 运行
$ nvidia-detect -v
  Probing for supported NVIDIA devices...
  [10de:1b06] NVIDIA Corporation GP102 [GeForce GTX 1080 Ti]
  This device requires the current 410.78 NVIDIA driver kmod-nvidia

这里提示你需要的显卡驱动版本410.78。

Ubuntu 系统,尝试过安装 yum,再装nvidia-detect,但是失败了。
参考:https://blog.csdn.net/fox_wayen/article/details/78544449
ubuntu 安装yum需要特别谨慎,容易造成系统冲突

驱动下载

[Geforce官网]
[NVIDIA 官网]


安装对应内核版本的kernel-devel

安装驱动需要制定你当前linux内核的对应的kernel-devel。如果找不到,显卡驱动会报错。

# 1. 查看当前内核版本
$ uname -r
# 2. 查看已经安装的内核版本
$ uname -a ; rpm -qa kernel\* | sort
# 3. 安装当前内核版本
$ sudo yum install "kernel-devel-$(uname -r)"
# 注意:如果报错,说找不到,例如: "kernel-devel-3.10.0-957.1.3.el7.x86_64"  
#      你需要自己去搜索这个rpm包,下载到当前目录,然后再安装。
#      完成后在/usr/src/kernels/下生成对应版本的源码
$ ls -al /usr/src/kernels
  drwxr-xr-x 22 root root 4096 Dec 26 18:55 3.10.0-957.1.3.el7.x86_64

安装显卡驱动

$ wget https://us.download.nvidia.com/XFree86/Linux-x86_64/410.78/NVIDIA-Linux-x86_64-410.78.run
$ bash NVIDIA-Linux-x86_64-410.78.run --kernel-source-path=/usr/src/kernels/3.10.0-957.1.3.el7.x86_64

检查显卡驱动是否安装成功

$ nvidia-smi
Thu Dec 27 18:42:11 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.78       Driver Version: 410.78       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:2D:00.0 Off |                  N/A |
| 17%   29C    P0    58W / 250W |      0MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

1.3 安装CUDA

请在不启动图形界面的情况下,安装CUDA以及NVIDIA显卡驱动。
退出和启动图形界面,参考:https://www.jianshu.com/p/a2ed3764e2b8

下载CUDA

注:Tensorflow 1.7 需要用CUDA 9.0 版本。
https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run
https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/1/cuda_9.0.176.1_linux-run
https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/2/cuda_9.0.176.2_linux-run
https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/3/cuda_9.0.176.3_linux-run
https://developer.nvidia.com/compute/cuda/9.0/Prod/patches/4/cuda_9.0.176.4_linux-run

[选择其他需要的 CUDA 版本下载]
选择 runfile 安装CUDA:
我起初选择rpm下载安装,失败了。报的错误是显卡驱动冲突(机器之前有人装过NVIDIA显卡驱动,有版本冲突问题)。我后来用 runfile,成功了。特别注意:runfile可以干掉原先的NVIDIA显卡驱动。

惠普(HP)PC 主机 开发环境搭建_第2张图片

$ sudo bash cuda_9.0.176_384.81_linux.run

注意:安装过程中,选择不重新安装显卡驱动。

CUDA 环境变量配置

PATH=$PATH:$HOME/bin:/usr/local/cuda/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/
CUDA_HOME=/usr/local/cuda
export PATH
export LD_LIBRARY_PATH
export CUDA_HOME

检查cuda是否可用

$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery
./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 8 CUDA Capable device(s)

Device 0: "GeForce GTX 1080 Ti"
  CUDA Driver Version / Runtime Version          10.0 / 9.0
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 11178 ...
...
...
> Peer access from GeForce GTX 1080 Ti (GPU7) -> GeForce GTX 1080 Ti (GPU3) : Yes
> Peer access from GeForce GTX 1080 Ti (GPU7) -> GeForce GTX 1080 Ti (GPU4) : Yes
> Peer access from GeForce GTX 1080 Ti (GPU7) -> GeForce GTX 1080 Ti (GPU5) : Yes
> Peer access from GeForce GTX 1080 Ti (GPU7) -> GeForce GTX 1080 Ti (GPU6) : Yes

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 9.0, NumDevs = 8
Result = PASS

查看 nvcc 版本

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

1.4 安装CUDNN

Tensorflow 1.7 要求 CUDA9.0 要求 CUDNN 7.1
注:Nvidia 会要求注册登陆才能下载,我用我的qq邮箱注册登陆的。
我有过CUDNN官网登陆不上的经历,下载不易,建议保存。

惠普(HP)PC 主机 开发环境搭建_第3张图片

[CUDNN 官网] 下载前需要先注册
下载得到:cudnn-9.0-linux-x64-v7.1.tgz
直接解压到 /usr/local/cuda
主要是两个目录,include 和 lib64

$ cd /usr/local
$ sudo tar -xvf ~/Download/cudnn-9.0-linux-x64-v7.1.tgz

1.5 安装 ffmpeg

优先使用 $ sudo apt-get install ffmpeg
手动安装 真是一个比较痛苦的过程,我就不写了
请参考:https://blog.csdn.net/u010782875/article/details/80679510

安装包下载地址:https://download.csdn.net/download/u010782875/10476579

惠普(HP)PC 主机 开发环境搭建_第4张图片

ffmpeg-4.0.2.tar.bz2
lame-3.100.tar.gz
last_x264.tar.bz2
libdca-0.0.6.tar.bz2
libogg-1.3.3.tar.gz
libvorbis-1.3.3.tar.gz
nasm-2.13.03.tar.xz
xvidcore-1.3.5.tar.gz

装 ffmpeg 参数

$ ./configure --enable-shared --prefix=/usr/local/ffmpeg --enable-libmp3lame --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-postproc --enable-ffserver --enable-ffplay --enable-libx264
$ make
$ make install

配置环境变量:

export PATH=/usr/local/ffmpeg/bin:$PATH

配置动态链接库

sudo vi /etc/ld.so.conf
...
# add
/usr/local/ffmpeg/lib

2. 安装开发环境

2.1. 搭建python 虚拟环境 virtualenv

参考文章:[python三大神器之virtualenv]
虚拟环境有很多好处,例如:
* 想用python3,可以单独建一个python3的环境。不用每次 python、pip 都非要跟着一个小尾巴 3。
* pip install时,省去很多sudo。
建议:root账号建立所有虚拟环境,统一放在/env

$ sudo su
$ pip3 install virtualenv
$ mkdir /env
$ cd /env
$ virtualenv RetailX 
# $ virtualenv -p /anaconda3/bin/python RetailX

# 启动虚拟环境
$ source /env/RetailX/bin/activate

# 取消虚拟环境
$ deactivate

添加 CUDA 环境变量配置

$ vi /env/RetailX/bin/activate
...
# 添加 CUDA 环境变量配置
PATH=$PATH:$HOME/bin:/usr/local/cuda/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/:/usr/local/tensorrt/lib/
CUDA_HOME=/usr/local/cuda
export PATH
export LD_LIBRARY_PATH
export CUDA_HOME

设置自动启动虚拟环境

$ vi ~/.bashrc
# Add
source /env/RetailX/bin/activate

2.2 pip 换源

新版ubuntu要求使用https源,要注意。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

参考:https://www.cnblogs.com/microman/p/6107879.html

永久修改,一劳永逸:
修改 ~/.pip/pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com

2.3 虚拟环境下 pip 安装python开发环境

重要:虚拟环境 pip 安装,必须先 sudo su 到root下,不能使用sudo pip。换源也是给root换源(/root/.bashrc)。

(RetailX) pi@cue-110077:~$ sudo su
(RetailX) root@cue-110077:/home/pi# pip install XXXX 

安装 TensorFlow 1.7

$ pip install tensorflow-gpu==1.7

检测是否安装成功
$ python
>>> import tensorflow as tf
>>> tf.__version__
'1.7.0'
>>> tf.__path__
['/env/RetailX/lib/python3.6/site-packages/tensorflow']
# 不报错

安装OpenCV

$ pip install opencv-python

安装其他

pip install minpy
pip install pillow
pip install keras -U --pre
pip install filterpy
pip install progressbar
pip install urllib3
pip install pycuda
pip install onnx
pip install crypto
pip install libsm6
pip install kafka-python
pip install opencv-python

3 其他安装

3.1 Dlib (GPU版)

记得要在自己的 虚拟 python 环境下安装。
下载DLIB:http://dlib.net/files/dlib-19.16.tar.bz2

$ wget http://dlib.net/files/dlib-19.16.tar.bz2
$ tar xvf dlib-19.16.tar.bz2
$ cd dlib-19.16
$ apt-get install cmake
$ python setup.py install  --yes DLIB_USE_CUDA

3.2 SRS 搭建

  • 安装 SRS 参考 https://github.com/ossrs/srs
  • 修改 RTMP配置: /usr/local/srs/conf/rtmp.conf
#very RTMP
# @see https://github.com/ossrs/srs/wiki/v1_CN_SampleRTMP
# @see full.conf for detail config.
listen              1935;
max_connections     1000;
srs_log_tank        file;
srs_log_file        ./objs/srs.log;
http_api {
    enabled         on;
    listen          1985;
}
http_server {
    enabled         on;
    listen          80;
    dir             ./objs/nginx/html;
}
stats {
    network         0;
    disk            sda sdb xvda xvdb;
}
vhost __defaultVhost__ {
     min_latency     on;
     mr {
          enabled     off;
          #latency     350;
     }
     mw_latency      100;
     #enabled         on;
     gop_cache       off;
     queue_length    10;
     http_remux {
        enabled     on;
        mount [vhost]/[app]/[stream].flv;
        hstrs   on;
     }
}
  • 运行 SRS 服务
$ cd /usr/local/srs/
$ ./objs/srs -c conf/rtmp.conf
  • PC 启动自动运行
$ vi /etc/rc.local
# Add
cd /usr/local/srs/
./objs/srs -c conf/rtmp.conf

3.3 RetailX-Agent 搭建

  • ubuntu16.04修改网卡名称enp2s0为eth0 我们会在这个网卡上去扫描摄像头
    参考:https://blog.csdn.net/wenwenxiong/article/details/52937539

  • 安装 JRE,sshpass (ssh 隧道用)

$ sudo apt-get install openjdk-8-jre
$ sudo apt-get install sshpass
  • 安装 RetailX-Agent
$ sudo su
$ cp -r /home/pi/Downloads/camagent/ /srv/
$ cp -r /home/pi/Downloads/agstream/ /srv/
  • RetailX-Agent 自动升级程序
# 启动自动升级
$ sudo bash /srv/camagent/autoupdate.sh
  • 启动 RetailX-Agent
$ sudo bash /srv/camagent/autoupdate.sh
  • 定时任务
# 定时任务,启动监控程序。
$ vi /var/spool/cron/crontabs/root
# 添加 监控程序 
*/2 * * * * /usr/bin/python /srv/camagent/daemon.py >> /srv/camagent/logs/daemon.log
*/2 * * * * /usr/bin/python /srv/camagent/autoupdate.py >> /srv/camagent/logs/autoupdate.log
# 自动删除日志
20 */1 * * * find /srv/camagent/logs/ -type f -mtime +15 | xargs rm -rf

# 查看定时任务
$  ps -ef | grep java
root      1380     1  0 4月16 ?       00:00:00 /usr/bin/sudo java -jar /srv/camagent/camagent-1.2.2.jar
root      1381     1  0 4月16 ?       00:00:00 /usr/bin/sudo java -jar /srv/camagent/autoupdatejar-1.0.0.jar
root      1382  1380  4 4月16 ?       00:56:16 java -jar /srv/camagent/camagent-1.2.2.jar
root      1383  1381  0 4月16 ?       00:01:36 java -jar /srv/camagent/autoupdatejar-1.0.0.jar

3.4 TensorRT 安装

  • 安装TensorRT 到 /usr/local/tensorrt 目录下
$ cp -r ~/Download/tensorrt/ /usr/local/
$ pip install /usr/local/tensorrt/python/tensorrt-5.0.2.6-py2.py3-none-any.whl
  • 增加环境变量
$ vi /env/RetailX/bin/activate
# add
PATH=$PATH:$HOME/bin:/usr/local/cuda/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64/:/usr/local/tensorrt/lib/
CUDA_HOME=/usr/local/cuda
export PATH
export LD_LIBRARY_PATH
export CUDA_HOME

3.5 Anaconda配置多个Python环境

参考:https://www.jianshu.com/p/7b4c895a8ce5
TensorRT需要python3.5,我们用Anaconda搭建多python版本的环境。

4 Linux 系统迁移

  • Clonezila 方案
    感谢鹏林兄提供:参考:https://www.jianshu.com/p/3255e8e0a55c

  • Docker 方案
    <待续>

你可能感兴趣的:(惠普(HP)PC 主机 开发环境搭建)