EMB-GATE920T Operating System Overview Document information

Versions & Revisions

Revision Date Author Comments 1.0 12/12/2012 M. Pietri First version 1.1 02/05/2013 F. Montorsi Minor fixes 1.2 14/05/2013 F. Montorsi Added default user accounts 1.3 24/05/2013 F. Montorsi Added desc. for SDK 1.6

References

Ref Version Author Title 1 2.6.2 Digia QtCreator IDE (http://qt.digia.com/) 2 Rev. 1.4 Embit Embit Communication Protocol – Generic Documentation 3 5.0.1 VMWare VMWare Player Software (http://www.vmware.com/products/player/)

EMB-GATE920T Operating System Overview (rev 1.3) Page 2 of 9 Index

1 Introduction...... 4 2 Kernel and Drivers...... 4 3 Applications...... 5 3.1 Networking...... 5 3.2 Graphical User Interfaces...... 6 3.3 Development...... 6 4 Default User Accounts...... 8 5 Disclaimer of liability...... 8

EMB-GATE920T Operating System Overview (rev 1.3) Page 3 of 9 Introduction

1 Introduction

This document will briefly describe the software available on the Embit Operating System (OS) pre-loaded on EMB-GATE920T products. Note that such OS is a ad-hoc distribution Embit-specific and contains all tools required to communicate with Embit radio modules and with most standard USB products.

2 Kernel and Drivers

The kernel version of the Linux core upon which the Embit OS runs is 2.6.32; such standard Linux kernal has been adapted in some parts to allow the best performances on the EMB-GATE920T and to ensure the presence of the proper drivers for all Embit modules. The exact version of the kernel can be obtained running on an SSH terminal connected to the EMB-GATE920T the following command: uname -a The result should look like: Linux embgate 2.6.32.2-EMB-GATE920T-v3 #15 PREEMPT Fri Mar 8 13:01:40 CET 2013 armv4tl GNU/Linux Further informations about the specific versions of the SDK pre-loaded on the EMB-GATE920T can be obtained with the command: cat /etc/embit-release whose output should look like: EMBIT_ID=EMB-GATE920T EMBIT_SDK_VERSION=1.6 EMBIT_OS_FLASH_DATE="24 May 2013" A few commands useful to verify the presence of the drivers used to communicate with FTDI-based USB transceivers (e.g., the EMB-Z231USB) and with CC2531-based USB transceivers (e.g., the EMB-Z2531USB) are: modprobe -l | grep ftdi modprobe -l | grep acm which should show that the kernel has the kernel/drivers/usb/serial/ftdi_sio.ko kernel/drivers/usb/class/cdc-acm.ko drivers built-in.

EMB-GATE920T Operating System Overview (rev 1.3) Page 4 of 9 Applications

3 Applications

In this Section some of the most important applications/libraries available on the EMB-GATE920T are briefly described. Note that the list reported here is valid only for the EMB-GATE920T shipped with SDK version 1.6 or higher (the version of your EMB-GATE920T can be found in /etc/embit-release).

3.1 Networking

3.1.1 Lighttpd Web Server

Lighttpd is a lightweight webserver. it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. The EMB-GATE920T comes with lighttpd version 1.4.28, with PHP enabled, to allow the fast development of web applications.

3.1.2 OpenVPN

OpenVPN is a tool which allows to: ● tunnel any IP subnetwork or virtual ethernet adapter over a single UDP or TCP port; ● use all of the encryption, authentication, and certification features of the OpenSSL library to protect your private network traffic as it transits the internet; ● use any cipher, key size, or HMAC digest (for datagram integrity checking) supported by the OpenSSL library; ● choose between static-key based conventional encryption or certificate-based public key encryption; ● use static, pre-shared keys or TLS-based dynamic key exchange; ● use real-time adaptive link compression and traffic-shaping to manage link bandwidth utilization; ● tunnel networks whose public endpoints are dynamic such as DHCP or dial-in clients; ● tunnel networks through connection-oriented stateful firewalls without having to use explicit firewall rules; The EMB-GATE920T comes with OpenVPN version 2.1.3.

EMB-GATE920T Operating System Overview (rev 1.3) Page 5 of 9 Applications

3.1.3 Wi-Fi Configuration Tools

The EMB-GATE920T is shipped with all tools required to connect to Wi-Fi networks; in particular, it comes with wpa_supplicant 0.7.3, which is a free software implementation of an IEEE 802.11i supplicant for Linux, FreeBSD, NetBSD, AROS, and Haiku. In addition to being a full-featured WPA2 supplicant, wpa_supplicant also implements WPA and older wireless LAN security protocols. Features include: ● WPA and full IEEE 802.11i/RSN/WPA2 ● WPA-PSK and WPA2-PSK (pre-shared key) ("WPA-Personal") ● WPA with EAP (e.g., with RADIUS authentication server) ("WPA-Enterprise") ● key management for CCMP, TKIP, WEP (both 104/128 and 40/64 bit) ● RSN: PMKSA caching, pre-authentication Note also that the EMB-GATE920T by default instantiates a wpa_supplicant daemon on the network interface “wlan0” at boot time (see /etc/init.d/S92wifi_wpa script).

3.2 Graphical User Interfaces

3.2.1 4.7.x

Qt is a cross-platform application framework that is widely used for developing application software with a (GUI) (in which cases Qt is classified as a widget toolkit), and also used for developing non-GUI programs such as command-line tools and consoles for servers. Qt is most notably used in KDE, Adobe Photoshop Elements, OPIE, Skype, VLC media player, etc… Qt uses standard C++ but makes extensive use of a special code generator (called the Meta Object Compiler, or moc) together with several macros to enrich the language. Qt can also be used in several other programming languages via language bindings. It runs on the major desktop platforms and some of the mobile platforms. It has extensive internationalization support. Non-GUI features include SQL database access, XML parsing, thread management, network support, and a unified cross-platform API for file handling. Distributed under the terms of the GNU Lesser General Public License (among others), Qt is free and open source software. All editions support a wide range of compilers, including the GCC C++ compiler and the Visual Studio suite. The current built-in version is 4.7.1 for the EMB-GATE920T. Almost all the libraries provided by this development tool are available. Also external tools like QWT are supported and tested.

EMB-GATE920T Operating System Overview (rev 1.3) Page 6 of 9 Applications

3.3 Development

3.3.1 PHP

PHP is a general-purpose scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document. It also has evolved to include a command-line interface capability and can be used in standalone graphical applications. PHP can be deployed on most web servers (like Thttpd) and as a standalone interpreter, on almost every operating system and platform free of charge. PHP was originally created by Rasmus Lerdorf in 1995. The main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification. PHP is free software released under the PHP License which is incompatible with the GNU General Public License (GPL) due to restrictions on the usage of the term PHP. The EMB-GATE920T comes with PHP version 5.2.14.

3.3.2 Python

Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python's syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C, and the language provides constructs intended to enable clear programs on both a small and large scale. Python supports multiple programming paradigms, including object-oriented, imperative and functional programming styles. It features a dynamic type system and automatic memory management and has a large and comprehensive standard library. The EMB-GATE920T comes with Python version 2.4.5.

3.3.3 SSH

Secure Shell or SSH is a network protocol that allows data to be exchanged using a secure channel between two networked devices. The two major versions of the protocol are referred to as SSH1 or SSH-1 and SSH2 or SSH-2. Used primarily on Linux and Unix based systems to access shell accounts, SSH was designed as a replacement for Telnet and other insecure remote shells, which send information, notably passwords, in plaintext, rendering them susceptible to packet analysis. The encryption used by SSH is intended to provide confidentiality and integrity of data over an unsecured network, such as the Internet. The EMB-GATE920T comes with Dropbear SSH client version 0.52.

EMB-GATE920T Operating System Overview (rev 1.3) Page 7 of 9 Applications

3.3.4 SQLite Database

SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard. In contrast to other database management systems, SQLite is not a separate process that is accessed from the client application, but an integral part of it. SQLite uses a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is multitasking concerning reads. Writes can be done only one-at-a-time. It is a popular choice for local/client storage on web browsers. It has many bindings to programming languages. It is arguably the most widely used database engine, as it is used today by several widespread browsers, operating systems, embedded systems among others. The EMB-GATE920T comes with SQLite version 3.

4 Default User Accounts

The Embit Operating System (OS) pre-loaded on EMB-GATE920T products has several user accounts associated to different internal services (the complete list can be obtained from the file /etc/passwd). In general, only two user accounts should be used on the EMB-GATE920T. By default the credentials are: Username default Password defaultPW

for the user account related to normal activities/services running on the EMB-GATE920T, and

Username root Password embitPW

for what concerns the super-user (i.e., the administrator user); note that the “root” user should be used with great care and only to perform operations which cannot be carried out using the “default” user.

5 Disclaimer of liability

The information provided in this and other documents associated to the product might contain technical inaccuracies as well as typing errors. Regulations might also vary in time. Updates to these documents are performed periodically and the information provided in these manuals might change without notice. The user is required to ensure that the documentation is updated and the information contained is valid. Embit reserves the right to

EMB-GATE920T Operating System Overview (rev 1.3) Page 8 of 9 Disclaimer of liability

change any of the technical/functional specifications as well as to discontinue manufacture or support of any of its products without any written announcement.

EMB-GATE920T Operating System Overview (rev 1.3) Page 9 of 9