邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统

Posted 相相相同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统相关的知识,希望对你有一定的参考价值。

例程:用SimpleCV实现人脸捕获



本例程在DE1-SoC开发板上运行Ubuntu桌面操作系统并安装SimpleCV,通过编写简单的python代码,找到并圈出图像中含人脸特征的位置。



小序:

 

上周拿到了de1-soc的板子,跟着一篇用simplecv实现人脸捕获的帖子跑了一遍例程。然而帖子年代已久,按他的步骤走,已经有一些地方会出小问题。照着他的思路,我断断续续调了半个星期,终于呈现出结果。


在这里我把步骤详细地罗列出来,希望能对同样刚刚接触这块板子地新手有些帮助,同时给自己一个总结的机会。


废话少说,正文如下:



使用工具:

    PuTTY

    pscp

    win32diskImager



一、准备工作

    1. 下载ubuntu 16.04镜像

    

原帖使用的是3.12Linux kernel的ubuntu镜像。我把这个镜像烧到sd卡开机,在putty上无法正常显示。所以我选择了新的4.5kernel的ubuntu镜像。


 http://download.terasic.com/downloads/cd-rom/de1-soc/linux_BSP/de1soc_ubuntu_1604.zip


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



    2.  向SD卡写入Ubuntu操作系统


打开win32diskImager,选择镜像和设备后,点击写入,等待烧写完成。


例程过程中可能会遇到意料之外的问题,如果无法配置会原来的状态,这时需要重新对SD卡烧写。win+R运行diskpart工具,先用disk list指令找到sd卡(例如编号是disk 1),用select disk 1指令选中,再用clean指令清空sd卡。打开设备管理器-->磁盘管理,选中sd卡,右键重新分区(使用FAT32格式)。完成后即可用win32diskImager工具重新烧写。

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


    3. 下载安装usb-串口驱动


http://www.usb-drivers.org/wp-content/uploads/2014/12/CDM-2.08.28-WHQL-Certified1.zip

        

打开资源管理器找到COM端口号,putty中选择此对应端口,连接方式选择Serial并设置速率为115200,点击保存。我们使用type A to Mini-B usb数据线和PuTTY.exe进行PC和开发板的通信,具体步骤在后面会详细阐述。

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统

    

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


  4. 开机准备。

        确保开发板在断电的状态下,插入SD卡。

        查阅用户手册,我们得知:从sd卡启动linux系统时,启动开关0至4位拨至00000

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



   

接入type A to Mini-B usb数据线,打开putty.exe,选中之前配置好的参数,点击open,观察到putty窗口打开。这时候窗口没有内容,下一步我们准备上电开机。

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统





    


二、进入Ubuntu操作系统并登陆远程桌面


    

    1. 开发板上电,观察到系统开始启动

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


    2. 提示登陆。使用默认的用户名和密码

用户名:root

密码:terasic

                


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


    3. 进入图形界面


由于我身边没有VGA接口的显示器,这里我们用远程桌面登陆。

我们在ubuntu中安装xrdp,并使用windows自带的远程桌面连接。


首先输入指令,更新列表

apt-get update

 

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


更新完成。输入以下指令,安装xrdp

apt-get install xrdp

 


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


进入xrdp登陆界面,输入用户名root和密码terasic登陆


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


可以看到成功进入了Ubuntu系统桌面


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


关闭远程桌面连接。接下来我们开始搭建python开发环境。





三、安装SimpleCV,运行人脸捕获例程

  

1. 输入指令,等待下载和安装,可能需要20-30分钟


安装python支持包,这些程序具体每个有什么用,可以自己去了解,这里就不再赘述。

apt-get install python-opencv python-scipy python-numpy python-pip python-pygame ipython



邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


 

2. 本地下载SimpleCV安装包


原帖用pip指令从github下载。大概是墙的原因,下载速度只有20k/s左右,而且在下载即将结束时大概率报错。


在最初进行到这里的时候我不知道是因为这个问题,而是纠结于修改source.list, dns和配置静态IP,所以走了很多弯路。


最后用梯子满带宽把.zip包下到PC机,再上传给开发板安装,完美解决问题。


https://github.com/ingenuitas/SimpleCV/zipball/master


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



3. 将本地的simplecv安装包上传给开发板。


这一步首先是修改sshd_config文件,否则用root用户进行上传时,会报错access denied。


在putty中输入指令,打开配置文件

vi /etc/ssh/sshd_config

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


找到# Authentication:这段


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统

PermitRootLogin without passwd改为PermitRootLogin yes,保存并退出。输入指令reboot重启系统,以使更改生效。


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


 

4. PC机向开发板上传文件。


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



5. 安装SimpleCV


传输完成后,返回putty可以看到simplecv已被上传到/root目录下

输入指令开始安装

pip install --cacahe-dir .  文件名

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


6. 安装完成,创建文件命名为lena.py,写入代码如下:

from SimpleCV import Image

lena_img = Image("lena.jpg")

faces = lena_img.findHaarFeatures('face')

if faces:

     for face in faces:

                 print "Face at:" +str(face.coordinates())

                 face.draw()

else:

     print "No faces detected."

lena_img.save("lena_face.jpg")

lena_img.show()

input(“Press Enter:”)  


准备有清晰人脸图像的.jpg格式图片文件,把.py文件和.jpg图片从PC机上传至Ubuntu。

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统



邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统


7. 登陆远程桌面,ctrl+alt+t打开终端

    在lena.py和lena.jpg的目录下,输入命令

python lena.py


    观察到结果如下:

邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统







小结:

        上次用linux还是在大二用vcs、verdi跑verilog的时候。这次跑这个例程,时间基本上都花在捣鼓linux上了。

        我用pip install simplecv装SimpleCV的正式版,结果卡在原帖子给的代码faces = lena_img.findHaarFeatures('face')上,好像是因为.findHaarFeatures()这里不被支持。而帖子给出的simplecv版本可以完美运行。

        使用指令pip install https://github.com/ingenuitas/SimpleCV/zipball/master从GitHub下载时,只有20k/s的速度,而且极大几率在下载即将结束时报错。我用梯子把.zip下载到pc,上传到开发板安装,解决问题。

        整个例程并没有用到FPGA相关的东西。在用DE1-SoC跑之前,我先在虚拟机里把例程跑通了一遍。相比之下,这块板子的ARM Cortex-A9要逊色很多。当然只跑linux不应是这块板子该做的事情,在接下来的学习中,将尝试带HPS的例程,并希望能有所收获。


        最后补充点感想。断断续续学了Verilog一年半,在面对大型项目时深感无力。私以为,完全用verilog跑深度学习、卷积神经网络这些简直是妄想,而使用如CPU+FPGA+DSP类似的结构才是正道。

        这块DE1-SoC开发板潜力巨大。这次虽然跟着跑完了这个例程,但深感如此仅仅是SoC的九牛一毛。未来类似CPU+FPGA+DSP这样的结构或许将成为主流,操作系统中,程序令控制变得简单,而fpga负责底层接口的配置和海量数据运算。

        过去写底层Verilog把头低得太久,是时候抬起头看看了。







>>随心情更新 爱看不看<<




http://bbs.eeworld.com.cn/thread-461859-1-1.html


友晶给出的官方英文资料,包括一些说明文档和例程

http://www.terasic.com.cn/cgi-bin/page/archive.pl?Language=China&CategoryNo=182&No=870&PartNo=4


以上是关于邂逅SoC——在de1-soc开发板搭建Ubuntu图形操作系统的主要内容,如果未能解决你的问题,请参考以下文章

DE1-SOC学习

SOC-training image镜像内核文件(DE1-soc软件实验”hello_word")

Makefile文件(DE1-soc软件实验”hello_word")

FPGA DE1-SoC Cyclone V 覆盖设备树

涂鸦三明治BLE SoC 主控板(BT3L) 使用记录

SoC FPGA开发板的FPGA配置数据下载和固化