Difference between revisions of "Debian Jessie/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(测试GPU)
(连接DVP摄像头模块(CAM500B))
Line 254: Line 254:
  
 
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入 192.168.1.230:8080 就能浏览摄像头采集的画面了,效果如下:<br>
 
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入 192.168.1.230:8080 就能浏览摄像头采集的画面了,效果如下:<br>
[[File:mjpg-streamer-cam500a.png|frameless|600px|mjpg-streamer-cam500a]] <br>
+
[[File:mjpg-streamer-cam500a.png|frameless|400px|mjpg-streamer-cam500a]] <br>
 
mjpg-streamer是用libjpeg对摄像头数据进行软编码,你可以使用ffmpeg对摄像头数据进行硬编码,这样能大大降低CPU的占用率并提高编码速度:
 
mjpg-streamer是用libjpeg对摄像头数据进行软编码,你可以使用ffmpeg对摄像头数据进行硬编码,这样能大大降低CPU的占用率并提高编码速度:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">

Revision as of 08:16, 21 December 2017

English

1 Debian系统固件下载

1.1 S5P4418开发板

在这里下载:下载地址,固件文件名:

s5p4418-debian-sd8g-20171017.img.zip Debian8-Desktop系统固件

1.2 S5P6818开发板

在这里下载:下载地址,固件文件名:

s5p6818-debian-sd8g-20171102.img.zip Debian8-Desktop系统固件

2 Debian系统的使用

2.1 连接有线网络

  • Debian系统在启动前,只要接上网线,系统启动后则会自动分配IP地址,不需要额外去配置。

2.2 连接无线网络

Debian系统使用NetworkManager来管理网络。

在Debian的桌面环境下,点击桌面任务栏右下角的网络图标,会弹出 NetworkManger 的菜单,列出当前的网络连接状态,如果有WiFi网络,会列出周边的无线热点,如下图所示:
NetworkManagerIcon
你可以点击菜单上的无线热点,即可连接到该热点,如果热点是加密的,会弹出密码输入框提示你输入密码。
想进一步了解网络连接相关的内容,可参考这个页面:NetworkManager

2.3 配置Wi-Fi无线热点

先执行以下命令,默认情况下如果系统中安装了NetworkManager,会提示你先卸载NetworkManager:

sudo turn-wifi-into-apmode yes

卸载NetworkManager完成后,按提示重启开发板。
重启后,再执行上面的命令一次,这次会提示你输入WiFi热点的名称和密码,按提示操作即可。

操作成功后,你可以在电脑上搜索并连接热点,然后通过192.168.8.1这个地址来登录开发板:

ssh root@192.168.8.1

在提示输入密码时,输入预设的密码fa,即可登入。

为了保证ssh的流畅,我们用以下命令关闭wifi的省电模式:

sudo iwconfig wlan0 power off

WiFi工作模式可通过以下命令查询:

sudo cat /sys/module/bcmdhd/parameters/op_mode

输出为数字2则表示当前处于无线热点模式,要切换回普通的Station模式,输入如下命令:

sudo turn-wifi-into-apmode no

2.4 使用蓝牙传输文件

以传输文件到手机为例进行说明,首先,将你的手机蓝牙设置为可侦测状态,然后执行以下命令开始蓝牙搜索:

hcitool scan


搜索到设备时,结果举例如下:
Scanning ...
38:BC:1A:B1:7E:DD MEIZU MX4

这表示搜索到一台名为MEIZU MX4的手机,我们记下手机名称前面的MAC地址,然后用sdptool命令查看该手机支持的蓝牙服务:

sdptool browse 38:BC:1A:B1:7E:DD

注:上述命令中的MAC地址请替换成手机实际的

这个命令会详细列出手机蓝牙所支持的协议,我们需要关心的是一个名为 OBEX Object Push 的文件传输服务,以MEIZU MX4手机为例,其显示结果如下所示:
Service Name: OBEX Object Push
Service RecHandle: 0x1000b
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 25
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

从上面的信息可以看到,这个手机的OBEX Object Push服务的所用的频道是25, 我们需要将它传递给ussp-push命令,最后发起文件传输请求的命令如下:

ussp-push 38:BC:1A:B1:7E:DD@25 example.jpg example.jpg

注:上述命令中的MAC地址、频道和文件名请替换成实际的

执行上述命令后,请留意手机屏幕,正常情况下手机会弹出配对和接收文件的提示,确定后就开始文件传輪了。

蓝牙常见问题:
1) 开发板上找不到蓝牙设备, 可尝试用以下命令开启蓝牙:

rfkill unblock 0

2) 提示找不到相关命令,可尝试用以下命令安装相关软件:

apt-get install bluetooth bluez obexftp openobex-apps python-gobject ussp-push

2.5 安装Debian软件包

我们提供的是标准的Debian jessie系统,你可以使用apt-get等命令来安装软件包,如果板子是首次运行,需要先用以下命令更新软件包列表:

apt-get update

然后就可以安装软件包了,例如要安装ftp服务器,使用以下命令:

apt-get install vsftpd

如果软件包下载速度不理想,你可以编辑 /etc/apt/sources.list 更换一个更快的源服务器,这个网址[1]有一份完整的源镜像服务器列表,注意要选用一个带armhf架构的。

2.6 Debian系统HDMI或者3.5mm音频设备输出声音

Debian系统默认接HDMI或者3.5mm耳机座没有输出声音,因为系统缺省没安装声音部分的安装包。如希望HDMI或者3.5mm耳机座接音频设备输出声音,需要给系统安装上缺省的alsa包。

  •  首先,保证你的板子刷的是最新Debian固件,并且能连外网;
  •  启动板子后,执行以下步骤安装alsa包:
apt-get update
apt-get install libasound2
apt-get install alsa-base
apt-get install alsa-utils
  • 安装好需要的库后,拷贝一首 .wav 格式的音乐到开发板上,接上耳机或扬声器,播放音乐( Debian系统默认从3.5mm耳机座输出声音):
aplay music.wav
  • Debian系统默认从3.5mm耳机座输出声音,想从HDMI输出需要修改文件系统上的配置文件/etc/asound.conf如下:
pcm.!default {
    type hw
    card 1
    device 0}
 
ctl.!default {
    type hw
    card 1}

card 0代表3.5mm耳机孔,card 1代表HDMI音频。设置完成后需要重启系统HDMI即可输出声音。

2.7 通过VNC和SSH登录系统

如果你不想连接HDMI,可以使用手机或电脑到这里下载并安装一个名为VNC Viewer的软件,用VNC连接到开发板,默认的端口号为1,密码为:fa123456 。
以下是在iPhone上用VNC登录的画面:
VNC to NanoPi2
如果你不想连接HDMI和串口模块,可以通过SSH协议登录系统。假设通过路由器查看到开发板的IP地址为192.168.1.230,你可以在PC机上执行如下命令登录系统:

$ ssh root@192.168.1.230

密码为fa。

2.8 连接USB WiFi

系统已经支持市面上众多常见的USB WiFi,想知道你的USB WiFi是否可用只需将其接在开发板上即可,已测试过的USB WiFi型号如下:

序号 型号
1 RTL8188CUS/8188EU 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 小米WiFi mt7601
  • 查看网络设备列表
$ nmcli dev
DEVICE  TYPE      STATE         CONNECTION         
eth0    ethernet  connected     Wired connection 1 
wlan0   wifi      disconnected  --                                  
lo      loopback  unmanaged     --

注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.

  • 开启WiFi
$ nmcli r wifi on
  • 扫描附近的 WiFi 热点
$ nmcli dev wifi
  • 连接到指定的 WiFi 热点
$ nmcli dev wifi connect "SSID" password "PASSWORD"

请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。

更详细的NetworkManager使用指南可参考这篇维基:Use NetworkManager to configure network settings

2.9 连接USB摄像头模块(FA-CAM202)

FA-CAM202是一款200万像素的USB摄像头模块。
连接摄像头后,在Debian系统点击左下角的菜单键“Other”-->xawtv,打开USB Camera软件。进入“welcome to xawtv!”,选择OK即可进行拍照。

2.10 连接摄像头测试OpenCV

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。
执行以下步骤测试OpenCV:

  • 连接网线,然后启动系统,在HDMI界面下进行登录操作。
  • 安装opencv库,执行命令:
$ apt-get update
$ apt-get install libcv-dev libopencv-dev
  • 参考前面章节,确保摄像头工作正常:
  • 运行OpenCV官方C++示例代码,执行下列命令编译运行:
$ cd /home/fa/Documents/opencv-demo
$ make
$ ./demo

3 以下内容仅适用于S5P4418/S5P6818平台

3.1 连接DVP摄像头模块(CAM500B)

CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B
Debian/Ubuntu系统集成了命令行的摄像头示例程序nanocams,登录后输入以下命令即可预览40桢然后拍照保存为指定的文件。

sudo nanocams -p 1 -n 40 -c 4 -o IMG001.jpg

更详细的命令行参数可执行命令“nanocams -h”。
如果要下载源代码,运行以下命令即可获得:

git clone https://github.com/friendlyarm/nexell_linux_platform.git

4 以下内容仅适用于H3平台

4.1 连接DVP摄像头模块(CAM500B)

注意: 该功能仅支持使用Linux-3.4.y的系统固件。
CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B
连接CAM500B,然后上电启动系统,连接网络,以root用户登录终端并编译运行mjpg-streamer:

$ cd /root/mjpg-streamer
$ make
$ ./start.sh

mjpg-streamer是一个开源的网络视频流服务器,在板子上成功运行mjpg-streamer后会打印下列信息:

 
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 1280 x 720
 i: Frames Per Second.: 30
 i: Format............: YUV
 i: JPEG Quality......: 90
 o: www-folder-path...: ./www/
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入 192.168.1.230:8080 就能浏览摄像头采集的画面了,效果如下:
mjpg-streamer-cam500a
mjpg-streamer是用libjpeg对摄像头数据进行软编码,你可以使用ffmpeg对摄像头数据进行硬编码,这样能大大降低CPU的占用率并提高编码速度:

$ ffmpeg -t 30 -f v4l2 -channel 0 -video_size 1280x720 -i /dev/video0 -pix_fmt nv12 -r 30 -b:v 64k -c:v cedrus264 test.mp4

默认会录制30秒的视频,输入q能终止录制。录制完成后会在当前目录生成一个名为test.mp4的视频文件,可将其拷贝到PC上进行播放验证。

4.2 命令行查看CPU工作温度

在串口终端执行如下命令,可以快速地获取CPU的当前温度和运行频率等信息:

cpu_freq

4.3 通过Rpi-Monitor查看系统状态

系统里已经集成了Rpi-Monitor,该服务允许用户在通过浏览器查看开发板系统状态。
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入下述地址:

192.168.1.230:8888

可以进入如下页面:
rpi-monitor
用户可以非常方便地查看到系统负载、CPU的频率和温度、可用内存、SD卡容量等信息。

4.4 测试GPU

注意: 该功能仅支持使用Linux-3.4.y的系统固件。
启动系统,在HDMI界面下进行登录操作,打开终端并运行命令:

$ glmark2-es2

测试效果如下:
m1-gpu-glmark2

4.5 测试VPU

注意: 该功能仅支持使用Linux-3.4.y的系统固件。
访问此处下载地址的test-video目录下载视频文件,启动系统,在HDMI界面下登录系统,打开终端并运行命令:

$ sudo apt-get install mpv
$ video_play mpv ./big_buck_bunny_1080p_H264_AAC_25fps_7200K.MP4

经测试,可流畅硬解播放1080p视频。