Wiki

Clone wiki

itron-bsp-manual / tx-features-and-interfaces

TX SOFTWARE PLATFORM MANUAL

TX FEATURES AND INTERFACE


######<< back to Home


Index


Audio play and record

#### 1. Audio Playback Set main volume of audio codec, range: 0-127
#####TX070

$ amixer set PCM 127
#####TX070UL
$ amixer set Master 127
$ amixer set 'Output Mixer HiFi' on

Play audio:
#####TX070 & TX070UL

$ aplay /usr/share/sounds/alsa/Front_Center.wav

Example:
#####TX070

$ amixer set PCM 125
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 125 [98%] [-1.00dB]
  Front Right: Playback 125 [98%] [-1.00dB]
$ aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
#####TX070UL
$ amixer set Master 125
Simple mixer control 'Master',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 125 [98%] [4.00dB]
  Front Right: Playback 125 [98%] [4.00dB]
root@imx6ul-var-dart:~# aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

#### 2. Audio Record and Play via Line-in Jack Record audio
#####TX070 & TX070UL

$ arecord -f cd -d 10 -D hw:0,0 test.wav
Play recorded audio
#####TX070 & TX070UL
$ aplay test.wav 
#### 3. Advanced Controls amixer without a parameter will show all available controls. For example:
#####TX070 & TX070UL
$ amixer
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 125 [98%] [-1.00dB]
  Front Right: Playback 125 [98%] [-1.00dB]
Simple mixer control 'Line',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]

...

Simple mixer control 'Right PGA Mixer Mic3R',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Example:
#####TX070 & TX070UL set contents for one mixer simple control
$ amixer   sset sID P
get contents for one mixer simple control
$ amixer   sget sID


Backlight

1. Run backlight test with brightness settings

TX070

$ cd /sys/class/backlight/backlight.X (number changes)
$ echo 0 > brightness 
$ echo 7 > brightness


Bluetooth

1. Bluetooth boot messages

During boot, Bluetooth kernel messages are received:
TX070

$ dmesg | grep -i Bluetooth
Bluetooth: Core ver 2.18
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCI BCSP protocol initialized
Bluetooth: HCIATH3K protocol initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: BNEP socket layer initialized
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Bluetooth: HIDP socket layer initialized

2. Device identification

After the File system is up, 'hciconfig' should show the connected bluetooth module.
TX070

$ hciconfig hci0 up
$ hciconfig 
hci0:   Type: BR/EDR  Bus: UART
        BD Address: 64:A3:CB:5B:69:F0  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING PSCAN 
        RX bytes:1772 acl:0 sco:0 events:69 errors:0
        TX bytes:1152 acl:0 sco:0 commands:65 errors:0
'hcitool' can be used to show the bluetooth MAC address of the module with the hci connection. NOTE: use 'help' to show commands.
$ hcitool dev
Devices:
        hci0    64:A3:CB:5B:69:F0

3. Bluetooth Management

Manage Bluetooth by typing 'bluetoothctl' and enter the interface. type 'help' to show commands. Connecting a device instructions:
TX070

$ bluetoothctl
[bluetooth]# power on
[bluetooth]# default-agent
[bluetooth]# pairable on

Push the connect button in the device

[bluetooth]# scan on

Copy mac address

[bluetooth]# scan off
[bluetooth]# pair <mac address>

Approve pairing on Device if required

[bluetooth]# trust <mac address>
[bluetooth]# connect <mac address>
[bluetooth]# quit
Example: connecting a Microsoft Bluetooth mouse
TX070
$ bluetoothctl
[NEW] Controller 50:72:24:11:EF:B0 BlueZ 5.28 [default]
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# default-agent
No agent is registered
[bluetooth]# pairable on
Changing pairable on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller 50:72:24:11:EF:B0 Discovering: yes
[NEW] Device 00:1D:D8:39:93:46 Microsoft Bluetooth Notebook Mouse 5000
[bluetooth]# scan off
[CHG] Device 00:1D:D8:39:93:46 RSSI is nil
Discovery stopped
[CHG] Controller 50:72:24:11:EF:B0 Discovering: no
[bluetooth]# pair 00:1D:D8:39:93:46
Attempting to pair with 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Connected: yes
[CHG] Device 00:1D:D8:39:93:46 Modalias: usb:v045Ep0700d0100
[CHG] Device 00:1D:D8:39:93:46 UUIDs:
        00001000-0000-1000-8000-00805f9b34fb
        00001124-0000-1000-8000-00805f9b34fb
        00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 00:1D:D8:39:93:46 Paired: yes
Pairing successful
[CHG] Device 00:1D:D8:39:93:46 Connected: no
[bluetooth]# trust 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Trusted: yes
Changing 00:1D:D8:39:93:46 trust succeeded
[bluetooth]# connect 00:1D:D8:39:93:46
Attempting to connect to 00:1D:D8:39:93:46
[CHG] Device 00:1D:D8:39:93:46 Connected: yes
[bluetooth]# hid-generic 0005:045E:0700.0001: unknown main item tag 0x0
input: Microsoft Bluetooth Notebook Mouse 5000 as /devices/soc0/soc.0/2100000.aips-bus/21e8000.serial/tty/ttymxc1/hci0/hci0:1/0005:045E:0700.0001/input/input1
Connection successful
[bhid-generic 0005:045E:0700.0001: input: BLUETOOTH HID v1.00 Mouse [Microsoft Bluetooth Notebook Mouse 5000] on 50:72:24:11:ef:b0
[bluetooth]# quit
[DEL] Controller 50:72:24:11:EF:B0 BlueZ 5.28 [default]


CAN bus

Connect two boards with appropriate cable
Set up the boards by running the following on each of them:
TX070

$ ip link set can0 up type can bitrate 125000
Board 1:
TX070
$ cansniffer can0
Board 2:
TX070
$ cansend can0 500#1E.10.10


CPU frequency and number of cores

1. CPU cores

There are two ways to disable/enable CPU cores:

a. Add 'maxcpus=n' (n being the number of core you wish to activate),
to the kernel command line (the bootargs from U-boot).
E.g. Assuming you are using our latest U-boot, stop at the Uboot command line and enter:
TX070

$ => setenv kernelargs maxcpus=2

b. To disable/enable cores at kernel runtime:
Disable core X:
TX070

$ echo 0 > /sys/devices/system/cpu/cpuX/online
Enable core X:
TX070
$ echo 1 > /sys/devices/system/cpu/cpuX/online
X is the core number you want to enable/disable, and can range from 0 - 3

To see the active cores run
TX070

$ cat /proc/cpuinfo

2. CPU frequencies

Governors:
There are a few frequency governors which sets the frequency policy. The default frequency governor is "ondemand", which sets the CPU frequency
depending on the current system load.
To list all available governors: TX070

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
For different governors, click on link:
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

Set the current governor:
TX070

echo GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

View current CPU frequency:
TX070

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq


Ethernet

Packages:

$ sudo apt install iperf
$ sudo apt install vsftp
$ sudo apt install openssh-server
Two terminals is needed as host and target.

Iperf server:
TX070

$ ifconfig  (to get the IP address)
$ iperf3 -s
Iperf client:
TX070
$ iperf3 -c <IP_ADDRESS_OF_IPERF_SERVER> -u -b 400M


GPIO

1. Manipulating a single GPIO via /sys/class/gpio

To export the GPIO for userspace:
TX070UL

$ echo 117 > /sys/class/gpio/export
To configure as output:
TX070UL
$ echo out > /sys/class/gpio/gpio117/direction
Set GPIO high:
TX070UL
$ echo 1 > /sys/class/gpio/gpio117/value
Set GPIO low:
TX070UL
$ echo 0 > /sys/class/gpio/gpio117/value
To configure as input:
TX070UL
$ echo in > /sys/class/gpio/gpio117/direction
To read current value:
TX070UL
$ cat /sys/class/gpio/gpio117/value
to Unexport the GPIO:
TX070UL
$ echo 117 > /sys/class/gpio/unexport


I2C

1. Available I2C buses

Access from root
List all available I2C devices:
TX070UL

$ ls -l /dev/i2c-*
System class:
TX070UL
$ ls /sys/class/i2c-dev/

2. Scan Devices per bus

Access from root
Scan bus 0:
TX070UL

$ i2cdetect -y -r 0
Scan bus 1:
TX070UL
$ i2cdetect -y -r 1


RTC

1.Setting the RTC

In order to set the RTC, firstly set the date from Linux shell:

$ date --set="20171231 23:59"
Secondly, set the RTC from Linux shell:
$ hwclock --systohc --utc
Turn off module for 5 minutes and turn on. Check that the system date and time is updated.

2. Using the date and hwclock Command

System clock and hardware clock manipulation commands:

To show hardware clock time
$ hwclock -r

To set hardware clock to system time
$ hwclock -w

To set system time from hardware clock
$ hwclock -s


SPI

Confirgure kernel using:

$ make menuconfig
- add spidev driver: Device Drivers -> SPI support -> <*> User mode SPI dvice driver support
- Add spidev and pinctrl to your device tree

#####TX070

edit arch/arm/boot/dts/imx6qdl-var-dart.dtsi

&ecspi1 {
    fsl,spi-num-chipselects = <1>;
    cs-gpios = <&gpio4 9 0>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_ecspi1_1>;
    status = "okay";

        chip1: spidev@0 {
               compatible = "spidev";
               spi-max-frequency = <12000000>;
               reg = <0>;
        };
/*
        chip2: spidev@1 {
               compatible = "spidev";
               spi-max-frequency = <20000000>;
               reg = <1>;
    };
*/
};

pinctrl_ecspi1_1: ecspi1grp {
    fsl,pins = <
        MX6QDL_PAD_KEY_COL1__ECSPI1_MISO    0x100b1
        MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI    0x100b1
        MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK    0x100b1
        MX6QDL_PAD_KEY_ROW1__GPIO4_IO09      0x80000000
    >;
};
Choose the correct chip select


Suspend

1. Suspend to RAM

Suspending to RAM promotes power savings as it enables the system to go into a low-power state.
This excuses memory, as this is placed in the self-refresh mode for retain-ability of contents.

Suspend to RAM:

$ echo mem > /sys/power/state

2. Wake up

  • Pushing ON/OFF button when presented on the board
  • Pushing the button on the board which has the boolean property "gpio-key, wakeup" set in its device tree node

Example:

$   gpio-keys {
        compatible = "gpio-keys";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio_keys>;

        back {
            label = "Back";
            gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
            linux,code = <KEY_BACK>;
            gpio-key,wakeup;
        };
    };

Current consumption

DART-MX6
- 9mA, 3.7V Li-Po


UART

1. Test external UART

Use minicom for connection
Set the serial to /dev/ttymxc2 loopback or connection with another computer can be used

#### 2. Configure UART4, ttymxc2 #####TX070
Edit arch/arm/boot/dts/imx6qdl-var-som.dtsi
look for:

$ /* ttymxc2 UART */
       &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3_2>;
        fsl,uart-has-rtscts;
        status = "okay";
};
Duplicate it and change the name and the pinctrl name. For Example:
$       &uart4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart4_1>;
        fsl,uart-has-rtscts;
        status = "okay";
};
Duplicate the corresponding pinctrl. Copy :
 $   /* Variscite Uart3 support */
        pinctrl_uart3_2: uart3grp-2 {       /* RX/TX RTS/CTS */
                fsl,pins = <
                        MX6QDL_PAD_EIM_D25__UART3_RX_DATA     0x1b0b1
                        MX6QDL_PAD_EIM_D24__UART3_TX_DATA     0x1b0b1
                        MX6QDL_PAD_EIM_D23__UART3_CTS_B       0x1b0b1
                        MX6QDL_PAD_EIM_EB3__UART3_RTS_B       0x1b0b1
                >;
        };
Into:
$   /* Variscite Uart4 support */
        pinctrl_uart4_1: uart4grp-1 {       /* RX/TX RTS/CTS */
                fsl,pins = <
                        MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA    0x1b0b1
                        MX6QDL_PAD_KEY_COL0__UART4_TX_DATA    0x1b0b1
                        MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B    0x1b0b1
                        MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B    0x1b0b1
                >;
        };

#####TX070UL
In the kernel source code, edit the following device tree file: arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi (In earlier releases the file is named: arch/arm/boot/dts/imx6ul-var-dart.dtsi)
Look for:

$ /* ttymxc2 UART */
&uart3 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart3>;
    fsl,uart-has-rtscts;
    status = "okay";
};
Duplicate it and change the name and the pinctrl. For Example:
$       &uart4 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_uart4>;
    fsl,uart-has-rtscts;
    status = "okay";
};
Duplicate the corresponding pinctrl. Copy :
$       pinctrl_uart2: uart2grp {
         fsl,pins = <
                MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
                MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
                MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS    0x1b0b1
                MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS    0x1b0b1
            >;
        };
Into:
$       pinctrl_uart4: uart4grp {
            fsl,pins = <
                                MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x1b0b1
                                MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x1b0b1
                MX6UL_PAD_ENET1_RX_DATA1__UART4_DCE_CTS 0x1b0b1
                MX6UL_PAD_ENET1_RX_DATA0__UART4_DCE_RTS 0x1b0b1
            >;
        };
Note: The pins here were set arbitrarily. You should set them based on your hardware design, and make sure they are not conflicting with other devices in the device tree.

Continue following the "Build Linux from source code" guide to build only the device trees and to copy them to your SD card.


## USB Host #### 1. USB Storage Device example #####TX070 & TX070UL After connecting a USB device an output similar to:

usb 1-1: new high-speed USB device number 3 using ci_hdrc
usb-storage 1-1:1.0: USB Mass Storage device detected
scsi1 : usb-storage 1-1:1.0
scsi 1:0:0:0: Direct-Access     SanDisk  U3 Cruzer Micro  8.02 PQ: 0 ANSI: 0 CCS
sd 1:0:0:0: [sda] 3907583 512-byte logical blocks: (2.00 GB/1.86 GiB)
sd 1:0:0:0: [sda] Write Protect is off
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write through
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1 sda2
sd 1:0:0:0: [sda] No Caching mode page found
sd 1:0:0:0: [sda] Assuming drive cache: write thr
List USB directory content:
$ ls /run/media/sda1


## USB OTG #### 1. Configuring the USB OTG port with Linux #####TX070 The USB OTG port configuration as either host, peripheral or OTG is set in the device tree of the board. It is determined by the value of the dr_mode property under the usbotg node. dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg"

Note: for the VAR-MX6CustomBoard "otg" is not supported - only "host" and "peripheral".

For example: Follow either the "Build the Linux kernel from source code" or "Customizing the Linux kernel" Wiki pages and edit the the appropriate device tree for your board (imx6dl-var-som-solo-vsc.dts / imx6q-var-dart.dts / imx6qdl-var-som.dtsi / imx6q-var-som-vsc.dts):

$   &usbotg {
        vbus-supply = <&reg_usb_otg_vbus>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbotg_2>;
        disable-over-current;
        /* dr_mode: One of "host", "peripheral" or "otg". Defaults to "otg" */
-       dr_mode = "host";
+       dr_mode = "otg";
        status = "okay";
};

#####TX070UL By default, the USB1 port is configured as host in the device tree, and a USB type-A receptacle is assembled on the VAR-6ULCustomBoard. To use it as peripheral (OTG is not supported in the VAR-6ULCustomBoard) you need to change the value of the dr_mode property under the usbotg1 node in the device tree, and assemble a USB Micro-AB receptacle at J23 on the bottom of the VAR-6ULCustomBoard.

For example: Follow either the "Build the Linux kernel from source code" or "Customizing the Linux kernel" Wiki pages and edit the following device tree file: arch/arm/boot/dts/imx6ul-imx6ull-var-dart-common.dtsi (in very old kernel releases where this file is not available, you should edit arch/arm/boot/dts/imx6ul-var-dart.dtsi instead)

$  &usbotg1 {
-       dr_mode = "host";
+       dr_mode = "peripheral";
    disable-over-current;
        status = "okay";
 };

TX070 &TX070UL

If you build the kernel manually from source code, you should build only the device trees and copy them to your SD card.

Note: You can read the current dr_mode value on a running target, by executing the following command:

$  cat /sys/firmware/devicetree/base/soc/aips-bus@02100000/usb@02184000/dr_mode; echo

2. Using the USB OTG port with Linux

As a peripheral /TX070 & TX070UL

In order to use the board as a peripheral, an appropriate module needs to be loaded. For example, there is an Ethernet gadget module called g_ether, a mass storage gadget called g_mass_storage, a serial gadget called g_serial, etc.

Example using the g_mass_storage module to expose the BOOT partition on our recovery SD card to a PC: Connect a micro-B plug to Standard-A plug cable between the board and a PC, and run the following on the board:

$  umount /dev/mmcblk0p1
$  modprobe g_mass_storage file=/dev/mmcblk0p1
Note: Board configurations can be:
/dev/mmcblk1
instead of:
/dev/mmcblk0
Example:
$  modprobe g_mass_storage file=/dev/mmcblk1p1
or 
$  modprobe g_mass_storage file=/dev/mmcblk0p1


USB Web Camera


Video - playback and capture

1. Install GStreamer on Linux

$ apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools

2. GStreamer Commands

List all available elements:

$ gst-inspect-1.0 
List all available i.MX6 specific elements:
$ gst-inspect-1.0 | grep imx
Detailed help information on a specific element:
$ gst-inspect-1.0 imxeglvivsink

2. Test Pattern Stream

Test pattern allows you to display pre build image/video patterns on the display. It is very useful when you don't have a camera but still want to test GStreamer. Default test pattern:

$ export DISPLAY=:0

$ gst-launch-1.0 videotestsrc ! borderless-window="true" force-aspect-ratio="false"

a) Test pattern with specific parameters on the input element:

$ gst-launch-1.0 videotestsrc pattern=circular ! imxeglvivsink borderless-window="true" force-aspect-ratio="false"
b) Test pattern with specific parameters on the output element:
$ gst-launch-1.0 videotestsrc ! imxeglvivsink window-width="1280" window-height="720" borderless-window="true" force-aspect-ratio="false"
c) Test pattern with specific paramters on the input and output elements
$ gst-launch-1.0 videotestsrc pattern=circular ! imxeglvivsink window-width="1280" window-height="720" borderless-window="true" force-aspect-ratio="false"

3. Camera Loopback

Video stream from a device to display:

$ export DISPLAY=:0
$ gst-launch-1.0 imxv4l2videosrc device=/dev/video0 imx-capture-mode=5 fps-n=30 ! imxeglvivsink  window-width="1920" window-height="1080" borderless-window="true" force-aspect-ratio="false"
Camera support format and resolution information:
gst-inspect-1.0 imxv4l2videosrc.
Example resolutions:
ov5640_mode_VGA_640_480 = 0,
ov5640_mode_QVGA_320_240 = 1,
ov5640_mode_NTSC_720_480 = 2,
ov5640_mode_PAL_720_576 = 3,
ov5640_mode_720P_1280_720 = 4,
ov5640_mode_1080P_1920_1080 = 5 

4. Recording Video

Command:

gst-launch-1.0 imxv4l2videosrc device=$DEVICE num-buffers=300 imx-capture-mode=$MODE ! queue ! imxvpuenc_XXX ! $MUXER ! filesink location=output.$EXTENSION 
Parameter:
• $DEVICE could be set to /dev/video, /dev/video0 or according to the system video input device. • num-buffers - Number of buffers to output before sending EOS. deafult =-1 (unlimited) • $MODE should be set according to camera format and resolution • imxvpuenc_XXX can be imxvpuenc_mpeg4,imxvpuenc_h263, imxvpuenc_h264, and imxvpuenc_jpeg • MUXER can be set as to qtmux, matroskamux, mp4mux, avimux, or flvmux • EXTENSION is filename extension according to the mixer type.

Record video from a camera into a file. Encode it to h264 at a bitrate of 10mbit/s (CBR) 720p:

$ gst-launch-1.0 imxv4l2videosrc device=/dev/video0 imx-capture-mode=4 fps-n=30 num-buffers=300 ! queue ! imxvpuenc_h264 bittrate=10000 ! avimux ! filesink location=test.avi
1080p:
$ gst-launch-1.0 imxv4l2videosrc device=/dev/video0 imx-capture-mode=5 fps-n=30 num-buffers=300 ! queue ! imxvpuenc_h264 bitrate=10000 ! avimux ! filesink location=test.avi

5. Simple Movie play

$ export DISPLAY=:0
$ gst-launch-1.0 playbin uri=file:/run/media/sda1/big_buck_bunny.mp4 

WIFI

1. Managing Wifi using connman

ConnMan is a command-line network manager designed for use with embedded devices and fast resolve times. It is modular through a plugin architecture but has native dhcp and ntp support.

1.1 Enabling and disbling Wifi

To check if wifi is enabled you can run

$ connmanctl technologies
and check for the line that says Powered: True/False.

To power the wifi on you can run

$ connmanctl enable wifi
or if you need to disable it you can run
$ connmanctl disable wifi

1.2 Connecting to an open access point

The commands in this section show how to run connmanctl in command mode.

To scan the network connmanctl accepts simple names called technologies. To scan for nearby wifi networks:

$ connmanctl scan wifi
To list the available networks found after a scan run (example output):
$ connmanctl services
MyNetwork               wifi_dc85de828967_68756773616d_managed_psk
OtherNET                wifi_dc85de828967_38303944616e69656c73_managed_psk
AnotherOne              wifi_dc85de828967_3257495245363836_managed_wep
FourthNetwork           wifi_dc85de828967_4d7572706879_managed_wep
AnOpenNetwork           wifi_dc85de828967_4d6568657272696e_managed_none
Every wifi network is identified by a name composed as
wifi_<hashlocal>_<hashremote>_managed_<encrption>
To connect to an open network, look for wifi networks ending with _managed_none:
$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none
Network names can be tab-completed You should now be connected to the network. Check using ip addr or run
$ connmanctl state.

1.3 Connecting to a protected access point

For protected access points you will need to provide some information to the ConnMan daemon, at the very least a password or a passphrase.

The commands in this section show how to run connmanctl in interactive mode, it is required for running the agent command. To start interactive mode simply type:

$ connmanctl
You then proceed almost as above, first scan for any wifi technologies:
$ connmanctl> scan wifi
To list services:
$ connmanctl> services
MyNetwork               wifi_dc85de828967_68756773616d_managed_psk
OtherNET                wifi_dc85de828967_38303944616e69656c73_managed_psk
AnotherOne              wifi_dc85de828967_3257495245363836_managed_wep
FourthNetwork           wifi_dc85de828967_4d7572706879_managed_wep
AnOpenNetwork           wifi_dc85de828967_4d6568657272696e_managed_none
Now you need to register the agent to handle user requests. The command is:
$ connmanctl> agent on
You now need to connect to one of the protected services.

To do this easily, just use tab completion for the wifi_ service.

If you were connecting to OtherNET in the example above you would type:

$ connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk
The agent will then ask you to provide any information the daemon needs to complete the connection.

The information requested will vary depending on the type of network you are connecting to.

The agent will also print additional data about the information it needs as shown in the example below.

Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk
  Passphrase = [ Type=psk, Requirement=mandatory ]
  Passphrase?
Provide the information requested, in this example the passphrase, and then type:
$ connmanctl> quit
If the information you provided is correct you should now be connected to the protected access point.

1.4 Settings

Settings and profiles are automatically created for networks the user connects to often.

They contain fields for the passphrase, essid and other information.

Profile settings are stored in directories under /var/lib/connman/ by their service name.

To view all network profiles run this command from root shell:

$ cat /var/lib/connman/*/settings


######<< back to Top

######<< back to Home


Updated