ppscheck

title: ppscheck(8)

summary: tool to check a serial port for PPS

text:
# ppscheck(8)

## NAME
ppscheck - tool to check a serial port for PPS

## SYNOPSIS
ppscheck [-?] [--help] [-p] [--pps] [--version] [-h] [-V]

ppscheck [-m] device

## DESCRIPTION
ppscheck watches a specified serial port for transitions that might be PPS. It looks for changes in handshake lines CD, CTS, DSR, and RI by running ioctl(...., TIOCMIWAIT, ...) in a loop. When it sees a state change it emits a timestamped line of output dumping the state of the handshake signals. It’s useful for checking whether a device is emitting PPS.

ppscheck can run as a normal user, but that user must have permissions to read the target device. Running under sudo may, or may not, work. Running as root will always work.

To check the first serial port do this:

```
# ppscheck /dev/ttyS0
```

As a side effect, ppscheck will try to create the matching /dev/ppsX by setting the tty line discipline (ldisc) to N_PPS (18). You should then have a device /dev/pps0. Note that not all serial devices support ldisc N_PPS.

You can now use ppscheck to see if the KPPS (RFC 2783) interface is working:

```
# ppscheck /dev/pps0
```

ppscheck is not intended for routine use, but rather for diagnostic purposes. Once you have verified a particular device can output PPS signals you will never need to use it again on that device.

## OPTIONS
The program accepts the following options:

-?, `-h, `--help

Print help message, then exit.

-m, `--match

Find PPS device that matches device.

-p, `--pps

Print active PPS devices, then exit.

-V, `--version

Dump version, then exit.

-x SEC, --seconds SEC

Exit after delay of SEC seconds.

## ARGUMENTS
The device argument should be the pathname of a device. Such as /dev/ttyS0 or /dev/pps0. It will be the device monitored.

For a tty device, each output line is the second and nanosecond parts of a timestamp followed by the names of the handshake signals then asserted. Off transitions may generate lines with no signals asserted.

For a pps device, each output line will contain the assert and clear times last detected by KPPS.

If you don’t see output within a second, use cgps, xgps, or some other equivalent tool to check that your device has a satellite lock and is getting 3D fixes before giving up on the possibility of PPS.

Check your cable. Cheap DB9 to DB9 cables such as those issued with UPSes often carry TXD/RXD/GND only, omitting handshake lines such as CD. Suspect this especially if the cable jacket looks too skinny to hold more than three leads!

Most GPS that have built in USB do not support PPS. When in doubt, contact the vendor for confirmation that your device does supply PPS.

## RETURN VALUES
0

OK

1

if the device could not be opened, or some other failure

## SEE ALSO
cgps(1), xgps(1), gpsd(8)

## RESOURCES
Project web site: <https://gpsd.io/>

## COPYING
This file is Copyright 2013 by the GPSD project

SPDX-License-Identifier: BSD-2-clause

## AUTHOR
Eric S. Raymond


grub-btrfs

package: grub-btrfs

title: grub-btrfs(8)

text:
# grub-btrfs(8)

## NAME
grub-btrfs - Automatically add btrfs-Snapshots as a Grub submenu

## SYNOPSIS
/etc/grub.d/41_snapshots-btrfs [-V, --version]

## DESCRIPTION
Improves grub by adding “btrfs snapshots” to the grub menu.

You can boot your system on a “snapshot” from the grub menu. Supports manual snapshots, snapper and timeshift. Features of grub-btrfs:

—

Automatically list snapshots existing on root partition (btrfs).

—

Automatically detect if /boot is in separate partition.

—

Automatically detect kernel, initramfs and intel/amd microcode in /boot directory on snapshots.

—

Automatically create corresponding “menuentry” in grub.cfg

—

Automatically detect the type/tags and descriptions/comments of snapper/timeshift snapshots.

—

Automatically generate grub.cfg if you use the provided systemd service.

## CONFIGURATION
grub-btrfs is configured via the file /etc/default/grub-btrfs/config. Possible options are:

### GRUB_BTRFS_DISABLE
Disable grub-btrfs if true.

—

Default: “false”

—

Example: GRUB_BTRFS_DISABLE="true"

### GRUB_BTRFS_TITLE_FORMAT
The snapshot entries submenu in Grub are added according to this line. It is possible to change to order of the fields.

—

Default: (“date” “snapshot” “type” “description”)

—

Example: GRUB_BTRFS_TITLE_FORMAT=("date" "snapshot" "type" "description")

### GRUB_BTRFS_LIMIT
Maximum number of snapshots in the GRUB snapshots sub menu.

—

Default: “50”

—

Example: GRUB_BTRFS_LIMIT="50"

### GRUB_BTRFS_SUBVOLUME_SORT
Sort the found subvolumes by “ogeneration” or “generation” or “path” or “rootid”.

—

See Sorting section in btrfs-subvolume(8)

“-rootid” means list snapshot by new ones first.

—

Default: “-rootid”

—

Example: GRUB_BTRFS_SUBVOLUME_SORT="+ogen,-gen,path,rootid"

### GRUB_BTRFS_SHOW_SNAPSHOTS_FOUND
Show snapshots found during run “grub-mkconfig”

—

Default: “true”

—

Example: GRUB_BTRFS_SHOW_SNAPSHOTS_FOUND="false"

### GRUB_BTRFS_ROOTFLAGS
Comma separated mount options to be used when booting a snapshot. They can be defined here as well as in the “/” line inside the respective snapshots’ “/etc/fstab” files. Mount options found in both places are combined, and this variable takes priority over `fstab` entries. NB: Do NOT include “subvol=...” or “subvolid=...” here.

—

Default: “”

—

Example: GRUB_BTRFS_ROOTFLAGS="space_cache,commit=10,norecovery"

### GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION
By default “grub-btrfs” automatically detects your boot partition, either located at the system root or on a separate partition or in a subvolume, Change to “true” if your boot partition is not detected as separate.

—

Default: “false”

—

Example: GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION="true"

### GRUB_BTRFS_ENABLE_CRYPTODISK
Enable booting from snapshots stored on LUKS encrypted devices

—

Default: “false”

—

Example: GRUB_BTRFS_ENABLE_CRYPTODISK="true"

### GRUB_BTRFS_NKERNEL / GRUB_BTRFS_NINIT / GRUB_BTRFS_CUSTOM_MICROCODE
By default, “grub-btrfs” automatically detects most existing kernels, initramfs and microcode. Customs kernel, initramfs and microcodes that are not detected can be added in these variables.

—

Default: (“”)

—

Example: GRUB_BTRFS_NKERNEL=("kernel-5.19.4-custom" "vmlinux-5.19.4-custom") GRUB_BTRFS_NINIT=("initramfs-5.19.4-custom.img" "initrd-5.19.4-custom.img" "otherinit-5.19.4-custom.gz") GRUB_BTRFS_CUSTOM_MICROCODE=("custom-ucode.img" "custom-uc.img "custom_ucode.cpio")

### GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS
Additional kernel command line parameters that should be passed to the kernelwhen booting a snapshot. For dracut based distros this could be useful to pass “rd.live.overlay.overlayfs=1” or “rd.live.overlay.readonly=1” to the Kernel for booting read only snapshots.

—

Default: “”

—

Example: GRUB_BTRFS_SNAPSHOT_KERNEL_PARAMETERS="rd.live.overlay.overlayfs=1"

### GRUB_BTRFS_IGNORE_SPECIFIC_PATH
Ignore specific path during run “grub-mkconfig”. Only exact paths are ignored. e.g : if `specific path` = @, only `@` snapshot will be ignored.

—

Default: (“@”)

—

Example: GRUB_BTRFS_IGNORE_SPECIFIC_PATH=("@home")

### GRUB_BTRFS_IGNORE_PREFIX_PATH
Ignore prefix path during run “grub-mkconfig”. Any path starting with the specified string will be ignored. e.g : if `prefix path` = @, all snapshots beginning with “@/...” will be ignored.

—

Default: (“var/lib/docker” “@var/lib/docker” “@/var/lib/docker”)

—

Example: GRUB_BTRFS_IGNORE_PREFIX_PATH=("var/lib/docker" "@var/lib/docker" "@/var/lib/docker")

### GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE
Ignore specific type/tag of snapshot during run “grub-mkconfig”. For snapper: Type = single, pre, post. For Timeshift: Tag = boot, ondemand, hourly, daily, weekly, monthly.

—

Default: (“”)

—

Example: GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE=("ondemand")

### GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION
Ignore specific description of snapshot during run “grub-mkconfig”.

—

Default: (“”)

—

Example: GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION=("timeline")

### GRUB_BTRFS_BOOT_DIRNAME
Location of kernels/initramfs/microcode. Used by “grub-btrfs” to detect the boot partition and the location of kernels, initramfs and microcodes.

—

Default: “/boot”

—

Example: GRUB_BTRFS_BOOT_DIRNAME="/"

### GRUB_BTRFS_GRUB_DIRNAME
Location of the folder containing the “grub.cfg” file. Might be grub2 on some systems. For example, on Fedora with EFI : “/boot/efi/EFI/fedora”

—

Default: “/boot/grub”

—

Example: GRUB_BTRFS_GRUB_DIRNAME="/boot/grub2"

### GRUB_BTRFS_GBTRFS_DIRNAME
Location where grub-btrfs.cfg should be saved. Some distributions (like OpenSuSE) store those file at the snapshot directory instead of boot. Be aware that this directory must be available for grub during startup of the system.

—

Default: $GRUB_BTRFS_GRUB_DIRNAME

—

Example: GRUB_BTRFS_GBTRFS_DIRNAME="/.snapshots"

### GRUB_BTRFS_GBTRFS_SEARCH_DIRNAME
Location of the directory where Grub searches for the grub-btrfs.cfg file. Some distributions (like OpenSuSE) store those file at the snapshot directory instead of boot. Be aware that this directory must be available for grub during startup of the system.

—

Default: “prefix}” (This is a grub variable that resolves to where grub is

installed. (like /boot/grub, /boot/efi/grub))

—

NOTE: If variables of grub are used here like ${prefix}, they need to be escaped

with `$` before the `$`

—

Example: GRUB_BTRFS_GBTRFS_SEARCH_DIRNAME="prefix}"

### GRUB_BTRFS_MKCONFIG
Name/path of the command to generate the grub menu, used by “grub-btrfs.service” Might be ’grub2-mkconfig’ on some systems (e.g. Fedora) Default paths are /sbin:/bin:/usr/sbin:/usr/bin, if your path is missing, report it on the upstream project. You can use the name of the command only or full the path.

—

Default: grub-mkconfig

—

Example: GRUB_BTRFS_MKCONFIG=/sbin/grub2-mkconfig

### GRUB_BTRFS_SCRIPT_CHECK
Name of grub-script-check command, used by “grub-btrfs” Might be ’grub2-script-check’ on some systems (e.g. Fedora)

—

Default: grub-script-check

—

Example: GRUB_BTRFS_SCRIPT_CHECK=grub2-script-check

### GRUB_BTRFS_MKCONFIG_LIB
Path of grub-mkconfiglib file, used by “grub-btrfs” Might be ’/usr/share/grub2/grub-mkconfiglib’ on some systems (e.g. Opensuse)

—

Default: /usr/share/grub/grub-mkconfiglib

—

Example: GRUB_BTRFS_MKCONFIG_LIB=/usr/share/grub2/grub-mkconfig_lib

### GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS
Password protection management for submenu, snapshots Refer to the Grub documentation https://www.gnu.org/software/grub/manual/grub/grub.html#Authentication-and-authorisation and this comment https://github.com/Antynea/grub-btrfs/issues/95#issuecomment-682295660 Add authorized usernames separate by comma (userfoo,userbar). When Grub’s password protection is enabled, the superuser is authorized by default, it is not necessary to add it

—

Default: “”

—

Example: GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS="userfoo,userbar"

### GRUB_BTRFS_DISABLE_PROTECTION_SUBMENU
Disable authentication support for submenu of Grub-btrfs only (--unrestricted) does not work if GRUBBTRFSPROTECTIONAUTHORIZEDUSERS is not empty

—

Default: “false”

—

Example: GRUB_BTRFS_DISABLE_PROTECTION_SUBMENU="true"

## FILES
/etc/default/grub-btrfs/config

## SEE ALSO
btrfs(8) btrfs-subvolume(8) grub-btrfsd(8) grub-mkconfig(8)

## COPYRIGHT
Copyright (c) 2022 Pascal Jäger

branch: sisyphus


grub-btrfsd

title: grub-btrfsd(8)

text:
# grub-btrfsd(8)

## NAME
grub-btrfsd - An OpenRC daemon to automatically update the grub menu with grub-btrfs(8)

when a new btrfs snapshot is created.

## SYNOPSIS
grub-btrfsd [-h, --help] [-c, --no-color] [-l, --log-file LOG_FILE] [-r, --recursive] [-s, --syslog] [-t, --timeshift-auto] [-o, --timeshift-old] [-v, --verbose] SNAPSHOTS_DIRS

## DESCRIPTION
Grub-btrfsd is a shell script which is meant to be run as a daemon. Grub-btrfsd watches a directory where btrfs-snapshots are created or deleted via inotifywait and runs grub-mkconfig (if grub-mkconfig never ran before since grub-btrfs was installed) or /etc/grub.d/41_snapshots-btrfs (when grub-mkconfig ran before with grub-btrfs installed) when something in that directory changes.

## OPTIONS

### SNAPSHOTS_DIRS
This argument specifies the (space separated) paths where grub-btrfsd looks for newly created snapshots and snapshot deletions. It is usually defined by the program used to make snapshots. E.g. for Snapper this would be /.snapshots. It is possible to define more than one directory here, all directories will inherit the same settings (recursive etc.). This argument is not necessary to provide if --timeshift-auto is set.

### -c / --no-color
Disable colors in output.

### -l / --log-file
This arguments specifies a file where grub-btrfsd should write log messages.

### -r / --recursive
Watch snapshot directory recursively

### -s / --syslog
Write to syslog

### -t / --timeshift-auto
This is a flag to activate the auto detection of the path where Timeshift stores snapshots. Newer versions (>=22.06) of Timeshift mount their snapshots to /run/timeshift/$PID/backup/timeshift-btrfs. Where $PID is the process ID of the currently running Timeshift session. The PID is changing every time Timeshift is opened. grub-btrfsd can automatically take care of the detection of the correct PID and directory if this flag is set. In this case the argument SNAPSHOTS_DIRS has no effect.

### -o / --timeshift-old
Look for snapshots in /run/timeshift/backup/timeshift-btrfs instead of /run/timeshift/$PID/backup/timeshift-btrfs. This is to be used for Timeshift versions <22.06.

### -v / --verbose
Let the log of the daemon be more verbose

### -h / --help
Displays a short help message.

## CONFIGURATION
The daemon is usually configured via the file /etc/conf.d/grub-btrfsd on openrc-init systems and sudo systemctl edit --full grub-btrfsd on systemd systems. In this file the arguments (See OPTIONS), that OpenRC passes to the daemon when it is started, can be configured.

### NOTES
A common configuration for Snapper would be to set SNAPSHOTS_DIR to /.snapshots and not to set --timeshift-auto. For Timeshift --timeshift-auto is set to true and SNAPSHOTS_DIR can be left as is.

## FILES
/etc/conf.d/grub-btrfsd /usr/lib/systemd/system/grub-btrfsd.service

## SEE ALSO
btrfs(8) btrfs-subvolume(8) grub-btrfsd(8) grub-mkconfig(8) inotifywait(1) openrc(8) rc-service(8) timeshift(1)

## COPYRIGHT
Copyright (c) 2022 Pascal Jäger


grub-bios-setup

package: grub-common

title: grub-bios-setup(8)

summary: set up a device to boot using GRUB

text:
# grub-bios-setup(8)

## NAME
grub-bios-setup - set up a device to boot using GRUB

## SYNOPSIS
grub-bios-setup [OPTION...] DEVICE

## DESCRIPTION
Set up images to boot from DEVICE.

You should not normally run this program directly. Use grub-install instead.

-a, --allow-floppy

make the drive also bootable as floppy (default for fdX devices). May break on some BIOSes.

-b, --boot-image=FILE

use FILE as the boot image [default=boot.img]

-c, --core-image=FILE

use FILE as the core image [default=core.img]

-d, --directory=DIR

use GRUB files in the directory DIR [default=/boot/grub]

-f, --force

install even if problems are detected

-m, --device-map=FILE

use FILE as the device map [default=/boot/grub/device.map]

--no-rs-codes

Do not apply any reed-solomon codes when embedding core.img. This option is only available on x86 BIOS targets.

-s, --skip-fs-probe

do not probe for filesystems in DEVICE

-v, --verbose

print verbose messages.

-?, --help

give this help list

--usage

give a short usage message

-V, --version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

DEVICE must be an OS device (e.g. /dev/sda).

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-install(8), grub-mkimage(1), grub-mkrescue(1)

The full documentation for grub-bios-setup is maintained as a Texinfo manual. If the info and grub-bios-setup programs are properly installed at your site, the command

info grub-bios-setup

should give you access to the complete manual.


grub-entries

title: grub-entries(8)

text:
# grub-entries(8)

## NAME
grub-entries - simple script for show grub menu and check menu items

## SYNOPSIS
grub-entries [options]

## DESCRIPTION
grub-entries parse specified or default grub config file, list all grub menu items in the one of the three forms. Also can search specified item in menu and returns 0, if this item exists, otherwise returns non-zero value. By default, /boot/grub/grub.cfg config file used.

In default output mode, menu items that match the saved default entry (set by grub-set-default(8)) are marked with *, and items that match the next boot entry (set by grub-reboot(8)) are marked with N. If an entry matches both, both markers are shown (* N). The markers appear between the item number and the title. Entries are matched by number, title, or menuentry id.

## OPTIONS
-f, --config filename

Specify path to the grub config.

-e, --env filename

Specify path to the grub environment file. By default, grubenv in the same directory as the grub config is used.

-n, --numbers

Show only menu item sequence numbers.

-t, --titles

Show only menu item names.

-c, --check menuitem

Specify menu item to validate.

-V, --version

Show script version and exit.

-h, --help

Show help message and exit.

## FILES
/boot/grub/grub.cfg

Default grub configuration file.

/boot/grub/grubenv

Default grub environment file (read via grub-editenv(1)).

## AUTHORS
Leonid Krivoshein <klark@altlinux.org>

## SEE ALSO
grub-reboot(8), grub-set-default(8)


grub-install

title: grub-install(8)

summary: install GRUB to a device

text:
# grub-install(8)

## NAME
grub-install - install GRUB to a device

## SYNOPSIS
grub-install [OPTION...] [OPTION] [INSTALL_DEVICE]

## DESCRIPTION
Install GRUB on your drive.

--appended-signature-size=SIZE

Add a note segment reserving SIZE bytes for an appended signature

--compress=no|xz|gz|lzo

compress GRUB files [optional]

--disable-cli

disabled command line interface access

--disable-shim-lock

disable shim_lock verifier

--dtb=FILE

embed a specific DTB

-d, --directory=DIR

use images and modules under DIR [default=/usr/lib64/grub/<platform>]

--fonts=FONTS

install FONTS [default=unicode]

--install-modules=MODULES

install only MODULES and their dependencies [default=all]

-k, --pubkey=FILE

embed FILE as public key for signature checking

--locale-directory=DIR use translations under DIR

[default=/usr/share/locale]

--locales=LOCALES

install only LOCALES [default=all]

--modules=MODULES

pre-load specified modules MODULES

--no-sbat

do not embed default SBAT metadata

--sbat=FILE

SBAT metadata [default=./sbat.csv]

--themes=THEMES

install THEMES [default=starfield]

-v, --verbose

print verbose messages.

-x, --x509key=FILE

embed FILE as an x509 certificate for appended signature checking

--allow-floppy

make the drive also bootable as floppy (default for fdX devices). May break on some BIOSes.

--boot-directory=DIR

install GRUB images under the directory DIR/grub instead of the boot/grub directory

--boot-directory-only

populate /boot/grub without installing to ESP or updating NVRAM. This option is only available on EFI targets.

--bootloader-id=ID

the ID of bootloader. This option is only available on EFI and Macs.

--core-compress=xz|none|auto

choose the compression to use for core image

--disk-module=MODULE

disk module to use (biosdisk or native). This option is only available on BIOS target.

--efi-directory=DIR

use DIR as the EFI System Partition root.

--force

install even if problems are detected

--force-file-id

use identifier file even if UUID is available

--label-bgcolor=COLOR

use COLOR for label background

--label-color=COLOR

use COLOR for label

--label-font=FILE

use FILE as font for label

--macppc-directory=DIR use DIR for PPC MAC install.

--no-bootsector

do not install bootsector

--no-nvram

don't update the `boot-device'/`Boot*' NVRAM variables. This option is only available on EFI and IEEE1275 targets.

--no-rs-codes

Do not apply any reed-solomon codes when embedding core.img. This option is only available on x86 BIOS targets.

--product-version=STRING

use STRING as product version

--recheck

delete device map if it already exists

--removable

the installation device is removable. This option is only available on EFI.

-s, --skip-fs-probe

do not probe for filesystems in DEVICE

--target=TARGET

install GRUB for TARGET platform [default=i386-pc]; available targets: arm-coreboot, arm-efi, arm-uboot, arm64-efi, i386-coreboot, i386-efi, i386-ieee1275, i386-multiboot, i386-pc, i386-qemu, i386-xen, i386-xen_pvh, ia64-efi, loongarch64-efi, mips-arc, mips-qemu_mips, mipsel-arc, mipsel-loongson, mipsel-qemu_mips, powerpc-ieee1275, riscv32-efi, riscv64-efi, sparc64-ieee1275, x86_64-efi, x86_64-xen

-?, --help

give this help list

--usage

give a short usage message

-V, --version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

INSTALL_DEVICE must be system device filename. grub-install copies GRUB images into boot/grub. On some platforms, it may also install GRUB into the boot sector.

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-mkconfig(8), grub-mkimage(1), grub-mkrescue(1)

The full documentation for grub-install is maintained as a Texinfo manual. If the info and grub-install programs are properly installed at your site, the command

info grub-install

should give you access to the complete manual.


grub-macbless

title: grub-macbless(8)

summary: bless a mac file/directory

text:
# grub-macbless(8)

## NAME
grub-macbless - bless a mac file/directory

## SYNOPSIS
grub-macbless [OPTION...] --ppc PATH|--x86 FILE

## DESCRIPTION
Mac-style bless on HFS or HFS+

-p, --ppc

bless for ppc-based macs

-v, --verbose

print verbose messages.

-x, --x86

bless for x86-based macs

-?, --help

give this help list

--usage

give a short usage message

-V, --version

print program version

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-install(1)

The full documentation for grub-macbless is maintained as a Texinfo manual. If the info and grub-macbless programs are properly installed at your site, the command

info grub-macbless

should give you access to the complete manual.


grub-mkconfig

title: grub-mkconfig(8)

summary: generate a GRUB configuration file

text:
# grub-mkconfig(8)

## NAME
grub-mkconfig - generate a GRUB configuration file

## SYNOPSIS
grub-mkconfig [OPTION]

## DESCRIPTION
Generate a grub config file

-o, --output=FILE

output generated config to FILE [default=stdout]

-h, --help

print this message and exit

-V, --version

print the version information and exit

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-install(8)

The full documentation for grub-mkconfig is maintained as a Texinfo manual. If the info and grub-mkconfig programs are properly installed at your site, the command

info grub-mkconfig

should give you access to the complete manual.


grub-ofpathname

title: grub-ofpathname(8)

summary: find OpenBOOT path for a device

text:
# grub-ofpathname(8)

## NAME
grub-ofpathname - find OpenBOOT path for a device

## SYNOPSIS
grub-ofpathname DEVICE

## SEE ALSO
grub-probe(8)

The full documentation for grub-ofpathname is maintained as a Texinfo manual. If the info and grub-ofpathname programs are properly installed at your site, the command

info grub-ofpathname

should give you access to the complete manual.


grub-probe

title: grub-probe(8)

summary: probe device information for GRUB

text:
# grub-probe(8)

## NAME
grub-probe - probe device information for GRUB

## SYNOPSIS
grub-probe [OPTION...] [OPTION]... [PATH|DEVICE]

## DESCRIPTION
Probe device information for a given path (or device, if the -d option is given).

-0

separate items in output using ASCII NUL characters

-d, --device

given argument is a system device, not a path

-m, --device-map=FILE

use FILE as the device map [default=/boot/grub/device.map]

-t, --target=TARGET

print TARGET available targets: abstraction, arc_hints, baremetal_hints, bios_hints, compatibility_hint, cryptodisk_uuid, device, disk, drive, efi_hints, fs, fs_label, fs_uuid, gpt_parttype, hints_string, ieee1275_hints, msdos_parttype, partmap, partuuid, zero_check [default=fs]

-v, --verbose

print verbose messages (pass twice to enable debug printing).

-?, --help

give this help list

--usage

give a short usage message

-V, --version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-fstest(1)

The full documentation for grub-probe is maintained as a Texinfo manual. If the info and grub-probe programs are properly installed at your site, the command

info grub-probe

should give you access to the complete manual.


grub-reboot

title: grub-reboot(8)

text:
# grub-reboot(8)

## NAME
grub-reboot - set the default boot entry for GRUB, for the next boot only

## SYNOPSIS
grub-reboot [OPTION] MENU_ENTRY

## DESCRIPTION
Set the default boot menu entry for GRUB, for the next boot only.

-h, --help

print this message and exit

-V, --version

print the version information and exit

--boot-directory=DIR

expect GRUB images under the directory DIR/grub instead of the /boot/grub directory

MENU_ENTRY is a number, a menu item title or a menu item identifier. Please note that menu items in submenus or sub-submenus require specifying the submenu components and then the menu item component. The titles should be separated using the greater-than character (>) with no extra spaces. Depending on your shell some characters including > may need escaping. More information about this is available in the GRUB Manual in the section about the 'default' command.

NOTE: In cases where GRUB cannot write to the environment block, such as when it is stored on an MDRAID or LVM device, the chosen boot menu entry will remain the default even after reboot.

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-set-default(8), grub-editenv(1)

The full documentation for grub-reboot is maintained as a Texinfo manual. If the info and grub-reboot programs are properly installed at your site, the command

info grub-reboot

should give you access to the complete manual.


grub-set-default

title: grub-set-default(8)

text:
# grub-set-default(8)

## NAME
grub-set-default - set the saved default boot entry for GRUB

## SYNOPSIS
grub-set-default [OPTION] MENU_ENTRY

## DESCRIPTION
Set the default boot menu entry for GRUB. This requires setting GRUB_DEFAULT=saved in /etc/default/grub.

-h, --help

print this message and exit

-V, --version

print the version information and exit

--boot-directory=DIR

expect GRUB images under the directory DIR/grub instead of the /boot/grub directory

MENU_ENTRY is a number, a menu item title or a menu item identifier.

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-reboot(8), grub-editenv(1)

The full documentation for grub-set-default is maintained as a Texinfo manual. If the info and grub-set-default programs are properly installed at your site, the command

info grub-set-default

should give you access to the complete manual.


title: grub-sparc64-setup(8)

summary: set up a device to boot using GRUB

text:
# grub-sparc64-setup(8)

## NAME
grub-sparc64-setup - set up a device to boot using GRUB

## SYNOPSIS
grub-sparc64-setup [OPTION...] DEVICE

## DESCRIPTION
Set up images to boot from DEVICE.

You should not normally run this program directly. Use grub-install instead.

-a, --allow-floppy

make the drive also bootable as floppy (default for fdX devices). May break on some BIOSes.

-b, --boot-image=FILE

use FILE as the boot image [default=boot.img]

-c, --core-image=FILE

use FILE as the core image [default=core.img]

-d, --directory=DIR

use GRUB files in the directory DIR [default=/boot/grub]

-f, --force

install even if problems are detected

-m, --device-map=FILE

use FILE as the device map [default=/boot/grub/device.map]

--no-rs-codes

Do not apply any reed-solomon codes when embedding core.img. This option is only available on x86 BIOS targets.

-s, --skip-fs-probe

do not probe for filesystems in DEVICE

-v, --verbose

print verbose messages.

-?, --help

give this help list

--usage

give a short usage message

-V, --version

print program version

Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.

DEVICE must be an OS device (e.g. /dev/sda).

## REPORTING BUGS
Report bugs to <bug-grub@gnu.org>.

## SEE ALSO
grub-install(8), grub-mkimage(1), grub-mkrescue(1)

The full documentation for grub-sparc64-setup is maintained as a Texinfo manual. If the info and grub-sparc64-setup programs are properly installed at your site, the command

info grub-sparc64-setup

should give you access to the complete manual.


update-grub

title: update-grub(8)

summary: stub for grub-mkconfig

text:
# update-grub(8)

## NAME
update-grub, update-grub2 - stub for grub-mkconfig

## SYNOPSIS
update-grub

## DESCRIPTION
update-grub is a stub for running grub-mkconfig -o /boot/grub/grub.cfg to generate a grub2 config file.

## SEE ALSO
grub-mkconfig(8)


gssntlmssp

package: gssntlmssp

title: gssntlmssp(8)

text:
# gssntlmssp(8)

## NAME
gssntlmssp - GSSAPI NTLM Security Service Provider mechanism

## SYNOPSIS
gssntlmssp_v1 2.16.840.1.113730.3.8.15.X /usr/lib64/gssntlmssp/gssntlmssp.so [options]

## DESCRIPTION
A GSSAPI NTLM mechanism that allows to perform NTLM authentication in GSSAPI programs.

## ENVIRONMENT VARIABLES
NTLM_USER_FILE

A file containing users and their password hashes. The file formats supported are the one used by Heimdal for its NTLM backend, and the samba password file format.

NETBIOS_COMPUTER_NAME

Set the NETBIOS (short) Computer name used in NTLM packets

NETBIOS_DOMAIN_NAME

Set the NETBIOS (short) Domain name used in NTLM packets

NTLMUSER

Set the NTLM User name used for authentication on initiation of the security context

USER

The default source for the User name used on initiation of the security context

LM_COMPAT_LEVEL

The LM Compatibility Level enforced during security context negotiation. The default level is 3

GSSNTLMSSP_DEBUG

The name of a file to send debug logs

GSSNTLMSSP_WB_TLS_CTX

This variable is used to control whether thread local contexts are used for winbindd communication or whether a single process context is used. Setting the value of this variable to 0 disables per-thread contexts. Because creating Winbindd contexts is an expensive operation this is used as an optimization in applications that can insure a single thread is used, or already handle their own locking. The default behavior is to create a context for each thread, this behavior can be restored by setting the environment variable back to the value 1

## SEE ALSO
gssapi(8).

## AUTHORS
GSS-NTLMSSP - http://ssimo.org/gss-ntlmssp


gssproxy

package: gssproxy

title: gssproxy(8)

summary: GssProxy Daemon

text:
# gssproxy(8)

## NAME
gssproxy - GssProxy Daemon

## SYNOPSIS
gssproxy [options]

## DESCRIPTION
gssproxy provides a daemon to manage access to GSSAPI credentials.

gssproxy consists of the gssproxy daemon (configured by the gssproxy.conf(5) file) and a GSSAPI interposer plugin (gssproxy-mech(8)).

## OPTIONS
-D,--daemon

Become a daemon after starting up.

-c,--config

Specify a config file to use as the main config file (read before the rest of the config directory). The default is to use the file /etc/gssproxy/gssproxy.conf. For reference on the config file syntax and options, consult the gssproxy.conf(5) manual page.

-C,--configdir

Specify a non-default config dir. Files named of the form "##-foo.conf" (that is, beginning with two digits and a dash, and ending in ".conf") will be read in numeric order from this directory, in addition to the config file itself. The default is /etc/gssproxy. For reference on the config file syntax and options, consult the gssproxy.conf(5) manual page.

-d,--debug

Turn on debugging. This option is identical to --debug-level=1.

--debug-level=

Turn on debugging at the specified level. 0 corresponds to no logging, while 1 turns on basic debug logging. Level 2 increases verbosity, including more detailed credential verification. At level 3 and above, KRB5_TRACE output is logged. If KRB5_TRACE was already set in the execution environment, trace output is sent to its value instead.

-i,--interactive

Run in the foreground, don't become a daemon.

-u,--userproxy

Run gssproxy in userproxy mode. This mode ignores configuration files, and listens on a socket in $XDG_RUNTIME_DIR/gssproxy/default.sock instead. See the project documentation for more information on the behavior of this mode.

-s,--socket

Specify a custom default socket name. This socket will be used by all sections that do not define an explicit socket.

--syslog-status

Enable additional logging to syslog.

--version

Print version number and exit.

## SIGNALS
SIGTERM/SIGINT

Informs the GssProxy to gracefully terminate all of its child processes and then shut down.

SIGHUP

Request a reload of all configuration for gssproxy. If there is an error in the configuration files, the existing configuration will not be replaced; if there is a problem applying the new configuration, gssproxy will exit.

## SEE ALSO
gssproxy.conf(5) and gssproxy-mech(8).

## AUTHORS
GSS-Proxy - http://fedorahosted.org/gss-proxy


gssproxy-mech

title: gssproxy-mech(8)

summary: GssProxy GSSAPI mechanism plugin

text:
# gssproxy-mech(8)

## NAME
gssproxy-mech - GssProxy GSSAPI mechanism plugin

## SYNOPSIS
proxymech_v1 2.16.840.1.113730.3.8.15.1 /usr/lib64/gssproxy/proxymech.so [options]

## DESCRIPTION
The gssproxy proxymech module is a interposer plugin that is loaded by GSSAPI. It is enabled by /etc/gss/mech configuration file.

The interposer plugin allows one to intercept the entire GSSAPI communication and detour to the gssproxy daemon. When the interposer plugin is installed two other conditions need to be met in order to activate it:

a) interposer configuration file

The plugin needs to be manually enabled in the /etc/gss/mech file.

b) gssproxy environment variable

With default build options the interposer plugin will not forward to the gssproxy daemon unless the environment variable named GSS_USE_PROXY=yes is set. This behavior default may be controlled at build time and can be set to always forward unless the environment variable is set to GSS_USE_PROXY=no

The current setting for always forwarding is: false

Furthermore, the interposer plugin can be configured to behave in different ways when called from the GSSAPI. This behavior is controlled via the GSSPROXY_BEHAVIOR environment variable. It accepts four different values:

LOCAL_ONLY

All commands received with this setting will cause to immediately reenter the GSSAPI w/o any interaction with the gssproxy daemon. When the request cannot be processed it will just fail.

LOCAL_FIRST

All commands received with this setting will cause to immediately reenter the GSSAPI. When the local GSSAPI cannot process the request, it will resend the request to the gssproxy daemon.

REMOTE_FIRST

All commands received with this setting will be forwarded to the gssproxy daemon first. If the request cannot be handled there, the request will reenter the local GSSAPI.

REMOTE_ONLY

This setting is currently not fully implemented and therefore not supported.

The default setting for GSSPROXY_BEHAVIOR is REMOTE_FIRST.

Finally the interposer may need to use a special per-service socket in order to communicate with gssproxy. The path to this socket is set via the GSSPROXY_SOCKET environment variable.

## SEE ALSO
gssproxy.conf(5) and gssproxy(8).

## AUTHORS
GSS-Proxy - http://fedorahosted.org/gss-proxy


guacd

package: guacd

title: guacd(8)

summary: Guacamole proxy daemon

text:
# guacd(8)

## NAME
guacd - Guacamole proxy daemon

## SYNOPSIS
guacd [-b HOST] [-l PORT] [-p PID FILE] [-L LOG LEVEL] [-C CERTIFICATE FILE] [-K KEY FILE] [-f] [-v]

## DESCRIPTION
guacd is the Guacamole proxy daemon used by the Guacamole web application and framework. As JavaScript cannot handle binary protocols (like VNC and remote desktop) efficiently, a new text-based protocol was developed which would contain a common superset of the operations needed for efficient remote desktop access, but would be easy for JavaScript programs to process. guacd is the proxy which translates between arbitrary protocols and the Guacamole protocol.

## OPTIONS
-b HOST

Changes the host or address that guacd listens on.

-l PORT

Changes the port that guacd listens on (the default is port 4822).

-p FILE

Causes guacd to write the PID of the daemon process to the specified file. This is useful for init scripts and is used by the provided init script.

-L LEVEL

Sets the maximum level at which guacd will log messages to syslog and, if running in the foreground, the console. Legal values are trace, debug, info, warning, and error. The default value is info.

-f

Causes guacd to run in the foreground, rather than automatically forking into the background.

-v

Causes guacd to simply print its version information and exit.

## SSL/TLS OPTIONS
If libssl was present at the time guacd was compiled, it will contain SSL/TLS support, and connections between the web application and guacd can be encrypted if a certificate file is given.

When using a chain of certificates, you must append the additional certificates to your server certificate. This can be done easily with the standard cat command. Beware that the certificate for guacd must be the first certificate in the file.

-C CERTIFICATE FILE

Enables SSL/TLS using the given certificate file. Future connections to this instance of guacd will require SSL/TLS enabled in the client (the web application). If this option is not given, communication with guacd must be unencrypted.

-K KEY FILE

Enables SSL/TLS using the given private key file. Future connections to this instance of guacd will require SSL/TLS enabled in the client (the web application). If this option is not given, communication with guacd must be unencrypted.

## SEE ALSO
guacd.conf(5)


guestfsd

package: guestfsd

title: guestfsd(8)

summary: guestfs daemon

text:
# guestfsd(8)

## NAME
guestfsd - guestfs daemon

## SYNOPSIS

```
 guestfsd [-r] [-v|--verbose]
```

## DESCRIPTION
"guestfsd" is the libguestfs daemon. Normal users never need to run this program explicitly. This man page discusses what "guestfsd" does in both the libguestfs appliance and when using libguestfs live.

### LIBGUESTFS APPLIANCE
For the architecture of the libguestfs appliance, see "ARCHITECTURE" in guestfs(3).

After the appliance boots, the /init script in the appliance starts "guestfsd" with no arguments. "guestfsd" opens the virtio-serial port on a known path (see "FILES"). It initiates the protocol (see "COMMUNICATION PROTOCOL" in guestfs(3)) and processes requests one at a time from the library until the appliance is destroyed.

Filesystems are mounted under /sysroot and all filesystem operations happen relative to this directory.

### LIBGUESTFS LIVE
In the libguestfs live case, "guestfsd -r" is started from the rc-scripts, systemd, etc.

The "-r" option causes the daemon to operate on the root filesystem instead of /sysroot.

Currently (because of limitations in virtio-serial) only one client can connect at a time, and "guestfsd" must be restarted after each client disconnects. If libguestfs live were changed to use a different transport such as TCP/IP then this limitation could be removed.

## OPTIONS
-?

--help

Display brief help.

-c CHANNEL

--channel CHANNEL

--channel fd:N

Pass the name of the virtio-serial channel, serial port, etc. over which guestfsd will communicate with the library. If this parameter is not given, then an internal default port is used. The "fd:N" form causes guestfsd to use the file descriptor "N" directly.

-l

--listen

Instead of opening the "guestfs_channel" and thus expecting that it already exists, create the channel as a Unix domain socket, listen on it, and accept a single connection. This is mainly used for testing the daemon.

-n

--network

Enable network features in the daemon.

-r

Set the root filesystem to be / (instead of the default which is /sysroot). Also do not unmount filesystems when the daemon exits. This option is used to enable libguestfs live.

-v

--verbose

Enable verbose messages for debugging. The verbose flag is also set if the Linux command line contains the substring "guestfs_verbose=1".

## EXIT STATUS
This program returns 0 if successful, or non-zero if there was an error.

## FILES
/dev/virtio-ports/org.libguestfs.channel.0

The virtio serial port which "guestfsd" connects to.

/proc/cmdline

The Linux command line is parsed to discover "guestfs_*" flags. The following flags are understood:

guestfs_verbose=1

Enable verbose messages. This flag is passed by the libguestfs library to the appliance to make the daemon more verbose (it acts like the -v flag on the command line). Unrelated to the daemon, it also causes the appliance init script to print out a lot more debugging information.

guestfs_channel=PATH

Set the path to the virtio-serial channel to something other than the default (which is /dev/virtio-ports/org.libguestfs.channel.0). This is used by the User-Mode Linux backend to use a regular emulated serial port instead of virtio-serial.

guestfs_network=1

This is set if the appliance network is enabled (see "guestfs_set_network").

## SEE ALSO
guestfs(3), http://libguestfs.org/.

## AUTHOR
Richard W.M. Jones http://people.redhat.com/~rjones/

## COPYRIGHT
Copyright (C) 2009-2025 Red Hat Inc.

## LICENSE
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

## BUGS
To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

When reporting a bug, please supply:

- The version of libguestfs.

- Where you got libguestfs (eg. which Linux distro, compiled from source, etc)

- Describe the bug accurately and give a way to reproduce it.

- Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.


gufw

package: gufw

title: gufw(8)

summary: Graphic user interface for managing ufw

text:
# gufw(8)

## NAME
Gufw - Graphic user interface for managing ufw

## DESCRIPTION
Gufw is an easy to use Ubuntu / Linux firewall, powered by ufw.

Gufw is an easy, intuitive, way to manage your Ubuntu firewall. It supports common tasks such as allowing or blocking pre-configured, common p2p, or individual ports port(s), and many others! Gufw is powered by ufw. Introduction iptables is already a very powerful tool by itself, but it's syntax can get awkward at times and hard to figure out, so Ubuntu developers decided to make ufw ("The reason ufw was developed is that we wanted to create a server-level firewalling utility that was a little bit more for `human beings`"), which was to be simpler. Now, on the graphical side of things, Firestarer already existed. But why not make an even easier to use GUI for desktop `human beings`, powered by ufw? This is where Gufw comes in.

## BASIC SETTINGS
Gufw has two states: Enabled and disabled. When Gufw is enabled, you can allow/reject/deny all incoming and outgoing connections.

## ADD PRECONFIGURED RULE(S)
You can select between more Programs and Services preconfigured. Once Program/Service can have multiples rules.

## REMOVE ONE RULE
Steps:

1. Select a rule in the list.

2. Click in Remove button. You can delete more rules if you select it.

## RESET CONFIGURATION
You will remove all rules and reset the ufw configuration to initial status (disable)!

## EDIT PREFERENCES
You can edit your preferences in /Edit/Preferences menu.

## IP/PORTS FORWARD
To routing policy and rules, you must setup IP forwarding:

Close Gufw

Uncomment the following lines in /etc/ufw/sysctl.conf:

net/ipv4/ip_forward=1

net/ipv6/conf/default/forwarding=1

net/ipv6/conf/all/forwarding=1

Restart firewall:

ufw reload

Open Gufw again: You'll see a new "Routed" option (with an arrow around the shield) and you can forward any rule from the Update window or Advanced Tab in Add window.

## USE GUFW WITHOUT GRAPHICAL ENVIRONMENT OR REMOTE COMPUTER
You can use Gufw in a Linux without Graphical Environment (for example an Ubuntu Server) or from a remote computer. You will need Gufw 13.10.2 or higher. Just export your X Display. All the operations in Gufw will be apply in the remote computer. Important: If you enable the firewall under ssh without the ssh rule, you'll close the ssh connection, then before to enable Gufw under a ssh connection, append the ssh rule using ufw with this command:

sudo ufw enable ssh Linux, for example:

Remote computer without graphic environment (IP = 192.168.1.102, Gufw installed and ssh server).

Local Linux. In this local computer, open a Terminal and run this command:

ssh user_remote@192.168.1.102 -X

sudo /usr/bin/gufw-pkexec -ssh Windows (For example, Windows IP = 192.168.1.101; Linux IP = 192.168.1.100):

Install Putty & Xming.

In Windows: Run XLaunch from the Start Menu and check "No Access Control" in the last step.

Connect to your Linux with Putty and run:

export DISPLAY=192.168.1.101:0.0

sudo /usr/bin/gufw-pkexec -ssh

## SEE ALSO
ufw(8) Official Documentation: https://help.ubuntu.com/community/Gufw

## AUTHOR
Gufw is (C) 2008-2019, Marcos Alvarez Costales <https://costales.github.io>.

This manual page was originally written by Marcos Alvarez Costales <https://costales.github.io>.


cups-calibrate

package: gutenprint-cups

title: cups-calibrate(8)

summary: ESP CUPS Printer Calibration Tool

text:
# cups-calibrate(8)

## NAME
cups-calibrate - ESP CUPS Printer Calibration Tool

## SYNOPSIS
cups-calibrate

## DESCRIPTION
This program allows you to calibrate the color output of printers using the Gutenprint CUPS driver. Please note that this program only works with the Gutenprint CUPS driver.

These drivers are identified by the text CUPS+Gutenprint in the model description displayed by the CUPS web interface.

To make a calibration profile for all users, run this program as the root user. The program displays a series of prompts which should simply be followed.

## SEE ALSO
CUPS Software Administrators Manual, http://localhost:631/documentation.html

## COPYRIGHT
Copyright © 2001 Michael Sweet (mike@easysw.com)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This manual page was written by Roger Leigh (rleigh@debian.org).


cups-genppd

title: cups-genppd(8)

text:
# cups-genppd(8)

## NAME
cups-genppd - generate Gutenprint PPD files for use with CUPS

## SYNOPSIS
cups-genppd [-c localedir] [-l locale] [-p prefix] [-q] [-v] model1 [model2, ...modeln]

cups-genppd -L [-c localedir]

cups-genppd -M [-v]

cups-genppd -h

cups-genppd -V

## DESCRIPTION
cups-genppd generates Gutenprint PPD files for use with CUPS. The default behavior is to output PPD files for all models of printer that the Gutenprint printer driver library supports. You may restrict the models by listing either the driver names or the full names of the printers you wish to generate PPD files for after any options. Additionally, the PPD files may be localised, that is, translated, to use your native language rather than US English. There are commands to find out what printer models and languages are supported.

## EXAMPLES
cups-genppd -v bjc-6200 'Epson Stylus Photo 1280' 'HP DeskJet 850C'

verbosely generate three PPD files, listing the driver name in the first case, and the full name in the second.

LANG=de_DE genppd -p ppd -c /usr/share/locale

generate PPDs for all available models, in directory ppd using the locale data found under /usr/share/locale. The language to use is taken from the environment (de_DE).

cups-genppd -L -c /usr/local/share/locale

list available languages using the locale data found under /usr/local/share/locale.

cups-genppd -M -v

list available drivers, with long model descriptions

## COMMANDS
-h

show a help message

-L

list available translations (message catalogs). If a locale is used for which there is not a corresponding translation, then then US English will be used.

-M

list available printer models. By default, only driver names are listed; if verbose mode is used, the full model name will also be printed

-V

show version information and defaults

The default behavior is to output PPDs if no command is given.

## OPTIONS
-c localedir

use localedir as the base directory for locale data

-l locale

output PPDs translated with messages for locale. Note that locale must be a locale as shown by locale -a. For example, the de translation is used by the de_DE locale; de alone will not work.

-p prefix

output PPDs in directory prefix. Directories are not recursively created.

-q

Quiet mode.

-v

Verbose mode.

models

a list of printer models, either the driver or quoted full name.

## SEE ALSO
CUPS Software Administrators Manual, http://localhost:631/documentation.html

## COPYRIGHT
Copyright © 1992-2002 Michael Sweet (mike@easysw.com)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This manual page was written by Roger Leigh (rleigh@debian.org).


cups-genppdupdate

title: cups-genppdupdate(8)

summary: update CUPS+Gutenprint PPD files

text:
# cups-genppdupdate(8)

## NAME
cups-genppdupdate - update CUPS+Gutenprint PPD files

## SYNOPSIS
cups-genppdupdate [-h] [-n] [-N] [-q | -v] [-s ppd-directory] [-s output-directory] [PPD-FILES or QUEUES...]

## DESCRIPTION
cups-genppdupdate regenerates the Gutenprint PPD files in use by CUPS, using the PPD files under /usr/share/cups/model/gutenprint as templates. The new PPD file replaces the old PPD file under /etc/cups/ppd, but all the options set in the old PPD will be merged into the new PPD, provided that they are still valid in the new file.

If no files or queue names are specified, cups-genppdupdate updates all Gutenprint PPD files in /etc/cups/ppd. Otherwise, cups-genppdupdate updates all files or queues listed on the command line.

cups-genppdupdate does not update PPD files from Gimp-Print 4.2 or earlier.

cups-genppdupdate does not restart cupsd. cupsd will need manually reloading (or send SIGHUP) once cups-genppdupdate has completed.

## OPTIONS
-h

Show a help message.

-n

No action. The program will run, but the old PPD files will not be replaced.

-q

Quiet mode. No messages will be issued, apart from errors.

-v

Verbose mode. More informative messages will be issued. Note that extremely verbose output may be turned on by setting $debug=1 in the source, but this output will not be of use to the average user.

-s ppd-directory

Use ppd-directory as the base directory to read PPD files from. By default, the base directory is /usr/share/cups/model/gutenprint. Under this directory, the PPD files are located in subdirectories according to language code and territory.

-o output-directory

Place updated PPD files in output-directory. By default, this is the same as the input directory.

-N

Reset all options to their defaults (do not merge options from the current PPD file)

## SEE ALSO
cups-genppd(8), cups-genppdconfig(8), CUPS Software Administrators Manual, http://localhost:631/documentation.html

## COPYRIGHT
Copyright © 2002-2006 Roger Leigh (rleigh@debian.org) and Robert Krawitz (rlk@alum.mit.edu)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

This manual page was written by Roger Leigh (rleigh@debian.org).


gvpe

package: gvpe

title: gvpe(8)

summary: GNU Virtual Private Ethernet Daemon

text:
# gvpe(8)

## NAME
"gvpe" - GNU Virtual Private Ethernet Daemon

## SYNOPSIS
gvpe [-cDlL] [--config=DIR] [--no-detach] [-l=LEVEL]] [--kill[=SIGNAL]] [--mlock] [--help] [--version] NODENAME [option...]

## DESCRIPTION
See the gvpe(5) man page for an introduction to the gvpe suite.

This is the manual page for gvpe, the virtual private ethernet daemon. When started, gvpe will read it's configuration file to determine the network topology, and other configuration information, assuming the role of node NODENAME

It will then create/connect to the tun/tap device and set up a socket for incoming connections. Then a if-up script will be executed to further configure the virtual network device. If that succeeds, it will detach from the controlling terminal and continue in the background, accepting and setting up connections to other gvpe daemons that are part of the same virtual private ethernet.

The optional arguments after the node name have to be of the form:

```
   [I<nodename>.]var=value
```

If the argument has a prefix of nodename. (i.e. laptop.enable-dns=yes) then it will be parsed after all the config directives for that node, if not, it is parsed before the first node directive in the config file, and can be used to set global options or default variables.

For example, to start gvpe in the foreground, with log-level info on the node laptop, with TCP enabled and HTTP-Proxy host and Port set, use this:

```
  gvpe -D -l info laptop \
       http-proxy-host=10.0.0.18 http-proxy-port=3128 \
       laptop.enable-tcp=yes
```

## OPTIONS
-c, --config=DIR

Read configuration options from DIR

-d, --l=LEVEL

Set logging level to LEVEL (one of: noise, trace, debug, info, notice, warn, error, critical).

--help

Display short list of options.

-D, --no-detach

Don't fork and detach but stay in foreground and log messages to stderr in addition to syslog.

-L, --mlock

Lock gvpe into main memory. This will prevent sensitive data like shared private keys to be written to the system swap files/partitions.

--version

Output version information and exit.

## SIGNALS
HUP

Closes/resets all connections, resets the retry time and will start connecting again (it will NOT re-read the config file). This is useful e.g. in a /etc/ppp/if-up script.

TERM

Closes/resets all connections and exits.

USR1

Dump current network status into the syslog (at loglevel notice, so make sure your loglevel allows this).

## FILES
/etc/gvpe/gvpe.conf

The configuration file for gvpe.

/etc/gvpe/if-up

Script which is executed as soon as the virtual network device has been allocated. Purpose is to further configure that device.

/etc/gvpe/node-up

Script which is executed whenever a node connects to this node. This can be used for example to run nsupdate.

/etc/gvpe/node-down

Script which is executed whenever a connection to another node is lost. for example to run nsupdate.

/etc/gvpe/pubkey/*

The directory containing the public keys for every node, one file per node with the name of the node.

/etc/gvpe/hostkey

The file containing the private key of the node GVPE runs on. Unlike all the other files in the /etc/gvpe directory, this file usually differes for each node that GVPE runs on.

/var/run/gvpe.pid

The PID of the currently running gvpe is stored in this file.

## BUGS
The cryptography in gvpe has not been thoroughly checked by many people yet. Use it at your own risk!

If you find any bugs, report them to gvpe@schmorp.de.

## SEE ALSO
gvpe(5) for an introduction, gvpe.conf(5), gvpectrl(8).

The GVPE mailing list, at <http://lists.schmorp.de/> or gvpe@lists.schmorp.de.

GVPE comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.

## AUTHOR
Marc Lehmann <gvpe@schmorp.de>.

And thanks to many others for their contributions to gvpe, especially the tincd authors, who inspired me to write this program (after scavenging their source code ;).


gvpectrl

title: gvpectrl(8)

text:
# gvpectrl(8)

## NAME
"gvpectrl" - GNU Virtual Private Ethernet Control Program

## SYNOPSIS
gvpectrl [-ckgs] [--config=DIR] [--generate-keys] [--help] [--kill[=SIGNAL]] [--show-config] [--version]

## DESCRIPTION
This is the control program for the gvpe, the virtual private ethernet daemon.

## OPTIONS
-c, --config=DIR

Read configuration options from DIR.

-g, --generate-key=path

Generates a single RSA key-pair. The public key will be stored in path while the private key will be stored in path .privkey. Neither file must be non-empty for this to succeed. The public key file path is normally copied to pubkey/nodename in the config directory on all nodes, while the private key path.privkey should be copied to the file hostkey on the node the key is for.

It's recommended to generate the keypair on the node where it will be used, so that the private key file does not have to travel over the network.

-G, --generate-keys

Generate public/private RSA key-pairs for all nodes not having a key and exit. Note that in normal configurations this will fail, as there cna only be one private key per host. To make this configuration work you need to specify separate keyfiles for hostkeys in your config file, e.g.:

```
   private-key = hostkeys/%s

```

Such a configuration makes it easier to distribute a configuration centrally but requires private keys to be transported securely over the network.

-q, --quiet

Suppresses messages the author finds nonessential for scripting purposes.

--help

Display short list of options.

--kill[=SIGNAL]

Attempt to kill a running gvpectrl (optionally with the specified SIGNAL instead of SIGTERM) and exit.

--show-config

Show a summary of the configuration, and how gvpe interprets it. Can also be very useful when designing firewall scripts.

--version

Output version information and exit.

## BUGS
If you find any bugs, report them to gvpe@schmorp.de.

## SEE ALSO
gvpe(5), gvpe.conf(5), gvpe(8).

GVPE comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions; see the file COPYING for details.

## AUTHOR
Marc Lehmann <gvpe@schmorp.de>.


hashalot

package: hashalot

title: hashalot(8)

summary: read a passphrase and print a hash

text:
# hashalot(8)

## NAME
hashalot - read a passphrase and print a hash

## SYNOPSIS
hashalot [ -s SALT ] [ -x ] [ -n #BYTES ] HASHTYPE

HASHTYPE [ -s SALT ] [ -x ] [ -n #BYTES ]

## DESCRIPTION
hashalot is a small tool that reads a passphrase from standard input, hashes it using the given hash type, and prints the result to standard output.

Supported values for HASHTYPE:

ripemd160 rmd160 rmd160compat sha256 sha384 sha512

## OPTIONS
The option -s SALT specifies an initialization vector to the hashing algorithm. You need this if you want to prevent identical passwords to map to identical hashes, which is a security risk.

If the -x option is given then the hash will be printed as a string of hexadecimal digits.

The -n option can be used to limit (or increase) the number of bytes output. The default is as appropriate for the specified hash algorithm: 20 bytes for RIPEMD160, 32 bytes for SHA256, etc. The default for the "rmd160compat" hash is 16 bytes, for compatibility with the old kerneli.org utilities.

## AUTHOR
Ben Slusky <sluskyb@paranoiacs.org>

This manual page was written by Matthias Urlichs <smurf@debian.org>.


hasher-priv

package: hasher-priv

title: hasher-priv(8)

text:
# hasher-priv(8)

## NAME
hasher-priv - unprivileged client for the hasher-privd service daemon

## SYNOPSIS
hasher-priv [options] <args>

## DESCRIPTION

### Valid options are:
-<number>:

subconfig identifier;

--version:

print program version and exit.

-h or --help:

print this help text and exit.

Valid args are any of:

### getconf:

print config file name;

### killuid:

kill all processes of user1 and user2;

### getugid1:

print uid:gid pair for user1;

### chrootuid1 <chroot path> <program> [program args]:

execute program in given chroot with credentials of user1;

### getugid2:

print uid:gid pair for user2;

### chrootuid2 <chroot path> <program> [program args]:

execute program in given chroot with credentials of user2;

## SECURITY
Following operation modes are not security sensitive:

getugid1, getugid2

Query pseudouser identifiers.

Following operation modes have minimal security implications:

killuid

Kill all processes running by pseudousers.

Following operation modes have high security implications:

chrootuid1, chrootuid2

Execute program in build chroot with credentials of pseudouser. This operation also unshares mount namespace and mounts all mount points that are specified by requested_mountpoints environment variable and allowed by allowed_devices or allowed_mountpoints configuration options. Note that some of file systems are more security sensitive than others. For example, proc and sysfs virtual file systems provide access to various system resources which could be abused by pseudousers, devpts virtual file system provides access to all pty device files (unless mounted with newinstance mount option) which also could be abused by pseudousers if these files have inappropriate permissions.

This operation also creates essential device files available for all users: null, zero, full, and urandom. Pseudousers may abuse urandom to cause host system randomness starvation.

If /dev/pts is mounted, this operation also creates terminal device files: tty (current tty device) and ptmx (PTY master multiplex).

All risky operation modes are not enabled by default. They could be explicitly enabled in hasher-privd configuration.

## ENVIRONMENT
The following environment variables are processed by hasher-priv:

requested_mountpoints

Defines a comma-separated list of mount points which shall be mounted in chrootuid1 and chrootuid2 operation modes, if allowed by allowed_devices or allowed_mountpoints configuration options.

wlimit_time_elapsed

Define total execution time limit, in seconds. If wlimit_time_elapsed config parameter is also set, then minimal value will be used.

wlimit_time_idle

Define idle time limit, in seconds. Idle time is a period when child process produces no output. If wlimit_time_idle config parameter is also set, then minimal value will be used.

wlimit_bytes_written

Define limit of output generated by child process, in bytes. If wlimit_bytes_written config parameter is also set, then minimal value will be used.

use_pty

This boolean specifies whether stdin, stdout and stderr of child process will be redirected to controlling pseudoterminal created by hasher-privd. By default, stdin remains unchanged unless it references to terminal device, and stdout with stderr are redirected to pipe created by hasher-privd.

share_ipc

This boolean specifies whether IPC namespace inside chroot should be shared with host IPC namespace. By default, IPC namespace inside chroot is isolated from host IPC namespace if unshare(CLONE_NEWIPC) syscall is supported by kernel.

share_network

This boolean specifies whether network inside chroot should be shared with host network. By default, network inside chroot is isolated from host network if unshare(CLONE_NEWNET) syscall is supported by kernel.

share_uts

This boolean specifies whether UTS namespace inside chroot should be shared with host UTS namespace. By default, UTS namespace inside chroot is isolated from host UTS namespace if unshare(CLONE_NEWUTS) syscall is supported by kernel.

TERM

This variable will be passed to child process if use_pty is set to true.

## AUTHOR
Written by Dmitry V. Levin <ldv@altlinux.org> et al.

## COPYRIGHT
Copyright © 2003-2023 Dmitry V. Levin <ldv@altlinux.org>

Copyright © 2019 Alexey Gladkov <legion@altlinux.org>

Copyright © 2022 Arseny Maslennikov <arseny@altlinux.org>

Copyright © 2022 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>

All rights reserved.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO
unshare(2), hasher(7), hasher-privd(8), hasher-priv.conf(5), hasher-useradd(8).


hasher-privd

title: hasher-privd(8)

summary: service daemon for the hasher project

text:
# hasher-privd(8)

## NAME
hasher-privd - service daemon for the hasher project

## SYNOPSIS
hasher-privd [options]

## DESCRIPTION
-D, --daemonize

run in the background;

-l, --loglevel=LEVEL

set the minimal log level;

-p, --pidfile=FILE

set the pid file location;

-V, --version

print program version and exit;

-h, --help

show this text and exit.

## OVERVIEW
As described in hasher(7), hasher runs isolated workloads in a Unix-like three-user environment; processes can run as caller, builder and pseudoroot. This program performs various actions that require privileges on behalf of unprivileged processes run by the caller. It accepts requests via a Unix stream socket and fulfills or rejects them. hasher-privd is intended to be run as a system-wide service as part of the startup sequence. Consumer programs like hsh(1) invoke a client program, which can talk to hasher-privd. The communication protocol is not in any way stable and is expected to change as needed in future versions of hasher-priv. It is only guaranteed to match across a client and a server of the same release.

The main daemon process only exists to spawn a "session" process for the client's peercreds and subconfig ID.

The session process then listens on a different Unix socket and accepts job requests from clients of a particular UID and subconfig ID. A job is a single logical action for the server to do on the client's request, coupled with optional metadata like textual parameters and passed file descriptors. Contrary to its name, the session process does not track job runners and the subprocesses they spawn at all. Since a job request consists of many messages, and each message can invalidate the entire request (and the server will have to drop all received state), the current implementation passes the connection socket for a request to a child subprocess, the job handler, and proceeds to poll socket events or reap children.

If the request is invalid, the job handler sends an error reply with an optional message and exits. Otherwise, it spawns yet another child, the job runner, and exits immediately, reparenting it to pid 1 or a subreaper. (This design relieves the session process from having to call wait(2) on runners.)

The job runner's only purpose is to join the client's cgroup (so the resources it consumes are attributed to the client), spawn the job executor and wait for one of the following, whatever happens first:

- the client disconnects from the runner, so the job must be aborted;

- the job finishes, so the runner sends a reply to the client with the job's exit status.

If the service is restarted, runners are not killed and are expected to continue running.

The executor process, in turn, closes unknown file descriptors and does the privileged action requested.

All the processes appear in e.g. ps(1) output with description strings denoting their role and credentials.

## NOTES
Since 2.0.2, before a program is executed as part of a chrootuid job, the process it will run in calls prctl(PR_SET_NO_NEW_PRIVS, 1). This may or may not impact unaware workloads.

Since 2.0, hasher-privd(8) replaces a setuid-root program, which had performed the same duties. All subprocesses of that program naturally were part of the client's cgroup. The job-running child processes of hasher-privd(8) are part of the server's cgroup and have to be put in the cgroup of the client manually. On systems employing systemd(1) this may lead to races if the client is in a managed unit's cgroup. The client (or its caller) has to ask systemd(1) to put itself in a transient scope to avoid possible races, if necessary. The hasher utilities that make use of the chrootuid operation take care of this automatically.

## FILES
/etc/hasher-priv/daemon.conf

service daemon configuration file

/etc/hasher-priv/system

systemwide hasher-priv configuration file

/etc/hasher-priv/user.d/USER

per-user hasher-priv configuration files

/etc/hasher-priv/user.d/USER:NUMBER

per-user per-number subconfig files

## AUTHOR
Written by Dmitry V. Levin <ldv@altlinux.org> et al.

## COPYRIGHT
Copyright © 2003-2023 Dmitry V. Levin <ldv@altlinux.org>

Copyright © 2019 Alexey Gladkov <legion@altlinux.org>

Copyright © 2022 Arseny Maslennikov <arseny@altlinux.org>

Copyright © 2022 Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org>

All rights reserved.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO
hasher(7), hasher-priv(8), hasher-priv.conf(5), hasher-useradd(8).


hasher-useradd

title: hasher-useradd(8)

summary: create hasher satellite users

text:
# hasher-useradd(8)

## NAME
hasher-useradd - create hasher satellite users

## SYNOPSIS
hasher-useradd [options] <user>

## DESCRIPTION
hasher-useradd - adds hasher satellite users for already existing user, and creates hasher-priv config file.

### Valid options are:
--names=USER1:USER2

names for satellite users;

--number=NUMBER

subconfig identifier;

-r, --system

pass this option to useradd(8);

-V, --version

print program version and exit;

-h, --help

show this text and exit.

By default, satellite user names will be chosen based on <user>.

## AUTHOR
Written by Dmitry V. Levin <ldv@altlinux.org>

## COPYRIGHT
Copyright © 2003-2019 Dmitry V. Levin <ldv@altlinux.org>

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO
hsh(1), hasher-priv.conf(5), hasher(7), useradd(8).


haveged

package: haveged

title: haveged(8)

text:
# haveged(8)

## NAME
haveged - Generate random numbers and feed Linux's random device.

## SYNOPSIS
haveged [options]

## DESCRIPTION
haveged generates an unpredictable stream of random numbers harvested from the indirect effects of hardware events on hidden processor state (caches, branch predictors, memory translation tables, etc) using the HAVEGE (HArdware Volatile Entropy Gathering and Expansion) algorithm. The algorithm operates in user space, no special privilege is required for file system access to the output stream.

Linux pools randomness for distribution by the /dev/random and /dev/urandom device interfaces. The standard mechanisms of filling the /dev/random pool may not be sufficient to meet demand on systems with high needs or limited user interaction. In those circumstances, haveged may be run as a privileged daemon to fill the /dev/random pool whenever the supply of random bits in /dev/random falls below the low water mark of the device.

haveged tunes itself to its environment and provides the same built-in test suite for the output stream as used on certified hardware security devices. See NOTES below for further information.

## OPTIONS
-b nnn, --buffer=nnn

Set collection buffer size to nnn KW. Default is 128KW (or 512KB).

-c cmd, --command=cmd

Switch to command mode and send a command to an already running haveged process or daemon. Currently the only known commands are close to close the current communication socket of the running haveged process as well as root=<new_root> where <new_root> is a place holder for the path of the real new root directory which should provide a haveged installation. The haveged process or daemon will perform a chroot(2) system call followed by a execv(3) to become rebased within the new root directory.

-d nnn, --data=nnn

Set data cache size to nnn KB. Default is 16 or as determined dynamically.

-f file, --file=file

Set output file path for non-daemon use. Default is "sample", use "-" for stdout.

-F , --Foreground

Run daemon in foreground. Do not fork and detach.

-e , --once

Provide entropy to the kernel once and quit immediatelly.

-i nnn, --inst=nnn

Set instruction cache size to nnn KB. Default is 16 or as determined dynamically.

-n nnn, --number=nnn

Set number of bytes written to the output file. The value may be specified using one of the suffixes k, m, g, or t. The upper bound of this value is "16t" (2^44 Bytes = 16TB). A value of 0 indicates unbounded output and forces output to stdout. This argument is required if the daemon interface is not present. If the daemon interface is present, this setting takes precedence over any --run value.

-o <spec>, --onlinetest=<spec>

Specify online tests to run. The <spec> consists of optional "t"ot and "c"ontinuous groups, each group indicates the procedures to be run, using "a<n>" to indicate a AIS-31 procedure A variant, and "b" to indicate AIS procedure B. The specifications are order independent (procedure B always runs first in each group) and case insensitive. The a<n> variations exist to mitigate the a slow autocorrelation test (test5). Normally all procedure A tests, except the first are iterated 257 times. An a<n> option indicates test5 should only be executed every modulo <n> times during the procedure's 257 repetitions. The effect is so noticeable that A8 is the usual choice. The "tot" tests run only at initialization - there are no negative performance consequences except for a slight increase in the time required to initialize. The "tot" tests guarantee haveged has initialized properly. The use of both test procedures in the "tot" test is highly recommended because the two test emphasize different aspects of RNG quality.

In continuous testing, the test sequence is cycled repeatedly. For example, the string "tbca8b" (suitable for an AIS NTG.1 device) would run procedure B for the "tot" test, then cycle between procedure A8 and procedure B continuously for all further output. Continuous testing does not come for free, impacting both throughput and resource consumption. Continual testing also opens up the possibility of a test failure. A strict retry procedure recovers from spurious failure in all but the most extreme circumstances. When the retry fails, operation will terminate unless a "w" has been appended to the test token to make the test advisory only. In our example above, the string "tbca8wbw" would make all continuous tests advisory. For more detailed information on AIS retries see NOTES below.

Complete control over the test configuration is provided for flexibility. The defaults (ta8bcb" if run as a daemon and "ta8b" otherwise) are suitable for most circumstances.

-p file, --pidfile=file

Set file path for the daemon pid file. Default is "/var/run/haveged.pid",

-r n, --run=n

Set run level for daemon interface: n = 0 Run as daemon - must be root. Fills /dev/random when the supply of random bits

falls below the low water mark of the device.

n = 1 Display configuration info and terminate.

n > 1 Write <n> kb of output. Deprecated (use --number instead), only provided for backward compatibility.

If --number is specified, values other than 0,1 are ignored. Default is 0.

-v n, --verbose=n

Set diagnostic bitmap as sum of following options: 1=Show build/tuning summary on termination, summary for online test retries.

2=Show online test retry details

4=Show timing for collections

8=Show collection loop layout

16=Show collection loop code offsets

32=Show all online test completion detail

64=Show info on RNDADDENTROPY operation

Default is 0. Use -1 for all diagnostics.

-w nnn, --write=nnn

Set write_wakeup_threshold of daemon interface to nnn bits. Applies only to run level 0.

-V, --version

Print version information and exit

-?, --help

This summary of program options.

## NOTES
haveged tunes the HAVEGE algorithm for maximum effectiveness using a hierarchy of defaults, command line options, virtual file system information, and cpuid information where available. Under most circumstances, user input is not required for excellent results.

Run-time testing provides assurance of correct haveged operation. The run-time test suite is modeled upon the AIS-31 specification of the German Common Criteria body, BIS. This specification is typically applied to hardware devices, requiring formal certification and mandated start-up and continuous operational testing. Because haveged runs on many different hardware platforms, certification cannot be a goal, but the AIS-31 test suite provides the means to assess haveged output with the same operational tests applied to certified hardware devices.

AIS test procedure A performs 6 tests to check for statistically inconspicuous behavior. AIS test procedure B performs more theoretical tests such as checking multi-step transition probabilities and making an empirical entropy estimate. Procedure A is the much more resource and compute intensive of the two but is still recommended for the haveged start-up tests. Procedure B is well suited to use of haveged as a daemon because the test entropy estimate confirms the entropy estimate haveged uses when adding entropy to the /dev/random device.

No test is perfect. There is a 10e-4 probability that a perfect generator will fail either of the test procedures. AIS-31 mandates a strict retry policy to filter out false alarms and haveged always logs test procedure failures. Retries are expected but rarely observed except when large data sets are generated with continuous testing. See the libhavege(3) notes for more detailed information.

## FILES
If running as a daemon, access to the following files is required

/dev/random

/proc/sys/kernel/osrelease

/proc/sys/kernel/random/poolsize

/proc/sys/kernel/random/write_wakeup_threshold

## DIAGNOSTICS
Haveged returns 0 for success and non-zero for failure. The failure return code is 1 "general failure" unless execution is terminated by signal <n>, in which case the return code will be 128 + <n>. The following diagnostics are issued to stderr upon non-zero termination:

Cannot fork into the background

Call to daemon(3) failed.

Cannot open file <s> for writing. Could not open sample file <s> for writing.

Cannot write data in file: Could not write data to the sample file.

Couldn't get pool size. Unable to read /proc/sys/kernel/random/poolsize

Couldn't initialize HAVEGE rng Invalid data or instruction cache size.

Couldn't open PID file <s> for writing Unable to write daemon PID

Couldn't open random device Could not open /dev/random for read-write.

Couldn't query entropy-level from kernel: error Call to ioctl(2) failed.

Couldn't open PID file <path> for writing Error writing /var/run/haveged.pid

Fail:set_watermark() Unable to write to /proc/sys/kernel/random/write_wakeup_threshold

RNDADDENTROPY failed! Call to ioctl(2) to add entropy failed

RNG failed The random number generator failed self-test or encountered a fatal error.

Select error Call to select(2) failed.

Stopping due to signal <n> Signal <n> caught.

Unable to setup online tests Memory unavailable for online test resources.

## EXAMPLES
Write 1.5MB of random data to the file /tmp/random

haveged -n 1.5M -f /tmp/random

Generate a /tmp/keyfile for disk encryption with LUKS

haveged -n 2048 -f /tmp/keyfile

Overwrite partition /dev/sda1 with random data. Be careful, all data on the partition will be lost!

haveged -n 0 | dd of=/dev/sda1

Generate random ASCII passwords of the length 16 characters

(haveged -n 1000 -f - 2>/dev/null | tr -cd '[:graph:]' | fold -w 16 && echo ) | head

Write endless stream of random bytes to the pipe. Utility pv measures the speed by which data are written to the pipe.

haveged -n 0 | pv > /dev/null

Evaluate speed of haveged to generate 1GB of random data

haveged -n 1g -f - | dd of=/dev/null

Create a random key file containing 65 random keys for the encryption program aespipe.

haveged -n 3705 -f - 2>/dev/null | uuencode -m - | head -n 66 | tail -n 65

Test the randomness of the generated data with dieharder test suite

haveged -n 0 | dieharder -g 200 -a

Generate 16k of data, testing with procedure A and B with detailed test results. No c result seen because a single buffer fill did not contain enough data to complete the test.

haveged -n 16k -o tba8ca8 -v 33

Generate 16k of data as above with larger buffer. The c test now completes - enough data now generated to complete the test.

haveged -n 16k -o tba8ca8 -v 33 -b 512

Generate 16m of data as above, observe many c test completions with default buffer size.

haveged -n 16m -o tba8ca8 -v 33

Generate large amounts of data - in this case 16TB. Enable initialization test but made continuous tests advisory only to avoid a possible situation that program will terminate because of procedureB failing two times in a row. The probability of procedureB to fail two times in a row can be estimated as <TB to generate>/3000 which yields 0.5% for 16TB.

haveged -n 16T -o tba8cbw -f - | pv > /dev/null

Generate large amounts of data (16TB). Disable continuous tests for the maximum throughput but run the online tests at the startup to make sure that generator for properly initialized:

haveged -n 16T -o tba8c -f - | pv > /dev/null

Create a password equivalent to a key strength of 256 bit

haveged -f - -n 32 2>/dev/null | base64 | tr -d =

## SEE ALSO
libhavege(3),

cryptsetup(8), aespipe(1), pv(1), openssl(1), uuencode(1)

## REFERENCES
HArdware Volatile Entropy Gathering and Expansion: generating unpredictable random numbers at user level by A. Seznec, N. Sendrier, INRIA Research Report, RR-4592, October 2002

A proposal for: Functionality classes for random number generators by W. Killmann and W. Schindler, version 2.0, Bundesamt fur Sicherheit in der Informationstechnik (BSI), September, 2011

A Statistical Test Suite for the Validation of Random NUmber Generators and Pseudorandom Number Generators for Cryptographic Applications, special publication SP800-22, National Institute of Standards and Technology, revised April, 2010

Additional information can also be found at http://www.issihosts.com/haveged/

## AUTHORS
Gary Wuertz <gary@issiweb.com> and Jirka Hladky <hladky jiri AT gmail DOT com>


hd-idle

package: hd-idle

title: hd-idle(8)

summary: spin down idle hard disks

text:
# hd-idle(8)

## NAME
hd-idle - spin down idle hard disks

## SYNOPSIS
hd-idle [options]

## DESCRIPTION
hd-idle is a utility program for spinning down external disks after a period of idle time. Since most external IDE disk enclosures don't support setting the IDE idle timer, a program like hd-idle is required to spin down idle disks automatically.

A word of caution: hard disks don't like spinning up too often. Laptop disks are more robust in this respect than desktop disks but if you set your disks to spin down after a few seconds you may damage the disk over time due to the stress the spin-up causes on the spindle motor and bearings. It seems that manufacturers recommend a minimum idle time of 3-5 minutes, the default in hd-idle is 10 minutes.

## OPTIONS
-a name

Set device name of disks for subsequent idle-time parameters (-i). This parameter is optional in the sense that there's a default entry for all disks which are not named otherwise by using this parameter. This can also be a symlink (e.g. /dev/disk/by-uuid/...)

-i idle_time

Idle time in seconds for the currently named disk(s) (-a <name>) or for all disks. Setting this value to "0" will never spin down the disk(s).

-c command_type

Api call to stop the device. Possible values are "scsi" (default value) and "ata".

-p power_condition

Power condition to send with the issued SCSI START STOP UNIT command. Possible values are "0-15" (inclusive). The default value of "0" works fine for disks accessible via the SCSI layer (USB, IEEE1394, ...), but it will *NOT* work as intended with real SCSI / SAS disks. A stopped SAS disk will not start up automatically on access, but requires a startup command for reactivation. Useful values for SAS disks are "2" for idle and "3" for standby.

-s symlink_policy

Set the policy to resolve symlinks for devices. If set to "0", symlinks are resolve only on start. If set to "1", symlinks are also resolved on runtime until success. By default symlinks are only resolve on start. If the symlink doesn't resolve to a device, the default configuration will be applied.

-l logfile

Name of logfile (written only after a disk has spun up). Please note that this option might cause the disk which holds the logfile to spin up just because another disk had some activity. This option should not be used on systems with more than one disk except for tuning purposes. On single-disk systems, this option should not cause any additional spinups.

-t disk

Spin-down the specified disk immediately and exit. It can be used in combination with -c to specify the command type.

-d

Debug mode. It will print debugging info to stdout/stderr (/var/log/syslog if started as with systemctl)

-h

Print usage information.

## DISK SELECTION
The parameter -a can be used to set a filter on the disk's device name (omit /dev/) for subsequent idle-time settings. The default is all disks:

1)

A -i option before the first -a option will set the default idle time.

2)

In order to disable spin-down of disks per default, and then re-enable spin-down on selected disks, set the default idle time to 0.

## EXAMPLE
hd-idle -i 0 -a sda -i 300 -a sdb -i 1200

This example sets the default idle time to 0 (meaning hd-idle will never try to spin down a disk) and default "scsi" api command, then sets explicit idle times for disks which have the string "sda" or "sdb" in their device name.

## EXAMPLE
hd-idle -i 0 -c ata -a sda -i 300 -a sdb -i 1200 -c scsi

This example sets the default idle time to 0 (meaning hd-idle will never try to spin down a disk) and default "ata" api command, then sets explicit idle times for disks which have the string "sda" or "sdb" in their device name and sets "sdb" to use "ata" api command.

The option -c allows to set the api call that sends the spindown command. Possible values are "scsi" (the default value) or "ata".

## AUTHOR
hd-idle was written by Andoni del Olmo <andoni.delolmo@gmail> based on Chistian Mueller's <chris@mumac.de> work.

This manual page was written by Christian Mueller <chris@mumac.de>, for the Debian project (and may be used by others).

Modified by Andoni del Olmo <andoni.delolmo@gmail.com>.


hddtemp

package: hddtemp

title: hddtemp(8)

text:
# hddtemp(8)

## NAME
hddtemp - Utility to monitor hard drive temperature

## SYNOPSIS
hddtemp [options] [[type:]disk]...

## DESCRIPTION
hddtemp will give you the temperature of your hard drive by reading Self-Monitoring Analysis and Reporting Technology (S.M.A.R.T.) information on drives that support this feature. Only modern hard drives have a temperature sensor. hddtemp supports reading S.M.A.R.T. information from SCSI drives too. hddtemp can work as simple command line tool or as a daemon.

You can specify one or more device drive path, where each path can be prefixed with a type like PATA, SATA or SCSI to force hddtemp too use one of these type (because detection can fail). If no paths are specified, autodetection of installed drives is attempted.

## OPTIONS
The program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below.

-b, --drivebase

Display the database file that allows hddtemp to recognize a supported drive.

-D, --debug

Display various S.M.A.R.T. fields and their values. Useful for finding a value that seems to match the temperature and/or to send a report. (done for every drive supplied)

-d, --daemon

Execute hddtemp in TCP/IP daemon mode (port 7634 by default).

-f, --file=file

Specify the database file to use.

-F, --foreground

Don't fork into the background even in daemon mode. This is useful when running under a process supervisor.

-l, --listen=addr

Listen on a specific address. addr is a string containing a host name or a numeric host address string. The numeric host address string is a dotted-decimal IPv4 address or an IPv6 hex address.

-n, --numeric

Print only the temperature (without the unit).

-p, --port=#

Port number to listen to (in TCP/IP daemon mode).

-s, --separator=char

Separator to use between fields (in TCP/IP daemon mode). The default separator is `|'.

-S, --syslog=s

Switch to daemon mode and log temperatures to syslog every s seconds.

-q, --quiet

Don't check if the drive is supported.

-u, --unit=C|F

Force output temperature either in Celsius or Fahrenheit.

-v, --version

Display hddtemp version number.

-w, --wake-up

Wake-up the drive if needed (ATA drives only).

-4

Listen on IPv4 sockets only.

-6

Listen on IPv6 sockets only.

## DRIVE DATABASE
If you know your drive has a temperature sensor but it is being reported unsupported, tell me which model and which manufacturer it is, and/or just add a new entry in /etc/hddtemp.db. Each line of hddtemp.db is either a comment, a blank line or a line containing:

- a regular expression that allow hddtemp to recognize a drive or a

set of drives from its model name or from a generic model name,

- a value (ATTRIBUTE_ID from S.M.A.R.T.),

- a C or an F to set the unit to Celsius or Fahrenheit,

- a description.

Feedback is welcome (see the REPORT section below).

## TCP/IP DAEMON MODE
Example of type forcing:

\# hddtemp SATA:/dev/sda PATA:/dev/hda

To test hddtemp in daemon mode, start it like this:

\# hddtemp -d /dev/hd[abcd]

and use telnet or netcat (which is known as nc on some systems) to get a reply:

\# netcat localhost 7634

The drive database is read only once at startup, so hddtemp must be restarted if the database is updated for the changes to take effect.

## REPORT
As I receive a lot of reports, things must be clarified. When running hddtemp with debug options, hddtemp will show sort of a dump of S.M.A.R.T. data. Each field corresponds to an information field. The standard field for drive temperature is 194. But this is not always the case (mostly for older drives). Even if your drive has S.M.A.R.T. capabilities, it doesn't necessarily mean that it can report its temperature. So, things must be determined through experimentation.

So, you can try to guess which field by is the good one by running hddtemp at regular intervals:

- just after starting up your PC/server/station,

- after opening a window (a physical window :),

- after opening the case,

- whatever you can think of...

and looking for a field's value that would increase or decrease depending on what effect you want to induce. Be careful, fields 4, 9, and 12 are often reported to match a temperature field but after some investigation they do not. But fields 194 (which is the standard field for temperature) and 231 are good candidates.

Then, you can send me a report with outputs from `hddtemp --debug ...', `smartctl' or `hdparm -i ...', and/or add an entry in hddtemp.db yourself.

## BUGS
If hddtemp crashes (yes, it might) for some unknown reasons, look for a file named hddtemp.backtrace.<PID>.XXXXXX (where XXXXXX is a random number generated at runtime) in /tmp. Then, you can then send me this file and the hddtemp binary. The backtrace functionality is currently supported on i386 architectures only.

## SEE ALSO
smartctl(8), syslog(3), syslogd(8).

## AUTHOR
Emmanuel Varagnat (hddtemp@guzu.net).

This manual page was originally written by Aurelien Jarno <aurel32@debian.org>, for the Debian GNU/Linux system (but may be used by others).