Difference between revisions of "Template:FriendlyCoreAllwinnerH3"

From FriendlyELEC WiKi
Jump to: navigation, search
(Created page with "===Run Qt Demo=== Run the following command<br /> <syntaxhighlight lang="bash"> $ sudo /opt/QtE-Demo/run.sh </syntaxhighlight> Here is what you expect to observe. This is an [...")
 
(updated by API)
 
(42 intermediate revisions by 4 users not shown)
Line 1: Line 1:
===Run Qt Demo===
+
{{#switch: {{{1}}}
Run the following command<br />
+
| NanoPi-M1 =
<syntaxhighlight lang="bash">
+
$ sudo /opt/QtE-Demo/run.sh
+
</syntaxhighlight>
+
Here is what you expect to observe. This is an [https://github.com/friendlyarm/QtE-Demo open source Qt Demo]:<br />
+
[[File:K2-QtE.png|frameless|400px|K2-QtE]]<br />
+
 
+
 
===Connect to DVP Camera CAM500B===
 
===Connect to DVP Camera CAM500B===
Note: this function is only supported in Linux-3.4.y<br>
+
{{FriendlyCoreAllwinner-DVPCam|NanoPi-M1}}
The CAM500B camera module is a 5M-pixel camera with DVP interface. For more tech details about it you can refer to [[Matrix - CAM500B]].<br>
+
| NanoPi-M1-Plus =
connect your H3 board to a CAM500B. Then boot OS, connect your board to a network, log into the board as root and run "mjpg-streamer":
+
===Connect to DVP Camera CAM500B===
 +
{{FriendlyCoreAllwinner-DVPCam|NanoPi-M1-Plus}}
 +
| NanoPi-NEO-Air = 
 +
===Connect to DVP Camera CAM500B===
 +
{{FriendlyCoreAllwinner-DVPCam|NanoPi-NEO-Air}}
 +
| NanoPi-Duo2 = 
 +
===Connect to DVP Camera OV5640===
 +
{{FriendlyCoreAllwinner-DVPCam|NanoPi-Duo2}}
 +
}}
 +
 
 +
===Connect to USB Camera(FA-CAM202)===
 +
The FA-CAM202 is a 200M USB camera. Connect your board to camera module. Then boot OS, connect your board to a network, log into the board as root and run "mjpg-streamer":
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ cd /root/mjpg-streamer
+
$ cd /root/C/mjpg-streamer
 
$ make
 
$ make
 
$ ./start.sh
 
$ ./start.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
The mjpg-streamer application is an open source video steam server. After it is successfully started the following messages will be popped up:
+
 
 +
You need to change the start.sh script and make sure it uses a correct /dev/videoX node. You can check your camera's node by running the following commands:
 +
<syntaxhighlight lang="bash">
 +
$ apt-get install v4l-utils
 +
$ v4l2-ctl -d /dev/video0 -D
 +
Driver Info (not using libv4l2):
 +
        Driver name  : uvcvideo
 +
        Card type    : HC 3358+2100: HC 3358+2100  / USB 2.0 Camera: USB 2.0 Camera
 +
        Bus info      : usb-1c1b000.usb-1
 +
...
 +
</syntaxhighlight>
 +
The above messages indicate that "/dev/video0" is camera's device node.The mjpg-streamer application is an open source video steam server. After it is successfully started the following messages will be popped up:
 
<syntaxhighlight lang="bash">  
 
<syntaxhighlight lang="bash">  
 +
$ ./start.sh
 
  i: Using V4L2 device.: /dev/video0
 
  i: Using V4L2 device.: /dev/video0
 
  i: Desired Resolution: 1280 x 720
 
  i: Desired Resolution: 1280 x 720
Line 29: Line 46:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
In our case the board's IP address was 192.168.1.230. We typed 192.168.1.230:8080 in a browser and were able to view the images taken from the camera's. Here is what you would expect to observe:<br>
+
start.sh runs the following two commands:
[[File:mjpg-streamer-cam500a.png|frameless|400px|mjpg-streamer-cam500a]] <br>
+
The mjpg-streamer soft-encodes data with libjpeg and you can hard-encode its data with ffmpeg which will greatly increase CPU's efficiency and speed up data encoding:
+
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
$ ffmpeg -t 30 -f v4l2 -channel 0 -video_size 1280x720 -i /dev/video0 -pix_fmt nv12 -r 30 \
+
export LD_LIBRARY_PATH="$(pwd)"
        -b:v 64k -c:v cedrus264 test.mp4
+
./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -y 1 -r 1280x720 -f 30 -q 90 -n -fb 0" -o "./output_http.so -w ./www"
 
</syntaxhighlight>
 
</syntaxhighlight>
By default it records a 30-second video. Typing "q" stops video recording. After recording is stopped a test.mp4 file will be generated.
+
Here are some details for mjpg_streamer's major options:<br>
 +
-i: input device. For example "input_uvc.so" means it takes input from a camera;<br>
 +
-o: output device. For example "output_http.so" means the it transmits data via http;<br>
 +
-d: input device's subparameter. It defines a camera's device node;<br>
 +
-y: input device's subparameter. It defines a camera's data format: 1:yuyv, 2:yvyu, 3:uyvy 4:vyuy. If this option isn't defined MJPEG will be set as the data format;<br>
 +
-r: input device's subparameter. It defines a camera's resolution;<br>
 +
-f: input device's subparameter. It defines a camera's fps. But whether this fps is supported depends on its driver;<br>
 +
-q: input device's subparameter. It defines the quality of an image generated by libjpeg soft-encoding;<br>
 +
-n: input device's subparameter. It disables the dynctrls function;<br>
 +
-fb: input device's subparameter. It specifies whether an input image is displayed at "/dev/fbX";<br>
 +
-w: output device's subparameter. It defines a directory to hold web pages;<br><br>
 +
In our case the board's IP address was 192.168.1.230. We typed 192.168.1.230:8080 in a browser and were able to view the images taken from the camera's. Here is what you would expect to observe:<br>
 +
[[File:mjpg-streamer-cam500a.png|frameless|400px|mjpg-streamer-cam500a]] <br>
  
 
===Check CPU's Working Temperature===
 
===Check CPU's Working Temperature===
You can use the following command to read H3's temperature and frequency
+
You can get CPU's working temperature by running the following command:
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="text">
cpu_freq
+
$ cpu_freq
 +
Aavailable frequency(KHz):
 +
        480000 624000 816000 1008000
 +
Current frequency(KHz):
 +
        CPU0 online=1 temp=26548C governor=ondemand freq=624000KHz
 +
        CPU1 online=1 temp=26548C governor=ondemand freq=624000KHz
 +
        CPU2 online=1 temp=26548C governor=ondemand freq=624000KHz
 +
        CPU3 online=1 temp=26548C governor=ondemand freq=624000KHz
 +
</syntaxhighlight>
 +
This message means there are currently four CPUs working. All of their working temperature is 26.5 degree in Celsius and each one's clock is 624MHz.<br>
 +
Set CPU frequency:
 +
<syntaxhighlight lang="text">
 +
$ cpu_freq -s 1008000
 +
Aavailable frequency(KHz):
 +
        480000 624000 816000 1008000
 +
Current frequency(KHz):
 +
        CPU0 online=1 temp=36702C governor=userspace freq=1008000KHz
 +
        CPU1 online=1 temp=36702C governor=userspace freq=1008000KHz
 +
        CPU2 online=1 temp=36702C governor=userspace freq=1008000KHz
 +
        CPU3 online=1 temp=36702C governor=userspace freq=1008000KHz
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
<!--
 
===Check System Information with Rpi-Monitor===
 
===Check System Information with Rpi-Monitor===
 
Our OS contains the Rpi-Monitor utility with which users can check system information and status.<br>
 
Our OS contains the Rpi-Monitor utility with which users can check system information and status.<br>
Line 53: Line 100:
 
[[File:rpi-monitor.png|frameless|500px|rpi-monitor]] <br>
 
[[File:rpi-monitor.png|frameless|500px|rpi-monitor]] <br>
 
Users can easily check these system information and status.
 
Users can easily check these system information and status.
 +
-->
 +
 +
{{#switch: {{{1}}}
 +
| NanoPi-R1 =
 +
<!-- don't have IR-Receiver-->
 +
| #default =
 +
===Test Infrared Receiver===
 +
{{Linux-IR-Receiver}}
 +
}}
 +
 +
{{#switch: {{{1}}}
 +
| NanoPi-R1
 +
| NanoPi-R1S-H3
 +
| NanoPi-R1S-H5
 +
| NanoPi-Duo2
 +
| ZeroPi =
 +
<!-- do nothing -->
 +
| #default =
 +
===Run Qt Demo===
 +
Run the following command<br />
 +
<syntaxhighlight lang="bash">
 +
$ sudo /opt/QtE-Demo/run.sh
 +
</syntaxhighlight>
 +
Here is what you expect to observe. This is an [https://github.com/friendlyarm/QtE-Demo open source Qt Demo]:<br />
 +
[[File:K2-QtE.png|frameless|400px|K2-QtE]]<br />
 +
}}
 +
 +
{{UbuntuXenial-Armhf-Install-Docker}}
 +
{{#switch: {{{1}}}
 +
| NanoPi-R1 =
 +
===Using RTC===
 +
NanoPi-R1提供了RTC电池接口,使用系统的RTC功能需要连接CR2032带线RTC纽扣电池给板子的RTC电路供电,电池连接如下图所示:<br />
 +
[[File:NanoPi R1-RTC-BAT-en.png|frameless|350px|]]<br />
 +
[http://wiki.friendlyelec.com/wiki/images/c/c5/1.25mm-2A.pdf Dimensional diagram of on board RTC battery connector ]
 +
***待完善****
 +
}}

Latest revision as of 06:33, 4 July 2022


1 Connect to USB Camera(FA-CAM202)

The FA-CAM202 is a 200M USB camera. Connect your board to camera module. Then boot OS, connect your board to a network, log into the board as root and run "mjpg-streamer":

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

You need to change the start.sh script and make sure it uses a correct /dev/videoX node. You can check your camera's node by running the following commands:

$ apt-get install v4l-utils
$ v4l2-ctl -d /dev/video0 -D
Driver Info (not using libv4l2):
        Driver name   : uvcvideo
        Card type     : HC 3358+2100: HC 3358+2100  / USB 2.0 Camera: USB 2.0 Camera
        Bus info      : usb-1c1b000.usb-1
	...

The above messages indicate that "/dev/video0" is camera's device node.The mjpg-streamer application is an open source video steam server. After it is successfully started the following messages will be popped up:

 
$ ./start.sh
 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

start.sh runs the following two commands:

export LD_LIBRARY_PATH="$(pwd)"
./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -y 1 -r 1280x720 -f 30 -q 90 -n -fb 0" -o "./output_http.so -w ./www"

Here are some details for mjpg_streamer's major options:
-i: input device. For example "input_uvc.so" means it takes input from a camera;
-o: output device. For example "output_http.so" means the it transmits data via http;
-d: input device's subparameter. It defines a camera's device node;
-y: input device's subparameter. It defines a camera's data format: 1:yuyv, 2:yvyu, 3:uyvy 4:vyuy. If this option isn't defined MJPEG will be set as the data format;
-r: input device's subparameter. It defines a camera's resolution;
-f: input device's subparameter. It defines a camera's fps. But whether this fps is supported depends on its driver;
-q: input device's subparameter. It defines the quality of an image generated by libjpeg soft-encoding;
-n: input device's subparameter. It disables the dynctrls function;
-fb: input device's subparameter. It specifies whether an input image is displayed at "/dev/fbX";
-w: output device's subparameter. It defines a directory to hold web pages;

In our case the board's IP address was 192.168.1.230. We typed 192.168.1.230:8080 in a browser and were able to view the images taken from the camera's. Here is what you would expect to observe:
mjpg-streamer-cam500a

2 Check CPU's Working Temperature

You can get CPU's working temperature by running the following command:

$ cpu_freq 
Aavailable frequency(KHz):
        480000 624000 816000 1008000
Current frequency(KHz):
        CPU0 online=1 temp=26548C governor=ondemand freq=624000KHz
        CPU1 online=1 temp=26548C governor=ondemand freq=624000KHz
        CPU2 online=1 temp=26548C governor=ondemand freq=624000KHz
        CPU3 online=1 temp=26548C governor=ondemand freq=624000KHz

This message means there are currently four CPUs working. All of their working temperature is 26.5 degree in Celsius and each one's clock is 624MHz.
Set CPU frequency:

$ cpu_freq -s 1008000
Aavailable frequency(KHz):
        480000 624000 816000 1008000
Current frequency(KHz):
        CPU0 online=1 temp=36702C governor=userspace freq=1008000KHz
        CPU1 online=1 temp=36702C governor=userspace freq=1008000KHz
        CPU2 online=1 temp=36702C governor=userspace freq=1008000KHz
        CPU3 online=1 temp=36702C governor=userspace freq=1008000KHz


3 Test Infrared Receiver

Note: Please Check your board if IR receiver exist.
By default the infrared function is disabled you can enable it by using the npi-config utility:

$ npi-config
    6 Advanced Options     Configure advanced settings
        A8 IR              Enable/Disable IR
            ir Enable/Disable ir[enabled]

Reboot your system and test its infrared function by running the following commands:

$ apt-get install ir-keytable
$ echo "+rc-5 +nec +rc-6 +jvc +sony +rc-5-sz +sanyo +sharp +mce_kbd +xmp" > /sys/class/rc/rc0/protocols   # Enable infrared
$ ir-keytable -t
Testing events. Please, press CTRL-C to abort.

"ir-keytable -t" is used to check whether the receiver receives infrared signals. You can use a remote control to send infrared signals to the receiver. If it works you will see similar messages as follows:

1522404275.767215: event type EV_MSC(0x04): scancode = 0xe0e43
1522404275.767215: event type EV_SYN(0x00).
1522404278.911267: event type EV_MSC(0x04): scancode = 0xe0e42
1522404278.911267: event type EV_SYN(0x00).

4 Run Qt Demo

Run the following command

$ sudo /opt/QtE-Demo/run.sh

Here is what you expect to observe. This is an open source Qt Demo:
K2-QtE

5 How to install and use docker (for armhf system)

5.1 How to Install Docker

Run the following commands:

sudo apt-get update
sudo apt-get install docker.io

5.2 Test Docker installation

Test that your installation works by running the simple docker image:

git clone https://github.com/friendlyarm/debian-jessie-arm-docker
cd debian-jessie-arm-docker
./rebuild-image.sh
./run.sh