Difference between revisions of "Debian Jessie"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
 
(13 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
==Download debian image file==
 
==Download debian image file==
===S5P4418 Boards===
+
===S5P4418 Platform===
Get the following files from:[http://dl.friendlyarm.com/s5p4418release201711 download link],Image filename:<br />
+
Get the following files from:[http://download.friendlyelec.com/s5p4418release201711 download link],Image filename:<br />
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 9: Line 9:
 
|-  
 
|-  
 
|}
 
|}
===S5P6818 Boards===
+
===S5P6818 Platform===
Get the following files from:[http://dl.friendlyarm.com/s5p6818release201711 download link],Image filename:<br />
+
Get the following files from:[http://download.friendlyelec.com/s5p6818release201711 download link],Image filename:<br />
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 16: Line 16:
 
|-  
 
|-  
 
|}
 
|}
 
+
===H3 Platform===
==Working with Debian==
+
Get the following files from::[http://download.friendlyelec.com/nanopim1 download link],Image filename:<br />
===Ethernet Connection===
+
{| class="wikitable"
* If the board is connected to a network via Ethernet before it is powered on, it will automatically obtain an IP after it is powered up.
+
 
+
===Wireless Connection===
+
Under Debian you can manage your network with [[Use NetworkManager to configure network settings|NetworkManager]].<br />
+
After Debian boots click on the network icon on the bottom right of the task bar a NetworkManger menu will pop up and all the available networks will be listed. If there is an active wireless network you will see something similar to the following screenshot:<br />
+
[[File:NetworkManagerIcon.png|frameless|400px|NetworkManagerIcon]]<br />
+
You can click on a WiFI AP and connect your board to it.<br />
+
For more details refer to:[[Use NetworkManager to configure network settings|NetworkManager]].<br />
+
 
+
===Setup Wi-Fi AP===
+
Follow the steps below. Since our OS image by default already has the NetworkManager utility you will be prompted to uninstall it first:<br />
+
<syntaxhighlight lang="bash">
+
sudo turn-wifi-into-apmode yes
+
</syntaxhighlight>
+
After you uninstall the NetworkManager reboot your board.<br />
+
After your board is rebooted run the above commands again and you will be prompted to type in a WIFI's name and password. Type in your wanted name and password<br />
+
<br />
+
If this is successful you will be able to find and connect your board to a WIFI. Login to your board at 192.168.8.1:
+
<syntaxhighlight lang="bash">
+
ssh root@192.168.8.1
+
</syntaxhighlight>
+
Type in a password. In our system the password is "fa".<br />
+
<br />
+
To login smoothly via SSH we recommend you turning off WIFI's power save mode by running the following commands:
+
<syntaxhighlight lang="bash">
+
sudo iwconfig wlan0 power off
+
</syntaxhighlight>
+
You can check your WiFi's mode by running the following command:<br />
+
<syntaxhighlight lang="bash">
+
sudo cat /sys/module/bcmdhd/parameters/op_mode
+
</syntaxhighlight>
+
Number 2 means your WiFi is in AP mode. You can switch to the Station mode by running the following command:<br />
+
<syntaxhighlight lang="bash">
+
sudo turn-wifi-into-apmode no
+
</syntaxhighlight>
+
 
+
===Bluetooth===
+
Here are the steps to transfer a file from T2 to a mobile phone. Run the following command to search a surrounding Bluetooth device:<br />
+
<syntaxhighlight lang="bash">
+
hcitool scan
+
</syntaxhighlight>
+
<br />
+
In our example a mobile phone was detected and the following messages were listed:<br />
+
Scanning ...<br />
+
38:BC:1A:B1:7E:DD      MEIZU MX4<br />
+
<br />
+
These messages indicated that a MEIZU MX4 mobile phone was detected. We then checked the Bluetooth services this phone supported with its MAC address presented in front of its device name<br />
+
<syntaxhighlight lang="bash">
+
sdptool browse 38:BC:1A:B1:7E:DD
+
</syntaxhighlight>
+
Note: you need to use your device's name and its MAC address when you run these commands.<br /><br />
+
The command listed all the services the phone supported. We needed the "OBEX Object Push" service which is for file transfers.<br />
+
Service Name: OBEX Object Push<br />
+
Service RecHandle: 0x1000b<br />
+
Service Class ID List:<br />
+
"OBEX Object Push" (0x1105)<br />
+
Protocol Descriptor List:<br />
+
"L2CAP" (0x0100)<br />
+
"RFCOMM" (0x0003)<br />
+
Channel: 25<br />
+
"OBEX" (0x0008)<br />
+
Profile Descriptor List:<br />
+
"OBEX Object Push" (0x1105)<br />
+
Version: 0x0100<br />
+
<br />
+
From the above messages we could get the channel number 25 for the "OBEX Object Push" service. We input this number to the "ussp-push" by running the following command:
+
<syntaxhighlight lang="bash">
+
ussp-push 38:BC:1A:B1:7E:DD@25 example.jpg example.jpg
+
</syntaxhighlight>
+
Note: you need to use your device's name, its MAC address and channel number when you run these commands.<br /><br />
+
Usually after the above commands are run a popup window will show on the phone that communicates with T2 and you can start file transfers.<br />
+
<br />
+
Common Issues:<br />
+
1) If T2 cannot find a Bluetooth device you can try this command to restart its Bluetooth:<br />
+
<syntaxhighlight lang="bash">
+
rfkill unblock 0
+
</syntaxhighlight>
+
2) If any of these commands is not installed you can try this command to install it:<br />
+
<syntaxhighlight lang="bash">
+
apt-get install bluetooth bluez obexftp openobex-apps python-gobject ussp-push
+
</syntaxhighlight>
+
 
+
===Install Debian Packages===
+
We provide a Debian Jessie image. You can install Jessie's packages by commanding "apt-get". If this is your first installation you need to update the package list by running the following command
+
<syntaxhighlight lang="bash">
+
apt-get update
+
</syntaxhighlight>
+
You can install your preferred packages. For example if you want to install an FTP server you can do this:
+
<syntaxhighlight lang="bash">
+
apt-get install vsftpd
+
</syntaxhighlight>
+
Note: you can change your download server by editting "/etc/apt/sources.list". You can get a complete server list from [http://www.debian.org/mirror/list]. You need to select the one with "armhf".
+
 
+
===Audio Output from HDMI or 3.5mm Jack under Debian===
+
Our default Debian image doesn't support audio output. If you want to enable this function you need to install the alsa package.
+
* Make sure your Debian OS is our latest version and your board has access to the internet;
+
* Power up your board and run the following commands on your board's commandline utility to install the alsa package:
+
<syntaxhighlight lang="bash">
+
apt-get update
+
apt-get install libasound2
+
apt-get install alsa-base
+
apt-get install alsa-utils
+
</syntaxhighlight>
+
* After the installation is done copy a ".wav" audio file to your board, connect your board to a earphone or speaker and try playing this audio file(By default Debian's audio output is from the 3.5mm audio jack):
+
<syntaxhighlight lang="bash">
+
aplay music.wav
+
</syntaxhighlight>
+
* By default Debian's audio output is from the 3.5mm audio jack. If you want audio output from the HDMI you need to change the setting by editing the "/etc/asound.conf" file:
+
<syntaxhighlight lang="bash">
+
pcm.!default {
+
    type hw
+
    card 1
+
    device 0}
+
+
ctl.!default {
+
    type hw
+
    card 1}
+
</syntaxhighlight>
+
card 0 stands for the 3.5mm audio jack and card 1 stands for the HDMI audio. After you make your change reboot your board to make it effective.
+
 
+
 
+
===Login via VNC and SSH===
+
If your board is not connected to a display device you can login to your board from a mobile phone. You need to download and install a "VNC Viewer" from [http://www.realvnc.com/download/ here] on a mobile phone and login to the board via VNC at port 1. Its default password is "fa123456".<br />
+
Here is a screenshot which shows how it looks like when users login to the board from an iPhone via VNC:<br />
+
[[File:iphone6-vnc-nanopi2.png|frameless|400px|VNC to NanoPi2]]
+
<br />
+
In our case our board's IP address is 192.168.1.230. You can login via SSH by running the following commands:<br />
+
<syntaxhighlight lang="bash">
+
$ ssh root@192.168.1.230
+
</syntaxhighlight>
+
The password is fa.
+
 
+
===Test USB WiFi===
+
Our OS system has support for popular USB WiFi drivers. Many USB WiFi modules are plug and play with our system. Here is a list of models we tested;
+
::{| class="wikitable"
+
 
|-
 
|-
|Number||Model     
+
|BOARDNAME-debian-sd8g-YYYYMMDD.img.zip|| Debian8-Desktop
|-
+
|1  ||  RTL8188CUS 802.11n WLAN Adapter   
+
|-
+
|2  ||  RT2070 Wireless Adapter   
+
 
|-  
 
|-  
|3  ||  RT2870/RT3070 Wireless Adapter
 
|-
 
|4  ||  RTL8192CU Wireless Adapter
 
|-
 
|5  ||  mi WiFi mt7601
 
 
|}
 
|}
* Check device list
 
<syntaxhighlight lang="bash">
 
$ nmcli dev
 
DEVICE  TYPE      STATE        CONNECTION       
 
eth0    ethernet  connected    Wired connection 1
 
wlan0  wifi      disconnected  --                                 
 
lo      loopback  unmanaged    --
 
</syntaxhighlight>
 
Note: if the status of a device is "unmanaged" it means that device cannot be accessed by NetworkManager. To make is accessed you need to clear the settings under "/etc/network/interfaces" and reboot your system.
 
 
* Start WiFi
 
<syntaxhighlight lang="bash">
 
$ nmcli r wifi on
 
</syntaxhighlight>
 
 
* Scan Surrounding WiFi Sources
 
<syntaxhighlight lang="bash">
 
$ nmcli dev wifi
 
</syntaxhighlight>
 
 
* Connect to a WiFi Source
 
<syntaxhighlight lang="bash">
 
$ nmcli dev wifi connect "SSID" password "PASSWORD"
 
</syntaxhighlight>
 
The "SSID" and "PASSWORD" need to be replaced with your actual SSID and password.<br />
 
If a connection succeeds it will be automatically setup on next system reboot.<br />
 
<br />
 
For more details about NetworkManager refer to this link:[[Use NetworkManager to configure network settings]]<br />
 
 
===Connect to DVP Camera CAM500B===
 
Note: this function is only supported in Linux-3.4.y<br>
 
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>
 
[[File:NanoPi-M1-cam500a.jpg|frameless|500px|NanoPi-M1-cam500a]] <br>
 
Follow the hardware setup presented in the above picture to 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":
 
<syntaxhighlight lang="bash">
 
$ cd /root/mjpg-streamer
 
$ make
 
$ ./start.sh
 
</syntaxhighlight>
 
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">
 
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
 
</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>
 
[[File:mjpg-streamer-cam500a.png|frameless|600px|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">
 
$ 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
 
</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.
 
 
===Connect to USB Camera(FA-CAM202)===
 
The FA-CAM202 is a 200M USB camera.<br>
 
Refer to this link for more details on how to connect to a FA-CAM202:
 
[[NanoPi_M1#Connect_NanoPi_M1_to_DVP_Camera_CAM500B|Connect NanoPi M1 to DVP Camera CAM500B]] <br>
 
 
===Use OpenCV to Access Camera===
 
* The full name of "OpenCV" is Open Source Computer Vision Library and it is a cross platform vision library.
 
* Make sure your board is connected to the internet and an HDMI monitor, Boot Debian and login.
 
* Install OpenCV libraries:
 
<syntaxhighlight lang="bash">
 
$ apt-get update
 
$ apt-get install libcv-dev libopencv-dev
 
</syntaxhighlight>
 
* Refer to the instructions in the previous sections to make sure the camera works
 
* Compile and run a code sample(Official Code Sample in C++ provided by the OpenCV organization):
 
<syntaxhighlight lang="bash">
 
$ cd /home/fa/Documents/opencv-demo
 
$ make
 
$ ./demo
 
</syntaxhighlight>
 
Here is what you expect to observe:<br>
 
[[File:OpenCV-M1.png|frameless|600px|OpenCV-M1]]
 
 
===Check CPU's Working Temperature (Only Support H3 Platform)===
 
You can use the following command to read H3's temperature and frequency
 
<syntaxhighlight lang="bash">
 
cpu_freq
 
</syntaxhighlight>
 
 
===Check System Information with Rpi-Monitor(Only Support H3 Platform)===
 
Our OS contains the Rpi-Monitor utility with which users can check system information and status.<br>
 
In our case our board's IP was 192.168.1.230 and we typed the following IP in a browser:
 
<syntaxhighlight lang="bash">
 
192.168.1.230:8888
 
</syntaxhighlight>
 
We were directed to the following page:<br>
 
[[File:rpi-monitor.png|frameless|700px|rpi-monitor]] <br>
 
Users can easily check these system information and status.
 
 
===Test GPU (Only Support H3 Platform)===
 
Note: this function is only supported in Allwinner Linux-3.4.y.<br>
 
After OS loads please login from a terminal and run the following command:
 
<syntaxhighlight lang="bash">
 
glmark2-es2
 
</syntaxhighlight>
 
[[File:m1-gpu-glmark2.png|frameless|500px|m1-gpu-glmark2]]
 
  
===Test VPU (Only Support H3 Platform)===
+
{{DebianJessieGeneral}}
Note: this function is only supported in Allwinner Linux-3.4.y<br>
+
==Only Support S5P4418/S5P6818 Platform==
Visit this link [http://pan.baidu.com/s/1eRefpT4 download link] to download files<br>
+
{{DebianJessieS5Pxx18}}
After OS is loaded login from a terminal and run the following commands:
+
==Only Support H3 Platform==
<syntaxhighlight lang="bash">
+
{{DebianJessieAllwinnerH3}}
$ sudo apt-get install mpv
+
$ video_play mpv ./big_buck_bunny_1080p_H264_AAC_25fps_7200K.MP4
+
</syntaxhighlight>
+
In our test it could do hard coding and play 1080P video fluently.
+

Latest revision as of 07:17, 21 February 2022

查看中文

1 Download debian image file

1.1 S5P4418 Platform

Get the following files from:download link,Image filename:

s5p4418-debian-sd8g-20171017.img.zip Debian8-Desktop

1.2 S5P6818 Platform

Get the following files from:download link,Image filename:

s5p6818-debian-sd8g-20171102.img.zip Debian8-Desktop

1.3 H3 Platform

Get the following files from::download link,Image filename:

BOARDNAME-debian-sd8g-YYYYMMDD.img.zip Debian8-Desktop

2 Working with Debian

2.1 Ethernet Connection

  • If the board is connected to a network via Ethernet before it is powered on, it will automatically obtain an IP after it is powered up.

2.2 Wireless Connection

Under Debian you can manage your network with NetworkManager.
After Debian boots click on the network icon on the bottom right of the task bar a NetworkManger menu will pop up and all the available networks will be listed. If there is an active wireless network you will see something similar to the following screenshot:
NetworkManagerIcon
You can click on a WiFI AP and connect your board to it.
For more details refer to:NetworkManager.

For either an SD WiFi or a USB WiFi you can connect it to your board in the same way. The APXX series WiFi chips are SD WiFi chips. By default FriendlyElec's system supports most popular USB WiFi modules. Here is a list of the USB WiFi modules we tested:

Index Model
1 RTL8188CUS/8188EU 802.11n WLAN Adapter
2 RT2070 Wireless Adapter
3 RT2870/RT3070 Wireless Adapter
4 RTL8192CU Wireless Adapter
5 mi WiFi mt7601
6 5G USB WiFi RTL8821CU
7 5G USB WiFi RTL8812AU

You can use the NetworkManager utility to manage network. You can run "nmcli" in the commandline utility to start it. Here are the commands to start a WiFi connection:

  • Change to root
$ su root
  • Check device list
$ nmcli dev

Note: if the status of a device is "unmanaged" it means that device cannot be accessed by NetworkManager. To make it accessed you need to clear the settings under "/etc/network/interfaces" and reboot your system.

  • Start WiFi
$ nmcli r wifi on
  • Scan Surrounding WiFi Sources
$ nmcli dev wifi
  • Connect to a WiFi Source
$ nmcli dev wifi connect "SSID" password "PASSWORD" ifname wlan0

The "SSID" and "PASSWORD" need to be replaced with your actual SSID and password.If you have multiple WiFi devices you need to specify the one you want to connect to a WiFi source with iface
If a connection succeeds it will be automatically setup on next system reboot.

For more details about NetworkManager refer to this link: Use NetworkManager to configure network settings

If your USB WiFi module doesn't work most likely your system doesn't have its driver. For a Debian system you can get a driver from Debian-WiFi and install it on your system. For a Ubuntu system you can install a driver by running the following commands:

$ apt-get install linux-firmware

In general all WiFi drivers are located at the "/lib/firmware" directory.


2.3 Install Debian Packages

We provide a Debian Jessie image. You can install Jessie's packages by commanding "apt-get". If this is your first installation you need to update the package list by running the following command

apt-get update

You can install your preferred packages. For example if you want to install an FTP server you can do this:

apt-get install vsftpd

Note: you can change your download server by editting "/etc/apt/sources.list". You can get a complete server list from [1]. You need to select the one with "armhf".

2.4 Set Audio Device

If your system has multiple audio devices such as HDMI-Audio, 3.5mm audio jack and I2S-Codec you can set system's default audio device by running the following commands.

  • After your board is booted run the following commands to install alsa packages:
$ apt-get update
$ apt-get install libasound2
$ apt-get install alsa-base
$ apt-get install alsa-utils
  • After installation is done you can list all the audio devices by running the following command. Here is a similar list you may see after you run the command:
$ aplay -l
card 0: HDMI
card 1: 3.5mm codec
card 2: I2S codec

"card 0" is HDMI-Audio, "card 1" is 3.5mm audio jack and "card 2" is I2S-Codec. You can set default audio device to HDMI-Audio by changing the "/etc/asound.conf" file as follows:

pcm.!default {
    type hw
    card 0
    device 0
}
 
ctl.!default {
    type hw
    card 0
}

If you change "card 0" to "card 1" the 3.5mm audio jack will be set to the default device.
Copy a .wav file to your board and test it by running the following command:

$ aplay /root/Music/test.wav

You will hear sounds from system's default audio device.
If you are using H3/H5/H2+ series board with mainline kernel, the easier way is using npi-config

2.5 Login via VNC and SSH

If your board is not connected to a display device you can login to your board from a mobile phone. You need to download and install a "VNC Viewer" from here on a mobile phone and login to the board via VNC at port 1. Its default password is "fa123456".
Here is a screenshot which shows how it looks like when users login to the board from an iPhone via VNC:
VNC to NanoPi2
In our case our board's IP address is 192.168.1.230. You can login via SSH by running the following commands:

$ ssh root@192.168.1.230

The password is fa.

2.6 Connect to USB Camera(FA-CAM202)

The FA-CAM202 is a 200M USB camera.
Refer to this link for more details on how to connect to a FA-CAM202: Connect NanoPi M1 to DVP Camera CAM500B
In Debian, click on "other"-->"xawtv" on the left bottom of the GUI and the USB Camera application will be started. After enter "welcome to xawtv!" click on "OK" to start exploring.

2.7 Use OpenCV to Access Camera

  • The full name of "OpenCV" is Open Source Computer Vision Library and it is a cross platform vision library.
  • Make sure your board is connected to the internet and an HDMI monitor, Boot Debian and login.
  • Install OpenCV libraries:
$ apt-get update
$ apt-get install libcv-dev libopencv-dev
  • Refer to the instructions in the previous sections to make sure the camera works
  • Compile and run a code sample(Official Code Sample in C++ provided by the OpenCV organization):
$ cd /home/fa/Documents/opencv-demo
$ make
$ ./demo

3 Only Support S5P4418/S5P6818 Platform

3.1 Connect to DVP Camera CAM500B

The CAM500B camera module is a 5M-pixel camera with DVP interface. For more tech details about it you can refer to Matrix - CAM500B.
Under Debian/Ubuntu a camera utility "nanocams" is available for previewing 40 frames and picture taking. You can try it by following the commands below

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

For more details about the usage of the nanocams run "nanocams -h". You can get its source code from our git hub:

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

4 Only Support H3 Platform

4.1 Connect to DVP Camera CAM500B

The CAM500B camera module is a 5M-pixel camera with DVP interface. For more tech details about it you can refer to Matrix - CAM500B.
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":

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

The mjpg-streamer application is an open source video steam server. After it is successfully started the following messages will be popped up:

 
 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

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
The mjpg-streamer utility uses libjpeg to software-encode steam data. The Linux-4.x based ROM currently doesn't support hardware-encoding. If you use a Linux-3.x based ROM you can use the ffmpeg utility to hardware-encode stream data and this can greatly release CPU's resources and speed up encoding:

$ 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

By default it records a 30-second video. Typing "q" stops video recording. After recording is stopped a test.mp4 file will be generated.

4.2 Check CPU's Working Temperature

You can use the following command to read H3's temperature and frequency

cpu_freq

4.3 Test GPU

Note: this function is only supported in Allwinner Linux-3.4.y.
After OS loads please login from a terminal and run the following command:

glmark2-es2

m1-gpu-glmark2

4.4 Test VPU

Note: this function is only supported in Allwinner Linux-3.4.y
Visit this link download link to download files
After OS is loaded login from a terminal and run the following commands:

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

In our test it could do hard coding and play 1080P video fluently.