5. Using TrueOS®

This chapter discusses using TrueOS® for many common tasks. Because TrueOS incorporates the Lumina® desktop environment and SysAdm system management utility, those projects are used for a variety of user customization tasks such as theming, user management, and system backups. As each of these projects have their own documentation, links to the Lumina® and SysAdm client handbooks are provided.

5.1. Lumina®

The Lumina Desktop Environment (Lumina® for short) is a lightweight, XDG-compliant, BSD-licensed desktop environment focused on streamlining work efficiency with minimal system overhead. It is specifically designed for TrueOS® and FreeBSD, but has also been ported to many other BSD and Linux operating systems. It is based on the Qt graphical toolkit and the Fluxbox window manager, and uses a small number of X utilities for various tasks, such as numlockx and xscreensaver.

Lumina®‘s features include:

  • Very little system overhead.
  • Does not require any of the desktop implementation frameworks such as DBUS, policykit, consolekit, systemd, or HALD.
  • Provides many utilities for configuring the desktop environment.
  • Provides an interface design based on plugins. The user can make their desktop as light or heavy as they wish by choosing which plugins to have running on their desktop and panels. This plugin-based system is similar to Android or other modern operating systems.
  • A single, easy-to-use Lumina Configuration utility controls all the different configuration options for the desktop in one location.
  • Intelligent favorites system for creating quick shortcuts to applications, files, and directories.
  • ZFS file restore functionality with Insight File Manager.
  • Multi-monitor support includes the Lumina Xconfig graphical utility for adding or removing monitors from the Lumina® session.
  • Simple system controls through the system tray for configuring audio volume, screen brightness, battery status/notifications, and workspace switching.
  • Total system search capabilities through the resource friendly Lumina Search utility.
  • Screenshot functionality through Lumina Screenshot, which is tied to the Print Screen key by default.

Refer to the Lumina Handbook for detailed descriptions of every element of Lumina®.

These next sections describe each element of TrueOS® that is managed by Lumina® and provides links to the relevant section of the Lumina handbook.

5.1.1. Desktop Configuration

The Lumina Configuration utility allows the user to customize virtually every aspect of the desktop. It is opened by right-clicking the desktop, then selecting Preferences All Desktop Settings. These are the configurable elements using this utility:

Appearance: Adjust theming, wallpapers, and windows. Theming includes default font and size, theme template, color scheme, icon pack, and mouse cursors. There is also an option to adjust the application themes, either manually or by applying a downloaded theme engine.

Modifying windows includes effects, compositing, and default settings. An Advanced Editor is also provided for the user to manually modify any existing value.

Desktop Defaults: Customize which applications are associated with specific filetypes, the default file manager, virtual terminal, web browser, and e-mail client. Choose packages to autostart when the system boots. Also adjust the default keyboard shortcuts for the system.

Interface Configuration: Customize widgets for the Desktop, the appearance and options in the right-click Menu, and appearance, number, and options for any system panels.

System Settings: Central location for all configurable system utilities. Lumina® updates this category as new utilities are added and removed.

User Settings: General settings for the user’s desktop session. Includes adjusting time/date, user icons, chime options, and all localization options.

5.1.2. Utilities included with TrueOS

To provide a simple, but fully featured user experience immediately “out of box”, TrueOS® includes several utilities built directly into Lumina®.

Archiver: Provides file compression and decompression services.

Calculator: Basic calculator with scientific options and advanced functions.

Insight File Manager: Browse and modify files on a per-directory basis.

File Information: Displays specific information about a specified file or directory, including permissions, ownership, size, and date of last modification.

Information: Provides more information about the installed version of Lumina®.

Open: This utility assists the user in finding programs to open specific files or URLs. It can also be used to set the default application for specific file types.

Screenshot: A very simple utility to take screenshots of the desktop, single windows, or designated areas of a screen. Screenshots can be saved as .png files.

Search: Find and launch applications or quickly search for files and directories.

Text Editor: Plain text editor with customizable settings and built in rules for specific file types.

Xconfig: Graphical front-end to the xrandr command line utility. Manages attached monitors, allowing the user to add, alter the position, and configure screens.

5.2. Network Manager

During installation, TrueOS® configures any connected Ethernet interfaces to use DHCP and provides a screen to Connect to a Wireless Network. In most cases, this means connected interfaces should “just work” whenever using a TrueOS® system.

After installation, a wireless configuration icon appears in the system tray if TrueOS® detects a supported wireless card. Hover over the wireless icon shown in Figure 5.2.1 to see an indication if the interface is associated and more information regarding the IP address, IPv6 address, SSID, connection strength, connection speed, MAC address, and type of wireless device.

_images/network1.png

Fig. 5.2.1 System Tray Wireless Information

If you right-click the wireless icon, a list of detected wireless networks displays. Click the name of a network to associate with it. The right-click menu also provides options to configure the wireless device, start the Network Manager, restart the network (useful to renew your DHCP address), route the network connection through Tor (to browse the Internet anonymously as described in Tor Mode), and close the Network Monitor so the icon no longer shows in the system tray.

To view or manually configure a network interface, click Start the Network Manager within SysAdm or type sudo pc-netmanager. If a new device has been inserted, such as a USB wireless interface, a pop-up message opens when Network Manager starts. This message indicates the name of the new device and asks if you want to enable it. Click Yes and the new device is displayed with the list of network interfaces that TrueOS® recognizes. In the example seen in Figure 5.2.2, the system has one Intel Ethernet interface that uses the em driver and an Intel wireless interface that uses the wlan driver.

_images/network2.png

Fig. 5.2.2 Network Manager

The rest of this section describes each tab of the Network Manager utility and demonstrates how to view and configure the network settings for both Ethernet and wireless devices.

5.2.1. Network Devices

If you highlight an Ethernet interface in the Devices tab and either click Configure or double-click the interface name, the screen shown in Figure 5.2.3 appears.

_images/network3.png

Fig. 5.2.3 Network Settings for an Ethernet Interface

There are two ways to configure an Ethernet interface:

  1. Use DHCP: This method assumes your Internet provider or network router assigns addressing information automatically using the DHCP protocol. Most networks are built in this manner. This method is recommended as it should “just work”.
  2. Manually type in the IP addressing information: This method requires an understanding of the basics of TCP/IP addressing or knowledge of which IP address to use on your network. If you do not know which IP address or subnet mask to use, ask your Internet provider or network administrator.

By default, TrueOS® attempts to obtain an address from a DHCP server. If you wish to manually type in your IP address, check Assign static IP address. Type in the IP address, using the right arrow key or the mouse to move between octets. Then, double-check the subnet mask (Netmask) is the correct value. If not, change it again.

If the Ethernet network uses 802.1x authentication, check Enable WPA authentication, which enable the Configure WPA button. Click this button to select the network and input the authentication values required by the network.

By default, Disable this network device is unchecked. If this checkbox is filled, TrueOS® immediately stops the interface from using the network. The interface remains inactive until this checkbox is unchecked.

The Advanced tab, seen in Figure 5.2.4, allows advanced users to manually input a MAC address or IPv6 address. Both boxes should remain checked in order to automatically receive these addresses, unless you are an advanced user with reason to change the default MAC or IPv6 address and an understanding of how to input an appropriate replacement address.

_images/network4.png

Fig. 5.2.4 Ethernet Interface Network Settings - Advanced

The Info tab, seen in Figure 5.2.5, displays the current network address settings and some traffic statistics.

_images/network5.png

Fig. 5.2.5 Ethernet Interface Network Settings - Info

If any changes are made within any of the tabs, click Apply to activate them. Click OK when finished to return to the main Network Manager window.

Repeat this procedure for each desired network interface.

5.2.2. Wireless Adapters

If the wireless interface does not automatically associate with a wireless network, the wireless profile containing the security settings required by the network will need to be configured. Double-click the wireless icon in the system tray or highlight the wireless interface displayed in the Devices tab of Network Manager and click Configure. Figure 5.2.6 demonstrates this system’s wireless interface is currently associated with the wireless network listed in the Configured Network Profiles section.

_images/network6.png

Fig. 5.2.6 Wireless Configuration

To associate with a wireless network, click Scan to view a list of connectable wireless networks. Highlight the desired network to associate with and click +Add Selected. If the network requires authentication, a pop-up window prompts you for the authentication details. Input the values required by the network, then click Close. TrueOS® then adds an entry for the network in the Configured Network Profiles section.

If the network is hidden, click +Add Hidden, input the name of the network in the pop-up window, and click OK.

If multiple networks are added, use the arrow keys to place them in the desired connection order. TrueOS® attempts to connect to networks in order from first to last in the connection list. When prioritizing connections, click Apply. A pop-up message then indicates TrueOS® is restarting the network. Next, an an IP address and status of associated appears when hovering over the wireless icon in the system tray. If this does not happen, double-check for errors in the configuration values and read the Troubleshooting section on Network.

TrueOS® supports the types of authentication shown in Figure 5.2.7. Access this screen and change authentication settings by highlighting an entry in the Configured Network Profiles section and clicking Edit.

_images/network7.png

Fig. 5.2.7 Configuring Wireless Authentication Settings

This screen provides configuration of different types of wireless security:

  • Disabled: If the network is open, no additional configuration is required.

  • WEP: This type of network can be configured to use either a hex or a plaintext key and Network Manager will automatically select the type of detected key. If WEP is pressed, then Configure, the screen in Figure 5.2.8 appears. Type the key into both Network Key boxes. If the key is complex, check Show Key to ensure the passwords are matching and correct. Uncheck this box when finished to replace the characters in the key with bullets. A wireless access point using WEP can store up to 4 keys and the number in the key index indicates which desired key to use.

    _images/network8.png

    Fig. 5.2.8 WEP Security Settings

  • WPA Personal: This type of network uses a plaintext key. If you click WPA Personal then Configure, the screen shown in Figure 5.2.9 appears. Type in the key twice to verify it. If the key is complex, check Show Key to ensure the passwords match.

    _images/network9.png

    Fig. 5.2.9 WPA Personal Security Settings

  • WPA Enterprise: If you click WPA Enterprise then Configure, the screen shown in Figure 5.2.10 appears. Select the EAP Authentication Method, input the EAP identity, browse for the CA certificate, client certificate and private key file, and input and verify the password.

    _images/network10.png

    Fig. 5.2.10 WPA Enterprise Security Settings

Note

If unsure which type of encryption is being used, ask the person who setup the wireless router. They should also be able to provide the value of any settings seen in these configuration screens.

To disable this wireless interface, check Disable this wireless device in the General tab for the device. This setting is helpful when temporarily preventing the wireless interface from connecting to untrusted wireless networks.

The Advanced tab, seen in Figure 5.2.11, allows configuring several options:

  • Custom MAC address: This setting is for advanced users and requires Use hardware default MAC address to be unchecked.
  • Interface receiving IP address information: If the network contains a DHCP server, check Obtain IP automatically (DHCP). Otherwise, input the IP address and subnet mask to use on the network.
  • Country code: This setting is not required if in North America. For other countries, check Set Country Code and select your country from the drop-down menu.
_images/network11.png

Fig. 5.2.11 Wireless Interface - Advanced

The Info tab, seen in Figure 5.2.12, shows the current network status and statistics for the wireless interface.

_images/network12.png

Fig. 5.2.12 Wireless Interface - Info

5.2.3. Network Configuration (Advanced)

The Network Configuration (Advanced) tab of the Network Manager is seen in Figure 5.2.13. The displayed information is for the currently highlighted interface. To edit these settings, ensure the interface to configure is highlighted in the Devices tab.

_images/network13a.png

Fig. 5.2.13 Network Configuration - Advanced

If the interface receives its IP address information from a DHCP server, this screen allows viewing of the received DNS information. To override the default DNS settings or set them manually, check Enable Custom DNS. You can then set:

  • DNS 1: The IP address of the primary DNS server. If unsure which IP address to use, click Public servers to select a public DNS server.
  • DNS 2: The IP address of the secondary DNS server.
  • Search Domain: The name of the domain served by the DNS server.

To change or set the default gateway, check Enable Custom Gateway box and input the IP address of the desired gateway.

Several settings can be modified in the IPv6 section:

  • Enable IPv6 support: If this box is checked, the specified interface can participate in IPv6 networks.
  • IPv6 gateway: The IPv6 address of the default gateway used on the IPv6 network.
  • IPv6 DNS 1: The IPv6 address of the primary DNS server used on the IPv6 network. If unsure which IP address to use, click Public servers to select a public DNS server.
  • IPv6 DNS 2: The IPv6 address of the secondary DNS server used on the IPv6 network.

The Misc section has more options to configure:

  • System Hostname: The name of your computer. It must be unique on your network.
  • Domain Name: If the system is in a domain, specify it here.
  • Enable wireless/wired failover via lagg0 interface: This interface allows seamless switching between using an Ethernet interface and a wireless interface. Check the box to enable this functionality.

Note

Some users experience problems using lagg. If you have problems connecting to a network using an interface which previously worked, uncheck this box and remove any references to lagg from /etc/rc.conf.

If any changes are made within this window, click Apply to save them.

5.2.4. Proxy Settings

The Proxy tab, shown in Figure 5.2.14, is used when the network requires going through a proxy server to access the Internet.

_images/network14.png

Fig. 5.2.14 Proxy Settings Configuration

Check Proxy Configuration to activate the settings. Some settings can be configured in this screen:

  • Server Address: Enter the IP address or hostname of the proxy server.
  • Port Number: Enter the port number used to connect to the proxy server.
  • Proxy Type: Choices are Basic (sends the username and password unencrypted to the server) and Digest (never transfers the actual password across the network, but instead uses it to encrypt a value sent from the server). Do not select Digest unless the proxy server supports it.
  • Specify a Username/Password: Check this box and input the username and password if they are required to connect to the proxy server.

Proxy settings are saved to the /etc/profile and /etc/csh.cshrc files so they are available to both the TrueOS® utilities and any application using fetch.

Applications not packaged with the operating system, such as web browsers, may require configuring proxy support using that application’s configuration utility.

If you apply any changes to this tab, a pop-up message warns the user may have to log out and back in for the proxy settings to take effect.

5.2.5. Configuring a Wireless Access Point

Right-click the entry for a wireless device, as seen in Figure 5.2.15, and choose Setup Access Point.

_images/network15.png

Fig. 5.2.15 Setup Access Point

Figure 5.2.16 shows the configuration screen if Setup Access Point is selected.

_images/network16.png

Fig. 5.2.16 Access Point Basic Setup

The Basic Setup tab of this screen contains two options:

  • Visible Name: This is the name appearing when users scan for available access points.
  • Set Password: Setting a WPA password is optional, though recommended to only allow authorized devices to use the access point. If used, the password must be a minimum of 8 characters.

Figure 5.2.17 shows the Advanced Configuration (optional) screen.

_images/network17.png

Fig. 5.2.17 Access Point Advanced Setup

The settings in this screen are optional and allow for fine-tuning the access point’s configuration:

  • Base IP: The IP address of the access point.
  • Netmask: The associated subnet mask for the access point.
  • Mode: Available modes are 11g (for 802.11g), 11ng (for 802.11n on the 2.4-GHz band), or 11n (for 802.11n).
  • Channel: Select the channel to use.
  • Country Code: The two letter country code of operation.

5.2.6. Tor Mode

Tor mode uses Tor, socat, and a built-in script which automatically creates the necessary firewall rules to enable and disable Tor mode at the user’s request. While in Tor mode, the firewall redirects all outgoing port 80 (HTTP), 443 (HTTPS), and DNS traffic through the Tor transparent proxy network.

To start Tor mode, right-click the network icon in the system tray and check Route through TOR. Enter your password via the pop-up shown in Figure 5.2.18. If activated correctly, TrueOS® opens a new browser window directed to https://check.torproject.org

_images/tor1.png

Fig. 5.2.18 Enabling Tor Mode

If you have never used the Tor network before, it is recommended to review the Tor FAQ.

The system remains in Tor mode until manually disabled. To disable Tor mode, right-click the network icon and uncheck Route through Tor.

To enable and disable Tor mode from the command line or on a desktop with no system tray, use these commands:

  • sudo enable-tor-mode enables tor mode.
  • sudo disable-tor-mode disables tor mode.

5.3. SysAdm

Beginning with TrueOS® 11, most of the system management utilities previously available in the PC-BSD® Control Panel have been rewritten to use the SysAdm API. This API is designed to simplify managing any FreeBSD, TrueOS® desktop, or TrueOS® server system over a secure connection from any operating system with the SysAdm application installed. SysAdm is built into TrueOS® as the SysAdm: Control Panel.

The SysAdm Client Handbook is recommended for new TrueOS® users, while the Server and API Reference guides are available for advanced users.

The rest of this section describes the elements of TrueOS controlled by SysAdm, providing links to the relevant SysAdm documentation:

Application Management

AppCafe is a graphical interface for installing and managing FreeBSD packages. These are pre-built applications tested for use with a FreeBSD-based operating system. Open AppCafe® by clicking the Start button (lower-left), then Control Panel AppCafe.

AppCafe® breaks popular applications into a few categories and provides search functionality for users looking for a specific application. Users can also browse through a list of all currently installed applications and view more details or delete them from the system.

Update Manager is a graphical interface for keeping both TrueOS® and its installed applications up to date. Users can check for updates, switch between the STABLE and UNSTABLE tracks of TrueOS, configure automatic updating, and view the log files of previous updates.

See Updating TrueOS for more details about using the Update Manager.

SysAdm Server Settings

Managing Remote Connections provides instructions to create and manage SSL keys or certificate bundles.

System Management

SysAdm provides the “core” for managing TrueOS®:

Boot Environment Manager: Create and manage ZFS Boot Environments (BEs). Boot Environments provide a “point-in-time” backup for the system and are highly recommended. Options to create, clone, delete, rename, mount, unmount, and activate a BE are available.

Mouse Settings: Tool for adjusting the settings of a connected mouse. Acceleration, DPI, right or left hand, drift, button emulation, and scrolling are all adjustable.

Firewall Manager: This is used to configure all ports and firewalls for TrueOS®. Options to open and close ports are available, including adjusting the firewall’s autostart settings.

Service Manager: This allows viewing and configuring all the system’s installed services. There are options to start, stop, and restart services. Additional tunables to adjust automatic starting of services are provided.

Task Manager: A graphical window into system resource usage and a list of all running applications. This provides details about what is currently happening on the system and allows the user to stop any currently running process.

User Manager: This utility controls users and groups. There are Standard and Advanced views for both users and groups, and all options for creating new users and groups are provided.

PersonaCrypt security can also be added to user accounts. This encrypts a user account so it only becomes accessible with the proper password or by plugging in an associated USB drive.

Utilities

Life Preserver is the only utility currently included with TrueOS®. This utility is used for system backups with ZFS snapshots. Life Preserver provides easy management, replication, and scheduling of ZFS snapshots.

5.4. Files and File Sharing

Several file managers are available for installation using AppCafe®. Table 5.4.1 provides an overview of several popular file managers. To launch an installed file manager, type its name as it appears in the Application column. To install the file manager, use AppCafe® to install the package name listed in the Install column. To research a file manager’s capabilities, start with the URL listed in its Screenshot column.

Table 5.4.1 Available File Managers
Application Install Screenshots
dolphin kde-baseapps https://userbase.kde.org/Dolphin
emelfm2 emelfm2 http://linuxg.net/how-to-install-emelfm2-0-8-2-1-on-ubuntu-linux-mint-and-elementary-os/
caja caja http://mate-desktop.org/gallery/1.6/
mucommander mucommander http://www.mucommander.com/index.html
nautilus nautilus https://projects.gnome.org/nautilus/screenshots.html
pcmanfm pcmanfm https://wiki.lxde.org/en/PCManFM
thunar thunar http://docs.xfce.org/xfce/thunar/start
xfe xfe http://roland65.free.fr/xfe/index.php?page=screenshots

When working with files on a TrueOS® system, save your files to your home directory. Since most of the files outside your home directory are used by the operating system and applications, you should not delete or modify any files outside of your home directory unless confident in what you are doing.

Table 5.4.2 summarizes the directory structure found on a TrueOS® system. man hier explains this directory structure in more detail.

Table 5.4.2 TrueOS® Directory Structure
Directory Contents
/ Pronounced as “root” and represents the beginning of the directory structure
/bin/ Applications (binaries) that were installed with the operating system
/boot/ Stores the startup code, including kernel modules (like hardware drivers)
/compat/linux/ Linux software compatibility files
/dev/ Files which are used by the operating system to access devices
/etc/ Operating system configuration files
/etc/X11/ The xorg.conf configuration file
/etc/rc.d/ Operating system startup scripts
/home/ Subdirectories for each user account; each user should store their files in their own home directory
/lib/ Operating system libraries needed for applications
/libexec/ Operating system libraries and binaries
/media/ Mount point for storage media such as DVDs and USB drives
/mnt/ Another mount point
/proc/ The proc filesystem required by some Linux applications
/rescue/ Emergency recovery programs
/root/ Administrative account’s home directory
/sbin/ Operating system applications; typically only the superuser can run these applications
/tmp/ Temporary file storage; files stored here may disappear when the system reboots
/usr/bin/ Contains most of the command line programs available to users
/usr/local/ Contains the binaries, libraries, startup scripts, documentation, and configuration files used by applications installed from ports or packages
/usr/local/share/fonts/ System wide fonts for graphical applications
/usr/local/share/icons/ System wide icons
/usr/ports/ Location of system ports tree (if installed)
/usr/share/ System documentation and man pages
/usr/sbin/ Command line programs for the superuser
/usr/src/ Location of system source code (if installed)
/var/ Files that change (vary), such as log files and print jobs

TrueOS® provides built-in support for accessing Windows shares, meaning you only have to decide which utility you prefer to access existing Windows shares on your network.

Table 5.4.3 summarizes some of the available utilities.

Table 5.4.3 Utilities that Support Windows Shares
Application Install How to Access Existing Shares
dolphin kde-baseapps In the left frame, click Network Samba Shares, then the Workgroup name; if the network requires a username and password to browse for shares, set this in System Settings Sharing while in KDE or type systemsettings and click Sharing while in another desktop
smb4k smb4k-kde4  
mucommander mucommander Click Go Connect to server SMB; input the NETBIOS name of server, name of share, name of domain (or workgroup), and the share’s username and password
nautilus nautilus Click Browse Network Windows Network
thunar thunar In the left frame, click Network Windows Network

5.5. Managing System Services and Daemons

TrueOS® now uses OpenRC to manage system services. OpenRC is an integral component of the TrueOS® operating system, and is a major point of difference between TrueOS® and FreeBSD. This section is intended to provide detailed information about system service management in TrueOS®.

5.5.1. OpenRC in TrueOS® compared with rc

Table 5.5.1 serves as a quick summary and series of working examples contrasting the FreeBSD rc system and OpenRC in TrueOS®.

Table 5.5.1 Comparison between the FreeBSD rc and TrueOS® OpenRC service management
Component or action FreeBSD TrueOS®
Base system rc script location /etc/rc.d /etc/init.d
Ports rc script location /usr/local/etc/rc.d /usr/local/etc/init.d
Service configuration

/etc/rc.conf or /etc/rc.conf.local

All services are configured in a central location.

OpenRC prefers /etc/conf.d/servicename, but can use /etc/rc.conf or /etc/rc.conf.local Each service has its own configuration file.
Starting e.g. the nginx service $ service nginx start $ service nginx start
Configuring e.g. nginx to start on bootup. Edit /etc/rc.conf and add nginx_enable="YES" $ rc-update add nginx default
Check to see if a service is enabled.

$ service nginx rcvar

If the service is enabled, the result is:

nginx_enable="YES"

$ rc-update show default | grep nginx

If the service is enabled, the result is:

nginx | default

Warning

The user may find leftover RC files during the TrueOS® migration to OpenRC. These files do not work with OpenRC and are intended to be removed both from the source tree and via pc-updatemanager when all functionality is successfully migrated. If discovered, do not attempt to use these leftover files.

5.5.2. Service Management in OpenRC

5.5.2.1. Runlevels

Traditionally, FreeBSD operates in single- and multi-user modes. However, OpenRC offers the ability to define runlevels. An OpenRC runlevel is a grouping of services, nothing more. Any number of system services can be associated with a given runlevel. In TrueOS®, there are two main preconfigured runlevels: boot and default. The default runlevel is analogous to the FreeBSD multi-user mode, and is associated with the Normal Bootup option of the TrueOS® bootloader.

Note

No OpenRC runlevels are executed if the system is booted into single-user mode (see Figure 2.9.3.)

Runlevels are defined by subdirectories of /etc/runlevels; all associations between services and runlevels can be shown by running the command:

$ rc-update show -v

OpenRC has a few ordered runlevels in TrueOS®. In order of execution:

  1. sysinit: Used for OpenRC to initialize itself.
  2. boot: Starts most base services from /etc/init.d/.
  3. default: Services started by ports are added here.

Note

Services added by ports cannot be added to boot or sysinit.

OpenRC allows users to add services in the prefix location to the boot runlevel. These services are started before the /usr filesystem is mounted. Finally, there is a shutdown runlevel reserved for a few services like savecore or pc-updatemanager, which installs updates at shutdown.

When a service is added to a runlevel, a symlink is created in /etc/runlevels. When a service is started, stopped, or changed to another state, a symlink is added to /libexec/rc/init.d/, as seen in this example:

[tmoore@Observer] ~% ls /libexec/rc/init.d/
daemons exclusive inactive scheduled starting wasinactive
depconfig failed options softlevel stopping
deptree hotplugged prefix.lock started tmp

5.5.2.2. Services and Runlevels

OpenRC includes options to start, stop, add, or delete services from runlevels as seen in Table 5.5.2. Most of these actions can be accomplished using the Service Manager built into SysAdm. Individuals familiar with the FreeBSD service command may notice some similarities between some of these commands.

Table 5.5.2 Service and Runlevel Management Commands
Command Description
service nginx start Start nginx from /usr/local/etc/init.d/nginx.
service nginx restart Restart nginx from /usr/local/etc/init.d/nginx.
service nginx stop Stop nginx from /usr/local/etc/init.d/nginx.
service nginx status View the status of the nginx service.
rc-status View the status of all running services.
rc-update Views all runlevels. Used in conjunction with service names to add or delete services from the default runlevel.
rc-update add nginx default Adds the nginx service to the default runlevel.
rc-update delete nginx default Removes nginx from the default runlevel.

5.5.2.3. Writing OpenRC Services

OpenRC has a dependency based init system. As an example, examine the SysAdm service, which needs network. Here are the contents of the /usr/local/etc/init.d/sysadm depend section:

depend() {
need net
after bootmisc
keyword -shutdown
}

SysAdm requires network (need net), which is the nickname of the /etc/init.d/network service defined by provide in network. SysAdm also starts after bootmisc. If you don’t want the restarting network to restart SysAdm, then net is unnecessary. To start SysAdm after network, then add network to the actual name of the script in **after bootmisc*.

Here are the contents of /etc/init.d/network:

depend()
{
provide net
need localmount
after bootmisc modules
keyword -jail -prefix -vserver -stop
}

The provide option sets the service nickname to net. Need means restarting localmount restarts network. After indicates the service starts after bootmisc and modules. For example, the keyword -jail option says this service doesn’t run in a jail, prefix, or any of the other options shown.

There is also a cache directory under /libexec/rc. This keeps a dependencies cache that is only updated when those dependencies change. Several other directories exist for other binaries and special binaries used by OpenRC functions.

For more creation options for OpenRC compatible init scripts, type man openrc-run in a CLI.

5.5.3. RC Defaults

Note

RC Defaults are subject to change during development.

TrueOS® and FreeBSD now have very different rc defaults.

TrueOS OpenRC Defaults

The entire TrueOS rc.conf file is viewable on GitHub.

# Global OpenRC configuration settings

# Set to "YES" if you want the rc system to try and start services
# in parallel for a slight speed improvement. When running in parallel
# we prefix the service output with its name as the output will get
# jumbled up.
# WARNING: whilst we have improved parallel, it can still potentially
# lock the boot process. Don't file bugs about this unless you can
# supply patches that fix it without breaking other things!
#rc_parallel="NO"

# Set rc_interactive to "YES" and you'll be able to press the I key
# during boot so you can choose to start specific services. Set to "NO"
# to disable this feature. This feature is automatically disabled if
# rc_parallel is set to YES.
#rc_interactive="YES"

# If we need to drop to a shell, you can specify it here.
# If not specified we use $SHELL, otherwise the one specified in
# /etc/psswd, otherwise /bin/sh

FreeBSD RC Defaults

The entire FreeBSD rc.conf file is available online.

#!/bin/sh

# This is rc.conf - a file full of useful variables that you can set
# to change the default startup behavior of your system.  You should
# not edit this file!  Put any overrides into one of the
# ${rc_conf_files} instead and you will be able to update these
# defaults later without spamming your local configuration information.
#
# The ${rc_conf_files} files should only contain values which override
# values set in this file.  This eases the upgrade path when defaults
# are changed and new features are added.
#
# All arguments must be in double or single quotes.
#
# For a more detailed explanation of all the rc.conf variables, please
# refer to the rc.conf(5) manual page.
#
# $FreeBSD$

##############################################################

The TrueOS® rc.conf file is smaller because rc.conf is now primarily used for tuning OpenRC behavior. By default, TrueOS® uses 3 elements, documented in Table 5.5.4.

Table 5.5.3 lists services and their default runlevels in TrueOS®.

Table 5.5.3 Services and runlevels
Service Runlevel
abi boot
adjkerntz boot
automount default
bootmisc boot
bridge boot
cron boot
cupsd default
dbus default
devd boot
dumpon boot
fsck boot
hostid boot
hostname boot
ipfw boot
local default nonetwork
localmount boot
lockd default
loopback boot
modules boot
motd boot
moused default
netmount default
network boot
newsyslog boot
openntpd default
pcdm default
root boot
rpcbind default
savecache shutdown
savecore boot
statd default
staticroute boot
swap boot
sysadm default
syscons boot
sysctl boot
syslogd boot
trueosinit default
urandom boot
zfs boot
zvol boot

5.5.4. Tuneables

Table 5.5.4 OpenRC Primary Tunables
Tunable Description
rc_parallel=”YES” Starts all services in parallel (experimental).
rc_logger=”YES” Enables logging
rc_log_path=”/var/log/rc.log” Defines the location for logging rc activity

Table 5.5.5 shows all other tunables enabled on a clean TrueOS® installation. Many of these tunables continue to work in /etc/rc.conf to ensure a smoother migration for existing users to upgrade. The eventual target locations for these services are also listed.

Note

These migration targets are estimates and subject to change.

Table 5.5.5 OpenRC Other Tunables
Tunable Description Migration Target
linux_enable=”YES” Notifies /etc/init.d/abi service to enable the Linux compatability during boot /etc/conf.d/abi
ifconfig_re0=”DHCP” Auto-obtain IP address on the re0 device. /etc/conf.d/network
ifconfig_re0_ipv6=”inet6 accept_rtadv” Configure IPv6. /etc/conf.d/network
hostname=”trueos-4843” Set the system hostname. /etc/conf.d/hostname
kldload_i915kms=”i915kms” TrueOS specific. Allows loading an individual module via the installer post installation. /etc/conf.d/modules
zfs_enable=”YES” Obsolete, marked for removal None
wlans_iwm0=”wlan 0 DHCP” Configure iwm wireless with DHCP. /etc/conf.d/network
ifconfig_wlan0_ipv6=”inet6 accept_rtadv” Configure iwm wireless with IPv6. /etc/conf.d/network

5.5.5. OpenRC Install Scripts

There are number of scripts used for older TrueOS® systems and new installations. These are listed below.

5.5.5.1. One-time Migration Script

A one time migration script is available for TrueOS® installations dated 10-28-16 or older still using the legacy FreeBSD rc system:

Note

This block is truncated from the original file

#!/bin/sh

if [ ! -e /etc/rc.conf ] ; then
  exit 0
fi

. /etc/rc.conf

for var in `set | grep "_enable="`
do
  key=`echo $var | cut -d '=' -f 1 | sed 's|_enable||g'`
  val=`echo $var | cut -d '=' -f 2`
  if [ "$val" != "YES" ] && [ "$val" != "NO" ] ; then continue; fi
  if [ "$val" = "NO" ] && [ -e "/etc/runlevels/default/$key" ] ; then
      echo "Deleting OpenRC service for $key to default runlevel..."
      rc-update delete $key default
  fi
  if [ -e "/etc/init.d/$key" -o -e "/usr/local/etc/init.d/$key" ] ; then
    if [ -e "/etc/runlevels/default/$key" ] ; then
      echo "OpenRC service for $key already enabled, skipping.."

With this migration, rc.conf.trueos, located in /etc/, has been phased out of TrueOS® and is automatically removed from legacy installs dated 10-28-16 and older by pc-updatemanger:

This script defines a list of services such as PCDM designated to boot by default on a desktop. It also defines what drivers to load on a desktop. This is now accomplished when the trueos-desktop or trueos-server package is installed using sysrc or other methods. Now there is no need to keep an extra overlay file to accomplish this behaviour.

5.5.5.2. TrueOS® Desktop pkg-install Script

Note

This is an excerpt from the TrueOS® Desktop pkg-install file, available online: https://github.com/trueos/trueos-desktop/blob/master/port-files/pkg-install

#!/bin/sh
# Script to install preload.conf

PREFIX=${PKG_PREFIX-/usr/local}

if [ "$2" != "POST-INSTALL" ] ; then
   exit 0
fi

# If this is during staging, we can skip for now
echo $PREFIX | grep -q '/stage/'
if [ $? -eq 0 ] ; then
   exit 0
fi

# REMOVEME - Temp fix to ensure i915kms is loaded on upgraded systems
# 8-29-2016
if [ -e "/etc/rc.conf.trueos" ] ; then
  set +e
  grep -q "i915kms" /etc/rc.conf.trueos

5.5.5.3. TrueOS Server pkg-install script

Note

This is an excerpt from the TrueOS® Server pkg-install file, available on GitHub: https://github.com/trueos/trueos-server/blob/master/port-files/pkg-install

#!/bin/sh
# Script to install preload.conf

PREFIX=${PKG_PREFIX-/usr/local}

if [ "$2" != "POST-INSTALL" ] ; then
   exit 0
fi

# If this is during staging, we can skip for now
echo $PREFIX | grep -q '/stage/'
if [ $? -eq 0 ] ; then
   exit 0
fi

# Copy over customizations for TrueOS
  install -m 644 ${PREFIX}/share/trueos/conf/loader.conf.trueos /boot/loader.conf.trueos
  install -m 644 ${PREFIX}/share/trueos/conf/brand-trueos.4th /boot/brand-trueos.4th
  install -m 644 ${PREFIX}/share/trueos/server-defaults/etc/conf.d/modules /etc/conf.d/modules/

The typical nginx_enable=”YES” is no longer used to enable services. Instead, rc-update adds or deletes services from runlevels. The one time migration script automatically adds previously defined user services to the OpenRC default runlevel. Leftover lines can be removed after migration.

5.5.6. Updating a Port’s Makefile

There are many required updates to adjust each port’s Makefile to the new format, USE_OPENRC_SUBR=. However, these are to be changed only when each service file has the new OpenRC ready format:

Note

This is an excerpt from the TrueOS® openrc-dbus.in file, which is available on the TrueOS® freebsd-ports GitHub repository

#!/sbin/openrc-run
# Copyright (c) 2007-2015 The OpenRC Authors.
# See the Authors file at the top-level directory of this distribution
# and https://github.com/OpenRC/openrc/blob/master/AUTHORS
#
# This file is part of OpenRC. It is subject to the license terms in
# the LICENSE file found in the top-level directory of this
# distribution and at
# https://github.com/OpenRC/openrc/blob/master/LICENSE.
# This file may not be copied, modified, propagated, or distributed
# except according to the terms contained in the LICENSE file.

command=/usr/local/bin/dbus-daemon
pidfile=/var/run/dbus/pid
command_args="${dbusd_args---system}"
name="Message Bus Daemon"

depend()
{
        need localmount
        after bootmisc
}

Here is an example from FreeBSD of dbus using the legacy rc script format:

Note

This is an excerpt from the legacy FreeBSD dbus.in file, which is available online: https://github.com/freebsd/freebsd-ports/blob/master/devel/dbus/files/dbus.in

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: dbus
# REQUIRE: DAEMON ldconfig
#
# Add these lines to /etc/rc.conf to enable the D-BUS messaging system:
#
# dbus_enable="YES"
#

. /etc/rc.subr
. %%GNOME_SUBR%%

dbus_enable=${dbus_enable-${gnome_enable}}
dbus_flags=${dbus_flags-"--system"}

name=dbus
rcvar=dbus_enable

Several developers are working on the thousands of instances as quickly as possible. Anyone can begin transitioning to defining all service configurations in /etc/conf.d/, if desired. All configuration files should reside in that directory with the name of the service for the configuration file itself. For example, nginx is /etc/conf.d/nginx.

Generally, usage of /etc/rc.conf is minimized. Tweaking the default OpenRC configuration parameters is recommended only for advanced users. It is still possible to use service configurations through /etc/rc.conf, but this file is unusable for enabling or disabling services for startup.

5.6. Flash Plugin

TrueOS® supports using a Flash plugin for those browsers/applications that use Flash. To begin using this plugin, search for and install “linux-flashplayer” using AppCafe®. Alternately, type [samp@examp] ~% sudo pkg install linux-flashplayer in a command line and enter the root password when requested.

The “nspluginwrapper” is also required when using Flash. Install it with AppCafe® or by typing [samp@examp] ~% sudo pkg install nspluginwrapper in a command line.

Once linux-flashplayer and nspluginwrapper are installed, configure them by opening a command line and typing this command:

% nspluginwrapper -v -a -i

Auto-install plugins from /usr/local/lib/browser_plugins
Looking for plugins in /usr/local/lib/browser_plugins
Auto-install plugins from /usr/local/lib/browser_plugins/linux-flashplayer
Looking for plugins in /usr/local/lib/browser_plugins/linux-flashplayer
Install plugin /usr/local/lib/browser_plugins/linux-flashplayer/libflashplayer.so
  into /usr/home/tmoore/.mozilla/plugins/npwrapper.libflashplayer.so
Auto-install plugins from /usr/home/tmoore/.mozilla/plugins
Looking for plugins in /usr/home/tmoore/.mozilla/plugins

In this example, Flash is configured and ready for use with the Firefox browser. To confirm Flash is usable, open Firefox and type about:plugins in the address bar. An Installed plugins page displays, listing Shockwave Flash an installed plugin. See Figure 5.6.1 as an example of Firefox with Flash installed.

_images/flash1.png

Fig. 5.6.1 about:plugins” Example

5.7. Automounter

Tip

The Mount Tray has been replaced by the new Automounter.

The automounter, based on the devd and automount utilities, facilitates mounting and unmounting USB storage devices and optical media. It also conforms to an XDG standard to allow the addition of new features. The automounter is part of the default TrueOS® installation, but is generally invisible until a new device is attached to the system.

Currently, the automounter ignores internal hard drives (sata, ide) and networking shares. It does support many different filesystems:

  • cd9660
  • exFAT (Requires mount.exfat-fuse. Possible intermittent detection issues.)
  • ext2
  • ext4 (Requires ext4fuse)
  • FAT32
  • MSDOSFS
  • MTPfs (Requires simple-mtpfs)
  • NTFS (Requires ntfs-3g)
  • ReiserFS
  • UDF
  • UFS
  • XFS

Warning

Linux based filesystems may have some limitations. See Table 1.2.2 for more details.

To engage the automounter, attach a USB storage device or insert optical media to the system. The automounter detects the device by ID and adds icons to the desktop, as seen in Figure 5.7.1:

_images/automnt1.png

Fig. 5.7.1 USB icons added to desktop via the automounter. Hovering over the icon displays the actual device name and filesystem type.

Tip

The appearance of these icons do not mean the device is mounted. Devices are only mounted when the user begins to interact with the device.

Either navigating to a device or beginning copy operations mounts the device. The device is unmounted by the autounmountd service after the user navigates away and/or file copy operations stop.

For example, the above image shows USB drive “FreeNAS” attached to the system. After double-clicking the desktop icon, “Insight File Manager” opens to the device’s location, autofs/da0. While Insight opens, the automounter mounts the device. After closing Insight, the device is also unmounted and safe to remove from the system.

In the CLI, the automounter adds a .desktop file to /media when a new USB/Optical device is added. Open the .desktop file with xdg-open or lumina-open. When the device is removed, the symlink is immediately removed from /media.

Note

The /.autofs/* directories are not cleaned when the device is removed. However, after device removal the directories are no longer associated with the device in the backend. For this reason, /media is more useful to identify which devices are attached to the system.

Alternately, all device names are added to the /.autofs directory. Attached devices are also accessed by navigating to /.autofs/<devicename>.

Known limitations:

  • UFS permissions. These permissions are preserved on USB media. To allow multiple users access to files from a UFS stick, those files’ permissions need to be set to read/write by any user (777).
  • ZFS pools are not yet supported. This is under investigation to ascertain if it can ever work with automount.
  • Optical Media links are not yet created on the desktop. Optical media is accessible by navigating to /.autofs.
  • Any file system with limited FreeBSD support (HFS or EXT) remain at the same level of limited support.
  • exFAT detection issues are being investigated.

Coming soon:

  • Optical media support for the desktop
  • Android device support
  • Possible support for ZFS pools

5.8. FreeBSD Ports

Use git to fetch the FreeBSD ports tree on a local system. Specifically, the TrueOS® branch of the FreeBSD ports tree is pulled, which is regularly updated against the base FreeBSD ports tree.

Note

These commands must be run as the superuser or root.

When fetching ports for the first time:

# git clone http://github.com/trueos/freebsd-ports.git /usr/ports

To update an existing local ports directory:

# cd /usr/ports
# git pull

5.9. Printing and Scanning

Like many open source operating systems, TrueOS® uses the Common Unix Printing System (CUPS) to manage printing.

CUPS provides an easy-to-use utility for adding and managing printers. Whether or not it automatically detects a printer depends upon how well the printer is supported by an open source print driver. This section walks you through a sample configuration for a HP DeskJet 36xx series printer. Your specific printer may “just work”, which simplifies this process immensely. If your printer configuration does not work, read this section more closely for ideas on locating correct drivers for your printer.

5.9.1. Researching your Printer

Before configuring your printer, see if a driver already exists for your particular model, and if so, which driver is recommended. If you are planning to purchase a printer, this is definitely good information to know beforehand. Look up the vendor and model of the printer in the Open Printing Database, which indicates if the model is supported and if there are any known caveats with the print driver. Once the model is selected, click Show this printer to see the results.

For the HP DeskJet model example, the HPLIP driver is recommended. In TrueOS®, the HPLIP driver is available as an optional package called hplip. Use AppCafe® to search if the driver is installed, and install it if not.

5.9.2. Adding a Printer

Once printer support is determined, ensure the printer is plugged into your computer or, if the printer is a network printer, both your computer and the printer are connected to the network. Then, open a web browser and enter the address 127.0.0.1:631/admin. This opens the CUPS configuration, shown in Figure 5.9.1.

_images/print4a.png

Fig. 5.9.1 Printer Configuration

To add a new printer, click Add Printer. CUPS will pause for a few seconds as it searches for available printers. When finished, a screen similar to Figure 5.9.2 is shown.

_images/print5a.png

Fig. 5.9.2 Print Device Selection

In this example, the wizard has found the HP DeskJet 3630 printer on both the USB port (first entry) and the wireless network (second entry). Click the desired connection method then click Continue. CUPS then attempts to load the correct driver for the device. If successful, a screen shown in Figure 5.9.3 is shown.

_images/print6a.png

Fig. 5.9.3 Describe Printer

This screen automatically fills out the printer model series, a description, and the type of connection. If desired, add a descriptive Location. If sharing the printer on a network, check Sharing.

Once you click Continue, the next screen, shown in Figure 5.9.4, displays a summary of the selected options and offers the ability to select another driver. For now, leave the detected driver and click Add Printer. If the printer does not work using the default driver, read the Troubleshooting Printer section, which describes how to use this screen in more detail.

_images/print7a.png

Fig. 5.9.4 Viewing the Default Driver

The next screen, shown in Figure 5.9.5, can be used to modify the properties of the printer.

_images/print8a.png

Fig. 5.9.5 Modify Print Properties

It is recommended to take a few minutes to review the settings in the General, Banners, and Policies tabs, as these allow configuration options such as print banners, permissions, the default paper size, and double-sided printing. The available settings can vary depending on the capabilities of the print driver. When finished, click Set Default Options to save the options. This opens the Printers tab with the new printer displayed. An example is shown in Figure 5.9.6.

_images/print9a.png

Fig. 5.9.6 Manage Printer

Print a test page to ensure the printer is working. Verify the printer has paper and click Maintenance -> Print Test Page. If a test page does not print, refer to the Printer of this handbook.

5.9.3. Manually Adding a Driver

If the print configuration fails, double-check the printer is supported as described in Researching your Printer and HPLIP is installed if it is a HP printer. Also check the printer is plugged in and powered on.

If the wizard is unable to even detect the device, try to manually add the information for the print device. In the Select Device screen (Print Device Selection), select the type of connection to the printer and input all necessary information. The type of information depends upon the type of connection:

USB: This entry only appears if a printer is plugged into a USB port and the number of entries vary depending on the number of USB ports on the system. If there are multiple USB entries, highlight the one representing the USB port your printer is plugged into.

IPP: Select this option if connecting to a printer cabled to another computer (typically running a Microsoft operating system) sharing the printer using IPP. Input the IP address of the printer and the name of the print queue. To use IPP over an encrypted connection, select “ipps” instead.

HTTP: This option allows you to manually type in the URI to the printer. A list of possible URIs is available on the CUPS site. To use HTTP over an encrypted connection, select https instead.

AppSocket/HP JetDirect: Select this option if connecting to an HP network printer. Input the IP address of the printer. Only change the port number if the printer is using a port other than the default of 9100.

LPD/LPR: Select this option if connecting to a printer which is cabled to a Unix computer using LPD to share the printer. Input the hostname and queue name of the Unix system.

After inputting the connection information, continue to add the printer and test the connection by printing a test page as described in Adding a Printer.

If the default driver is not working, try re-adding the printer. At the Viewing the Default Driver screen, try selecting a different driver.

Alternately, if you have a PPD driver from the manufacturer’s website or on the CD packed in with the printer, click Choose File to browse to the location of the PPD file. PPD (PostScript Printer Description) is a driver created by the manufacturer ending in a .ppd extension. Sometimes the file ends with a .ppd.gz extension, indicating it is compressed.

5.9.4. Scanning

While no scanning applications are included with TrueOS®, there are a few options available via AppCafe®. One good option is XSane, a graphical utility for managing scanners. The rest of this section describes using XSane for scanning.

To use your scanner, make sure the device is plugged into the TrueOS® system and click Browse Applications Scanner or type xsane from the command line. A pop-up message indicates XSane is detecting devices and prompts you to accept the XSane license if a device is detected. If a device is not detected, search for your device at the list of supported scanners.

Note

If the scanner is part of an HP All-in-One device, make sure the “hplip” package is installed. Use AppCafe® to see if the driver is installed, and install it if not.

Figure 5.9.7 shows the XSane interface running on a TrueOS® system attached to an HP DeskJet Printer/Scanner.

_images/sane1.png

Fig. 5.9.7 XSane Interface

The XSane documentation contains details on how to perform common tasks such as saving an image to a file, photocopying an image, and creating a fax. It also describes all of the icons in the interface and how to use them.

By default, XSane uses the default browser when clicking F1 to access its built-in documentation. Configuring the default browser varies by window manager so an Internet search may be necessary to set the default browser setting.

5.10. Fonts

TrueOS® installs with Google Noto which provides multi-lingual Sans and Serif fonts. Many other fonts are available from AppCafe®. Typically, fonts installed using AppCafe® do not require any additional configuration to “just work”.

If you have downloaded or purchased a collection of font, TrueOS® can be configured to also use those fonts. Become the superuser and copy the downloaded font to the /usr/local/share/fonts/ directory. Then, run fc-cache -f -v /usr/local/share/fonts/name_of_font to refresh the fonts cache.

5.11. Sound Mixer Tray

TrueOS® includes a graphical utility for managing the sound card’s mixer settings. The utility is accessed by clicking the speaker icon in the system tray.

Figure 5.11.1 shows an example of highlighting the Output option after opening the Sound Mixer. If the system has one audio output, the Output submenu is not displayed. Clicking an option in this submenu does not set the default audio device. It only changes it to the selected output for the current session. The next reboot reverts audio output back to the default.

_images/sound1.png

Fig. 5.11.1 Output Options

Figure 5.11.2 shows the Mixer menu:

_images/sound2.png

Fig. 5.11.2 Mixer Controls

The Mixer Controls screen provides sliders to modify the left and right channels that control volume, pcm (the sound driver), the speaker, the microphone, the recording level, the input level, and the output level. Each control can be muted or unmuted by clicking Mute or Unmute, depending on its current mute state.

Figure 5.11.3 shows the System Configuration tab of the Mixer.

_images/sound3a.png

Fig. 5.11.3 System Sound Configuration

This tab contains several options:

  • Recording Device: Use the drop-down menu to select the device to use for recording sound.
  • Default Tray Device: Use the drop-down menu to set the default slider to display in the system tray.
  • Audio Output Channel: Use the drop-down menu to change the sound device and use Test to determine if sound is working. This is sometimes necessary when changing audio devices. For example, when connecting a USB headset, TrueOS® detects the new device and automatically changes the audio device to the USB input. However, when inserting a headset into an audio jack, the system may not detect this new input, meaning the default device has changed manually. Set as Default sets the currently selected audio output channel as the system default.

The Disable PulseAudio disables all PulseAudio support.

The File menu can be used to quit this mixer screen or to close both this screen and remove the icon from the system tray.

Note

To re-add the mixer icon after removing it, type pc-mixer & in a command line. Alternately, open this application without adding it back to the system tray by typing pc-mixer -notray.

TrueOS® provides full PulseAudio support, which can be configured using the Configuration menu in the Mixer. There are options for accessing the PulseAudio Mixer and PulseAudio Settings, as well as an option for restarting PulseAudio. These utilities can be used to configure discoverable network sound devices and mixer levels.

5.12. Multimedia

TrueOS® is pre-configured to support most multimedia formats and makes it easy to install most open source media applications using AppCafe®.

After installing a web browser, most media formats become playable, including YouTube™ videos, Internet radio, and many trailer and movie sites. When encountering a file unplayable in a web browser or media player, it is likely in a proprietary format which requires a licensing fee or restricts distribution of the codec required to play the media format.

Note

When troubleshooting Java™ or Flash® for your browser, please refer to the FreeBSD browser documentation, which has more complete instructions for installing Java™ and Flash® plugins with specific browsers.

AppCafe® contains several dozen applications for playing and editing multimedia. It includes these popular applications:

  • aTunes: Full-featured audio player and manager which can play mp3, ogg, wma, wav, flac, mp4 and radio streaming, allowing users to easily edit tags, organize music and rip audio CDs.
  • Audacity: Multilingual audio editor and recorder.
  • DeaDBeeF: Music player supporting most audio formats.
  • Decibel: Audio player built around a highly modular structure which lets the user completely disable unneeded features. Able to play CDs directly.
  • gtkpod: Graphical user interface for the Apple iPod.
  • Miro: HD video player which can play almost any video file and offers over 6,000 free Internet TV shows and video podcasts.
  • SMPlayer: Universal media player which can handle any media format and play audio CDs, DVDs, (S)VCDs, TV/radio cards, YouTube™ and SHOUTcast™ streams.
  • VLC media player: Open Source cross-platform multimedia player capable of playing most multimedia files, DVD and CD formats, and some streaming protocols.
  • Kodi,formerly known as XBMC: GPL-licensed software media player and entertainment hub for digital media. It can play most audio and video formats, CDs and DVDs from a disk or image file, and even files inside ZIP and RAR archives.
  • Plex Home Theater: Centralized media playback system. The central Plex Media Server streams media to many Plex player Apps which are used to view your media library and watch shows.

5.13. Windows Emulation

Wine is an application which allows the creation of a Windows environment for installing Windows software. This can be useful if your favorite Windows game or productivity application has not yet been ported to Linux or BSD.

Wine is not guaranteed to work with every Windows application. You can search for desired applications in the Browse Apps section of the Wine application database. The Wine wiki contains resources to get started and troubleshooting reference material if problems are encountered with a Windows application.

Wine can be installed using AppCafe®. After installing, it can be started by typing winecfg in the command line. The first time running this utility, it may prompt to install additional required packages. If prompted, click Install in the pop-up menu.

The initial Wine configuration menu is shown in Figure 5.13.1.

_images/wine1a.png

Fig. 5.13.1 Wine Configuration Menu

Click Add application to browse to the application’s installer file. By default, the contents of the hard drive will be listed under drive_c. If the installer is on a CD/DVD, use the drop-down menu to browse to the home directory *.wine dosdevices folder. The contents of the CD/DVD should be listed under d:. If they are not, the most likely reason is your CD/DVD was not automatically mounted by the desktop. To mount the media, type mount -t cd9660 /dev/cd0 /cdrom as the superuser.

The system then accesses the media and you can now select the installer file. Once selected, click Apply then OK to exit the configuration utility.

To install the application, type winefile to see the screen shown in Figure 5.13.2.

_images/wine2a.png

Fig. 5.13.2 Installing the Application Using winefile

Click the button representing the drive which contains the installer and double-click on the installation file (e.g. setup.exe). The installer then launches to allow installing the application as on a Windows system.

Note

You may need need to unmount a CD/DVD before it ejects. As the superuser, type umount /mnt.

Once the installation is complete, browse to the application’s location. Figure 5.13.3 shows an example of running Internet Explorer within winefile.

_images/wine3.png

Fig. 5.13.3 Running the Installed Application

5.14. Updating TrueOS

The TrueOS project is organized around two update tracks: STABLE and UNSTABLE. Updating is handled through the SysAdm Update Manager; refer to the SysAdm Update Manager documentation for more details about using the Update Manager. This section only contains simple instructions to switch between update tracks.

To view or adjust the current update track for TrueOS, click Start Menu Control Panel Update Manager Settings. The Settings tab, seen in Figure 5.14.1, allows you to adjust when and where to perform system updates.

_images/update1.png

Fig. 5.14.1 Update Manager Settings

While both STABLE and UNSTABLE tracks are rolling releases based on FreeBSD-CURRENT, there are a few key differences between them.

Warning

Users with UNSTABLE installed before 7/14/2017 need to run pc-updatemanager syncconf in a command line in order to switch to the new UNSTABLE repository added on that day. Alternately, switch from UNSTABLE to STABLE in the Update Manager and click Save. Then, switch back to UNSTABLE and click Save again.

5.14.1. TrueOS STABLE

As its name implies, STABLE refers to the more solid version of TrueOS. STABLE updates are released infrequently, but are much more tested and polished. All TrueOS installation files are created from the STABLE track, and fresh TrueOS installations only look to the STABLE track for updates.

The STABLE track is recommended for those users who want a more predictable experience with fewer regressions, and are willing to wait longer for bugfixes and new utilities or ports.

5.14.2. TrueOS UNSTABLE

The UNSTABLE track is the bleeding edge of TrueOS development. Experimental fixes, upstream patches from the FreeBSD project, and testing new utilities and applications all happen first with the UNSTABLE track.

UNSTABLE is recommended for power users, those with custom hardware unsupported with STABLE, and project contributors who wish to help test patches committed to TrueOS and/or FreeBSD-CURRENT.

To switch to the UNSTABLE track, open the SysAdm Update Manager and navigate to the Settings tab, seen in Update Manager Settings. Check UNSTABLE Repository, then click Save Settings.

Alternately, you can edit /usr/local/etc/trueos.conf to change update tracks without using SysAdm. Here is an example trueos.conf:

# TrueOS Configuration Defaults

# Default package set to pull updates from
PACKAGE_SET: <STABLE, UNSTABLE, or CUSTOM>
PACKAGE_URL: <CUSTOM url>

# Default type of CDN to use
# IPFS - Use IPFS
# HTTP - Use a standard HTTP connection (default)
# CDN_TYPE: HTTP

# Set the number of automatic boot-environments to create / keep
MAXBE: 5
AUTO_UPDATE: disabled
AUTO_UPDATE_REBOOT: disabled

Rolling back from UNSTABLE to STABLE is done by switching tracks back to the STABLE branch, checking for updates, and rebooting once the previous STABLE update is installed.