4.15. Miscellaneous hardware and system components
| Chapter 4. Configuration and Installation Options |

## 4.15. Miscellaneous hardware and system components

In addition to the core component configuration, like network authentication and security, AutoYaST2 offers a wide range of hardware and system configuration which is available by default on any system installed manually and in an interactive way. For example, it is possible to configure printers, sound devices, TV cards and any other hardware components which have a module within YaST2.

Any new configuration options that will be added to YaST2 will be automatically available as an auto-installation resource.

### 4.15.1. Printer

The YaST printer module was made anew from scratch for openSUSE 11.1 and SUSE Linux Enterprise Server/Desktop 11. Currently the AutoYaST support for printing is limited to basic settings how the CUPS printing system is used on a client workstation to print via network.

Currently there is no AutoYaST support to set up local print queues. In particular when a USB printer is connected to a client workstation it is no longer possible to have a predefined configuration because USB printers are no longer accessed via a generic USB device node like "/dev/usb/lp0" but via a model specific device URI like "usb://ACME/FunPrinter?serial=1a2b3c". There is a serial number included so that a USB printer device URI works only for one particular device. Usually it is not possible to know the correct USB device URI in advance because it is determined by the CUPS backend "usb" during runtime when the particular device is connected depending on the actual values which the printer reports via the USB.

Intrinsic design of CUPS for printing in the network:

The CUPS daemon process (cupsd) of a CUPS network print server sends information about its print queues to a list of IP addresses (host addresses and/or broadcast addresses).

On client workstations (hosts that only send print jobs to servers) also a cupsd runs which listens to information from servers. There is a list of servers from which information is accepted. By default, information is accepted from all servers.

In this way, the queues of the server are available on the clients. Users on the clients can browse the queues on various servers. Therefore it is called "Browsing" and all what is to do on a client workstation to use CUPS in its default Browsing mode is to run the cupsd. The matching settings in the cupsd configuration file (/etc/cups/cupsd.conf) are "Browsing On" and "BrowseAllow all".

To limit from which CUPS servers browsing information is accepted, a setting like "BrowseAllow @LOCAL" accepts browsing information only from CUPS servers in the local network.

Multiple "BrowseAllow" entries like "BrowseAllow 192.168.100.1" and "BrowseAllow 192.168.200.0/255.255.255.0" can be used to accept browsing information only from particular hosts and/or networks.

CUPS Browsing information is recieved via UDP port 631. You may have to check firewall settings accordingly.

Alternatively if there is only one single CUPS server in the network, there is no need to use CUPS Browsing and have a CUPS daemon running on each client workstation.

Instead it is simpler to specify the CUPS server and access it directly by an entry like "ServerName 192.168.100.99" in /etc/cups/client.conf (only one such entry can be set). In this case the specified server is directly accessed so that a local running cupsd on a client workstation is no longer used so that it does no longer make sense to have it running.

The following is an example of a configuration section. The <cups_remote_server> entry contains the value of a ServerName entry in /etc/cups/client.conf. The <server_settings> section contains all values of the cupsd configuration file (/etc/cups/cupsd.conf) so that a complete <server_settings> section is required to get a reasonable cupsd configuration installed.

Example 4.38. Printer configuration

    ....
      <printer>

        <cups_remote_server>192.168.100.99</cups_remote_server>

        <server_settings>

          <Browsing config:type="list">
            <listentry>On</listentry>
          </Browsing>

          <BrowseAllow config:type="list">
            <listentry>@LOCAL</listentry>
            <listentry>192.168.100.1</listentry>
            <listentry>192.168.200.0/255.255.255.0</listentry>
          </BrowseAllow>

          <BrowseOrder config:type="list">
            <listentry>allow,deny</listentry>
          </BrowseOrder>

          <LogLevel config:type="list">
            <listentry>info</listentry>
          </LogLevel>

          <Listen config:type="list">
            <listentry>localhost:631</listentry>
            <listentry>/var/run/cups/cups.sock</listentry>
          </Listen>

          <DefaultAuthType config:type="list">
            <listentry>Basic</listentry>
          </DefaultAuthType>

          <SystemGroup config:type="list">
            <listentry>sys root</listentry>
          </SystemGroup>

          <sections config:type="list">

            <section>
              <Key>Location</Key>
              <Value>/</Value>
              <Allow config:type="list">
                <listentry>127.0.0.2</listentry>
              </Allow>
              <Order config:type="list">
                <listentry>allow,deny</listentry>
              </Order>
            </section>

            <section>
              <Key>Location</Key>
              <Value>/admin</Value>
              <Encryption config:type="list">
                <listentry>Required</listentry>
              </Encryption>
              <Order config:type="list">
                <listentry>allow,deny</listentry>
              </Order>
            </section>

            <section>
              <Key>Location</Key>
              <Value>/admin/conf</Value>
              <AuthType config:type="list">
                <listentry>Default</listentry>
              </AuthType>
              <Require config:type="list">
                <listentry>user @SYSTEM</listentry>
              </Require>
              <Order config:type="list">
                <listentry>allow,deny</listentry>
              </Order>
            </section>

            <section>

              <Key>Policy</Key>
              <Value>default</Value>

              <subsection config:type="list">

                <listentry>
                  <Key>Limit</Key>
                  <Value>Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job</Value>
                  <Require config:type="list">
                    <listentry>user @OWNER @SYSTEM</listentry>
                  </Require>
                  <Order config:type="list">
                    <listentry>deny,allow</listentry>
                  </Order>
                </listentry>

                <listentry>
                  <Key>Limit</Key>
                  <Value>CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default</Value>
                  <AuthType config:type="list">
                    <listentry>Default</listentry>
                  </AuthType>
                  <Require config:type="list">
                    <listentry>user @SYSTEM</listentry>
                  </Require>
                  <Order config:type="list">
                    <listentry>deny,allow</listentry>
                  </Order>
                </listentry>

                <listentry>
                  <Key>Limit</Key>
                  <Value>Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs</Value>
                  <AuthType config:type="list">
                    <listentry>Default</listentry>
                  </AuthType>
                  <Require config:type="list">
                    <listentry>user @SYSTEM</listentry>
                  </Require>
                  <Order config:type="list">
                    <listentry>deny,allow</listentry>
                  </Order>
                </listentry>

                <listentry>
                  <Key>Limit</Key>
                  <Value>Cancel-Job CUPS-Authenticate-Job</Value>
                  <Require config:type="list">
                    <listentry>user @OWNER @SYSTEM</listentry>
                  </Require>
                  <Order config:type="list">
                    <listentry>deny,allow</listentry>
                  </Order>
                </listentry>

                <listentry>
                  <Key>Limit</Key>
                  <Value>All</Value>
                  <Order config:type="list">
                    <listentry>deny,allow</listentry>
                  </Order>
                </listentry>

              </subsection>

            </section>

          </sections>

        </server_settings>

      </printer>
    ....

### 4.15.2. Sound devices

An example of sound configuration created using the configuration system is shown below.

Example 4.39. Sound configuration

    ....
        <sound>
          <autoinstall config:type="boolean">true</autoinstall>
          <modules_conf config:type="list">
            <module_conf>
              <alias>snd-card-0</alias>
              <model>M5451, ALI</model>
              <module>snd-ali5451</module>
              <options>
                <snd_enable>1</snd_enable>
                <snd_index>0</snd_index>
                <snd_pcm_channels>32</snd_pcm_channels>
              </options>
            </module_conf>
          </modules_conf>
          <volume_settings config:type="list">
            <listentry>
              <Master config:type="integer">75</Master>
            </listentry>
          </volume_settings>
        </sound>

    ....

4.14. Adding complete configurations |  | 4.16. Kernel dumps