Skip to content

Batteries Included

Calin Crisan edited this page Nov 20, 2022 · 23 revisions

thingOS comes with many useful services:


WiFi

The wireless connection is handled by the wpa_supplicant daemon. The S35wifi init script starts and monitors the wireless connection, if a wireless network is configured in wpa_supplicant.conf.

WiFi Access Point

The wireless access point is handled by the hostapd daemon. The S33hostapd init script starts and monitors the daemon, if the hostapd.conf configuration file is present.

Keep in mind however that:

  • your WiFi adapter (driver) may not support the AP mode and may simply not work with hostapd
  • wireless drivers are known to be less stable and less reliable when acting as an access point than when used as a client (station)
  • the actual throughput when using such an AP is often less than that of a regular wireless router

Note that hostapd package is not enabled by default in thingOS.

Bluetooth

The init script S37bluetooth that takes care of initializing the Bluetooth stack.

The bluetooth.conf file is used to configure the bluetooth stack.

Note that bluez-utils 5.x package is not enabled by default in thingOS.

3G/4G Modem

TODO

DHCP Server

The DHCP server is handled by the dnsmasq daemon. The S45dnsmasq init script starts the daemon, if the dnsmasq.conf configuration file is present.

Note that dnsmasq package is not enabled by default in thingOS.

Date/Time

Unless your board has a RTC module, the system date/time is set at boot and then regularly updated using the network connection. This is done via the S50date init script. Either NTP or simple HTTP requests can be used to synchronize the time. See date.conf for configuration.

SSH Server

If you need remote acess to your board, S60sshd will start the SSH daemon. Authorized keys should be put in /data/etc/ssh_authorized_keys. The host keys are generated at first run and kept in /data/etc. SFTP also available. The SSH daemon can be configured by editing /etc/sshd_config.

Cron Daemon

The cron daemon included by default with thingOS is the one embedded in BusyBox. It is started at boot by S51crond.

Two instances are started: one for the system configuration (/etc/crontabs) and one for the "user" configuration (/data/etc/crontabs).

The standard crontab -e command can be used to edit the "user" cron configuration.

Logrotate

Logrotate is run daily and will rotate all files matching /var/log/.*log as soon as their size goes above 10MB, keeping 9 rotated versions. This behavior can be configured by editing /etc/logrotate.conf.

Syslog

Syslog is started via the S05syslog and can be configured by editing /etc/syslog.conf. System logging goes to /var/log/messages.

Automount

External drives are automatically mounted using the UDev rule /etc/udev/rules.d/61-usb-storage.rules. A mount target is automatically created in /data/media and will have the name of the storage device. Supported filesystems are EXT2/3/4, VFAT and NTFS.

DBus

The DBus daemon is started by S30dbus and uses the /etc/dbus-1/system.conf file for configuration.

Firewall

The firewall is handled by the iptables command. The S43firewall init script starts the firewall, if the firewall.sh configuration file is present.

FTP Server

The FTP server is handled by the proftpd daemon. The S61proftpd init script starts the daemon, if the proftpd.conf configuration file is present.

Note that proftpd package is not enabled by default in thingOS.

Samba

The SMB server functionality is handled by the samba package. The S62smb init script starts the daemon, if the smb.conf configuration file is present.

Note that samba package is not enabled by default in thingOS.

MongoDB

The S70mongod init script starts the daemon, if the mongodb.conf configuration file is present.

Note that mongodb package is not enabled by default in thingOS.

Redis

The S71redis init script starts the daemon, if the redis.conf configuration file is present.

Note that redis package is not enabled by default in thingOS.

PostgreSQL

The S72postgresql init script starts the daemon.

Note that postgresql package is not enabled by default in thingOS.

Dynamic DNS

A script can be configured to automatically update a DNS record upon boot and at regular intervals. This allows you to access your system via a dynamic DNS domain name. See Dynamic DNS for more details.

HTTPS

The system can be configured to automatically install and update SSL certificates provided by Let's Encrypt. See HTTPS for more details.

Docker

The S60dockerd init script starts the docker engine daemon. The S80dockercompose init script starts a docker-compose project, if the docker-compose.yml configuration file is present.

Note that the following packages are not enabled by default in thingOS and must be enabled for docker/docker-compose to work: docker-cli, docker-engine, docker-compose and fuse-overlayfs.

Clone this wiki locally