Minimal/Networking

It's possible to setup Connman based networking without a full-blown GUI tool.

All required tools are in connman-test package, so be sure to include it in your image.

Basic usage
First enable WiFi:

/usr/lib/connman/test/test-connman enable wifi

Wait a moment for scan to settle and list available networks:

/usr/lib/connman/test/test-connman services

Connecting with plain names should work if you do not have unusual characters in the network SSID. If you do, you need to use service identifier like wifi_...

Connecting using Passphrase agent
On one console (Ctrl-Alt-Fn) or xterm launch simple agent:

/usr/lib/connman/test/simple-agent

and leave it there for now.

On second console/xterm trigger the connection process:

/usr/lib/connman/test/test-connman connect wifi_...

Next switch back to simple-agent console/xterm and type Passphrase=yourpassword at the Answer: prompt, like:

Service credentials requested, type cancel to cancel Answer: Passphrase=yourpassword

In a moment you should have the WiFi network up.

Pre Provisioned connection
NOTE: more info here: http://git.kernel.org/cgit/network/connman/connman.git/tree/doc/config-format.txt

You can also configure any connection, so you won't have to use simple-agent method above.

Create a .conf file in /var/lib/connman for instance -

vim /var/lib/connman/home-wifi.config

and add an entry such as this:

[service_home_wifi] Type = wifi Name = my_home_wifi Passphrase = secret

or

[service_tls] Type = wifi SSID = 746c735f73736964 EAP = tls CACertFile = /home/user/.certs/ca.pem ClientCertFile = /home/user/devlp/.certs/client.pem PrivateKeyFile = /home/user/.certs/client.fsid.pem PrivateKeyPassphraseType = fsid Identity = user

Please note that the SSID entry is for hexadecimal encoded SSID

and then restart connman sudo systemctl stop connman.service sudo systemctl start connman.service

Now you can use test-connman like above, but without the need of the simple-agent part.

Configure a Static IP
The ConnMan project provides a daemon for managing internet connections within embedded devices running the Linux operating system. The Connection Manager is designed to be slim and to use as few resources as possible, so it can be easily integrated. It is a fully modular system that can be extended, through plug-ins, to support all kinds of wired or wireless technologies. Also, configuration methods, like DHCP and domain name resolving, are implemented using plug-ins. The plug-in approach allows for easy adaption and modification for various use cases. The command line interface is located in the "connman-tests" package already installed. So to configure a Static IP we must change to connman directory:

cd /usr/lib/connman/test/

and run: ./get-services

The output should look like the following:

[ /net/connman/service/ethernet_mac_address_number_cable ] IPv6.Configuration = { Method=auto Privacy=disabled } AutoConnect = false Proxy.Configuration = { } Name = Wired Nameservers = [ ip_dns_1 ip_dns_2 ] Provider = { } Favorite = true Domains.Configuration = [ ] State = online Proxy = { Method=direct } Nameservers.Configuration = [ ] LoginRequired = 0 IPv6 = { } Domains = [ lan ] Ethernet = { Interface=eth0 MTU=1500 Method=auto Address=xx:xx:xx:xx:xx:xx } Security = [ ] IPv4.Configuration = { Method=dhcp } Type = ethernet Immutable = false IPv4 = { Netmask=255.255.255.0 Gateway=192.168.1.1 Method=dhcp Address=192.168.1.50 }

IMPORTANT: The service ID (ethernet_mac_address_number_cable), DNS nameserver and Gateway IP addresses are in the output.

We will change the configuration first of the IP address to 192.168.1.100 by running: ./set-ipv4-method ethernet_mac_address_number_cable manual 192.168.1.100 255.255.255.0 192.168.1.1

For DNS nameservers we run this command: ./set-nameservers ethernet_mac_address_number_cable ip_dns_1 ip_dns_2

NOTE: There is no need of reboot, after this configuration is made, you will always be given the same IP Address to your Nemo System.