]> Frank Brehm's Git Trees - config/bruni/etc.git/commitdiff
Current state
authorFrank Brehm <frank@brehm-online.com>
Tue, 31 Jan 2012 21:43:54 +0000 (22:43 +0100)
committerFrank Brehm <frank@brehm-online.com>
Tue, 31 Jan 2012 21:43:54 +0000 (22:43 +0100)
112 files changed:
.etckeeper
bluetooth/main.conf
conf.d/bluetooth [deleted file]
conf.d/fsck
conf.d/rfcomm [new file with mode: 0644]
conf.d/udev
conf.d/urandom
config-archive/etc/bluetooth/main.conf [new file with mode: 0644]
config-archive/etc/bluetooth/main.conf.dist [new file with mode: 0644]
config-archive/etc/conf.d/fsck [new file with mode: 0644]
config-archive/etc/conf.d/fsck.dist [new file with mode: 0644]
config-archive/etc/conf.d/hwclock [new file with mode: 0644]
config-archive/etc/conf.d/hwclock.dist.new [new file with mode: 0644]
config-archive/etc/conf.d/keymaps [new file with mode: 0644]
config-archive/etc/conf.d/keymaps.dist.new [new file with mode: 0644]
config-archive/etc/conf.d/udev [new file with mode: 0644]
config-archive/etc/conf.d/udev.dist [new file with mode: 0644]
config-archive/etc/conf.d/urandom [new file with mode: 0644]
config-archive/etc/conf.d/urandom.dist [new file with mode: 0644]
config-archive/etc/cron.daily/logrotate.cron [new file with mode: 0755]
config-archive/etc/cron.daily/logrotate.cron.dist.new [new file with mode: 0755]
config-archive/etc/dbus-1/system.d/bluetooth.conf [new file with mode: 0644]
config-archive/etc/dbus-1/system.d/bluetooth.conf.dist [new file with mode: 0644]
config-archive/etc/hotplug/usb/libsane.usermap [new file with mode: 0644]
config-archive/etc/hotplug/usb/libsane.usermap.dist [new file with mode: 0644]
config-archive/etc/idmapd.conf [new file with mode: 0644]
config-archive/etc/idmapd.conf.dist [new file with mode: 0644]
config-archive/etc/init.d/bluetooth [new file with mode: 0755]
config-archive/etc/init.d/bluetooth.dist [new file with mode: 0755]
config-archive/etc/init.d/bootmisc [new file with mode: 0755]
config-archive/etc/init.d/bootmisc.dist [new file with mode: 0755]
config-archive/etc/init.d/consolefont [new file with mode: 0755]
config-archive/etc/init.d/consolefont.dist [new file with mode: 0755]
config-archive/etc/init.d/fsck [new file with mode: 0755]
config-archive/etc/init.d/fsck.dist [new file with mode: 0755]
config-archive/etc/init.d/hwclock [new file with mode: 0755]
config-archive/etc/init.d/hwclock.dist [new file with mode: 0755]
config-archive/etc/init.d/keymaps [new file with mode: 0755]
config-archive/etc/init.d/keymaps.dist [new file with mode: 0755]
config-archive/etc/init.d/modules [new file with mode: 0755]
config-archive/etc/init.d/modules.dist [new file with mode: 0755]
config-archive/etc/init.d/net.lo [new file with mode: 0755]
config-archive/etc/init.d/net.lo.dist [new file with mode: 0755]
config-archive/etc/init.d/network [new file with mode: 0755]
config-archive/etc/init.d/network.dist [new file with mode: 0755]
config-archive/etc/init.d/numlock [new file with mode: 0755]
config-archive/etc/init.d/numlock.dist [new file with mode: 0755]
config-archive/etc/init.d/staticroute [new file with mode: 0755]
config-archive/etc/init.d/staticroute.dist [new file with mode: 0755]
config-archive/etc/init.d/sysfs [new file with mode: 0755]
config-archive/etc/init.d/sysfs.dist [new file with mode: 0755]
config-archive/etc/init.d/termencoding [new file with mode: 0755]
config-archive/etc/init.d/termencoding.dist [new file with mode: 0755]
config-archive/etc/init.d/udev [new file with mode: 0755]
config-archive/etc/init.d/udev-mount [new file with mode: 0755]
config-archive/etc/init.d/udev-mount.dist [new file with mode: 0755]
config-archive/etc/init.d/udev-postmount [new file with mode: 0755]
config-archive/etc/init.d/udev-postmount.dist [new file with mode: 0755]
config-archive/etc/init.d/udev.dist [new file with mode: 0755]
config-archive/etc/init.d/urandom [new file with mode: 0755]
config-archive/etc/init.d/urandom.dist [new file with mode: 0755]
config-archive/etc/logrotate.conf [new file with mode: 0644]
config-archive/etc/logrotate.conf.dist.new [new file with mode: 0644]
config-archive/etc/lvm/lvm.conf [new file with mode: 0644]
config-archive/etc/lvm/lvm.conf.dist [new file with mode: 0644]
config-archive/etc/rc.conf [new file with mode: 0644]
config-archive/etc/rc.conf.dist.new [new file with mode: 0644]
config-archive/etc/sensors3.conf [new file with mode: 0644]
config-archive/etc/sensors3.conf.dist [new file with mode: 0644]
config-archive/usr/share/config/kdm/backgroundrc [new file with mode: 0644]
config-archive/usr/share/config/kdm/backgroundrc.dist.new [new file with mode: 0644]
config-archive/usr/share/config/kdm/kdmrc [new file with mode: 0644]
config-archive/usr/share/config/kdm/kdmrc.dist.new [new file with mode: 0644]
cups/printers.conf
cups/printers.conf.O
cups/subscriptions.conf
cups/subscriptions.conf.O
dbus-1/system.d/bluetooth.conf
gconf/gconf.xml.defaults/%gconf-tree.xml
hotplug/usb/libsane.usermap
idmapd.conf
init.d/bluetooth
init.d/bootmisc
init.d/consolefont
init.d/fsck
init.d/hwclock
init.d/keymaps
init.d/modules
init.d/net.lo
init.d/network
init.d/numlock
init.d/rfcomm [new file with mode: 0755]
init.d/staticroute
init.d/sysfs
init.d/termencoding
init.d/udev
init.d/udev-dev-tarball [deleted file]
init.d/udev-mount
init.d/udev-postmount
init.d/urandom
java-config-2/current-system-vm
logrotate.d/apache2
lvm/lvm.conf
make.conf
motd
portage/package.keywords
portage/package.use
revdep-rebuild/61-sun-jdk-1.6 [new file with mode: 0644]
revdep-rebuild/61-sun-jre-bin-1.6 [new file with mode: 0644]
sensors3.conf
texmf/ls-R
texmf/web2c/fmtutil.cnf

index 62ee71f80a3106d1e95b8003824af7af308c57a7..5eaf11599ec828337d38ed767a94c03212528003 100755 (executable)
@@ -7,6 +7,7 @@ mkdir -p './courier-imap/shared.tmp'
 mkdir -p './foomatic/direct'
 mkdir -p './gnome-settings-daemon/xrandr'
 mkdir -p './hotplug/pci'
+mkdir -p './lvm/cache'
 mkdir -p './php/embed-php5.3/ext'
 mkdir -p './php/embed-php5.3/ext-active'
 mkdir -p './pm/power.d'
@@ -220,7 +221,6 @@ maybe chmod 0644 './conf.d/alsasound'
 maybe chmod 0644 './conf.d/apache2'
 maybe chmod 0644 './conf.d/auditd'
 maybe chmod 0644 './conf.d/autofs'
-maybe chmod 0644 './conf.d/bluetooth'
 maybe chmod 0644 './conf.d/bootmisc'
 maybe chmod 0644 './conf.d/consolefont'
 maybe chmod 0644 './conf.d/crypto-loop'
@@ -255,6 +255,7 @@ maybe chmod 0644 './conf.d/pciparm'
 maybe chmod 0644 './conf.d/pydoc-2.7'
 maybe chmod 0644 './conf.d/pydoc-3.1'
 maybe chmod 0644 './conf.d/radvd'
+maybe chmod 0644 './conf.d/rfcomm'
 maybe chmod 0644 './conf.d/rpcbind'
 maybe chmod 0644 './conf.d/rsyncd'
 maybe chmod 0644 './conf.d/samba'
@@ -278,14 +279,80 @@ maybe chmod 0755 './config-archive/etc'
 maybe chmod 0755 './config-archive/etc/bash'
 maybe chmod 0644 './config-archive/etc/bash/bashrc'
 maybe chmod 0644 './config-archive/etc/bash/bashrc.dist.new'
+maybe chmod 0755 './config-archive/etc/bluetooth'
+maybe chmod 0644 './config-archive/etc/bluetooth/main.conf'
+maybe chmod 0644 './config-archive/etc/bluetooth/main.conf.dist'
 maybe chmod 0755 './config-archive/etc/conf.d'
+maybe chmod 0644 './config-archive/etc/conf.d/fsck'
+maybe chmod 0644 './config-archive/etc/conf.d/fsck.dist'
+maybe chmod 0644 './config-archive/etc/conf.d/hwclock'
+maybe chmod 0644 './config-archive/etc/conf.d/hwclock.dist.new'
+maybe chmod 0644 './config-archive/etc/conf.d/keymaps'
+maybe chmod 0644 './config-archive/etc/conf.d/keymaps.dist.new'
 maybe chmod 0644 './config-archive/etc/conf.d/ntpd'
 maybe chmod 0644 './config-archive/etc/conf.d/ntpd.dist.new'
+maybe chmod 0644 './config-archive/etc/conf.d/udev'
+maybe chmod 0644 './config-archive/etc/conf.d/udev.dist'
+maybe chmod 0644 './config-archive/etc/conf.d/urandom'
+maybe chmod 0644 './config-archive/etc/conf.d/urandom.dist'
+maybe chmod 0755 './config-archive/etc/cron.daily'
+maybe chmod 0755 './config-archive/etc/cron.daily/logrotate.cron'
+maybe chmod 0755 './config-archive/etc/cron.daily/logrotate.cron.dist.new'
+maybe chmod 0755 './config-archive/etc/dbus-1'
+maybe chmod 0755 './config-archive/etc/dbus-1/system.d'
+maybe chmod 0644 './config-archive/etc/dbus-1/system.d/bluetooth.conf'
+maybe chmod 0644 './config-archive/etc/dbus-1/system.d/bluetooth.conf.dist'
 maybe chmod 0644 './config-archive/etc/dispatch-conf.conf'
 maybe chmod 0644 './config-archive/etc/dispatch-conf.conf.dist.new'
 maybe chmod 0755 './config-archive/etc/etckeeper'
 maybe chmod 0644 './config-archive/etc/etckeeper/etckeeper.conf'
 maybe chmod 0644 './config-archive/etc/etckeeper/etckeeper.conf.dist.new'
+maybe chmod 0755 './config-archive/etc/hotplug'
+maybe chmod 0755 './config-archive/etc/hotplug/usb'
+maybe chmod 0644 './config-archive/etc/hotplug/usb/libsane.usermap'
+maybe chmod 0644 './config-archive/etc/hotplug/usb/libsane.usermap.dist'
+maybe chmod 0644 './config-archive/etc/idmapd.conf'
+maybe chmod 0644 './config-archive/etc/idmapd.conf.dist'
+maybe chmod 0755 './config-archive/etc/init.d'
+maybe chmod 0755 './config-archive/etc/init.d/bluetooth'
+maybe chmod 0755 './config-archive/etc/init.d/bluetooth.dist'
+maybe chmod 0755 './config-archive/etc/init.d/bootmisc'
+maybe chmod 0755 './config-archive/etc/init.d/bootmisc.dist'
+maybe chmod 0755 './config-archive/etc/init.d/consolefont'
+maybe chmod 0755 './config-archive/etc/init.d/consolefont.dist'
+maybe chmod 0755 './config-archive/etc/init.d/fsck'
+maybe chmod 0755 './config-archive/etc/init.d/fsck.dist'
+maybe chmod 0755 './config-archive/etc/init.d/hwclock'
+maybe chmod 0755 './config-archive/etc/init.d/hwclock.dist'
+maybe chmod 0755 './config-archive/etc/init.d/keymaps'
+maybe chmod 0755 './config-archive/etc/init.d/keymaps.dist'
+maybe chmod 0755 './config-archive/etc/init.d/modules'
+maybe chmod 0755 './config-archive/etc/init.d/modules.dist'
+maybe chmod 0755 './config-archive/etc/init.d/net.lo'
+maybe chmod 0755 './config-archive/etc/init.d/net.lo.dist'
+maybe chmod 0755 './config-archive/etc/init.d/network'
+maybe chmod 0755 './config-archive/etc/init.d/network.dist'
+maybe chmod 0755 './config-archive/etc/init.d/numlock'
+maybe chmod 0755 './config-archive/etc/init.d/numlock.dist'
+maybe chmod 0755 './config-archive/etc/init.d/staticroute'
+maybe chmod 0755 './config-archive/etc/init.d/staticroute.dist'
+maybe chmod 0755 './config-archive/etc/init.d/sysfs'
+maybe chmod 0755 './config-archive/etc/init.d/sysfs.dist'
+maybe chmod 0755 './config-archive/etc/init.d/termencoding'
+maybe chmod 0755 './config-archive/etc/init.d/termencoding.dist'
+maybe chmod 0755 './config-archive/etc/init.d/udev'
+maybe chmod 0755 './config-archive/etc/init.d/udev-mount'
+maybe chmod 0755 './config-archive/etc/init.d/udev-mount.dist'
+maybe chmod 0755 './config-archive/etc/init.d/udev-postmount'
+maybe chmod 0755 './config-archive/etc/init.d/udev-postmount.dist'
+maybe chmod 0755 './config-archive/etc/init.d/udev.dist'
+maybe chmod 0755 './config-archive/etc/init.d/urandom'
+maybe chmod 0755 './config-archive/etc/init.d/urandom.dist'
+maybe chmod 0644 './config-archive/etc/logrotate.conf'
+maybe chmod 0644 './config-archive/etc/logrotate.conf.dist.new'
+maybe chmod 0755 './config-archive/etc/lvm'
+maybe chmod 0644 './config-archive/etc/lvm/lvm.conf'
+maybe chmod 0644 './config-archive/etc/lvm/lvm.conf.dist'
 maybe chmod 0644 './config-archive/etc/man.conf'
 maybe chmod 0644 './config-archive/etc/man.conf.dist'
 maybe chmod 0755 './config-archive/etc/pam.d'
@@ -303,6 +370,10 @@ maybe chmod 0644 './config-archive/etc/portage/savedconfig/sys-apps/busybox-1.19
 maybe chmod 0755 './config-archive/etc/pulse'
 maybe chmod 0644 './config-archive/etc/pulse/default.pa'
 maybe chmod 0644 './config-archive/etc/pulse/default.pa.dist'
+maybe chmod 0644 './config-archive/etc/rc.conf'
+maybe chmod 0644 './config-archive/etc/rc.conf.dist.new'
+maybe chmod 0644 './config-archive/etc/sensors3.conf'
+maybe chmod 0644 './config-archive/etc/sensors3.conf.dist'
 maybe chmod 0755 './config-archive/etc/ssh'
 maybe chmod 0644 './config-archive/etc/ssh/ssh_config'
 maybe chmod 0644 './config-archive/etc/ssh/ssh_config.dist'
@@ -329,6 +400,14 @@ maybe chmod 0644 './config-archive/etc/texmf/language.dat.lua.d/language.texlive
 maybe chmod 0644 './config-archive/etc/texmf/language.dat.lua.d/language.texlive-langgerman.dat.lua.dist'
 maybe chmod 0600 './config-archive/etc/ulogd.conf'
 maybe chmod 0600 './config-archive/etc/ulogd.conf.dist.new'
+maybe chmod 0755 './config-archive/usr'
+maybe chmod 0755 './config-archive/usr/share'
+maybe chmod 0755 './config-archive/usr/share/config'
+maybe chmod 0755 './config-archive/usr/share/config/kdm'
+maybe chmod 0644 './config-archive/usr/share/config/kdm/backgroundrc'
+maybe chmod 0644 './config-archive/usr/share/config/kdm/backgroundrc.dist.new'
+maybe chmod 0644 './config-archive/usr/share/config/kdm/kdmrc'
+maybe chmod 0644 './config-archive/usr/share/config/kdm/kdmrc.dist.new'
 maybe chown mail './courier'
 maybe chgrp mail './courier'
 maybe chmod 0755 './courier'
@@ -997,6 +1076,7 @@ maybe chmod 0755 './init.d/pydoc-2.7'
 maybe chmod 0755 './init.d/pydoc-3.1'
 maybe chmod 0755 './init.d/radvd'
 maybe chmod 0755 './init.d/reboot.sh'
+maybe chmod 0755 './init.d/rfcomm'
 maybe chmod 0755 './init.d/root'
 maybe chmod 0755 './init.d/rpc.gssd'
 maybe chmod 0755 './init.d/rpc.idmapd'
@@ -1025,7 +1105,6 @@ maybe chmod 0755 './init.d/termencoding'
 maybe chmod 0755 './init.d/timidity'
 maybe chmod 0755 './init.d/twistd'
 maybe chmod 0755 './init.d/udev'
-maybe chmod 0755 './init.d/udev-dev-tarball'
 maybe chmod 0755 './init.d/udev-mount'
 maybe chmod 0755 './init.d/udev-postmount'
 maybe chmod 0755 './init.d/ulogd'
@@ -1118,7 +1197,6 @@ maybe chmod 0700 './lvm/backup'
 maybe chmod 0600 './lvm/backup/vg0'
 maybe chmod 0600 './lvm/backup/vg1'
 maybe chmod 0700 './lvm/cache'
-maybe chmod 0600 './lvm/cache/.cache'
 maybe chmod 0644 './lvm/lvm.conf'
 maybe chmod 0644 './lxdvdrip.conf'
 maybe chmod 0644 './machine-id'
@@ -1419,6 +1497,8 @@ maybe chmod 0644 './resolv.conf.bak'
 maybe chmod 0755 './revdep-rebuild'
 maybe chmod 0644 './revdep-rebuild/60-java'
 maybe chmod 0644 './revdep-rebuild/61-icedtea6-bin'
+maybe chmod 0644 './revdep-rebuild/61-sun-jdk-1.6'
+maybe chmod 0644 './revdep-rebuild/61-sun-jre-bin-1.6'
 maybe chmod 0644 './revdep-rebuild/90opera'
 maybe chmod 0644 './revdep-rebuild/99revdep-rebuild'
 maybe chmod 0755 './rmt'
index 8cd132fedbf43101c3ec797b923f3fdabf970b3b..321f622194960c55e036e913e2c767aec2e47e75 100644 (file)
@@ -30,6 +30,12 @@ PageTimeout = 8192
 # The value is in seconds. Defaults is 30.
 DiscoverSchedulerInterval = 30
 
+# Automatic connection for bonded devices driven by platform/user events.
+# If a platform plugin uses this mechanism, automatic connections will be
+# enabled during the interval defined below. Initially, this feature
+# intends to be used to establish connections to ATT channels.
+AutoConnectTimeout = 60
+
 # What value should be assumed for the adapter Powered property when
 # SetProperty(Powered, ...) hasn't been called yet. Defaults to true
 InitiallyPowered = true
@@ -56,11 +62,6 @@ NameResolving = true
 # that they were created for.
 DebugKeys = false
 
-# Enable Low Energy support if the dongle supports. Default is false.
-# Enable/Disable interleave discovery and attribute server over LE.
-EnableLE = false
-
 # Enable the GATT Attribute Server. Default is false, because it is only
-# useful for testing. Attribute server is not enabled over LE if EnableLE
-# is false.
+# useful for testing.
 AttributeServer = false
diff --git a/conf.d/bluetooth b/conf.d/bluetooth
deleted file mode 100644 (file)
index b0cc744..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# Bluetooth configuraton file
-
-# Bind rfcomm devices (allowed values are "true" and "false")
-RFCOMM_ENABLE=true
-
-# Config file for rfcomm
-RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
index 5d42c9d0657bd401aefd4f2eb913d336345b3c15..16aa57523055565f4a3ee3f795f56d5755248558 100644 (file)
 #fsck_passno=">1"
 #fsck_passno="<2"
 
+# If passno is not enough granularity, you can also specify mountpoints to
+# check. This should NOT be used for the default non-multiplexed fsck, or your
+# system might not be checked. Additionally, it is mutually exclusive with
+# the fsck_passno setting.
+#fsck_mnt=""
+#fsck_mnt="/home"
+
 # Most modern fs's don't require a full fsck on boot, but for those that do
 # it may be advisable to skip this when running on battery.
 # WARNING: Do not turn this off if you have any JFS partitions.
diff --git a/conf.d/rfcomm b/conf.d/rfcomm
new file mode 100644 (file)
index 0000000..d87acdb
--- /dev/null
@@ -0,0 +1,5 @@
+# Bind rfcomm devices (allowed values are "true" and "false")
+RFCOMM_ENABLE=true
+
+# Config file for rfcomm
+RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
index 6fd14702884bac1f6f69c98cc08a6bbbfcb24d33..12c2afa1c8de12e6ac823a97c4fc046dce58a67e 100644 (file)
@@ -11,15 +11,6 @@ persistent_net_disable="no"
 # as /dev/{cdrom,cdrw,dvd,dvdrw}
 persistent_cd_disable="no"
 
-# Set to "yes" if you want to save /dev to a tarball on shutdown
-# and restore it on startup.  This is useful if you have a lot of
-# custom device nodes that udev does not handle/know about.
-#
-# As this option is fragile, we recommend you
-# to create your devices in /lib64/udev/devices.
-# These will be copied to /dev on boot.
-#rc_device_tarball="NO"
-
 # udev can trigger coldplug events which cause services to start and
 # kernel modules to be loaded.
 # Services are deferred to start in the boot runlevel.
@@ -36,9 +27,6 @@ persistent_cd_disable="no"
 
 # Expert options:
 
-# Disable warning about unreliable kernel/udev combination
-#unreliable_kernel_warning="no"
-
 # Timeout in seconds to wait for processing of uevents at boot.
 # There should be no need to change this.
 #udev_settle_timeout="60"
@@ -47,12 +35,12 @@ persistent_cd_disable="no"
 # udevd --help for possible values
 #udev_opts=""
 
-# Run udevd --debug and write output to /dev/.udev/udev.log
+# Run udevd --debug and write output to $RUNDIR/udev.log
 # Should not be kept on as it fills diskspace slowly
 #udev_debug="YES"
 
 # Run udevadmin monitor to get a log of all events
-# in /dev/.udev/udevmonitor.log
+# in $RUNDIR/udevmonitor.log
 #udev_monitor="YES"
 
 # Keep udevmonitor running after populating /dev.
index fbaf4e8106a3eb0a6aec52d15fbb0c894c3426e6..f721a249193a61e1e1246bf6f105cc21398fa39a 100644 (file)
@@ -2,4 +2,4 @@
 # (say for crypt swap), so you will need to customize this
 # behavior.  If you have /var on a separate partition, then
 # make sure this path lives on your root device somewhere.
-urandom_seed="/var/run/random-seed"
+urandom_seed="/var/lib/misc/random-seed"
diff --git a/config-archive/etc/bluetooth/main.conf b/config-archive/etc/bluetooth/main.conf
new file mode 100644 (file)
index 0000000..8cd132f
--- /dev/null
@@ -0,0 +1,66 @@
+[General]
+
+# List of plugins that should not be loaded on bluetoothd startup
+#DisablePlugins = network,input
+
+# Default adaper name
+# %h - substituted for hostname
+# %d - substituted for adapter id
+Name = %h-%d
+
+# Default device class. Only the major and minor device class bits are
+# considered.
+Class = 0x000100
+
+# How long to stay in discoverable mode before going back to non-discoverable
+# The value is in seconds. Default is 180, i.e. 3 minutes.
+# 0 = disable timer, i.e. stay discoverable forever
+DiscoverableTimeout = 0
+
+# How long to stay in pairable mode before going back to non-discoverable
+# The value is in seconds. Default is 0.
+# 0 = disable timer, i.e. stay pairable forever
+PairableTimeout = 0
+
+# Use some other page timeout than the controller default one
+# which is 16384 (10 seconds).
+PageTimeout = 8192
+
+# Discover scheduler interval used in Adapter.DiscoverDevices
+# The value is in seconds. Defaults is 30.
+DiscoverSchedulerInterval = 30
+
+# What value should be assumed for the adapter Powered property when
+# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
+InitiallyPowered = true
+
+# Remember the previously stored Powered state when initializing adapters
+RememberPowered = true
+
+# Use vendor, product and version information for DID profile support.
+# The values are separated by ":" and VID, PID and version.
+#DeviceID = 1234:5678:abcd
+
+# Do reverse service discovery for previously unknown devices that connect to
+# us. This option is really only needed for qualification since the BITE tester
+# doesn't like us doing reverse SDP for some test cases (though there could in
+# theory be other useful purposes for this too). Defaults to true.
+ReverseServiceDiscovery = true
+
+# Enable name resolving after inquiry. Set it to 'false' if you don't need
+# remote devices name and want shorter discovery cycle. Defaults to 'true'.
+NameResolving = true
+
+# Enable runtime persistency of debug link keys. Default is false which
+# makes debug link keys valid only for the duration of the connection
+# that they were created for.
+DebugKeys = false
+
+# Enable Low Energy support if the dongle supports. Default is false.
+# Enable/Disable interleave discovery and attribute server over LE.
+EnableLE = false
+
+# Enable the GATT Attribute Server. Default is false, because it is only
+# useful for testing. Attribute server is not enabled over LE if EnableLE
+# is false.
+AttributeServer = false
diff --git a/config-archive/etc/bluetooth/main.conf.dist b/config-archive/etc/bluetooth/main.conf.dist
new file mode 100644 (file)
index 0000000..321f622
--- /dev/null
@@ -0,0 +1,67 @@
+[General]
+
+# List of plugins that should not be loaded on bluetoothd startup
+#DisablePlugins = network,input
+
+# Default adaper name
+# %h - substituted for hostname
+# %d - substituted for adapter id
+Name = %h-%d
+
+# Default device class. Only the major and minor device class bits are
+# considered.
+Class = 0x000100
+
+# How long to stay in discoverable mode before going back to non-discoverable
+# The value is in seconds. Default is 180, i.e. 3 minutes.
+# 0 = disable timer, i.e. stay discoverable forever
+DiscoverableTimeout = 0
+
+# How long to stay in pairable mode before going back to non-discoverable
+# The value is in seconds. Default is 0.
+# 0 = disable timer, i.e. stay pairable forever
+PairableTimeout = 0
+
+# Use some other page timeout than the controller default one
+# which is 16384 (10 seconds).
+PageTimeout = 8192
+
+# Discover scheduler interval used in Adapter.DiscoverDevices
+# The value is in seconds. Defaults is 30.
+DiscoverSchedulerInterval = 30
+
+# Automatic connection for bonded devices driven by platform/user events.
+# If a platform plugin uses this mechanism, automatic connections will be
+# enabled during the interval defined below. Initially, this feature
+# intends to be used to establish connections to ATT channels.
+AutoConnectTimeout = 60
+
+# What value should be assumed for the adapter Powered property when
+# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
+InitiallyPowered = true
+
+# Remember the previously stored Powered state when initializing adapters
+RememberPowered = true
+
+# Use vendor, product and version information for DID profile support.
+# The values are separated by ":" and VID, PID and version.
+#DeviceID = 1234:5678:abcd
+
+# Do reverse service discovery for previously unknown devices that connect to
+# us. This option is really only needed for qualification since the BITE tester
+# doesn't like us doing reverse SDP for some test cases (though there could in
+# theory be other useful purposes for this too). Defaults to true.
+ReverseServiceDiscovery = true
+
+# Enable name resolving after inquiry. Set it to 'false' if you don't need
+# remote devices name and want shorter discovery cycle. Defaults to 'true'.
+NameResolving = true
+
+# Enable runtime persistency of debug link keys. Default is false which
+# makes debug link keys valid only for the duration of the connection
+# that they were created for.
+DebugKeys = false
+
+# Enable the GATT Attribute Server. Default is false, because it is only
+# useful for testing.
+AttributeServer = false
diff --git a/config-archive/etc/conf.d/fsck b/config-archive/etc/conf.d/fsck
new file mode 100644 (file)
index 0000000..5d42c9d
--- /dev/null
@@ -0,0 +1,27 @@
+# Pass any arguments to fsck.
+# By default we preen.
+# Linux systems also force -C0 and -T.
+# If fsck_args is not specified then Linux systems also use -A
+# (and -R if / is rw)
+#fsck_args="-p"
+
+# We can also specify the passno in /etc/fstab to check
+# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
+# do an fsck outside of the normal scope, say for /home.
+# Here are some exampes:-
+#fsck_passno="=1 =2"
+#fsck_passno=">1"
+#fsck_passno="<2"
+
+# Most modern fs's don't require a full fsck on boot, but for those that do
+# it may be advisable to skip this when running on battery.
+# WARNING: Do not turn this off if you have any JFS partitions.
+fsck_on_battery="YES"
+
+# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
+# The end result of this is that if any periodic non-root filesystem checks are
+# scheduled, under normal circumstances the actual check will happen during
+# shutdown rather than at next boot.
+# This is useful when periodic filesystem checks are causing undesirable
+# delays at startup, but such delays at shutdown are acceptable.
+fsck_shutdown="NO"
diff --git a/config-archive/etc/conf.d/fsck.dist b/config-archive/etc/conf.d/fsck.dist
new file mode 100644 (file)
index 0000000..16aa575
--- /dev/null
@@ -0,0 +1,34 @@
+# Pass any arguments to fsck.
+# By default we preen.
+# Linux systems also force -C0 and -T.
+# If fsck_args is not specified then Linux systems also use -A
+# (and -R if / is rw)
+#fsck_args="-p"
+
+# We can also specify the passno in /etc/fstab to check
+# If you multiplex fsck (ie ln -s fsck /etc/init.d/fsck.late) then you can
+# do an fsck outside of the normal scope, say for /home.
+# Here are some exampes:-
+#fsck_passno="=1 =2"
+#fsck_passno=">1"
+#fsck_passno="<2"
+
+# If passno is not enough granularity, you can also specify mountpoints to
+# check. This should NOT be used for the default non-multiplexed fsck, or your
+# system might not be checked. Additionally, it is mutually exclusive with
+# the fsck_passno setting.
+#fsck_mnt=""
+#fsck_mnt="/home"
+
+# Most modern fs's don't require a full fsck on boot, but for those that do
+# it may be advisable to skip this when running on battery.
+# WARNING: Do not turn this off if you have any JFS partitions.
+fsck_on_battery="YES"
+
+# fsck_shutdown causes fsck to trigger during shutdown as well as startup.
+# The end result of this is that if any periodic non-root filesystem checks are
+# scheduled, under normal circumstances the actual check will happen during
+# shutdown rather than at next boot.
+# This is useful when periodic filesystem checks are causing undesirable
+# delays at startup, but such delays at shutdown are acceptable.
+fsck_shutdown="NO"
diff --git a/config-archive/etc/conf.d/hwclock b/config-archive/etc/conf.d/hwclock
new file mode 100644 (file)
index 0000000..e1dff13
--- /dev/null
@@ -0,0 +1,22 @@
+# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
+# Greenwich Mean Time).  If that clock is set to the local time, then 
+# set CLOCK to "local".  Note that if you dual boot with Windows, then 
+# you should set it to "local".
+clock="UTC"
+
+# If you want to set the Hardware Clock to the current System Time 
+# (software clock) during shutdown, then say "YES" here.
+# You normally don't need to do this if you run a ntp daemon.
+clock_systohc="YES"
+
+# If you want to set the system time to the current hardware clock
+# during bootup, then say "YES" here. You do not need this if you are
+# running a modern kernel with CONFIG_RTC_HCTOSYS set to y.
+# Also, be aware that if you set this to "NO", the system time will
+# never be saved to the hardware clock unless you set
+# clock_systohc="YES" above.
+clock_hctosys="YES"
+# If you wish to pass any other arguments to hwclock during bootup,
+# you may do so here. Alpha users may wish to use --arc or --srm here.
+clock_args=""
diff --git a/config-archive/etc/conf.d/hwclock.dist.new b/config-archive/etc/conf.d/hwclock.dist.new
new file mode 100644 (file)
index 0000000..4e66ff9
--- /dev/null
@@ -0,0 +1,22 @@
+# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as
+# Greenwich Mean Time).  If that clock is set to the local time, then 
+# set CLOCK to "local".  Note that if you dual boot with Windows, then 
+# you should set it to "local".
+clock="UTC"
+
+# If you want to set the Hardware Clock to the current System Time 
+# (software clock) during shutdown, then say "YES" here.
+# You normally don't need to do this if you run a ntp daemon.
+clock_systohc="NO"
+
+# If you want to set the system time to the current hardware clock
+# during bootup, then say "YES" here. You do not need this if you are
+# running a modern kernel with CONFIG_RTC_HCTOSYS set to y.
+# Also, be aware that if you set this to "NO", the system time will
+# never be saved to the hardware clock unless you set
+# clock_systohc="YES" above.
+clock_hctosys="YES"
+# If you wish to pass any other arguments to hwclock during bootup,
+# you may do so here. Alpha users may wish to use --arc or --srm here.
+clock_args=""
diff --git a/config-archive/etc/conf.d/keymaps b/config-archive/etc/conf.d/keymaps
new file mode 100644 (file)
index 0000000..002b2d4
--- /dev/null
@@ -0,0 +1,24 @@
+# Use keymap to specify the default console keymap.  There is a complete tree
+# of keymaps in /usr/share/keymaps to choose from.
+#keymap="us"
+keymap="de-latin1-nodeadkeys"
+
+# Should we first load the 'windowkeys' console keymap?  Most x86 users will
+# say "yes" here.  Note that non-x86 users should leave it as "no".
+# Loading this keymap will enable VT switching (like ALT+Left/Right)
+# using the special windows keys on the linux console.
+windowkeys="YES"
+
+# The maps to load for extended keyboards.  Most users will leave this as is.
+extended_keymaps=""
+#extended_keymaps="backspace keypad euro2"
+
+# Tell dumpkeys(1) to interpret character action codes to be 
+# from the specified character set.
+# This only matters if you set unicode="yes" in /etc/rc.conf.
+# For a list of valid sets, run `dumpkeys --help`
+dumpkeys_charset=""
+
+# Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro €
+# To fix this, set to "yes"
+fix_euro="NO"
diff --git a/config-archive/etc/conf.d/keymaps.dist.new b/config-archive/etc/conf.d/keymaps.dist.new
new file mode 100644 (file)
index 0000000..430383d
--- /dev/null
@@ -0,0 +1,23 @@
+# Use keymap to specify the default console keymap.  There is a complete tree
+# of keymaps in /usr/share/keymaps to choose from.
+keymap="us"
+
+# Should we first load the 'windowkeys' console keymap?  Most x86 users will
+# say "yes" here.  Note that non-x86 users should leave it as "no".
+# Loading this keymap will enable VT switching (like ALT+Left/Right)
+# using the special windows keys on the linux console.
+windowkeys="YES"
+
+# The maps to load for extended keyboards.  Most users will leave this as is.
+extended_keymaps=""
+#extended_keymaps="backspace keypad euro2"
+
+# Tell dumpkeys(1) to interpret character action codes to be 
+# from the specified character set.
+# This only matters if you set unicode="yes" in /etc/rc.conf.
+# For a list of valid sets, run `dumpkeys --help`
+dumpkeys_charset=""
+
+# Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro €
+# To fix this, set to "yes"
+fix_euro="NO"
diff --git a/config-archive/etc/conf.d/udev b/config-archive/etc/conf.d/udev
new file mode 100644 (file)
index 0000000..6fd1470
--- /dev/null
@@ -0,0 +1,64 @@
+# /etc/conf.d/udev: config file for udev
+
+# We discourage to disable persistent-net!!
+# this may lead to random interface naming
+
+# Disable adding new rules for persistent-net
+persistent_net_disable="no"
+
+# Disable adding new rules for persistent-cd
+# Disabling this will stop new cdrom devices to appear
+# as /dev/{cdrom,cdrw,dvd,dvdrw}
+persistent_cd_disable="no"
+
+# Set to "yes" if you want to save /dev to a tarball on shutdown
+# and restore it on startup.  This is useful if you have a lot of
+# custom device nodes that udev does not handle/know about.
+#
+# As this option is fragile, we recommend you
+# to create your devices in /lib64/udev/devices.
+# These will be copied to /dev on boot.
+#rc_device_tarball="NO"
+
+# udev can trigger coldplug events which cause services to start and
+# kernel modules to be loaded.
+# Services are deferred to start in the boot runlevel.
+# Set rc_coldplug="NO" if you don't want this.
+# If you want module coldplugging but not coldplugging of services then you
+# can disable service coldplugging in baselayout/openrc config files.
+# The setting is named different in different versions.
+# in /etc/rc.conf: rc_hotplug="!*" or
+# in /etc/conf.d/rc: rc_plug_services="!*"
+#rc_coldplug="YES"
+
+
+
+
+# Expert options:
+
+# Disable warning about unreliable kernel/udev combination
+#unreliable_kernel_warning="no"
+
+# Timeout in seconds to wait for processing of uevents at boot.
+# There should be no need to change this.
+#udev_settle_timeout="60"
+
+# Add extra command line options to udevd, use with care
+# udevd --help for possible values
+#udev_opts=""
+
+# Run udevd --debug and write output to /dev/.udev/udev.log
+# Should not be kept on as it fills diskspace slowly
+#udev_debug="YES"
+
+# Run udevadmin monitor to get a log of all events
+# in /dev/.udev/udevmonitor.log
+#udev_monitor="YES"
+
+# Keep udevmonitor running after populating /dev.
+#udev_monitor_keep_running="no"
+
+# Set cmdline options for udevmonitor.
+# could be some of --env --kernel --udev
+#udev_monitor_opts="--env"
+
diff --git a/config-archive/etc/conf.d/udev.dist b/config-archive/etc/conf.d/udev.dist
new file mode 100644 (file)
index 0000000..12c2afa
--- /dev/null
@@ -0,0 +1,52 @@
+# /etc/conf.d/udev: config file for udev
+
+# We discourage to disable persistent-net!!
+# this may lead to random interface naming
+
+# Disable adding new rules for persistent-net
+persistent_net_disable="no"
+
+# Disable adding new rules for persistent-cd
+# Disabling this will stop new cdrom devices to appear
+# as /dev/{cdrom,cdrw,dvd,dvdrw}
+persistent_cd_disable="no"
+
+# udev can trigger coldplug events which cause services to start and
+# kernel modules to be loaded.
+# Services are deferred to start in the boot runlevel.
+# Set rc_coldplug="NO" if you don't want this.
+# If you want module coldplugging but not coldplugging of services then you
+# can disable service coldplugging in baselayout/openrc config files.
+# The setting is named different in different versions.
+# in /etc/rc.conf: rc_hotplug="!*" or
+# in /etc/conf.d/rc: rc_plug_services="!*"
+#rc_coldplug="YES"
+
+
+
+
+# Expert options:
+
+# Timeout in seconds to wait for processing of uevents at boot.
+# There should be no need to change this.
+#udev_settle_timeout="60"
+
+# Add extra command line options to udevd, use with care
+# udevd --help for possible values
+#udev_opts=""
+
+# Run udevd --debug and write output to $RUNDIR/udev.log
+# Should not be kept on as it fills diskspace slowly
+#udev_debug="YES"
+
+# Run udevadmin monitor to get a log of all events
+# in $RUNDIR/udevmonitor.log
+#udev_monitor="YES"
+
+# Keep udevmonitor running after populating /dev.
+#udev_monitor_keep_running="no"
+
+# Set cmdline options for udevmonitor.
+# could be some of --env --kernel --udev
+#udev_monitor_opts="--env"
+
diff --git a/config-archive/etc/conf.d/urandom b/config-archive/etc/conf.d/urandom
new file mode 100644 (file)
index 0000000..fbaf4e8
--- /dev/null
@@ -0,0 +1,5 @@
+# Sometimes you want to have urandom start before "localmount"
+# (say for crypt swap), so you will need to customize this
+# behavior.  If you have /var on a separate partition, then
+# make sure this path lives on your root device somewhere.
+urandom_seed="/var/run/random-seed"
diff --git a/config-archive/etc/conf.d/urandom.dist b/config-archive/etc/conf.d/urandom.dist
new file mode 100644 (file)
index 0000000..f721a24
--- /dev/null
@@ -0,0 +1,5 @@
+# Sometimes you want to have urandom start before "localmount"
+# (say for crypt swap), so you will need to customize this
+# behavior.  If you have /var on a separate partition, then
+# make sure this path lives on your root device somewhere.
+urandom_seed="/var/lib/misc/random-seed"
diff --git a/config-archive/etc/cron.daily/logrotate.cron b/config-archive/etc/cron.daily/logrotate.cron
new file mode 100755 (executable)
index 0000000..359f3d0
--- /dev/null
@@ -0,0 +1,6 @@
+#! /bin/sh
+
+#/usr/sbin/logrotate /etc/logrotate.conf
+if [ -x /usr/scripts/logrotate.pl ] ; then
+    /usr/scripts/logrotate.pl -v >>/var/log/logrotate.log
+fi
diff --git a/config-archive/etc/cron.daily/logrotate.cron.dist.new b/config-archive/etc/cron.daily/logrotate.cron.dist.new
new file mode 100755 (executable)
index 0000000..63cbe96
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+/usr/sbin/logrotate /etc/logrotate.conf
diff --git a/config-archive/etc/dbus-1/system.d/bluetooth.conf b/config-archive/etc/dbus-1/system.d/bluetooth.conf
new file mode 100644 (file)
index 0000000..853f926
--- /dev/null
@@ -0,0 +1,33 @@
+<!-- This configuration file specifies the required security policies
+     for Bluetooth core daemon to work. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+  <!-- ../system.conf have denied everything, so we just punch some holes -->
+
+  <policy user="root">
+    <allow own="org.bluez"/>
+    <allow send_destination="org.bluez"/>
+    <allow send_interface="org.bluez.Agent"/>
+    <allow send_interface="org.bluez.HandsfreeAgent"/>
+    <allow send_interface="org.bluez.MediaEndpoint"/>
+    <allow send_interface="org.bluez.Watcher"/>
+  </policy>
+
+  <policy at_console="true">
+    <allow send_destination="org.bluez"/>
+  </policy>
+
+  <!-- allow users of lp group (printing subsystem) to 
+       communicate with bluetoothd -->
+  <policy group="lp">
+    <allow send_destination="org.bluez"/>
+  </policy>
+
+  <policy context="default">
+    <deny send_destination="org.bluez"/>
+  </policy>
+
+</busconfig>
diff --git a/config-archive/etc/dbus-1/system.d/bluetooth.conf.dist b/config-archive/etc/dbus-1/system.d/bluetooth.conf.dist
new file mode 100644 (file)
index 0000000..664dbd9
--- /dev/null
@@ -0,0 +1,35 @@
+<!-- This configuration file specifies the required security policies
+     for Bluetooth core daemon to work. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+  <!-- ../system.conf have denied everything, so we just punch some holes -->
+
+  <policy user="root">
+    <allow own="org.bluez"/>
+    <allow send_destination="org.bluez"/>
+    <allow send_interface="org.bluez.Agent"/>
+    <allow send_interface="org.bluez.HandsfreeAgent"/>
+    <allow send_interface="org.bluez.MediaEndpoint"/>
+    <allow send_interface="org.bluez.MediaPlayer"/>
+    <allow send_interface="org.bluez.Watcher"/>
+    <allow send_interface="org.bluez.ThermometerWatcher"/>
+  </policy>
+
+  <policy at_console="true">
+    <allow send_destination="org.bluez"/>
+  </policy>
+
+  <!-- allow users of lp group (printing subsystem) to 
+       communicate with bluetoothd -->
+  <policy group="lp">
+    <allow send_destination="org.bluez"/>
+  </policy>
+
+  <policy context="default">
+    <deny send_destination="org.bluez"/>
+  </policy>
+
+</busconfig>
diff --git a/config-archive/etc/hotplug/usb/libsane.usermap b/config-archive/etc/hotplug/usb/libsane.usermap
new file mode 100644 (file)
index 0000000..fd6f4c0
--- /dev/null
@@ -0,0 +1,1372 @@
+# This file was automatically created based on description files (*.desc)
+# by sane-desc 3.5 from sane-backends 1.0.22 on Mon Jan 16 20:59:57 2012
+#
+# The entries below are used to detect a USB device and change owner
+# and permissions on the "device node" used by libusb.
+#
+# The 0x0003 match flag means the device is matched by its vendor and
+# product IDs.
+#
+# Sample entry (replace 0xVVVV and 0xPPPP with vendor ID and product ID
+# respectively):
+#
+# libusbscanner 0x0003 0xVVVV 0xPPPP 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
+#
+# If your scanner isn't listed below, you can add it as explained above.
+#
+# If your scanner is supported by some external backend (brother, epkowa,
+# hpaio, etc) please ask the author of the backend to provide proper
+# device detection support for your OS
+#
+# If the scanner is supported by sane-backends, please mail the entry to
+# the sane-devel mailing list (sane-devel@lists.alioth.debian.org).
+#
+# Hewlett-Packard ScanJet 4100C
+libusbscanner 0x0003 0x03f0 0x0101 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4200C | Hewlett-Packard ScanJet 4200Cxi | Hewlett-Packard ScanJet 4200Cse
+libusbscanner 0x0003 0x03f0 0x0105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 6200C | Hewlett-Packard ScanJet 6250C
+libusbscanner 0x0003 0x03f0 0x0201 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3300c
+libusbscanner 0x0003 0x03f0 0x0205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4300c
+libusbscanner 0x0003 0x03f0 0x0305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5200C
+libusbscanner 0x0003 0x03f0 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3400c
+libusbscanner 0x0003 0x03f0 0x0405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2100C
+libusbscanner 0x0003 0x03f0 0x0505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 6300C | Hewlett-Packard ScanJet 6350C | Hewlett-Packard ScanJet 6390C
+libusbscanner 0x0003 0x03f0 0x0601 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2200C
+libusbscanner 0x0003 0x03f0 0x0605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5300C | Hewlett-Packard ScanJet 5370C
+libusbscanner 0x0003 0x03f0 0x0701 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard scanjet 4400c
+libusbscanner 0x0003 0x03f0 0x0705 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 7400c | Hewlett-Packard ScanJet 7450c | Hewlett-Packard ScanJet 7490c
+libusbscanner 0x0003 0x03f0 0x0801 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard scanjet 4470c
+libusbscanner 0x0003 0x03f0 0x0805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2300C
+libusbscanner 0x0003 0x03f0 0x0901 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2400C | Hewlett-Packard ScanJet G2410
+libusbscanner 0x0003 0x03f0 0x0a01 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8200 | Hewlett-Packard ScanJet 8250 | Hewlett-Packard ScanJet 8290 | Hewlett Packard ScanJet 8200
+libusbscanner 0x0003 0x03f0 0x0b01 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5400c
+libusbscanner 0x0003 0x03f0 0x1005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5470c
+libusbscanner 0x0003 0x03f0 0x1105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4500C | Hewlett-Packard ScanJet 5550C
+libusbscanner 0x0003 0x03f0 0x1205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C
+libusbscanner 0x0003 0x03f0 0x1305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C
+libusbscanner 0x0003 0x03f0 0x1405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5590
+libusbscanner 0x0003 0x03f0 0x1705 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 7650
+libusbscanner 0x0003 0x03f0 0x1805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3530C | Hewlett-Packard ScanJet 3570C
+libusbscanner 0x0003 0x03f0 0x2005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3500C
+libusbscanner 0x0003 0x03f0 0x2205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3970c
+libusbscanner 0x0003 0x03f0 0x2305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4070 Photosmart
+libusbscanner 0x0003 0x03f0 0x2405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett Packard ScanJet 3770
+libusbscanner 0x0003 0x03f0 0x2505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3800
+libusbscanner 0x0003 0x03f0 0x2605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G2710
+libusbscanner 0x0003 0x03f0 0x2805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8300 | Hewlett-Packard ScanJet 8350 | Hewlett-Packard ScanJet 8390
+libusbscanner 0x0003 0x03f0 0x3805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8270
+libusbscanner 0x0003 0x03f0 0x3905 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1005 MFP
+libusbscanner 0x0003 0x03f0 0x3b17 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4370
+libusbscanner 0x0003 0x03f0 0x4105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G3010
+libusbscanner 0x0003 0x03f0 0x4205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G3110
+libusbscanner 0x0003 0x03f0 0x4305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G4010
+libusbscanner 0x0003 0x03f0 0x4505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G4050
+libusbscanner 0x0003 0x03f0 0x4605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1120 MFP
+libusbscanner 0x0003 0x03f0 0x5617 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1120n MFP
+libusbscanner 0x0003 0x03f0 0x5717 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200
+libusbscanner 0x0003 0x0400 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 | Mustek BearPaw 2400
+libusbscanner 0x0003 0x0400 0x1001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i30
+libusbscanner 0x0003 0x040a 0x6001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i40
+libusbscanner 0x0003 0x040a 0x6002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i50 | Kodak i55
+libusbscanner 0x0003 0x040a 0x6003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i60 | Kodak i65
+libusbscanner 0x0003 0x040a 0x6004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i80
+libusbscanner 0x0003 0x040a 0x6005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Creative WebCam Go Mini
+libusbscanner 0x0003 0x041e 0x4007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X70 | Lexmark X73
+libusbscanner 0x0003 0x043d 0x002d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X74
+libusbscanner 0x0003 0x043d 0x0060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X1110 | Lexmark X1130 | Lexmark X1140 | Lexmark X1150 | Lexmark X1170 | Lexmark X1180 | Lexmark X1185 | Lexmark X1195
+libusbscanner 0x0003 0x043d 0x007c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X12xx
+libusbscanner 0x0003 0x043d 0x007d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Vivid Pro USB
+libusbscanner 0x0003 0x0458 0x2001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius ColorPage HR6 V1
+libusbscanner 0x0003 0x0458 0x2004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6 V2
+libusbscanner 0x0003 0x0458 0x2007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6 V2
+libusbscanner 0x0003 0x0458 0x2008 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6A
+libusbscanner 0x0003 0x0458 0x2009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid3x | Genius Colorpage Vivid3 V2
+libusbscanner 0x0003 0x0458 0x2011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR7
+libusbscanner 0x0003 0x0458 0x2013 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4
+libusbscanner 0x0003 0x0458 0x2014 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR7LE
+libusbscanner 0x0003 0x0458 0x2015 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6X
+libusbscanner 0x0003 0x0458 0x2016 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid3xe
+libusbscanner 0x0003 0x0458 0x2017 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4xe
+libusbscanner 0x0003 0x0458 0x201a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4x
+libusbscanner 0x0003 0x0458 0x201b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid 1200 X
+libusbscanner 0x0003 0x0458 0x201d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius ColorPage Slim 1200
+libusbscanner 0x0003 0x0458 0x201e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid 1200 XE
+libusbscanner 0x0003 0x0458 0x201f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage SF600
+libusbscanner 0x0003 0x0458 0x2021 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado 2400U
+libusbscanner 0x0003 0x0461 0x0346 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado USB 19200
+libusbscanner 0x0003 0x0461 0x0360 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado 2200 USB | LG Electronics Scanworks 600U
+libusbscanner 0x0003 0x0461 0x0364 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Medion/Lifetec/Tevion/Cytron MD5345 | Medion/Lifetec/Tevion/Cytron MD6228 | Medion/Lifetec/Tevion/Cytron MD6471
+libusbscanner 0x0003 0x0461 0x0377 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust Office Scan USB 19200
+libusbscanner 0x0003 0x047b 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4300c/Silitek
+libusbscanner 0x0003 0x047b 0x1002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kyocera FS-1016MFP
+libusbscanner 0x0003 0x0482 0x0335 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Compaq S4-100
+libusbscanner 0x0003 0x049f 0x001a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 310U
+libusbscanner 0x0003 0x04a5 0x1a20 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 620U
+libusbscanner 0x0003 0x04a5 0x1a2a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 320U | Benq (Acer) 340U | Mitsubishi Diamondview 648UT
+libusbscanner 0x0003 0x04a5 0x2022 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 620UT
+libusbscanner 0x0003 0x04a5 0x2040 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640U | Guillemot / Hercules Maxi Scan A4 USB 640U | Guillemot / Hercules Maxi A4 36 bit
+libusbscanner 0x0003 0x04a5 0x2060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640bu
+libusbscanner 0x0003 0x04a5 0x207e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 3300 | Benq (Acer) 4300 | Mitsubishi Diamondview 650U
+libusbscanner 0x0003 0x04a5 0x20b0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640BT
+libusbscanner 0x0003 0x04a5 0x20be 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 1240
+libusbscanner 0x0003 0x04a5 0x20c0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 3300 | Benq (Acer) 4300 | Guillemot / Hercules Scan@home Touch 1248 (USB)
+libusbscanner 0x0003 0x04a5 0x20de 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5000
+libusbscanner 0x0003 0x04a5 0x20f8 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5000E | Benq (Acer) 5000U
+libusbscanner 0x0003 0x04a5 0x20fc 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5300
+libusbscanner 0x0003 0x04a5 0x20fe 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5150 | Benq (Acer) 5250
+libusbscanner 0x0003 0x04a5 0x2137 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# BenQ 5550
+libusbscanner 0x0003 0x04a5 0x2211 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 7600
+libusbscanner 0x0003 0x04a7 0x0211 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Visioneer OneTouch 7100
+libusbscanner 0x0003 0x04a7 0x0229 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 6100
+libusbscanner 0x0003 0x04a7 0x0231 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 8600
+libusbscanner 0x0003 0x04a7 0x0331 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9650
+libusbscanner 0x0003 0x04a7 0x0390 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9320
+libusbscanner 0x0003 0x04a7 0x0420 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9450
+libusbscanner 0x0003 0x04a7 0x0421 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9550
+libusbscanner 0x0003 0x04a7 0x0422 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9750
+libusbscanner 0x0003 0x04a7 0x0423 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 450
+libusbscanner 0x0003 0x04a7 0x0424 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 200
+libusbscanner 0x0003 0x04a7 0x0426 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 100
+libusbscanner 0x0003 0x04a7 0x0427 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 7300
+libusbscanner 0x0003 0x04a7 0x0444 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate510
+libusbscanner 0x0003 0x04a7 0x0446 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate520
+libusbscanner 0x0003 0x04a7 0x0447 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate250
+libusbscanner 0x0003 0x04a7 0x0448 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate252
+libusbscanner 0x0003 0x04a7 0x0449 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262
+libusbscanner 0x0003 0x04a7 0x044c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 300
+libusbscanner 0x0003 0x04a7 0x0474 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate272
+libusbscanner 0x0003 0x04a7 0x0475 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate152
+libusbscanner 0x0003 0x04a7 0x0477 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate752
+libusbscanner 0x0003 0x04a7 0x0478 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 470
+libusbscanner 0x0003 0x04a7 0x0479 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9450-G
+libusbscanner 0x0003 0x04a7 0x047a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9650-G
+libusbscanner 0x0003 0x04a7 0x047b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate510-G
+libusbscanner 0x0003 0x04a7 0x047c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate252-G
+libusbscanner 0x0003 0x04a7 0x048c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262-G
+libusbscanner 0x0003 0x04a7 0x048d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate272-G
+libusbscanner 0x0003 0x04a7 0x048e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 470-G | Visioneer Patriot 470
+libusbscanner 0x0003 0x04a7 0x048f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate250-G
+libusbscanner 0x0003 0x04a7 0x0490 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 450-G
+libusbscanner 0x0003 0x04a7 0x0491 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate520-G
+libusbscanner 0x0003 0x04a7 0x0492 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9750-G
+libusbscanner 0x0003 0x04a7 0x0493 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Roadwarrior
+libusbscanner 0x0003 0x04a7 0x0494 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate512
+libusbscanner 0x0003 0x04a7 0x0495 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 430
+libusbscanner 0x0003 0x04a7 0x0497 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 680 | Xerox DocuMate632
+libusbscanner 0x0003 0x04a7 0x0498 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 780
+libusbscanner 0x0003 0x04a7 0x0499 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate752
+libusbscanner 0x0003 0x04a7 0x049a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 100,r3
+libusbscanner 0x0003 0x04a7 0x049b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate150
+libusbscanner 0x0003 0x04a7 0x049c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate162
+libusbscanner 0x0003 0x04a7 0x049d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262i
+libusbscanner 0x0003 0x04a7 0x04a7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Travel Scanner 100
+libusbscanner 0x0003 0x04a7 0x04ac 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2080C
+libusbscanner 0x0003 0x04a9 0x1601 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-180 | Canon CR-180II
+libusbscanner 0x0003 0x04a9 0x1602 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-9080C
+libusbscanner 0x0003 0x04a9 0x1603 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7080C
+libusbscanner 0x0003 0x04a9 0x1604 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-5010C
+libusbscanner 0x0003 0x04a9 0x1606 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6080
+libusbscanner 0x0003 0x04a9 0x1607 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2580C
+libusbscanner 0x0003 0x04a9 0x1608 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-3080CII
+libusbscanner 0x0003 0x04a9 0x1609 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2050C | Canon DR-2050SP
+libusbscanner 0x0003 0x04a9 0x160a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7580
+libusbscanner 0x0003 0x04a9 0x160b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP750
+libusbscanner 0x0003 0x04a9 0x1706 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP780
+libusbscanner 0x0003 0x04a9 0x1707 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP760
+libusbscanner 0x0003 0x04a9 0x1708 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP150
+libusbscanner 0x0003 0x04a9 0x1709 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP170
+libusbscanner 0x0003 0x04a9 0x170a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP450
+libusbscanner 0x0003 0x04a9 0x170b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP500
+libusbscanner 0x0003 0x04a9 0x170c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP800
+libusbscanner 0x0003 0x04a9 0x170d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP800R
+libusbscanner 0x0003 0x04a9 0x170e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP530
+libusbscanner 0x0003 0x04a9 0x1712 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP830
+libusbscanner 0x0003 0x04a9 0x1713 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP160 | Canon PIXMA MP160
+libusbscanner 0x0003 0x04a9 0x1714 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP180
+libusbscanner 0x0003 0x04a9 0x1715 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP460
+libusbscanner 0x0003 0x04a9 0x1716 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP510 | Canon PIXMA MP510
+libusbscanner 0x0003 0x04a9 0x1717 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP600 | Canon PIXMA MP600
+libusbscanner 0x0003 0x04a9 0x1718 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP600R
+libusbscanner 0x0003 0x04a9 0x1719 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP810
+libusbscanner 0x0003 0x04a9 0x171a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP960
+libusbscanner 0x0003 0x04a9 0x171b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX7600
+libusbscanner 0x0003 0x04a9 0x171c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP210 | Canon PIXMA MP210
+libusbscanner 0x0003 0x04a9 0x1721 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP220
+libusbscanner 0x0003 0x04a9 0x1722 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP470
+libusbscanner 0x0003 0x04a9 0x1723 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP520 | Canon PIXMA MP520
+libusbscanner 0x0003 0x04a9 0x1724 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP610 | Canon PIXMA MP610
+libusbscanner 0x0003 0x04a9 0x1725 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP970
+libusbscanner 0x0003 0x04a9 0x1726 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX300
+libusbscanner 0x0003 0x04a9 0x1727 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX310
+libusbscanner 0x0003 0x04a9 0x1728 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX700
+libusbscanner 0x0003 0x04a9 0x1729 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP140 | Canon PIXMA MP140
+libusbscanner 0x0003 0x04a9 0x172b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX850
+libusbscanner 0x0003 0x04a9 0x172c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP980
+libusbscanner 0x0003 0x04a9 0x172d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP630
+libusbscanner 0x0003 0x04a9 0x172e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP620
+libusbscanner 0x0003 0x04a9 0x172f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP540
+libusbscanner 0x0003 0x04a9 0x1730 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP480
+libusbscanner 0x0003 0x04a9 0x1731 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP240
+libusbscanner 0x0003 0x04a9 0x1732 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP260
+libusbscanner 0x0003 0x04a9 0x1733 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP190
+libusbscanner 0x0003 0x04a9 0x1734 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX860
+libusbscanner 0x0003 0x04a9 0x1735 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX320
+libusbscanner 0x0003 0x04a9 0x1736 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX330
+libusbscanner 0x0003 0x04a9 0x1737 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP250
+libusbscanner 0x0003 0x04a9 0x173a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP270
+libusbscanner 0x0003 0x04a9 0x173b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP490
+libusbscanner 0x0003 0x04a9 0x173c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP550
+libusbscanner 0x0003 0x04a9 0x173d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP560
+libusbscanner 0x0003 0x04a9 0x173e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP640
+libusbscanner 0x0003 0x04a9 0x173f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP990
+libusbscanner 0x0003 0x04a9 0x1740 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX340
+libusbscanner 0x0003 0x04a9 0x1741 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX350
+libusbscanner 0x0003 0x04a9 0x1742 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX870
+libusbscanner 0x0003 0x04a9 0x1743 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan 8800F
+libusbscanner 0x0003 0x04a9 0x1901 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 100
+libusbscanner 0x0003 0x04a9 0x1904 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 200
+libusbscanner 0x0003 0x04a9 0x1905 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 110
+libusbscanner 0x0003 0x04a9 0x1909 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 210
+libusbscanner 0x0003 0x04a9 0x190a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan fb630u | Canon CanoScan fb636u
+libusbscanner 0x0003 0x04a9 0x2204 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N650U/N656U
+libusbscanner 0x0003 0x04a9 0x2206 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N1220U
+libusbscanner 0x0003 0x04a9 0x2207 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan D660U
+libusbscanner 0x0003 0x04a9 0x2208 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N670U/N676U/LiDE20
+libusbscanner 0x0003 0x04a9 0x220d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N1240U/LiDE30
+libusbscanner 0x0003 0x04a9 0x220e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 35 | Canon CanoScan LiDE 40 | Canon CanoScan LiDE 50
+libusbscanner 0x0003 0x04a9 0x2213 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan 3200F
+libusbscanner 0x0003 0x04a9 0x2216 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 60
+libusbscanner 0x0003 0x04a9 0x221c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE25
+libusbscanner 0x0003 0x04a9 0x2220 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-1210C
+libusbscanner 0x0003 0x04a9 0x2222 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP730
+libusbscanner 0x0003 0x04a9 0x262f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP700
+libusbscanner 0x0003 0x04a9 0x2630 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP360
+libusbscanner 0x0003 0x04a9 0x263c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP370
+libusbscanner 0x0003 0x04a9 0x263d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP390
+libusbscanner 0x0003 0x04a9 0x263e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP375R
+libusbscanner 0x0003 0x04a9 0x263f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP740
+libusbscanner 0x0003 0x04a9 0x264c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP710
+libusbscanner 0x0003 0x04a9 0x264d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5630
+libusbscanner 0x0003 0x04a9 0x264e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon laserBase MF5650
+libusbscanner 0x0003 0x04a9 0x264f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF8170c
+libusbscanner 0x0003 0x04a9 0x2659 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5730
+libusbscanner 0x0003 0x04a9 0x265d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5750
+libusbscanner 0x0003 0x04a9 0x265e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5770
+libusbscanner 0x0003 0x04a9 0x265f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF3110
+libusbscanner 0x0003 0x04a9 0x2660 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF3240
+libusbscanner 0x0003 0x04a9 0x2684 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF6500 series
+libusbscanner 0x0003 0x04a9 0x2686 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4120 | Canon imageCLASS MF4122 | Canon imageCLASS MF4140 | Canon imageCLASS MF4150
+libusbscanner 0x0003 0x04a9 0x26a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4690
+libusbscanner 0x0003 0x04a9 0x26b0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
+libusbscanner 0x0003 0x04a9 0x26b4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4270
+libusbscanner 0x0003 0x04a9 0x26b5 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4370dn | Canon imageCLASS MF4380dn
+libusbscanner 0x0003 0x04a9 0x26ec 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS D480
+libusbscanner 0x0003 0x04a9 0x26ed 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon I-SENSYS MF4320d | Canon I-SENSYS MF4330d | Canon imageCLASS MF4350d
+libusbscanner 0x0003 0x04a9 0x26ee 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon LS 40 ED | Nikon LS 40 ED | Nikon Coolspan IV
+libusbscanner 0x0003 0x04b0 0x4000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon LS 50 ED | Nikon Coolscan V ED | Nikon LS 50 ED | Nikon Coolscan V ED
+libusbscanner 0x0003 0x04b0 0x4001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon Super Coolscan LS-5000 ED | Nikon Super Coolscan LS-5000 ED
+libusbscanner 0x0003 0x04b0 0x4002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7000U | EPSON Perfection 636U | Epson Perfection 636U | Epson GT-7000U | Epson Perfection 636U
+libusbscanner 0x0003 0x04b8 0x0101 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-6600U | EPSON Perfection 610 | Epson Perfection 610 | Epson GT-6600U | Epson Perfection 610
+libusbscanner 0x0003 0x04b8 0x0103 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7600U | EPSON GT-7600UF | EPSON Perfection 1200U | EPSON Perfection 1200U PHOTO | Epson Perfection 1200U | Epson Perfection 1200Photo | Epson GT-7600U | Epson GT-7600UF | Epson Perfection 1200U | Epson Perfection 1200U PHOTO
+libusbscanner 0x0003 0x04b8 0x0104 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Scan 2000 | Epson Stylus Scan 2000
+libusbscanner 0x0003 0x04b8 0x0105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Scan 2500 | Epson Stylus Scan 2500
+libusbscanner 0x0003 0x04b8 0x0106 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-2000 | EPSON Expression 1600 | Epson Expression 1600 | Epson ES-2000 | Epson Expression 1600
+libusbscanner 0x0003 0x04b8 0x0107 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-8500 | EPSON Expression 1640XL | Epson ES-8500 | Epson Expression 1640XL
+libusbscanner 0x0003 0x04b8 0x0109 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8700 | EPSON GT-8700F | EPSON Perfection 1640SU | EPSON Perfection 1640SU PHOTO | Epson Perfection 1640 | Epson GT-8700 | Epson GT-8700F | Epson Perfection 1640SU | Epson Perfection 1640SU PHOTO
+libusbscanner 0x0003 0x04b8 0x010a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7700U | EPSON Perfection 1240U | Epson Perfection 1240 | Epson GT-7700U | Epson Perfection 1240U
+libusbscanner 0x0003 0x04b8 0x010b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-6700U | EPSON Perfection 640U | Epson Perfection 640 | Epson GT-6700U | Epson Perfection 640U
+libusbscanner 0x0003 0x04b8 0x010c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-2200 | EPSON Expression 1680 | Epson Expression 1680 | Epson ES-2200 | Epson Expression 1680
+libusbscanner 0x0003 0x04b8 0x010e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7200U | EPSON Perfection 1250 | EPSON Perfection 1250 PHOTO | Epson Perfection 1250 | Epson Perfection 1250Photo
+libusbscanner 0x0003 0x04b8 0x010f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8200U | EPSON GT-8200UF | EPSON Perfection 1650 | EPSON Perfection 1650 PHOTO | Epson Perfection 1650 | Epson GT-8200U | Epson GT-8200UF | Epson Perfection 1650 | Epson Perfection 1650 PHOTO
+libusbscanner 0x0003 0x04b8 0x0110 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9700F | EPSON Perfection 2450 PHOTO | Epson Perfection 2450 | Epson GT-9700F | Epson Perfection 2450 PHOTO
+libusbscanner 0x0003 0x04b8 0x0112 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 660
+libusbscanner 0x0003 0x04b8 0x0114 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9400UF | EPSON Perfection 3170 PHOTO
+libusbscanner 0x0003 0x04b8 0x0116 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F600 | EPSON Perfection 4180 PHOTO
+libusbscanner 0x0003 0x04b8 0x0118 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X750 | EPSON Perfection 4490 PHOTO
+libusbscanner 0x0003 0x04b8 0x0119 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9300UF | EPSON Perfection 2400 PHOTO | Epson Perfection 2400 | Epson GT-9300UF | Epson Perfection 2400 PHOTO
+libusbscanner 0x0003 0x04b8 0x011b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9800F | EPSON Perfection 3200 PHOTO | Epson Perfection 3200 | Epson GT-9800F | Epson Perfection 3200 PHOTO
+libusbscanner 0x0003 0x04b8 0x011c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7300U | EPSON Perfection 1260 | EPSON Perfection 1260 PHOTO | Epson Perfection 1260 | Epson Perfection 1260Photo
+libusbscanner 0x0003 0x04b8 0x011d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8300UF | EPSON Perfection 1660 PHOTO | Epson Perfection 1660 | Epson GT-8300UF | Epson Perfection 1660 PHOTO
+libusbscanner 0x0003 0x04b8 0x011e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 1670
+libusbscanner 0x0003 0x04b8 0x011f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 1270
+libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F500 | EPSON GT-F550 | EPSON Perfection 2480 PHOTO | EPSON Perfection 2580 PHOTO | Epson Perfection 2480 | Epson Perfection 2580
+libusbscanner 0x0003 0x04b8 0x0121 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F520 | EPSON GT-F570 | EPSON Perfection 3490 PHOTO | EPSON Perfection 3590 PHOTO | Epson Perfection 3490 | Epson Perfection 3590
+libusbscanner 0x0003 0x04b8 0x0122 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-7000H | EPSON GT-15000 | Epson ES-7000H | Epson GT-15000
+libusbscanner 0x0003 0x04b8 0x0126 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X700 | EPSON Perfection 4870 PHOTO | Epson Perfection 4870 | Epson GT-X700 | Epson Perfection 4870 PHOTO
+libusbscanner 0x0003 0x04b8 0x0128 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-10000G | EPSON Expression 10000XL | Epson ES-10000G | Epson Expression 10000XL
+libusbscanner 0x0003 0x04b8 0x0129 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X800 | EPSON Perfection 4990 PHOTO | Epson Perfection 4990 | Epson GT-X800 | Epson Perfection 4990 PHOTO
+libusbscanner 0x0003 0x04b8 0x012a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-H300 | EPSON GT-2500 | Epson ES-H300 | Epson GT-2500
+libusbscanner 0x0003 0x04b8 0x012b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X900 | EPSON Perfection V700 Photo | EPSON Perfection V750 Photo | Epson V700 | Epson V750 | Epson GT-X900 | Epson Perfection V700 Photo | Epson Perfection V750 Photo
+libusbscanner 0x0003 0x04b8 0x012c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F650 | EPSON GT-S600 | EPSON Perfection V10 | EPSON Perfection V100 Photo
+libusbscanner 0x0003 0x04b8 0x012d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F670 | EPSON Perfection V200 Photo
+libusbscanner 0x0003 0x04b8 0x012e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F700 | EPSON Perfection V350 Photo
+libusbscanner 0x0003 0x04b8 0x012f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X770 | EPSON Perfection V500 Photo
+libusbscanner 0x0003 0x04b8 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F720 | EPSON GT-S620 | EPSON Perfection V30 | EPSON Perfection V300 Photo
+libusbscanner 0x0003 0x04b8 0x0131 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-1500 | EPSON GT-D1000
+libusbscanner 0x0003 0x04b8 0x0133 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X970 | Epson GT-X970
+libusbscanner 0x0003 0x04b8 0x0135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-D400 | EPSON GT-S80
+libusbscanner 0x0003 0x04b8 0x0136 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-D200 | EPSON GT-S50
+libusbscanner 0x0003 0x04b8 0x0137 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-H7200 | EPSON GT-20000
+libusbscanner 0x0003 0x04b8 0x0138 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X820 | EPSON Perfection V600 Photo
+libusbscanner 0x0003 0x04b8 0x013a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F730 | EPSON GT-S630 | EPSON Perfection V33 | EPSON Perfection V330 Photo
+libusbscanner 0x0003 0x04b8 0x0142 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON CC-600PX | EPSON Stylus CX5100 | EPSON Stylus CX5200 | Epson CX-5200 | Epson CX-5400 | Epson CC-600PX | Epson Stylus CX5100 | Epson Stylus CX5200
+libusbscanner 0x0003 0x04b8 0x0801 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON CC-570L | EPSON Stylus CX3100 | EPSON Stylus CX3200 | Epson CX-3200 | Epson CC-570L | Epson Stylus CX3100 | Epson Stylus CX3200
+libusbscanner 0x0003 0x04b8 0x0802 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX6300 | EPSON Stylus CX6400 | Epson CX-6300 | Epson CX-6400 | Epson Stylus CX6300 | Epson Stylus CX6400
+libusbscanner 0x0003 0x04b8 0x0805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A850 | EPSON Stylus Photo RX600 | Epson RX-600 | Epson PM-A850 | Epson Stylus Photo RX600
+libusbscanner 0x0003 0x04b8 0x0806 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Photo RX500 | EPSON Stylus Photo RX510 | Epson RX-500 | Epson Stylus Photo RX500 | Epson Stylus Photo RX510
+libusbscanner 0x0003 0x04b8 0x0807 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX5300 | EPSON Stylus CX5400 | Epson CX-5400 | Epson Stylus CX5300 | Epson Stylus CX5400
+libusbscanner 0x0003 0x04b8 0x0808 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Stylus CX-1500
+libusbscanner 0x0003 0x04b8 0x080c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4500 | EPSON Stylus CX4600 | Epson CX-4600 | Epson Stylus CX4500 | Epson Stylus CX4600
+libusbscanner 0x0003 0x04b8 0x080d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A550 | EPSON Stylus CX3500 | EPSON Stylus CX3600 | EPSON Stylus CX3650 | Epson CX-3600 | Epson CX-3650 | Epson PX-A550 | Epson Stylus CX3500 | Epson Stylus CX3600 | Epson Stylus CX3650
+libusbscanner 0x0003 0x04b8 0x080e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Photo RX420 | EPSON Stylus Photo RX425 | EPSON Stylus Photo RX430 | Epson RX-425 | Epson Stylus Photo RX420 | Epson Stylus Photo RX425 | Epson Stylus Photo RX430
+libusbscanner 0x0003 0x04b8 0x080f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A900 | EPSON Stylus Photo RX700 | Epson RX-700 | Epson PM-A900 | Epson Stylus Photo RX700
+libusbscanner 0x0003 0x04b8 0x0810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A870 | EPSON Stylus Photo RX620 | EPSON Stylus Photo RX630 | Epson RX-620 | Epson PM-A870 | Epson Stylus Photo RX620 | Epson Stylus Photo RX630
+libusbscanner 0x0003 0x04b8 0x0811 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX6500 | EPSON Stylus CX6600 | Epson CX-6500 | Epson CX-6600 | Epson Stylus CX6500 | Epson Stylus CX6600
+libusbscanner 0x0003 0x04b8 0x0813 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A700 | Epson PM-A700
+libusbscanner 0x0003 0x04b8 0x0814 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser CX11 | EPSON AcuLaser CX11NF | EPSON LP-A500 | Epson AcuLaser CX11 | Epson AcuLaser CX11NF | Epson AcuLaser CX11 | Epson AcuLaser CX11NF | Epson LP-A500
+libusbscanner 0x0003 0x04b8 0x0815 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5500 | EPSON LP-M5500F | Epson LP-M5500 | Epson LP-M5500F
+libusbscanner 0x0003 0x04b8 0x0817 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX3700 | EPSON Stylus CX3800 | EPSON Stylus DX3800 | Epson DX-3850 | Epson CX-3700 | Epson CX-3800 | Epson DX-3800 | Epson Stylus CX3700 | Epson Stylus CX3800 | Epson Stylus DX3800
+libusbscanner 0x0003 0x04b8 0x0818 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A650 | EPSON Stylus CX4700 | EPSON Stylus CX4800 | EPSON Stylus DX4800 | EPSON Stylus DX4850 | Epson CX-4800 | Epson PX-A650 | Epson Stylus CX4700 | Epson Stylus CX4800 | Epson Stylus DX4800 | Epson Stylus DX4850
+libusbscanner 0x0003 0x04b8 0x0819 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A750 | EPSON Stylus Photo RX520 | EPSON Stylus Photo RX530 | Epson PM-A750 | Epson Stylus Photo RX520 | Epson Stylus Photo RX530
+libusbscanner 0x0003 0x04b8 0x081a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A890 | EPSON Stylus Photo RX640 | EPSON Stylus Photo RX650 | Epson PM-A890 | Epson Stylus Photo RX640 | Epson Stylus Photo RX650
+libusbscanner 0x0003 0x04b8 0x081c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A950 | Epson PM-A950
+libusbscanner 0x0003 0x04b8 0x081d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX7700 | EPSON Stylus CX7800 | Epson Stylus CX7700 | Epson Stylus CX7800
+libusbscanner 0x0003 0x04b8 0x081f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4100 | EPSON Stylus CX4200 | EPSON Stylus DX4200 | Epson CX-4200 | Epson Stylus CX4100 | Epson Stylus CX4200 | Epson Stylus DX4200
+libusbscanner 0x0003 0x04b8 0x0820 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A820 | EPSON Stylus Photo RX560 | EPSON Stylus Photo RX580 | EPSON Stylus Photo RX590 | Epson PM-A820 | Epson Stylus Photo RX560 | Epson Stylus Photo RX580 | Epson Stylus Photo RX590
+libusbscanner 0x0003 0x04b8 0x0827 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A970 | Epson PM-A970
+libusbscanner 0x0003 0x04b8 0x0828 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-T990 | Epson PM-T990
+libusbscanner 0x0003 0x04b8 0x0829 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A920 | Epson PM-A920
+libusbscanner 0x0003 0x04b8 0x082a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4900 | EPSON Stylus CX5000 | EPSON Stylus DX5000 | Epson CX-5000 | Epson DX-5000 | Epson DX-5050 | Epson Stylus CX4900 | Epson Stylus CX5000 | Epson Stylus DX5000
+libusbscanner 0x0003 0x04b8 0x082b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A720 | EPSON Stylus CX5900 | EPSON Stylus CX6000 | EPSON Stylus DX6000 | Epson DX-6000 | Epson PX-A720 | Epson Stylus CX5900 | Epson Stylus CX6000 | Epson Stylus DX6000
+libusbscanner 0x0003 0x04b8 0x082e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A620 | EPSON Stylus CX3900 | EPSON Stylus DX4000 | Epson DX-4050 | Epson PX-A620 | Epson Stylus CX3900 | Epson Stylus DX4000
+libusbscanner 0x0003 0x04b8 0x082f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 200 | EPSON Stylus CX2800 | EPSON Stylus CX2900 | Epson ME 200 | Epson Stylus CX2800 | Epson Stylus CX2900
+libusbscanner 0x0003 0x04b8 0x0830 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5600 | Epson LP-M5600
+libusbscanner 0x0003 0x04b8 0x0833 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M6000 | Epson LP-M6000
+libusbscanner 0x0003 0x04b8 0x0834 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser CX21 | Epson AcuLaser CX21
+libusbscanner 0x0003 0x04b8 0x0835 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-T960 | Epson PM-T960
+libusbscanner 0x0003 0x04b8 0x0836 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A940 | EPSON Stylus Photo RX680 | EPSON Stylus Photo RX685 | EPSON Stylus Photo RX690 | Epson PM-A940 | Epson Stylus Photo RX680 | Epson Stylus Photo RX685 | Epson Stylus Photo RX690
+libusbscanner 0x0003 0x04b8 0x0837 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A640 | EPSON Stylus CX7300 | EPSON Stylus CX7400 | EPSON Stylus DX7400 | Epson DX-7400 | Epson PX-A640 | Epson Stylus CX7300 | Epson Stylus CX7400 | Epson Stylus DX7400
+libusbscanner 0x0003 0x04b8 0x0838 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A740 | EPSON Stylus CX8300 | EPSON Stylus CX8400 | EPSON Stylus DX8400 | Epson PX-A740 | Epson Stylus CX8300 | Epson Stylus CX8400 | Epson Stylus DX8400
+libusbscanner 0x0003 0x04b8 0x0839 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-FA700 | EPSON Stylus CX9300F | EPSON Stylus CX9400Fax | EPSON Stylus DX9400F | Epson PX-FA700 | Epson Stylus CX9300F | Epson Stylus CX9400Fax | Epson Stylus DX9400F
+libusbscanner 0x0003 0x04b8 0x083a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A840 | EPSON PM-A840S | EPSON Stylus Photo RX585 | EPSON Stylus Photo RX595 | EPSON Stylus Photo RX610 | Epson PM-A840 | Epson PM-A840S | Epson Stylus Photo RX585 | Epson Stylus Photo RX595 | Epson Stylus Photo RX610
+libusbscanner 0x0003 0x04b8 0x083c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4300 | EPSON Stylus CX4400 | EPSON Stylus CX5500 | EPSON Stylus CX5600 | EPSON Stylus DX4400
+libusbscanner 0x0003 0x04b8 0x083f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 300 | EPSON PX-401A | EPSON Stylus NX100 | EPSON Stylus SX100 | EPSON Stylus TX100 | Epson ME 300 | Epson PX-401A | Epson Stylus NX100 | Epson Stylus SX100 | Epson Stylus TX100
+libusbscanner 0x0003 0x04b8 0x0841 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5000 | Epson LP-M5000
+libusbscanner 0x0003 0x04b8 0x0843 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 800 | EPSON EP-901A | EPSON EP-901F | EPSON Stylus Photo PX800FW | EPSON Stylus Photo TX800FW | Epson Artisan 800 | Epson EP-901A | Epson EP-901F | Epson Stylus Photo PX800FW | Epson Stylus Photo TX800FW
+libusbscanner 0x0003 0x04b8 0x0844 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 700 | EPSON EP-801A | EPSON Stylus Photo PX700W | EPSON Stylus Photo TX700W | Epson Artisan 700 | Epson EP-801A | Epson Stylus Photo PX700W | Epson Stylus Photo TX700W
+libusbscanner 0x0003 0x04b8 0x0846 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME Office 700FW | EPSON PX-601F | EPSON Stylus Office BX600FW | EPSON Stylus Office TX600FW | EPSON Stylus SX600FW | EPSON WorkForce 600 | Epson ME Office 700FW | Epson PX-601F | Epson Stylus Office BX600FW | Epson Stylus Office TX600FW | Epson Stylus SX600FW | Epson WorkForce 600
+libusbscanner 0x0003 0x04b8 0x0847 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME Office 600F | EPSON Stylus Office BX300F | EPSON Stylus Office TX300F | EPSON Stylus NX300 Series | Epson ME Office 600F | Epson Stylus Office BX300F | Epson Stylus Office TX300F | Epson Stylus NX300
+libusbscanner 0x0003 0x04b8 0x0848 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus NX200 | EPSON Stylus SX200 | EPSON Stylus SX205 | EPSON Stylus TX200 | EPSON Stylus TX203 | EPSON Stylus TX209 | Epson Stylus NX200 | Epson Stylus SX200 | Epson Stylus SX205 | Epson Stylus TX200 | Epson Stylus TX203 | Epson Stylus TX209
+libusbscanner 0x0003 0x04b8 0x0849 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-501A | EPSON Stylus NX400 | EPSON Stylus SX400 | EPSON Stylus SX405 | EPSON Stylus TX400 | Epson PX-501A | Epson Stylus NX400 | Epson Stylus SX400 | Epson Stylus SX405 | Epson Stylus TX400
+libusbscanner 0x0003 0x04b8 0x084a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON WorkForce 500 | Epson WorkForce 500
+libusbscanner 0x0003 0x04b8 0x084c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-402A | EPSON Stylus NX110 Series | EPSON Stylus SX110 Series | EPSON Stylus TX110 Series | Epson PX-402A | Epson Stylus NX110 Series | Epson Stylus SX110 Series | Epson Stylus TX110 Series
+libusbscanner 0x0003 0x04b8 0x084d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 510 | EPSON Stylus NX210 Series | EPSON Stylus SX210 Series | EPSON Stylus TX210 Series | Epson ME OFFICE 510 | Epson Stylus NX210 Series | Epson Stylus SX210 Series | Epson Stylus TX210 Series
+libusbscanner 0x0003 0x04b8 0x084f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON EP-702A | EPSON Stylus Photo PX650 Series | EPSON Stylus Photo TX650 Series
+libusbscanner 0x0003 0x04b8 0x0850 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus NX410 Series | EPSON Stylus SX410 Series | EPSON Stylus TX410 Series | Epson Stylus NX410 Series | Epson Stylus SX410 Series | Epson Stylus TX410 Series
+libusbscanner 0x0003 0x04b8 0x0851 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 710 Series | EPSON EP-802A | EPSON Stylus Photo PX710W Series | EPSON Stylus Photo TX710W Series
+libusbscanner 0x0003 0x04b8 0x0852 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 810 Series | EPSON EP-902A | EPSON Stylus Photo PX810FW Series
+libusbscanner 0x0003 0x04b8 0x0853 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 650FN Series | EPSON Stylus Office BX310FN Series | EPSON Stylus Office TX510FN Series | EPSON WorkForce 310 Series | Epson ME OFFICE 650FN Series | Epson Stylus Office BX310FN Series | Epson Stylus Office TX510FN Series | Epson WorkForce 310 Series
+libusbscanner 0x0003 0x04b8 0x0854 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-602F | EPSON Stylus Office BX610FW Series | EPSON Stylus Office TX610FW Series | EPSON Stylus SX610FW Series | EPSON WorkForce 610 Series
+libusbscanner 0x0003 0x04b8 0x0855 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-502A | EPSON Stylus NX510 Series | EPSON Stylus SX510W Series | EPSON Stylus TX550W Series | Epson PX-502A | Epson Stylus NX510 Series | Epson Stylus SX510W Series | Epson Stylus TX550W Series
+libusbscanner 0x0003 0x04b8 0x0856 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 320 Series | EPSON ME 330 Series | EPSON Stylus NX125 | EPSON Stylus NX127 | EPSON Stylus SX125 | EPSON Stylus TX120 Series
+libusbscanner 0x0003 0x04b8 0x085c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 960FWD Series | EPSON Stylus Office BX625FWD | EPSON Stylus Office TX620FWD Series | EPSON Stylus SX620FW Series | EPSON WorkForce 630 Series
+libusbscanner 0x0003 0x04b8 0x085d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 900WD Series | EPSON PX-503A | EPSON Stylus Office BX525WD | EPSON Stylus NX625 | EPSON Stylus SX525WD | EPSON Stylus TX560WD Series | EPSON WorkForce 625
+libusbscanner 0x0003 0x04b8 0x085e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Office BX320FW Series | EPSON Stylus Office TX525FW | EPSON WorkForce 520 Series
+libusbscanner 0x0003 0x04b8 0x085f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 835 | EPSON EP-903A | EPSON EP-903F | EPSON Stylus Photo PX820FWD Series
+libusbscanner 0x0003 0x04b8 0x0860 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 725 | EPSON EP-803A | EPSON EP-803AW | EPSON Stylus Photo PX720WD Series
+libusbscanner 0x0003 0x04b8 0x0861 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON EP-703A | EPSON Stylus Photo PX660 Series
+libusbscanner 0x0003 0x04b8 0x0862 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 620F Series | EPSON Stylus Office BX305F | EPSON Stylus Office BX305FW | EPSON Stylus Office TX320F Series | EPSON WorkForce 320 Series
+libusbscanner 0x0003 0x04b8 0x0863 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 560W Series | EPSON Stylus NX420 Series | EPSON Stylus SX420W Series | EPSON Stylus TX420W Series
+libusbscanner 0x0003 0x04b8 0x0864 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 520 Series | EPSON Stylus NX220 Series | EPSON Stylus SX218 | EPSON Stylus TX220 Series
+libusbscanner 0x0003 0x04b8 0x0865 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser MX20DN | EPSON AcuLaser MX20DNF
+libusbscanner 0x0003 0x04b8 0x0866 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4010CU
+libusbscanner 0x0003 0x04c5 0x1029 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4120C
+libusbscanner 0x0003 0x04c5 0x1041 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4220C
+libusbscanner 0x0003 0x04c5 0x1042 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4530C
+libusbscanner 0x0003 0x04c5 0x1078 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5750C
+libusbscanner 0x0003 0x04c5 0x1095 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOX/2
+libusbscanner 0x0003 0x04c5 0x1096 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110C
+libusbscanner 0x0003 0x04c5 0x1097 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5650C
+libusbscanner 0x0003 0x04c5 0x10ad 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4120C2
+libusbscanner 0x0003 0x04c5 0x10ae 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4220C2
+libusbscanner 0x0003 0x04c5 0x10af 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-60F
+libusbscanner 0x0003 0x04c5 0x10c7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4340C
+libusbscanner 0x0003 0x04c5 0x10cf 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5120C
+libusbscanner 0x0003 0x04c5 0x10e0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5220C
+libusbscanner 0x0003 0x04c5 0x10e1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5530C
+libusbscanner 0x0003 0x04c5 0x10e2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOX3
+libusbscanner 0x0003 0x04c5 0x10e6 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5900C
+libusbscanner 0x0003 0x04c5 0x10e7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5015C
+libusbscanner 0x0003 0x04c5 0x10ef 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOXM
+libusbscanner 0x0003 0x04c5 0x10f2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S500
+libusbscanner 0x0003 0x04c5 0x10fe 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S500M
+libusbscanner 0x0003 0x04c5 0x1135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5530C2
+libusbscanner 0x0003 0x04c5 0x114a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6140
+libusbscanner 0x0003 0x04c5 0x114d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6240
+libusbscanner 0x0003 0x04c5 0x114e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6130
+libusbscanner 0x0003 0x04c5 0x114f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6230
+libusbscanner 0x0003 0x04c5 0x1150 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S510
+libusbscanner 0x0003 0x04c5 0x1155 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S300
+libusbscanner 0x0003 0x04c5 0x1156 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S510M
+libusbscanner 0x0003 0x04c5 0x116f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6770
+libusbscanner 0x0003 0x04c5 0x1174 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6770A
+libusbscanner 0x0003 0x04c5 0x1175 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6670
+libusbscanner 0x0003 0x04c5 0x1176 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6670A
+libusbscanner 0x0003 0x04c5 0x1177 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6750S
+libusbscanner 0x0003 0x04c5 0x1178 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S300M
+libusbscanner 0x0003 0x04c5 0x117f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6800
+libusbscanner 0x0003 0x04c5 0x119d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6800-CGA
+libusbscanner 0x0003 0x04c5 0x119e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6900
+libusbscanner 0x0003 0x04c5 0x119f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6900-CGA
+libusbscanner 0x0003 0x04c5 0x11a0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S1500 | Fujitsu ScanSnap S1500M
+libusbscanner 0x0003 0x04c5 0x11a2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S1300
+libusbscanner 0x0003 0x04c5 0x11ed 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6125
+libusbscanner 0x0003 0x04c5 0x11ee 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6225
+libusbscanner 0x0003 0x04c5 0x11ef 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6145
+libusbscanner 0x0003 0x04c5 0x11f1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6245
+libusbscanner 0x0003 0x04c5 0x11f2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6135
+libusbscanner 0x0003 0x04c5 0x11f3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6235
+libusbscanner 0x0003 0x04c5 0x11f4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6110
+libusbscanner 0x0003 0x04c5 0x11fc 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Konica e-mini
+libusbscanner 0x0003 0x04c8 0x0722 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2026C
+libusbscanner 0x0003 0x04da 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2046C
+libusbscanner 0x0003 0x04da 0x1001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1025C
+libusbscanner 0x0003 0x04da 0x1006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1020C
+libusbscanner 0x0003 0x04da 0x1007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2048C
+libusbscanner 0x0003 0x04da 0x1009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2028C
+libusbscanner 0x0003 0x04da 0x100a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-SS080
+libusbscanner 0x0003 0x04da 0x100f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1045C
+libusbscanner 0x0003 0x04da 0x1010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4216F
+libusbscanner 0x0003 0x04e8 0x3409 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4100
+libusbscanner 0x0003 0x04e8 0x3413 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4521F
+libusbscanner 0x0003 0x04e8 0x3419 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4200 | Samsung SCX-4200
+libusbscanner 0x0003 0x04e8 0x341b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX4725-FN
+libusbscanner 0x0003 0x04e8 0x341f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4500
+libusbscanner 0x0003 0x04e8 0x3426 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung CLX-3170fn | Samsung CLX-3175FW
+libusbscanner 0x0003 0x04e8 0x342a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4500W
+libusbscanner 0x0003 0x04e8 0x342b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4824
+libusbscanner 0x0003 0x04e8 0x342c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4300
+libusbscanner 0x0003 0x04e8 0x342e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4600
+libusbscanner 0x0003 0x04e8 0x3433 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4623
+libusbscanner 0x0003 0x04e8 0x3434 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4825FN
+libusbscanner 0x0003 0x04e8 0x343c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3100C
+libusbscanner 0x0003 0x04f9 0x010e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5100C
+libusbscanner 0x0003 0x04f9 0x010f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4800
+libusbscanner 0x0003 0x04f9 0x0110 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-6800 | Brother MFC 4600
+libusbscanner 0x0003 0x04f9 0x0111 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1000
+libusbscanner 0x0003 0x04f9 0x0112 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8500
+libusbscanner 0x0003 0x04f9 0x0113 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9700
+libusbscanner 0x0003 0x04f9 0x0114 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9800
+libusbscanner 0x0003 0x04f9 0x0115 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1400
+libusbscanner 0x0003 0x04f9 0x0116 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-2900
+libusbscanner 0x0003 0x04f9 0x0117 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-3800
+libusbscanner 0x0003 0x04f9 0x0118 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9660
+libusbscanner 0x0003 0x04f9 0x0119 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9860
+libusbscanner 0x0003 0x04f9 0x011a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9760
+libusbscanner 0x0003 0x04f9 0x011c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9070
+libusbscanner 0x0003 0x04f9 0x011d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9180
+libusbscanner 0x0003 0x04f9 0x011e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9160
+libusbscanner 0x0003 0x04f9 0x011f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-580
+libusbscanner 0x0003 0x04f9 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-590
+libusbscanner 0x0003 0x04f9 0x0121 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5100J
+libusbscanner 0x0003 0x04f9 0x0122 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-2850
+libusbscanner 0x0003 0x04f9 0x0123 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4800J
+libusbscanner 0x0003 0x04f9 0x0124 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-6800J
+libusbscanner 0x0003 0x04f9 0x0125 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1800C
+libusbscanner 0x0003 0x04f9 0x0126 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9800J
+libusbscanner 0x0003 0x04f9 0x0127 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8500J
+libusbscanner 0x0003 0x04f9 0x0128 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9030
+libusbscanner 0x0003 0x04f9 0x012b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-4100
+libusbscanner 0x0003 0x04f9 0x012e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-4750e
+libusbscanner 0x0003 0x04f9 0x012f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-5750e
+libusbscanner 0x0003 0x04f9 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5200C
+libusbscanner 0x0003 0x04f9 0x0132 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-100
+libusbscanner 0x0003 0x04f9 0x0135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-150CL
+libusbscanner 0x0003 0x04f9 0x0136 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3200C
+libusbscanner 0x0003 0x04f9 0x013a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-890
+libusbscanner 0x0003 0x04f9 0x013c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5200J
+libusbscanner 0x0003 0x04f9 0x013d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4420C
+libusbscanner 0x0003 0x04f9 0x013e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4820C
+libusbscanner 0x0003 0x04f9 0x013f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8020
+libusbscanner 0x0003 0x04f9 0x0140 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8025D
+libusbscanner 0x0003 0x04f9 0x0141 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8420
+libusbscanner 0x0003 0x04f9 0x0142 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8820D
+libusbscanner 0x0003 0x04f9 0x0143 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-4020C
+libusbscanner 0x0003 0x04f9 0x0144 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3220C
+libusbscanner 0x0003 0x04f9 0x0146 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1820C
+libusbscanner 0x0003 0x04f9 0x0147 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3320CN
+libusbscanner 0x0003 0x04f9 0x0148 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1920CN
+libusbscanner 0x0003 0x04f9 0x0149 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3420C
+libusbscanner 0x0003 0x04f9 0x014a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3820CN
+libusbscanner 0x0003 0x04f9 0x014b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-3020C
+libusbscanner 0x0003 0x04f9 0x014c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1815C
+libusbscanner 0x0003 0x04f9 0x014d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8820J
+libusbscanner 0x0003 0x04f9 0x014e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8025J
+libusbscanner 0x0003 0x04f9 0x014f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8220
+libusbscanner 0x0003 0x04f9 0x0150 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8210
+libusbscanner 0x0003 0x04f9 0x0151 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1000J
+libusbscanner 0x0003 0x04f9 0x0153 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3420J
+libusbscanner 0x0003 0x04f9 0x0157 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3820J
+libusbscanner 0x0003 0x04f9 0x0158 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8040
+libusbscanner 0x0003 0x04f9 0x015d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8045D
+libusbscanner 0x0003 0x04f9 0x015e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8440
+libusbscanner 0x0003 0x04f9 0x015f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8840D
+libusbscanner 0x0003 0x04f9 0x0160 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-210C
+libusbscanner 0x0003 0x04f9 0x0161 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-420CN
+libusbscanner 0x0003 0x04f9 0x0162 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-410CN
+libusbscanner 0x0003 0x04f9 0x0163 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-620CN
+libusbscanner 0x0003 0x04f9 0x0165 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-610CLN
+libusbscanner 0x0003 0x04f9 0x0166 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-610CLN
+libusbscanner 0x0003 0x04f9 0x0168 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-110C
+libusbscanner 0x0003 0x04f9 0x0169 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-310CN
+libusbscanner 0x0003 0x04f9 0x016b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5440CN
+libusbscanner 0x0003 0x04f9 0x016d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5840CN
+libusbscanner 0x0003 0x04f9 0x016e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3240C
+libusbscanner 0x0003 0x04f9 0x0173 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3340CN
+libusbscanner 0x0003 0x04f9 0x0174 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7420
+libusbscanner 0x0003 0x04f9 0x0180 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7820N
+libusbscanner 0x0003 0x04f9 0x0181 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7010
+libusbscanner 0x0003 0x04f9 0x0182 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7020
+libusbscanner 0x0003 0x04f9 0x0183 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7025
+libusbscanner 0x0003 0x04f9 0x0184 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7220
+libusbscanner 0x0003 0x04f9 0x0185 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7225N
+libusbscanner 0x0003 0x04f9 0x0186 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-115C
+libusbscanner 0x0003 0x04f9 0x018c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-117C
+libusbscanner 0x0003 0x04f9 0x018e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-120C
+libusbscanner 0x0003 0x04f9 0x0190 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-215C
+libusbscanner 0x0003 0x04f9 0x0193 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8060
+libusbscanner 0x0003 0x04f9 0x01a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-330C
+libusbscanner 0x0003 0x04f9 0x01a9 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-240C
+libusbscanner 0x0003 0x04f9 0x01ab 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7840W
+libusbscanner 0x0003 0x04f9 0x01e5 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Pentax DSmobile 600
+libusbscanner 0x0003 0x04f9 0x2038 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Aiptek Aiptek Pencam
+libusbscanner 0x0003 0x0553 0x0202 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 CU
+libusbscanner 0x0003 0x055f 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 600 CU
+libusbscanner 0x0003 0x055f 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 UB | Trust Compact Scan USB 19200
+libusbscanner 0x0003 0x055f 0x0006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 CU Plus
+libusbscanner 0x0003 0x055f 0x0008 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 F
+libusbscanner 0x0003 0x055f 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress A3 USB
+libusbscanner 0x0003 0x055f 0x0210 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CS | Mustek BearPaw 2400 TA | Trust 240TH Easy Webscan Gold
+libusbscanner 0x0003 0x055f 0x0218 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CS Plus | Mustek BearPaw 2400 TA Plus | Mustek Plug-n-Scan 2400 MT | Mustek Plug-n-Scan 2400 M | Packard Bell Diamond 2450
+libusbscanner 0x0003 0x055f 0x0219 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2448 CS Plus | Mustek BearPaw 2448 TA Plus
+libusbscanner 0x0003 0x055f 0x021a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CU Plus | Packard Bell Diamond 1200 Plus
+libusbscanner 0x0003 0x055f 0x021b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CU Plus | Mustek BearPaw 1248 CU | Packard Bell Diamond 1200 Plus | Trust Direct WebScan 19200
+libusbscanner 0x0003 0x055f 0x021c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CU Plus
+libusbscanner 0x0003 0x055f 0x021d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CS | Mustek BearPaw 1200 TA
+libusbscanner 0x0003 0x055f 0x021e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1248 UB
+libusbscanner 0x0003 0x055f 0x021f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek P 3600 A3 Pro
+libusbscanner 0x0003 0x055f 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2448TA Pro
+libusbscanner 0x0003 0x055f 0x0409 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima Ultima 2000 | Artec/Ultima Ultima 2000 e+ | Boeder Sm@rtScan Slim Edition | Fujitsu 1200CUS | Googlegear 2000 | Medion/Lifetec/Tevion/Cytron MD 4394 | Medion/Lifetec/Tevion/Cytron MD/LT 9375 | Medion/Lifetec/Tevion/Cytron MD/LT 9385 | Medion/Lifetec/Tevion/Cytron LT 9452 | Medion/Lifetec/Tevion/Cytron MD 9458 | Mustek BearPaw 1200 CU | Mustek BearPaw 2400 CU | Mustek ScanExpress 1200 UB Plus | Mustek ScanExpress 2400 USB | Mustek ScanMagic 1200 UB Plus | Packard Bell Diamond 1200 | Trust Compact Scan USB 19200 | Trust Flat Scan USB 19200
+libusbscanner 0x0003 0x05d8 0x4002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima E+ 48U | Medion/Lifetec/Tevion/Cytron MD9693 | Medion/Lifetec/Tevion/Cytron MD9705 | Medion/Lifetec/Tevion/Cytron MD4394 | Microstar MR 9791
+libusbscanner 0x0003 0x05d8 0x4003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima E+ Pro
+libusbscanner 0x0003 0x05d8 0x4004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Memorex MEM 48U
+libusbscanner 0x0003 0x05d8 0x4005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust Easy Webscan 19200
+libusbscanner 0x0003 0x05d8 0x4006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust 240H Easy Webscan Gold
+libusbscanner 0x0003 0x05d8 0x4007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX AstraSlim SE
+libusbscanner 0x0003 0x05d8 0x4009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX AstraSlim 1200 SE
+libusbscanner 0x0003 0x05d8 0x4010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Yakumo Scan50
+libusbscanner 0x0003 0x05d8 0x4011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker X6USB
+libusbscanner 0x0003 0x05da 0x0099 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek SlimScan C6
+libusbscanner 0x0003 0x05da 0x009a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6USL
+libusbscanner 0x0003 0x05da 0x00a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6UPL
+libusbscanner 0x0003 0x05da 0x00b6 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 4800
+libusbscanner 0x0003 0x05da 0x30cf 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3840
+libusbscanner 0x0003 0x05da 0x30d4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40b3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3700
+libusbscanner 0x0003 0x05da 0x40b8 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40ca 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3700
+libusbscanner 0x0003 0x05da 0x40cb 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3750
+libusbscanner 0x0003 0x05da 0x40dd 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40ff 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6USL
+libusbscanner 0x0003 0x05da 0x80a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# iVina 1200U
+libusbscanner 0x0003 0x0638 0x0268 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Dual II
+libusbscanner 0x0003 0x0638 0x026a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV600U
+libusbscanner 0x0003 0x0638 0x0a13 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta-QMS SC-110
+libusbscanner 0x0003 0x0638 0x0a15 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision DS610CU Scancopier | Minolta-QMS SC-215 | OKI S700 Scancopier
+libusbscanner 0x0003 0x0638 0x0a16 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV600U Plus
+libusbscanner 0x0003 0x0638 0x0a18 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV610
+libusbscanner 0x0003 0x0638 0x0a19 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220
+libusbscanner 0x0003 0x0638 0x0a23 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210
+libusbscanner 0x0003 0x0638 0x0a24 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210
+libusbscanner 0x0003 0x0638 0x0a25 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV120
+libusbscanner 0x0003 0x0638 0x0a27 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2
+libusbscanner 0x0003 0x0638 0x0a2a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220D2
+libusbscanner 0x0003 0x0638 0x0a2b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220+
+libusbscanner 0x0003 0x0638 0x0a2c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2-G
+libusbscanner 0x0003 0x0638 0x0a2d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2-B
+libusbscanner 0x0003 0x0638 0x0a2e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210C2-G
+libusbscanner 0x0003 0x0638 0x0a2f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV122
+libusbscanner 0x0003 0x0638 0x0a33 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210C2
+libusbscanner 0x0003 0x0638 0x0a3a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV121
+libusbscanner 0x0003 0x0638 0x0a3c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8300
+libusbscanner 0x0003 0x0638 0x0a40 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AM3000 Series
+libusbscanner 0x0003 0x0638 0x0a41 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision @V5100
+libusbscanner 0x0003 0x0638 0x0a45 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8050U
+libusbscanner 0x0003 0x0638 0x0a4d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3200SU
+libusbscanner 0x0003 0x0638 0x0a4e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3730SU
+libusbscanner 0x0003 0x0638 0x0a4f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV610C2
+libusbscanner 0x0003 0x0638 0x0a5e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision IT8300
+libusbscanner 0x0003 0x0638 0x0a61 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3750SU
+libusbscanner 0x0003 0x0638 0x0a65 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3850SU
+libusbscanner 0x0003 0x0638 0x0a66 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8350
+libusbscanner 0x0003 0x0638 0x0a68 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision FB6080E
+libusbscanner 0x0003 0x0638 0x0a82 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision FB2080E
+libusbscanner 0x0003 0x0638 0x0a84 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV122 C2
+libusbscanner 0x0003 0x0638 0x0a93 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220-G
+libusbscanner 0x0003 0x0638 0x0a94 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision @V2500
+libusbscanner 0x0003 0x0638 0x0aa1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210D2+
+libusbscanner 0x0003 0x0638 0x1a35 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Elite II
+libusbscanner 0x0003 0x0686 0x4004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Dual III
+libusbscanner 0x0003 0x0686 0x400d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Elite 5400
+libusbscanner 0x0003 0x0686 0x400e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1212U
+libusbscanner 0x0003 0x06bd 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1236u
+libusbscanner 0x0003 0x06bd 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Agfa Snapscan Touch
+libusbscanner 0x0003 0x06bd 0x0100 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1212U_2
+libusbscanner 0x0003 0x06bd 0x2061 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e40
+libusbscanner 0x0003 0x06bd 0x208d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e50
+libusbscanner 0x0003 0x06bd 0x208f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e20
+libusbscanner 0x0003 0x06bd 0x2091 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e10
+libusbscanner 0x0003 0x06bd 0x2093 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e25
+libusbscanner 0x0003 0x06bd 0x2095 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e26
+libusbscanner 0x0003 0x06bd 0x2097 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e52
+libusbscanner 0x0003 0x06bd 0x20fd 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e42
+libusbscanner 0x0003 0x06bd 0x20ff 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 4900
+libusbscanner 0x0003 0x06dc 0x0020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U12 | Plustek OpticPro UT12 | Plustek OpticPro 1212U | RevScan RevScan Orange R48Ti | Genius ColorPage Vivid III USB
+libusbscanner 0x0003 0x07b3 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U12
+libusbscanner 0x0003 0x07b3 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U24
+libusbscanner 0x0003 0x07b3 0x0011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro UT12
+libusbscanner 0x0003 0x07b3 0x0013 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U24
+libusbscanner 0x0003 0x07b3 0x0015 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro UT12 | Plustek OpticPro UT16 | Plustek OpticPro UT24
+libusbscanner 0x0003 0x07b3 0x0017 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro 1248U | RevScan 19200i
+libusbscanner 0x0003 0x07b3 0x0400 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro 1248U
+libusbscanner 0x0003 0x07b3 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U16B
+libusbscanner 0x0003 0x07b3 0x0402 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U16B+ | Plustek OpticPro UT16B
+libusbscanner 0x0003 0x07b3 0x0403 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nortek MyScan 1200 | Plustek OpticPro S12 | Plustek OpticPro ST12
+libusbscanner 0x0003 0x07b3 0x040b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro S24
+libusbscanner 0x0003 0x07b3 0x040e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# NeatReceipts Scanalizer Professional 2.5 | Plustek OpticSlim M12
+libusbscanner 0x0003 0x07b3 0x0412 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 1200
+libusbscanner 0x0003 0x07b3 0x0413 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 2400
+libusbscanner 0x0003 0x07b3 0x0422 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 2400 plus
+libusbscanner 0x0003 0x07b3 0x0454 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek Iriscan Express 2
+libusbscanner 0x0003 0x07b3 0x045f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# NeatReceipts Mobile Scanner
+libusbscanner 0x0003 0x07b3 0x0462 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticBook 3600
+libusbscanner 0x0003 0x07b3 0x0900 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Corex 600c
+libusbscanner 0x0003 0x08f0 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Corex 800c
+libusbscanner 0x0003 0x08f0 0x0005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Phaser 6110MFP
+libusbscanner 0x0003 0x0924 0x3d5d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Phaser 3200MFP
+libusbscanner 0x0003 0x0924 0x3da4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 4118 Series
+libusbscanner 0x0003 0x0924 0x420c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3119 Series
+libusbscanner 0x0003 0x0924 0x4265 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3210
+libusbscanner 0x0003 0x0924 0x4293 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3220
+libusbscanner 0x0003 0x0924 0x4294 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Pentax DSmobile 600
+libusbscanner 0x0003 0x0a17 0x3210 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Portable Peripheral Co., Ltd. Q-Scan USB001 (A4 portable scanner)
+libusbscanner 0x0003 0x0a53 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan TravelScan 460/464 | Ambir Visigo A4
+libusbscanner 0x0003 0x0a82 0x4600 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 465
+libusbscanner 0x0003 0x0a82 0x4802 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 665
+libusbscanner 0x0003 0x0a82 0x4803 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 685/ Ambir DS685
+libusbscanner 0x0003 0x0a82 0x480c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 485
+libusbscanner 0x0003 0x0a82 0x4810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan TravelScan 662
+libusbscanner 0x0003 0x0a82 0x6620 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-55
+libusbscanner 0x0003 0x1083 0x160c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-1210C
+libusbscanner 0x0003 0x1083 0x160f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-4010C
+libusbscanner 0x0003 0x1083 0x1614 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2510C
+libusbscanner 0x0003 0x1083 0x1617 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-X10C
+libusbscanner 0x0003 0x1083 0x1618 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-25
+libusbscanner 0x0003 0x1083 0x161a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2010C
+libusbscanner 0x0003 0x1083 0x161b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-3010C
+libusbscanner 0x0003 0x1083 0x161d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7090C
+libusbscanner 0x0003 0x1083 0x1620 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-9050C
+libusbscanner 0x0003 0x1083 0x1622 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7550C
+libusbscanner 0x0003 0x1083 0x1623 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6050C
+libusbscanner 0x0003 0x1083 0x1624 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6010C
+libusbscanner 0x0003 0x1083 0x1626 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-190i
+libusbscanner 0x0003 0x1083 0x162b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6030C
+libusbscanner 0x0003 0x1083 0x1638 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-135i
+libusbscanner 0x0003 0x1083 0x1639 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Digital Dream l' espion XS
+libusbscanner 0x0003 0x1183 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# KONICA MINOLTA magicolor 1690MF
+libusbscanner 0x0003 0x132b 0x2089 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 1220U
+libusbscanner 0x0003 0x1606 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 1600U | UMAX Astra 2000U
+libusbscanner 0x0003 0x1606 0x0030 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 3400
+libusbscanner 0x0003 0x1606 0x0050 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 3400 | Umax UMAX Astranet ia101 | Umax UMAX 3450
+libusbscanner 0x0003 0x1606 0x0060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 4400 | UMAX Astra 4450
+libusbscanner 0x0003 0x1606 0x0070 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 2100U
+libusbscanner 0x0003 0x1606 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 5400
+libusbscanner 0x0003 0x1606 0x0160 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 2200 (SU)
+libusbscanner 0x0003 0x1606 0x0230 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# DCT DocketPort 487
+libusbscanner 0x0003 0x1dcc 0x4810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell A920
+libusbscanner 0x0003 0x413c 0x5105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell Dell MFP Laser Printer 1815dn
+libusbscanner 0x0003 0x413c 0x5124 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell 1600n
+libusbscanner 0x0003 0x413c 0x5250 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
diff --git a/config-archive/etc/hotplug/usb/libsane.usermap.dist b/config-archive/etc/hotplug/usb/libsane.usermap.dist
new file mode 100644 (file)
index 0000000..88c9039
--- /dev/null
@@ -0,0 +1,1372 @@
+# This file was automatically created based on description files (*.desc)
+# by sane-desc 3.5 from sane-backends 1.0.22 on Sun Jan 29 13:39:48 2012
+#
+# The entries below are used to detect a USB device and change owner
+# and permissions on the "device node" used by libusb.
+#
+# The 0x0003 match flag means the device is matched by its vendor and
+# product IDs.
+#
+# Sample entry (replace 0xVVVV and 0xPPPP with vendor ID and product ID
+# respectively):
+#
+# libusbscanner 0x0003 0xVVVV 0xPPPP 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
+#
+# If your scanner isn't listed below, you can add it as explained above.
+#
+# If your scanner is supported by some external backend (brother, epkowa,
+# hpaio, etc) please ask the author of the backend to provide proper
+# device detection support for your OS
+#
+# If the scanner is supported by sane-backends, please mail the entry to
+# the sane-devel mailing list (sane-devel@lists.alioth.debian.org).
+#
+# Hewlett-Packard ScanJet 4100C
+libusbscanner 0x0003 0x03f0 0x0101 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4200C | Hewlett-Packard ScanJet 4200Cxi | Hewlett-Packard ScanJet 4200Cse
+libusbscanner 0x0003 0x03f0 0x0105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 6200C | Hewlett-Packard ScanJet 6250C
+libusbscanner 0x0003 0x03f0 0x0201 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3300c
+libusbscanner 0x0003 0x03f0 0x0205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4300c
+libusbscanner 0x0003 0x03f0 0x0305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5200C
+libusbscanner 0x0003 0x03f0 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3400c
+libusbscanner 0x0003 0x03f0 0x0405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2100C
+libusbscanner 0x0003 0x03f0 0x0505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 6300C | Hewlett-Packard ScanJet 6350C | Hewlett-Packard ScanJet 6390C
+libusbscanner 0x0003 0x03f0 0x0601 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2200C
+libusbscanner 0x0003 0x03f0 0x0605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5300C | Hewlett-Packard ScanJet 5370C
+libusbscanner 0x0003 0x03f0 0x0701 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard scanjet 4400c
+libusbscanner 0x0003 0x03f0 0x0705 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 7400c | Hewlett-Packard ScanJet 7450c | Hewlett-Packard ScanJet 7490c
+libusbscanner 0x0003 0x03f0 0x0801 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard scanjet 4470c
+libusbscanner 0x0003 0x03f0 0x0805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2300C
+libusbscanner 0x0003 0x03f0 0x0901 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 2400C | Hewlett-Packard ScanJet G2410
+libusbscanner 0x0003 0x03f0 0x0a01 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8200 | Hewlett-Packard ScanJet 8250 | Hewlett-Packard ScanJet 8290 | Hewlett Packard ScanJet 8200
+libusbscanner 0x0003 0x03f0 0x0b01 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5400c
+libusbscanner 0x0003 0x03f0 0x1005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5470c
+libusbscanner 0x0003 0x03f0 0x1105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4500C | Hewlett-Packard ScanJet 5550C
+libusbscanner 0x0003 0x03f0 0x1205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4570C | Hewlett-Packard ScanJet 5500C
+libusbscanner 0x0003 0x03f0 0x1305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3670C | Hewlett-Packard ScanJet 3690C
+libusbscanner 0x0003 0x03f0 0x1405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 5590
+libusbscanner 0x0003 0x03f0 0x1705 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 7650
+libusbscanner 0x0003 0x03f0 0x1805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3530C | Hewlett-Packard ScanJet 3570C
+libusbscanner 0x0003 0x03f0 0x2005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3500C
+libusbscanner 0x0003 0x03f0 0x2205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3970c
+libusbscanner 0x0003 0x03f0 0x2305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4070 Photosmart
+libusbscanner 0x0003 0x03f0 0x2405 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett Packard ScanJet 3770
+libusbscanner 0x0003 0x03f0 0x2505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 3800
+libusbscanner 0x0003 0x03f0 0x2605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G2710
+libusbscanner 0x0003 0x03f0 0x2805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8300 | Hewlett-Packard ScanJet 8350 | Hewlett-Packard ScanJet 8390
+libusbscanner 0x0003 0x03f0 0x3805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 8270
+libusbscanner 0x0003 0x03f0 0x3905 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1005 MFP
+libusbscanner 0x0003 0x03f0 0x3b17 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4370
+libusbscanner 0x0003 0x03f0 0x4105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G3010
+libusbscanner 0x0003 0x03f0 0x4205 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G3110
+libusbscanner 0x0003 0x03f0 0x4305 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G4010
+libusbscanner 0x0003 0x03f0 0x4505 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet G4050
+libusbscanner 0x0003 0x03f0 0x4605 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1120 MFP
+libusbscanner 0x0003 0x03f0 0x5617 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard LaserJet M1120n MFP
+libusbscanner 0x0003 0x03f0 0x5717 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200
+libusbscanner 0x0003 0x0400 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 | Mustek BearPaw 2400
+libusbscanner 0x0003 0x0400 0x1001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i30
+libusbscanner 0x0003 0x040a 0x6001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i40
+libusbscanner 0x0003 0x040a 0x6002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i50 | Kodak i55
+libusbscanner 0x0003 0x040a 0x6003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i60 | Kodak i65
+libusbscanner 0x0003 0x040a 0x6004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kodak i80
+libusbscanner 0x0003 0x040a 0x6005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Creative WebCam Go Mini
+libusbscanner 0x0003 0x041e 0x4007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X70 | Lexmark X73
+libusbscanner 0x0003 0x043d 0x002d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X74
+libusbscanner 0x0003 0x043d 0x0060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X1110 | Lexmark X1130 | Lexmark X1140 | Lexmark X1150 | Lexmark X1170 | Lexmark X1180 | Lexmark X1185 | Lexmark X1195
+libusbscanner 0x0003 0x043d 0x007c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Lexmark X12xx
+libusbscanner 0x0003 0x043d 0x007d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Vivid Pro USB
+libusbscanner 0x0003 0x0458 0x2001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius ColorPage HR6 V1
+libusbscanner 0x0003 0x0458 0x2004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6 V2
+libusbscanner 0x0003 0x0458 0x2007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6 V2
+libusbscanner 0x0003 0x0458 0x2008 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6A
+libusbscanner 0x0003 0x0458 0x2009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid3x | Genius Colorpage Vivid3 V2
+libusbscanner 0x0003 0x0458 0x2011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR7
+libusbscanner 0x0003 0x0458 0x2013 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4
+libusbscanner 0x0003 0x0458 0x2014 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR7LE
+libusbscanner 0x0003 0x0458 0x2015 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage HR6X
+libusbscanner 0x0003 0x0458 0x2016 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid3xe
+libusbscanner 0x0003 0x0458 0x2017 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4xe
+libusbscanner 0x0003 0x0458 0x201a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid4x
+libusbscanner 0x0003 0x0458 0x201b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid 1200 X
+libusbscanner 0x0003 0x0458 0x201d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius ColorPage Slim 1200
+libusbscanner 0x0003 0x0458 0x201e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage Vivid 1200 XE
+libusbscanner 0x0003 0x0458 0x201f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Genius Colorpage SF600
+libusbscanner 0x0003 0x0458 0x2021 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado 2400U
+libusbscanner 0x0003 0x0461 0x0346 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado USB 19200
+libusbscanner 0x0003 0x0461 0x0360 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Primax Colorado 2200 USB | LG Electronics Scanworks 600U
+libusbscanner 0x0003 0x0461 0x0364 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Medion/Lifetec/Tevion/Cytron MD5345 | Medion/Lifetec/Tevion/Cytron MD6228 | Medion/Lifetec/Tevion/Cytron MD6471
+libusbscanner 0x0003 0x0461 0x0377 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust Office Scan USB 19200
+libusbscanner 0x0003 0x047b 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Hewlett-Packard ScanJet 4300c/Silitek
+libusbscanner 0x0003 0x047b 0x1002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Kyocera FS-1016MFP
+libusbscanner 0x0003 0x0482 0x0335 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Compaq S4-100
+libusbscanner 0x0003 0x049f 0x001a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 310U
+libusbscanner 0x0003 0x04a5 0x1a20 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 620U
+libusbscanner 0x0003 0x04a5 0x1a2a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 320U | Benq (Acer) 340U | Mitsubishi Diamondview 648UT
+libusbscanner 0x0003 0x04a5 0x2022 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 620UT
+libusbscanner 0x0003 0x04a5 0x2040 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640U | Guillemot / Hercules Maxi Scan A4 USB 640U | Guillemot / Hercules Maxi A4 36 bit
+libusbscanner 0x0003 0x04a5 0x2060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640bu
+libusbscanner 0x0003 0x04a5 0x207e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 3300 | Benq (Acer) 4300 | Mitsubishi Diamondview 650U
+libusbscanner 0x0003 0x04a5 0x20b0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 640BT
+libusbscanner 0x0003 0x04a5 0x20be 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 1240
+libusbscanner 0x0003 0x04a5 0x20c0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 3300 | Benq (Acer) 4300 | Guillemot / Hercules Scan@home Touch 1248 (USB)
+libusbscanner 0x0003 0x04a5 0x20de 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5000
+libusbscanner 0x0003 0x04a5 0x20f8 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5000E | Benq (Acer) 5000U
+libusbscanner 0x0003 0x04a5 0x20fc 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5300
+libusbscanner 0x0003 0x04a5 0x20fe 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Benq (Acer) 5150 | Benq (Acer) 5250
+libusbscanner 0x0003 0x04a5 0x2137 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# BenQ 5550
+libusbscanner 0x0003 0x04a5 0x2211 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 7600
+libusbscanner 0x0003 0x04a7 0x0211 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Visioneer OneTouch 7100
+libusbscanner 0x0003 0x04a7 0x0229 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 6100
+libusbscanner 0x0003 0x04a7 0x0231 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 8600
+libusbscanner 0x0003 0x04a7 0x0331 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9650
+libusbscanner 0x0003 0x04a7 0x0390 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9320
+libusbscanner 0x0003 0x04a7 0x0420 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9450
+libusbscanner 0x0003 0x04a7 0x0421 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9550
+libusbscanner 0x0003 0x04a7 0x0422 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9750
+libusbscanner 0x0003 0x04a7 0x0423 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 450
+libusbscanner 0x0003 0x04a7 0x0424 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 200
+libusbscanner 0x0003 0x04a7 0x0426 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 100
+libusbscanner 0x0003 0x04a7 0x0427 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer OneTouch 7300
+libusbscanner 0x0003 0x04a7 0x0444 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate510
+libusbscanner 0x0003 0x04a7 0x0446 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate520
+libusbscanner 0x0003 0x04a7 0x0447 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate250
+libusbscanner 0x0003 0x04a7 0x0448 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate252
+libusbscanner 0x0003 0x04a7 0x0449 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262
+libusbscanner 0x0003 0x04a7 0x044c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 300
+libusbscanner 0x0003 0x04a7 0x0474 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate272
+libusbscanner 0x0003 0x04a7 0x0475 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate152
+libusbscanner 0x0003 0x04a7 0x0477 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate752
+libusbscanner 0x0003 0x04a7 0x0478 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 470
+libusbscanner 0x0003 0x04a7 0x0479 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9450-G
+libusbscanner 0x0003 0x04a7 0x047a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9650-G
+libusbscanner 0x0003 0x04a7 0x047b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate510-G
+libusbscanner 0x0003 0x04a7 0x047c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate252-G
+libusbscanner 0x0003 0x04a7 0x048c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262-G
+libusbscanner 0x0003 0x04a7 0x048d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate272-G
+libusbscanner 0x0003 0x04a7 0x048e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 470-G | Visioneer Patriot 470
+libusbscanner 0x0003 0x04a7 0x048f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate250-G
+libusbscanner 0x0003 0x04a7 0x0490 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 450-G
+libusbscanner 0x0003 0x04a7 0x0491 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate520-G
+libusbscanner 0x0003 0x04a7 0x0492 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer 9750-G
+libusbscanner 0x0003 0x04a7 0x0493 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Roadwarrior
+libusbscanner 0x0003 0x04a7 0x0494 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate512
+libusbscanner 0x0003 0x04a7 0x0495 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 430
+libusbscanner 0x0003 0x04a7 0x0497 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 680 | Xerox DocuMate632
+libusbscanner 0x0003 0x04a7 0x0498 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Patriot 780
+libusbscanner 0x0003 0x04a7 0x0499 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate752
+libusbscanner 0x0003 0x04a7 0x049a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Visioneer Strobe XP 100,r3
+libusbscanner 0x0003 0x04a7 0x049b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate150
+libusbscanner 0x0003 0x04a7 0x049c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate162
+libusbscanner 0x0003 0x04a7 0x049d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox DocuMate262i
+libusbscanner 0x0003 0x04a7 0x04a7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Travel Scanner 100
+libusbscanner 0x0003 0x04a7 0x04ac 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2080C
+libusbscanner 0x0003 0x04a9 0x1601 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-180 | Canon CR-180II
+libusbscanner 0x0003 0x04a9 0x1602 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-9080C
+libusbscanner 0x0003 0x04a9 0x1603 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7080C
+libusbscanner 0x0003 0x04a9 0x1604 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-5010C
+libusbscanner 0x0003 0x04a9 0x1606 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6080
+libusbscanner 0x0003 0x04a9 0x1607 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2580C
+libusbscanner 0x0003 0x04a9 0x1608 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-3080CII
+libusbscanner 0x0003 0x04a9 0x1609 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2050C | Canon DR-2050SP
+libusbscanner 0x0003 0x04a9 0x160a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7580
+libusbscanner 0x0003 0x04a9 0x160b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP750
+libusbscanner 0x0003 0x04a9 0x1706 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP780
+libusbscanner 0x0003 0x04a9 0x1707 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP760
+libusbscanner 0x0003 0x04a9 0x1708 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP150
+libusbscanner 0x0003 0x04a9 0x1709 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP170
+libusbscanner 0x0003 0x04a9 0x170a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP450
+libusbscanner 0x0003 0x04a9 0x170b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP500
+libusbscanner 0x0003 0x04a9 0x170c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP800
+libusbscanner 0x0003 0x04a9 0x170d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP800R
+libusbscanner 0x0003 0x04a9 0x170e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP530
+libusbscanner 0x0003 0x04a9 0x1712 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP830
+libusbscanner 0x0003 0x04a9 0x1713 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP160 | Canon PIXMA MP160
+libusbscanner 0x0003 0x04a9 0x1714 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP180
+libusbscanner 0x0003 0x04a9 0x1715 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP460
+libusbscanner 0x0003 0x04a9 0x1716 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP510 | Canon PIXMA MP510
+libusbscanner 0x0003 0x04a9 0x1717 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP600 | Canon PIXMA MP600
+libusbscanner 0x0003 0x04a9 0x1718 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP600R
+libusbscanner 0x0003 0x04a9 0x1719 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP810
+libusbscanner 0x0003 0x04a9 0x171a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP960
+libusbscanner 0x0003 0x04a9 0x171b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX7600
+libusbscanner 0x0003 0x04a9 0x171c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP210 | Canon PIXMA MP210
+libusbscanner 0x0003 0x04a9 0x1721 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP220
+libusbscanner 0x0003 0x04a9 0x1722 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP470
+libusbscanner 0x0003 0x04a9 0x1723 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP520 | Canon PIXMA MP520
+libusbscanner 0x0003 0x04a9 0x1724 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP610 | Canon PIXMA MP610
+libusbscanner 0x0003 0x04a9 0x1725 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP970
+libusbscanner 0x0003 0x04a9 0x1726 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX300
+libusbscanner 0x0003 0x04a9 0x1727 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX310
+libusbscanner 0x0003 0x04a9 0x1728 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX700
+libusbscanner 0x0003 0x04a9 0x1729 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon MP140 | Canon PIXMA MP140
+libusbscanner 0x0003 0x04a9 0x172b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX850
+libusbscanner 0x0003 0x04a9 0x172c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP980
+libusbscanner 0x0003 0x04a9 0x172d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP630
+libusbscanner 0x0003 0x04a9 0x172e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP620
+libusbscanner 0x0003 0x04a9 0x172f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP540
+libusbscanner 0x0003 0x04a9 0x1730 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP480
+libusbscanner 0x0003 0x04a9 0x1731 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP240
+libusbscanner 0x0003 0x04a9 0x1732 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP260
+libusbscanner 0x0003 0x04a9 0x1733 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP190
+libusbscanner 0x0003 0x04a9 0x1734 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX860
+libusbscanner 0x0003 0x04a9 0x1735 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX320
+libusbscanner 0x0003 0x04a9 0x1736 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX330
+libusbscanner 0x0003 0x04a9 0x1737 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP250
+libusbscanner 0x0003 0x04a9 0x173a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP270
+libusbscanner 0x0003 0x04a9 0x173b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP490
+libusbscanner 0x0003 0x04a9 0x173c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP550
+libusbscanner 0x0003 0x04a9 0x173d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP560
+libusbscanner 0x0003 0x04a9 0x173e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP640
+libusbscanner 0x0003 0x04a9 0x173f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP990
+libusbscanner 0x0003 0x04a9 0x1740 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX340
+libusbscanner 0x0003 0x04a9 0x1741 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX350
+libusbscanner 0x0003 0x04a9 0x1742 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MX870
+libusbscanner 0x0003 0x04a9 0x1743 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan 8800F
+libusbscanner 0x0003 0x04a9 0x1901 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 100
+libusbscanner 0x0003 0x04a9 0x1904 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 200
+libusbscanner 0x0003 0x04a9 0x1905 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 110
+libusbscanner 0x0003 0x04a9 0x1909 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 210
+libusbscanner 0x0003 0x04a9 0x190a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan fb630u | Canon CanoScan fb636u
+libusbscanner 0x0003 0x04a9 0x2204 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N650U/N656U
+libusbscanner 0x0003 0x04a9 0x2206 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N1220U
+libusbscanner 0x0003 0x04a9 0x2207 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan D660U
+libusbscanner 0x0003 0x04a9 0x2208 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N670U/N676U/LiDE20
+libusbscanner 0x0003 0x04a9 0x220d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan N1240U/LiDE30
+libusbscanner 0x0003 0x04a9 0x220e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 35 | Canon CanoScan LiDE 40 | Canon CanoScan LiDE 50
+libusbscanner 0x0003 0x04a9 0x2213 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan 3200F
+libusbscanner 0x0003 0x04a9 0x2216 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE 60
+libusbscanner 0x0003 0x04a9 0x221c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CanoScan LiDE25
+libusbscanner 0x0003 0x04a9 0x2220 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-1210C
+libusbscanner 0x0003 0x04a9 0x2222 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP730
+libusbscanner 0x0003 0x04a9 0x262f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP700
+libusbscanner 0x0003 0x04a9 0x2630 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP360
+libusbscanner 0x0003 0x04a9 0x263c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP370
+libusbscanner 0x0003 0x04a9 0x263d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP390
+libusbscanner 0x0003 0x04a9 0x263e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP375R
+libusbscanner 0x0003 0x04a9 0x263f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP740
+libusbscanner 0x0003 0x04a9 0x264c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon PIXMA MP710
+libusbscanner 0x0003 0x04a9 0x264d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5630
+libusbscanner 0x0003 0x04a9 0x264e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon laserBase MF5650
+libusbscanner 0x0003 0x04a9 0x264f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF8170c
+libusbscanner 0x0003 0x04a9 0x2659 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5730
+libusbscanner 0x0003 0x04a9 0x265d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5750
+libusbscanner 0x0003 0x04a9 0x265e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF5770
+libusbscanner 0x0003 0x04a9 0x265f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF3110
+libusbscanner 0x0003 0x04a9 0x2660 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF3240
+libusbscanner 0x0003 0x04a9 0x2684 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF6500 series
+libusbscanner 0x0003 0x04a9 0x2686 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4120 | Canon imageCLASS MF4122 | Canon imageCLASS MF4140 | Canon imageCLASS MF4150
+libusbscanner 0x0003 0x04a9 0x26a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4690
+libusbscanner 0x0003 0x04a9 0x26b0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
+libusbscanner 0x0003 0x04a9 0x26b4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4270
+libusbscanner 0x0003 0x04a9 0x26b5 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS MF4370dn | Canon imageCLASS MF4380dn
+libusbscanner 0x0003 0x04a9 0x26ec 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon imageCLASS D480
+libusbscanner 0x0003 0x04a9 0x26ed 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon I-SENSYS MF4320d | Canon I-SENSYS MF4330d | Canon imageCLASS MF4350d
+libusbscanner 0x0003 0x04a9 0x26ee 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon LS 40 ED | Nikon LS 40 ED | Nikon Coolspan IV
+libusbscanner 0x0003 0x04b0 0x4000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon LS 50 ED | Nikon Coolscan V ED | Nikon LS 50 ED | Nikon Coolscan V ED
+libusbscanner 0x0003 0x04b0 0x4001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nikon Super Coolscan LS-5000 ED | Nikon Super Coolscan LS-5000 ED
+libusbscanner 0x0003 0x04b0 0x4002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7000U | EPSON Perfection 636U | Epson Perfection 636U | Epson GT-7000U | Epson Perfection 636U
+libusbscanner 0x0003 0x04b8 0x0101 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-6600U | EPSON Perfection 610 | Epson Perfection 610 | Epson GT-6600U | Epson Perfection 610
+libusbscanner 0x0003 0x04b8 0x0103 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7600U | EPSON GT-7600UF | EPSON Perfection 1200U | EPSON Perfection 1200U PHOTO | Epson Perfection 1200U | Epson Perfection 1200Photo | Epson GT-7600U | Epson GT-7600UF | Epson Perfection 1200U | Epson Perfection 1200U PHOTO
+libusbscanner 0x0003 0x04b8 0x0104 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Scan 2000 | Epson Stylus Scan 2000
+libusbscanner 0x0003 0x04b8 0x0105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Scan 2500 | Epson Stylus Scan 2500
+libusbscanner 0x0003 0x04b8 0x0106 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-2000 | EPSON Expression 1600 | Epson Expression 1600 | Epson ES-2000 | Epson Expression 1600
+libusbscanner 0x0003 0x04b8 0x0107 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-8500 | EPSON Expression 1640XL | Epson ES-8500 | Epson Expression 1640XL
+libusbscanner 0x0003 0x04b8 0x0109 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8700 | EPSON GT-8700F | EPSON Perfection 1640SU | EPSON Perfection 1640SU PHOTO | Epson Perfection 1640 | Epson GT-8700 | Epson GT-8700F | Epson Perfection 1640SU | Epson Perfection 1640SU PHOTO
+libusbscanner 0x0003 0x04b8 0x010a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7700U | EPSON Perfection 1240U | Epson Perfection 1240 | Epson GT-7700U | Epson Perfection 1240U
+libusbscanner 0x0003 0x04b8 0x010b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-6700U | EPSON Perfection 640U | Epson Perfection 640 | Epson GT-6700U | Epson Perfection 640U
+libusbscanner 0x0003 0x04b8 0x010c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-2200 | EPSON Expression 1680 | Epson Expression 1680 | Epson ES-2200 | Epson Expression 1680
+libusbscanner 0x0003 0x04b8 0x010e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7200U | EPSON Perfection 1250 | EPSON Perfection 1250 PHOTO | Epson Perfection 1250 | Epson Perfection 1250Photo
+libusbscanner 0x0003 0x04b8 0x010f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8200U | EPSON GT-8200UF | EPSON Perfection 1650 | EPSON Perfection 1650 PHOTO | Epson Perfection 1650 | Epson GT-8200U | Epson GT-8200UF | Epson Perfection 1650 | Epson Perfection 1650 PHOTO
+libusbscanner 0x0003 0x04b8 0x0110 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9700F | EPSON Perfection 2450 PHOTO | Epson Perfection 2450 | Epson GT-9700F | Epson Perfection 2450 PHOTO
+libusbscanner 0x0003 0x04b8 0x0112 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 660
+libusbscanner 0x0003 0x04b8 0x0114 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9400UF | EPSON Perfection 3170 PHOTO
+libusbscanner 0x0003 0x04b8 0x0116 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F600 | EPSON Perfection 4180 PHOTO
+libusbscanner 0x0003 0x04b8 0x0118 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X750 | EPSON Perfection 4490 PHOTO
+libusbscanner 0x0003 0x04b8 0x0119 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9300UF | EPSON Perfection 2400 PHOTO | Epson Perfection 2400 | Epson GT-9300UF | Epson Perfection 2400 PHOTO
+libusbscanner 0x0003 0x04b8 0x011b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-9800F | EPSON Perfection 3200 PHOTO | Epson Perfection 3200 | Epson GT-9800F | Epson Perfection 3200 PHOTO
+libusbscanner 0x0003 0x04b8 0x011c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-7300U | EPSON Perfection 1260 | EPSON Perfection 1260 PHOTO | Epson Perfection 1260 | Epson Perfection 1260Photo
+libusbscanner 0x0003 0x04b8 0x011d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-8300UF | EPSON Perfection 1660 PHOTO | Epson Perfection 1660 | Epson GT-8300UF | Epson Perfection 1660 PHOTO
+libusbscanner 0x0003 0x04b8 0x011e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 1670
+libusbscanner 0x0003 0x04b8 0x011f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Perfection 1270
+libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F500 | EPSON GT-F550 | EPSON Perfection 2480 PHOTO | EPSON Perfection 2580 PHOTO | Epson Perfection 2480 | Epson Perfection 2580
+libusbscanner 0x0003 0x04b8 0x0121 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F520 | EPSON GT-F570 | EPSON Perfection 3490 PHOTO | EPSON Perfection 3590 PHOTO | Epson Perfection 3490 | Epson Perfection 3590
+libusbscanner 0x0003 0x04b8 0x0122 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-7000H | EPSON GT-15000 | Epson ES-7000H | Epson GT-15000
+libusbscanner 0x0003 0x04b8 0x0126 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X700 | EPSON Perfection 4870 PHOTO | Epson Perfection 4870 | Epson GT-X700 | Epson Perfection 4870 PHOTO
+libusbscanner 0x0003 0x04b8 0x0128 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-10000G | EPSON Expression 10000XL | Epson ES-10000G | Epson Expression 10000XL
+libusbscanner 0x0003 0x04b8 0x0129 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X800 | EPSON Perfection 4990 PHOTO | Epson Perfection 4990 | Epson GT-X800 | Epson Perfection 4990 PHOTO
+libusbscanner 0x0003 0x04b8 0x012a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-H300 | EPSON GT-2500 | Epson ES-H300 | Epson GT-2500
+libusbscanner 0x0003 0x04b8 0x012b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X900 | EPSON Perfection V700 Photo | EPSON Perfection V750 Photo | Epson V700 | Epson V750 | Epson GT-X900 | Epson Perfection V700 Photo | Epson Perfection V750 Photo
+libusbscanner 0x0003 0x04b8 0x012c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F650 | EPSON GT-S600 | EPSON Perfection V10 | EPSON Perfection V100 Photo
+libusbscanner 0x0003 0x04b8 0x012d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F670 | EPSON Perfection V200 Photo
+libusbscanner 0x0003 0x04b8 0x012e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F700 | EPSON Perfection V350 Photo
+libusbscanner 0x0003 0x04b8 0x012f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X770 | EPSON Perfection V500 Photo
+libusbscanner 0x0003 0x04b8 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F720 | EPSON GT-S620 | EPSON Perfection V30 | EPSON Perfection V300 Photo
+libusbscanner 0x0003 0x04b8 0x0131 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-1500 | EPSON GT-D1000
+libusbscanner 0x0003 0x04b8 0x0133 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X970 | Epson GT-X970
+libusbscanner 0x0003 0x04b8 0x0135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-D400 | EPSON GT-S80
+libusbscanner 0x0003 0x04b8 0x0136 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-D200 | EPSON GT-S50
+libusbscanner 0x0003 0x04b8 0x0137 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ES-H7200 | EPSON GT-20000
+libusbscanner 0x0003 0x04b8 0x0138 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-X820 | EPSON Perfection V600 Photo
+libusbscanner 0x0003 0x04b8 0x013a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON GT-F730 | EPSON GT-S630 | EPSON Perfection V33 | EPSON Perfection V330 Photo
+libusbscanner 0x0003 0x04b8 0x0142 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON CC-600PX | EPSON Stylus CX5100 | EPSON Stylus CX5200 | Epson CX-5200 | Epson CX-5400 | Epson CC-600PX | Epson Stylus CX5100 | Epson Stylus CX5200
+libusbscanner 0x0003 0x04b8 0x0801 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON CC-570L | EPSON Stylus CX3100 | EPSON Stylus CX3200 | Epson CX-3200 | Epson CC-570L | Epson Stylus CX3100 | Epson Stylus CX3200
+libusbscanner 0x0003 0x04b8 0x0802 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX6300 | EPSON Stylus CX6400 | Epson CX-6300 | Epson CX-6400 | Epson Stylus CX6300 | Epson Stylus CX6400
+libusbscanner 0x0003 0x04b8 0x0805 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A850 | EPSON Stylus Photo RX600 | Epson RX-600 | Epson PM-A850 | Epson Stylus Photo RX600
+libusbscanner 0x0003 0x04b8 0x0806 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Photo RX500 | EPSON Stylus Photo RX510 | Epson RX-500 | Epson Stylus Photo RX500 | Epson Stylus Photo RX510
+libusbscanner 0x0003 0x04b8 0x0807 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX5300 | EPSON Stylus CX5400 | Epson CX-5400 | Epson Stylus CX5300 | Epson Stylus CX5400
+libusbscanner 0x0003 0x04b8 0x0808 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Epson Stylus CX-1500
+libusbscanner 0x0003 0x04b8 0x080c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4500 | EPSON Stylus CX4600 | Epson CX-4600 | Epson Stylus CX4500 | Epson Stylus CX4600
+libusbscanner 0x0003 0x04b8 0x080d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A550 | EPSON Stylus CX3500 | EPSON Stylus CX3600 | EPSON Stylus CX3650 | Epson CX-3600 | Epson CX-3650 | Epson PX-A550 | Epson Stylus CX3500 | Epson Stylus CX3600 | Epson Stylus CX3650
+libusbscanner 0x0003 0x04b8 0x080e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Photo RX420 | EPSON Stylus Photo RX425 | EPSON Stylus Photo RX430 | Epson RX-425 | Epson Stylus Photo RX420 | Epson Stylus Photo RX425 | Epson Stylus Photo RX430
+libusbscanner 0x0003 0x04b8 0x080f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A900 | EPSON Stylus Photo RX700 | Epson RX-700 | Epson PM-A900 | Epson Stylus Photo RX700
+libusbscanner 0x0003 0x04b8 0x0810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A870 | EPSON Stylus Photo RX620 | EPSON Stylus Photo RX630 | Epson RX-620 | Epson PM-A870 | Epson Stylus Photo RX620 | Epson Stylus Photo RX630
+libusbscanner 0x0003 0x04b8 0x0811 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX6500 | EPSON Stylus CX6600 | Epson CX-6500 | Epson CX-6600 | Epson Stylus CX6500 | Epson Stylus CX6600
+libusbscanner 0x0003 0x04b8 0x0813 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A700 | Epson PM-A700
+libusbscanner 0x0003 0x04b8 0x0814 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser CX11 | EPSON AcuLaser CX11NF | EPSON LP-A500 | Epson AcuLaser CX11 | Epson AcuLaser CX11NF | Epson AcuLaser CX11 | Epson AcuLaser CX11NF | Epson LP-A500
+libusbscanner 0x0003 0x04b8 0x0815 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5500 | EPSON LP-M5500F | Epson LP-M5500 | Epson LP-M5500F
+libusbscanner 0x0003 0x04b8 0x0817 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX3700 | EPSON Stylus CX3800 | EPSON Stylus DX3800 | Epson DX-3850 | Epson CX-3700 | Epson CX-3800 | Epson DX-3800 | Epson Stylus CX3700 | Epson Stylus CX3800 | Epson Stylus DX3800
+libusbscanner 0x0003 0x04b8 0x0818 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A650 | EPSON Stylus CX4700 | EPSON Stylus CX4800 | EPSON Stylus DX4800 | EPSON Stylus DX4850 | Epson CX-4800 | Epson PX-A650 | Epson Stylus CX4700 | Epson Stylus CX4800 | Epson Stylus DX4800 | Epson Stylus DX4850
+libusbscanner 0x0003 0x04b8 0x0819 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A750 | EPSON Stylus Photo RX520 | EPSON Stylus Photo RX530 | Epson PM-A750 | Epson Stylus Photo RX520 | Epson Stylus Photo RX530
+libusbscanner 0x0003 0x04b8 0x081a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A890 | EPSON Stylus Photo RX640 | EPSON Stylus Photo RX650 | Epson PM-A890 | Epson Stylus Photo RX640 | Epson Stylus Photo RX650
+libusbscanner 0x0003 0x04b8 0x081c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A950 | Epson PM-A950
+libusbscanner 0x0003 0x04b8 0x081d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX7700 | EPSON Stylus CX7800 | Epson Stylus CX7700 | Epson Stylus CX7800
+libusbscanner 0x0003 0x04b8 0x081f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4100 | EPSON Stylus CX4200 | EPSON Stylus DX4200 | Epson CX-4200 | Epson Stylus CX4100 | Epson Stylus CX4200 | Epson Stylus DX4200
+libusbscanner 0x0003 0x04b8 0x0820 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A820 | EPSON Stylus Photo RX560 | EPSON Stylus Photo RX580 | EPSON Stylus Photo RX590 | Epson PM-A820 | Epson Stylus Photo RX560 | Epson Stylus Photo RX580 | Epson Stylus Photo RX590
+libusbscanner 0x0003 0x04b8 0x0827 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A970 | Epson PM-A970
+libusbscanner 0x0003 0x04b8 0x0828 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-T990 | Epson PM-T990
+libusbscanner 0x0003 0x04b8 0x0829 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A920 | Epson PM-A920
+libusbscanner 0x0003 0x04b8 0x082a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4900 | EPSON Stylus CX5000 | EPSON Stylus DX5000 | Epson CX-5000 | Epson DX-5000 | Epson DX-5050 | Epson Stylus CX4900 | Epson Stylus CX5000 | Epson Stylus DX5000
+libusbscanner 0x0003 0x04b8 0x082b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A720 | EPSON Stylus CX5900 | EPSON Stylus CX6000 | EPSON Stylus DX6000 | Epson DX-6000 | Epson PX-A720 | Epson Stylus CX5900 | Epson Stylus CX6000 | Epson Stylus DX6000
+libusbscanner 0x0003 0x04b8 0x082e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A620 | EPSON Stylus CX3900 | EPSON Stylus DX4000 | Epson DX-4050 | Epson PX-A620 | Epson Stylus CX3900 | Epson Stylus DX4000
+libusbscanner 0x0003 0x04b8 0x082f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 200 | EPSON Stylus CX2800 | EPSON Stylus CX2900 | Epson ME 200 | Epson Stylus CX2800 | Epson Stylus CX2900
+libusbscanner 0x0003 0x04b8 0x0830 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5600 | Epson LP-M5600
+libusbscanner 0x0003 0x04b8 0x0833 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M6000 | Epson LP-M6000
+libusbscanner 0x0003 0x04b8 0x0834 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser CX21 | Epson AcuLaser CX21
+libusbscanner 0x0003 0x04b8 0x0835 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-T960 | Epson PM-T960
+libusbscanner 0x0003 0x04b8 0x0836 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A940 | EPSON Stylus Photo RX680 | EPSON Stylus Photo RX685 | EPSON Stylus Photo RX690 | Epson PM-A940 | Epson Stylus Photo RX680 | Epson Stylus Photo RX685 | Epson Stylus Photo RX690
+libusbscanner 0x0003 0x04b8 0x0837 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A640 | EPSON Stylus CX7300 | EPSON Stylus CX7400 | EPSON Stylus DX7400 | Epson DX-7400 | Epson PX-A640 | Epson Stylus CX7300 | Epson Stylus CX7400 | Epson Stylus DX7400
+libusbscanner 0x0003 0x04b8 0x0838 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-A740 | EPSON Stylus CX8300 | EPSON Stylus CX8400 | EPSON Stylus DX8400 | Epson PX-A740 | Epson Stylus CX8300 | Epson Stylus CX8400 | Epson Stylus DX8400
+libusbscanner 0x0003 0x04b8 0x0839 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-FA700 | EPSON Stylus CX9300F | EPSON Stylus CX9400Fax | EPSON Stylus DX9400F | Epson PX-FA700 | Epson Stylus CX9300F | Epson Stylus CX9400Fax | Epson Stylus DX9400F
+libusbscanner 0x0003 0x04b8 0x083a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PM-A840 | EPSON PM-A840S | EPSON Stylus Photo RX585 | EPSON Stylus Photo RX595 | EPSON Stylus Photo RX610 | Epson PM-A840 | Epson PM-A840S | Epson Stylus Photo RX585 | Epson Stylus Photo RX595 | Epson Stylus Photo RX610
+libusbscanner 0x0003 0x04b8 0x083c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus CX4300 | EPSON Stylus CX4400 | EPSON Stylus CX5500 | EPSON Stylus CX5600 | EPSON Stylus DX4400
+libusbscanner 0x0003 0x04b8 0x083f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 300 | EPSON PX-401A | EPSON Stylus NX100 | EPSON Stylus SX100 | EPSON Stylus TX100 | Epson ME 300 | Epson PX-401A | Epson Stylus NX100 | Epson Stylus SX100 | Epson Stylus TX100
+libusbscanner 0x0003 0x04b8 0x0841 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON LP-M5000 | Epson LP-M5000
+libusbscanner 0x0003 0x04b8 0x0843 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 800 | EPSON EP-901A | EPSON EP-901F | EPSON Stylus Photo PX800FW | EPSON Stylus Photo TX800FW | Epson Artisan 800 | Epson EP-901A | Epson EP-901F | Epson Stylus Photo PX800FW | Epson Stylus Photo TX800FW
+libusbscanner 0x0003 0x04b8 0x0844 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 700 | EPSON EP-801A | EPSON Stylus Photo PX700W | EPSON Stylus Photo TX700W | Epson Artisan 700 | Epson EP-801A | Epson Stylus Photo PX700W | Epson Stylus Photo TX700W
+libusbscanner 0x0003 0x04b8 0x0846 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME Office 700FW | EPSON PX-601F | EPSON Stylus Office BX600FW | EPSON Stylus Office TX600FW | EPSON Stylus SX600FW | EPSON WorkForce 600 | Epson ME Office 700FW | Epson PX-601F | Epson Stylus Office BX600FW | Epson Stylus Office TX600FW | Epson Stylus SX600FW | Epson WorkForce 600
+libusbscanner 0x0003 0x04b8 0x0847 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME Office 600F | EPSON Stylus Office BX300F | EPSON Stylus Office TX300F | EPSON Stylus NX300 Series | Epson ME Office 600F | Epson Stylus Office BX300F | Epson Stylus Office TX300F | Epson Stylus NX300
+libusbscanner 0x0003 0x04b8 0x0848 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus NX200 | EPSON Stylus SX200 | EPSON Stylus SX205 | EPSON Stylus TX200 | EPSON Stylus TX203 | EPSON Stylus TX209 | Epson Stylus NX200 | Epson Stylus SX200 | Epson Stylus SX205 | Epson Stylus TX200 | Epson Stylus TX203 | Epson Stylus TX209
+libusbscanner 0x0003 0x04b8 0x0849 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-501A | EPSON Stylus NX400 | EPSON Stylus SX400 | EPSON Stylus SX405 | EPSON Stylus TX400 | Epson PX-501A | Epson Stylus NX400 | Epson Stylus SX400 | Epson Stylus SX405 | Epson Stylus TX400
+libusbscanner 0x0003 0x04b8 0x084a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON WorkForce 500 | Epson WorkForce 500
+libusbscanner 0x0003 0x04b8 0x084c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-402A | EPSON Stylus NX110 Series | EPSON Stylus SX110 Series | EPSON Stylus TX110 Series | Epson PX-402A | Epson Stylus NX110 Series | Epson Stylus SX110 Series | Epson Stylus TX110 Series
+libusbscanner 0x0003 0x04b8 0x084d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 510 | EPSON Stylus NX210 Series | EPSON Stylus SX210 Series | EPSON Stylus TX210 Series | Epson ME OFFICE 510 | Epson Stylus NX210 Series | Epson Stylus SX210 Series | Epson Stylus TX210 Series
+libusbscanner 0x0003 0x04b8 0x084f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON EP-702A | EPSON Stylus Photo PX650 Series | EPSON Stylus Photo TX650 Series
+libusbscanner 0x0003 0x04b8 0x0850 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus NX410 Series | EPSON Stylus SX410 Series | EPSON Stylus TX410 Series | Epson Stylus NX410 Series | Epson Stylus SX410 Series | Epson Stylus TX410 Series
+libusbscanner 0x0003 0x04b8 0x0851 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 710 Series | EPSON EP-802A | EPSON Stylus Photo PX710W Series | EPSON Stylus Photo TX710W Series
+libusbscanner 0x0003 0x04b8 0x0852 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 810 Series | EPSON EP-902A | EPSON Stylus Photo PX810FW Series
+libusbscanner 0x0003 0x04b8 0x0853 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 650FN Series | EPSON Stylus Office BX310FN Series | EPSON Stylus Office TX510FN Series | EPSON WorkForce 310 Series | Epson ME OFFICE 650FN Series | Epson Stylus Office BX310FN Series | Epson Stylus Office TX510FN Series | Epson WorkForce 310 Series
+libusbscanner 0x0003 0x04b8 0x0854 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-602F | EPSON Stylus Office BX610FW Series | EPSON Stylus Office TX610FW Series | EPSON Stylus SX610FW Series | EPSON WorkForce 610 Series
+libusbscanner 0x0003 0x04b8 0x0855 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON PX-502A | EPSON Stylus NX510 Series | EPSON Stylus SX510W Series | EPSON Stylus TX550W Series | Epson PX-502A | Epson Stylus NX510 Series | Epson Stylus SX510W Series | Epson Stylus TX550W Series
+libusbscanner 0x0003 0x04b8 0x0856 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME 320 Series | EPSON ME 330 Series | EPSON Stylus NX125 | EPSON Stylus NX127 | EPSON Stylus SX125 | EPSON Stylus TX120 Series
+libusbscanner 0x0003 0x04b8 0x085c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 960FWD Series | EPSON Stylus Office BX625FWD | EPSON Stylus Office TX620FWD Series | EPSON Stylus SX620FW Series | EPSON WorkForce 630 Series
+libusbscanner 0x0003 0x04b8 0x085d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 900WD Series | EPSON PX-503A | EPSON Stylus Office BX525WD | EPSON Stylus NX625 | EPSON Stylus SX525WD | EPSON Stylus TX560WD Series | EPSON WorkForce 625
+libusbscanner 0x0003 0x04b8 0x085e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Stylus Office BX320FW Series | EPSON Stylus Office TX525FW | EPSON WorkForce 520 Series
+libusbscanner 0x0003 0x04b8 0x085f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 835 | EPSON EP-903A | EPSON EP-903F | EPSON Stylus Photo PX820FWD Series
+libusbscanner 0x0003 0x04b8 0x0860 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON Artisan 725 | EPSON EP-803A | EPSON EP-803AW | EPSON Stylus Photo PX720WD Series
+libusbscanner 0x0003 0x04b8 0x0861 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON EP-703A | EPSON Stylus Photo PX660 Series
+libusbscanner 0x0003 0x04b8 0x0862 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 620F Series | EPSON Stylus Office BX305F | EPSON Stylus Office BX305FW | EPSON Stylus Office TX320F Series | EPSON WorkForce 320 Series
+libusbscanner 0x0003 0x04b8 0x0863 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 560W Series | EPSON Stylus NX420 Series | EPSON Stylus SX420W Series | EPSON Stylus TX420W Series
+libusbscanner 0x0003 0x04b8 0x0864 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON ME OFFICE 520 Series | EPSON Stylus NX220 Series | EPSON Stylus SX218 | EPSON Stylus TX220 Series
+libusbscanner 0x0003 0x04b8 0x0865 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# EPSON AcuLaser MX20DN | EPSON AcuLaser MX20DNF
+libusbscanner 0x0003 0x04b8 0x0866 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4010CU
+libusbscanner 0x0003 0x04c5 0x1029 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4120C
+libusbscanner 0x0003 0x04c5 0x1041 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4220C
+libusbscanner 0x0003 0x04c5 0x1042 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4530C
+libusbscanner 0x0003 0x04c5 0x1078 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5750C
+libusbscanner 0x0003 0x04c5 0x1095 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOX/2
+libusbscanner 0x0003 0x04c5 0x1096 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110C
+libusbscanner 0x0003 0x04c5 0x1097 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5650C
+libusbscanner 0x0003 0x04c5 0x10ad 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4120C2
+libusbscanner 0x0003 0x04c5 0x10ae 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4220C2
+libusbscanner 0x0003 0x04c5 0x10af 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-60F
+libusbscanner 0x0003 0x04c5 0x10c7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-4340C
+libusbscanner 0x0003 0x04c5 0x10cf 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5120C
+libusbscanner 0x0003 0x04c5 0x10e0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5220C
+libusbscanner 0x0003 0x04c5 0x10e1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5530C
+libusbscanner 0x0003 0x04c5 0x10e2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOX3
+libusbscanner 0x0003 0x04c5 0x10e6 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5900C
+libusbscanner 0x0003 0x04c5 0x10e7 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5015C
+libusbscanner 0x0003 0x04c5 0x10ef 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5110EOXM
+libusbscanner 0x0003 0x04c5 0x10f2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S500
+libusbscanner 0x0003 0x04c5 0x10fe 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S500M
+libusbscanner 0x0003 0x04c5 0x1135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-5530C2
+libusbscanner 0x0003 0x04c5 0x114a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6140
+libusbscanner 0x0003 0x04c5 0x114d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6240
+libusbscanner 0x0003 0x04c5 0x114e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6130
+libusbscanner 0x0003 0x04c5 0x114f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6230
+libusbscanner 0x0003 0x04c5 0x1150 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S510
+libusbscanner 0x0003 0x04c5 0x1155 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S300
+libusbscanner 0x0003 0x04c5 0x1156 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S510M
+libusbscanner 0x0003 0x04c5 0x116f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6770
+libusbscanner 0x0003 0x04c5 0x1174 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6770A
+libusbscanner 0x0003 0x04c5 0x1175 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6670
+libusbscanner 0x0003 0x04c5 0x1176 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6670A
+libusbscanner 0x0003 0x04c5 0x1177 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6750S
+libusbscanner 0x0003 0x04c5 0x1178 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S300M
+libusbscanner 0x0003 0x04c5 0x117f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6800
+libusbscanner 0x0003 0x04c5 0x119d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6800-CGA
+libusbscanner 0x0003 0x04c5 0x119e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6900
+libusbscanner 0x0003 0x04c5 0x119f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6900-CGA
+libusbscanner 0x0003 0x04c5 0x11a0 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S1500 | Fujitsu ScanSnap S1500M
+libusbscanner 0x0003 0x04c5 0x11a2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu ScanSnap S1300
+libusbscanner 0x0003 0x04c5 0x11ed 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6125
+libusbscanner 0x0003 0x04c5 0x11ee 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6225
+libusbscanner 0x0003 0x04c5 0x11ef 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6145
+libusbscanner 0x0003 0x04c5 0x11f1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6245
+libusbscanner 0x0003 0x04c5 0x11f2 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6135
+libusbscanner 0x0003 0x04c5 0x11f3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6235
+libusbscanner 0x0003 0x04c5 0x11f4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Fujitsu fi-6110
+libusbscanner 0x0003 0x04c5 0x11fc 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Konica e-mini
+libusbscanner 0x0003 0x04c8 0x0722 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2026C
+libusbscanner 0x0003 0x04da 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2046C
+libusbscanner 0x0003 0x04da 0x1001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1025C
+libusbscanner 0x0003 0x04da 0x1006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1020C
+libusbscanner 0x0003 0x04da 0x1007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2048C
+libusbscanner 0x0003 0x04da 0x1009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S2028C
+libusbscanner 0x0003 0x04da 0x100a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-SS080
+libusbscanner 0x0003 0x04da 0x100f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Panasonic KV-S1045C
+libusbscanner 0x0003 0x04da 0x1010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4216F
+libusbscanner 0x0003 0x04e8 0x3409 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4100
+libusbscanner 0x0003 0x04e8 0x3413 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4521F
+libusbscanner 0x0003 0x04e8 0x3419 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4200 | Samsung SCX-4200
+libusbscanner 0x0003 0x04e8 0x341b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX4725-FN
+libusbscanner 0x0003 0x04e8 0x341f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4500
+libusbscanner 0x0003 0x04e8 0x3426 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung CLX-3170fn | Samsung CLX-3175FW
+libusbscanner 0x0003 0x04e8 0x342a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4500W
+libusbscanner 0x0003 0x04e8 0x342b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4824
+libusbscanner 0x0003 0x04e8 0x342c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4300
+libusbscanner 0x0003 0x04e8 0x342e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4600
+libusbscanner 0x0003 0x04e8 0x3433 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4623
+libusbscanner 0x0003 0x04e8 0x3434 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Samsung SCX-4825FN
+libusbscanner 0x0003 0x04e8 0x343c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3100C
+libusbscanner 0x0003 0x04f9 0x010e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5100C
+libusbscanner 0x0003 0x04f9 0x010f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4800
+libusbscanner 0x0003 0x04f9 0x0110 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-6800 | Brother MFC 4600
+libusbscanner 0x0003 0x04f9 0x0111 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1000
+libusbscanner 0x0003 0x04f9 0x0112 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8500
+libusbscanner 0x0003 0x04f9 0x0113 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9700
+libusbscanner 0x0003 0x04f9 0x0114 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9800
+libusbscanner 0x0003 0x04f9 0x0115 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1400
+libusbscanner 0x0003 0x04f9 0x0116 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-2900
+libusbscanner 0x0003 0x04f9 0x0117 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-3800
+libusbscanner 0x0003 0x04f9 0x0118 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9660
+libusbscanner 0x0003 0x04f9 0x0119 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9860
+libusbscanner 0x0003 0x04f9 0x011a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9760
+libusbscanner 0x0003 0x04f9 0x011c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9070
+libusbscanner 0x0003 0x04f9 0x011d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9180
+libusbscanner 0x0003 0x04f9 0x011e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9160
+libusbscanner 0x0003 0x04f9 0x011f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-580
+libusbscanner 0x0003 0x04f9 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-590
+libusbscanner 0x0003 0x04f9 0x0121 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5100J
+libusbscanner 0x0003 0x04f9 0x0122 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-2850
+libusbscanner 0x0003 0x04f9 0x0123 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4800J
+libusbscanner 0x0003 0x04f9 0x0124 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-6800J
+libusbscanner 0x0003 0x04f9 0x0125 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1800C
+libusbscanner 0x0003 0x04f9 0x0126 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9800J
+libusbscanner 0x0003 0x04f9 0x0127 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8500J
+libusbscanner 0x0003 0x04f9 0x0128 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-9030
+libusbscanner 0x0003 0x04f9 0x012b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-4100
+libusbscanner 0x0003 0x04f9 0x012e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-4750e
+libusbscanner 0x0003 0x04f9 0x012f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX-5750e
+libusbscanner 0x0003 0x04f9 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5200C
+libusbscanner 0x0003 0x04f9 0x0132 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-100
+libusbscanner 0x0003 0x04f9 0x0135 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-150CL
+libusbscanner 0x0003 0x04f9 0x0136 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3200C
+libusbscanner 0x0003 0x04f9 0x013a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-890
+libusbscanner 0x0003 0x04f9 0x013c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5200J
+libusbscanner 0x0003 0x04f9 0x013d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4420C
+libusbscanner 0x0003 0x04f9 0x013e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-4820C
+libusbscanner 0x0003 0x04f9 0x013f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8020
+libusbscanner 0x0003 0x04f9 0x0140 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8025D
+libusbscanner 0x0003 0x04f9 0x0141 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8420
+libusbscanner 0x0003 0x04f9 0x0142 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8820D
+libusbscanner 0x0003 0x04f9 0x0143 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-4020C
+libusbscanner 0x0003 0x04f9 0x0144 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3220C
+libusbscanner 0x0003 0x04f9 0x0146 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1820C
+libusbscanner 0x0003 0x04f9 0x0147 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3320CN
+libusbscanner 0x0003 0x04f9 0x0148 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1920CN
+libusbscanner 0x0003 0x04f9 0x0149 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3420C
+libusbscanner 0x0003 0x04f9 0x014a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3820CN
+libusbscanner 0x0003 0x04f9 0x014b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-3020C
+libusbscanner 0x0003 0x04f9 0x014c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother FAX1815C
+libusbscanner 0x0003 0x04f9 0x014d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8820J
+libusbscanner 0x0003 0x04f9 0x014e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8025J
+libusbscanner 0x0003 0x04f9 0x014f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8220
+libusbscanner 0x0003 0x04f9 0x0150 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8210
+libusbscanner 0x0003 0x04f9 0x0151 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-1000J
+libusbscanner 0x0003 0x04f9 0x0153 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3420J
+libusbscanner 0x0003 0x04f9 0x0157 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3820J
+libusbscanner 0x0003 0x04f9 0x0158 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8040
+libusbscanner 0x0003 0x04f9 0x015d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8045D
+libusbscanner 0x0003 0x04f9 0x015e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8440
+libusbscanner 0x0003 0x04f9 0x015f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-8840D
+libusbscanner 0x0003 0x04f9 0x0160 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-210C
+libusbscanner 0x0003 0x04f9 0x0161 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-420CN
+libusbscanner 0x0003 0x04f9 0x0162 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-410CN
+libusbscanner 0x0003 0x04f9 0x0163 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-620CN
+libusbscanner 0x0003 0x04f9 0x0165 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-610CLN
+libusbscanner 0x0003 0x04f9 0x0166 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-610CLN
+libusbscanner 0x0003 0x04f9 0x0168 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-110C
+libusbscanner 0x0003 0x04f9 0x0169 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-310CN
+libusbscanner 0x0003 0x04f9 0x016b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5440CN
+libusbscanner 0x0003 0x04f9 0x016d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-5840CN
+libusbscanner 0x0003 0x04f9 0x016e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3240C
+libusbscanner 0x0003 0x04f9 0x0173 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-3340CN
+libusbscanner 0x0003 0x04f9 0x0174 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7420
+libusbscanner 0x0003 0x04f9 0x0180 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7820N
+libusbscanner 0x0003 0x04f9 0x0181 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7010
+libusbscanner 0x0003 0x04f9 0x0182 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7020
+libusbscanner 0x0003 0x04f9 0x0183 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-7025
+libusbscanner 0x0003 0x04f9 0x0184 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7220
+libusbscanner 0x0003 0x04f9 0x0185 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7225N
+libusbscanner 0x0003 0x04f9 0x0186 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-115C
+libusbscanner 0x0003 0x04f9 0x018c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-117C
+libusbscanner 0x0003 0x04f9 0x018e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-120C
+libusbscanner 0x0003 0x04f9 0x0190 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-215C
+libusbscanner 0x0003 0x04f9 0x0193 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-8060
+libusbscanner 0x0003 0x04f9 0x01a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother DCP-330C
+libusbscanner 0x0003 0x04f9 0x01a9 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-240C
+libusbscanner 0x0003 0x04f9 0x01ab 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Brother MFC-7840W
+libusbscanner 0x0003 0x04f9 0x01e5 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Pentax DSmobile 600
+libusbscanner 0x0003 0x04f9 0x2038 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Aiptek Aiptek Pencam
+libusbscanner 0x0003 0x0553 0x0202 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 CU
+libusbscanner 0x0003 0x055f 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 600 CU
+libusbscanner 0x0003 0x055f 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 UB | Trust Compact Scan USB 19200
+libusbscanner 0x0003 0x055f 0x0006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1200 CU Plus
+libusbscanner 0x0003 0x055f 0x0008 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 F
+libusbscanner 0x0003 0x055f 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress A3 USB
+libusbscanner 0x0003 0x055f 0x0210 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CS | Mustek BearPaw 2400 TA | Trust 240TH Easy Webscan Gold
+libusbscanner 0x0003 0x055f 0x0218 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CS Plus | Mustek BearPaw 2400 TA Plus | Mustek Plug-n-Scan 2400 MT | Mustek Plug-n-Scan 2400 M | Packard Bell Diamond 2450
+libusbscanner 0x0003 0x055f 0x0219 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2448 CS Plus | Mustek BearPaw 2448 TA Plus
+libusbscanner 0x0003 0x055f 0x021a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CU Plus | Packard Bell Diamond 1200 Plus
+libusbscanner 0x0003 0x055f 0x021b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CU Plus | Mustek BearPaw 1248 CU | Packard Bell Diamond 1200 Plus | Trust Direct WebScan 19200
+libusbscanner 0x0003 0x055f 0x021c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2400 CU Plus
+libusbscanner 0x0003 0x055f 0x021d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 1200 CS | Mustek BearPaw 1200 TA
+libusbscanner 0x0003 0x055f 0x021e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek ScanExpress 1248 UB
+libusbscanner 0x0003 0x055f 0x021f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek P 3600 A3 Pro
+libusbscanner 0x0003 0x055f 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Mustek BearPaw 2448TA Pro
+libusbscanner 0x0003 0x055f 0x0409 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima Ultima 2000 | Artec/Ultima Ultima 2000 e+ | Boeder Sm@rtScan Slim Edition | Fujitsu 1200CUS | Googlegear 2000 | Medion/Lifetec/Tevion/Cytron MD 4394 | Medion/Lifetec/Tevion/Cytron MD/LT 9375 | Medion/Lifetec/Tevion/Cytron MD/LT 9385 | Medion/Lifetec/Tevion/Cytron LT 9452 | Medion/Lifetec/Tevion/Cytron MD 9458 | Mustek BearPaw 1200 CU | Mustek BearPaw 2400 CU | Mustek ScanExpress 1200 UB Plus | Mustek ScanExpress 2400 USB | Mustek ScanMagic 1200 UB Plus | Packard Bell Diamond 1200 | Trust Compact Scan USB 19200 | Trust Flat Scan USB 19200
+libusbscanner 0x0003 0x05d8 0x4002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima E+ 48U | Medion/Lifetec/Tevion/Cytron MD9693 | Medion/Lifetec/Tevion/Cytron MD9705 | Medion/Lifetec/Tevion/Cytron MD4394 | Microstar MR 9791
+libusbscanner 0x0003 0x05d8 0x4003 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Artec/Ultima E+ Pro
+libusbscanner 0x0003 0x05d8 0x4004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Memorex MEM 48U
+libusbscanner 0x0003 0x05d8 0x4005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust Easy Webscan 19200
+libusbscanner 0x0003 0x05d8 0x4006 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Trust 240H Easy Webscan Gold
+libusbscanner 0x0003 0x05d8 0x4007 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX AstraSlim SE
+libusbscanner 0x0003 0x05d8 0x4009 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX AstraSlim 1200 SE
+libusbscanner 0x0003 0x05d8 0x4010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Yakumo Scan50
+libusbscanner 0x0003 0x05d8 0x4011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker X6USB
+libusbscanner 0x0003 0x05da 0x0099 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek SlimScan C6
+libusbscanner 0x0003 0x05da 0x009a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6USL
+libusbscanner 0x0003 0x05da 0x00a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6UPL
+libusbscanner 0x0003 0x05da 0x00b6 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 4800
+libusbscanner 0x0003 0x05da 0x30cf 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3840
+libusbscanner 0x0003 0x05da 0x30d4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40b3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3700
+libusbscanner 0x0003 0x05da 0x40b8 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40ca 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3700
+libusbscanner 0x0003 0x05da 0x40cb 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3750
+libusbscanner 0x0003 0x05da 0x40dd 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker 3600
+libusbscanner 0x0003 0x05da 0x40ff 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Microtek ScanMaker V6USL
+libusbscanner 0x0003 0x05da 0x80a3 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# iVina 1200U
+libusbscanner 0x0003 0x0638 0x0268 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Dual II
+libusbscanner 0x0003 0x0638 0x026a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV600U
+libusbscanner 0x0003 0x0638 0x0a13 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta-QMS SC-110
+libusbscanner 0x0003 0x0638 0x0a15 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision DS610CU Scancopier | Minolta-QMS SC-215 | OKI S700 Scancopier
+libusbscanner 0x0003 0x0638 0x0a16 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV600U Plus
+libusbscanner 0x0003 0x0638 0x0a18 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV610
+libusbscanner 0x0003 0x0638 0x0a19 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220
+libusbscanner 0x0003 0x0638 0x0a23 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210
+libusbscanner 0x0003 0x0638 0x0a24 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210
+libusbscanner 0x0003 0x0638 0x0a25 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV120
+libusbscanner 0x0003 0x0638 0x0a27 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2
+libusbscanner 0x0003 0x0638 0x0a2a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220D2
+libusbscanner 0x0003 0x0638 0x0a2b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220+
+libusbscanner 0x0003 0x0638 0x0a2c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2-G
+libusbscanner 0x0003 0x0638 0x0a2d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220C2-B
+libusbscanner 0x0003 0x0638 0x0a2e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210C2-G
+libusbscanner 0x0003 0x0638 0x0a2f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV122
+libusbscanner 0x0003 0x0638 0x0a33 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210C2
+libusbscanner 0x0003 0x0638 0x0a3a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV121
+libusbscanner 0x0003 0x0638 0x0a3c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8300
+libusbscanner 0x0003 0x0638 0x0a40 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AM3000 Series
+libusbscanner 0x0003 0x0638 0x0a41 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision @V5100
+libusbscanner 0x0003 0x0638 0x0a45 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8050U
+libusbscanner 0x0003 0x0638 0x0a4d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3200SU
+libusbscanner 0x0003 0x0638 0x0a4e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3730SU
+libusbscanner 0x0003 0x0638 0x0a4f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV610C2
+libusbscanner 0x0003 0x0638 0x0a5e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision IT8300
+libusbscanner 0x0003 0x0638 0x0a61 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3750SU
+libusbscanner 0x0003 0x0638 0x0a65 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV3850SU
+libusbscanner 0x0003 0x0638 0x0a66 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV8350
+libusbscanner 0x0003 0x0638 0x0a68 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision FB6080E
+libusbscanner 0x0003 0x0638 0x0a82 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision FB2080E
+libusbscanner 0x0003 0x0638 0x0a84 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV122 C2
+libusbscanner 0x0003 0x0638 0x0a93 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV220-G
+libusbscanner 0x0003 0x0638 0x0a94 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision @V2500
+libusbscanner 0x0003 0x0638 0x0aa1 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Avision AV210D2+
+libusbscanner 0x0003 0x0638 0x1a35 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Elite II
+libusbscanner 0x0003 0x0686 0x4004 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Dual III
+libusbscanner 0x0003 0x0686 0x400d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Minolta Dimage Scan Elite 5400
+libusbscanner 0x0003 0x0686 0x400e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1212U
+libusbscanner 0x0003 0x06bd 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1236u
+libusbscanner 0x0003 0x06bd 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Agfa Snapscan Touch
+libusbscanner 0x0003 0x06bd 0x0100 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan 1212U_2
+libusbscanner 0x0003 0x06bd 0x2061 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e40
+libusbscanner 0x0003 0x06bd 0x208d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e50
+libusbscanner 0x0003 0x06bd 0x208f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e20
+libusbscanner 0x0003 0x06bd 0x2091 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e10
+libusbscanner 0x0003 0x06bd 0x2093 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e25
+libusbscanner 0x0003 0x06bd 0x2095 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e26
+libusbscanner 0x0003 0x06bd 0x2097 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e52
+libusbscanner 0x0003 0x06bd 0x20fd 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# AGFA SnapScan e42
+libusbscanner 0x0003 0x06bd 0x20ff 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 4900
+libusbscanner 0x0003 0x06dc 0x0020 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U12 | Plustek OpticPro UT12 | Plustek OpticPro 1212U | RevScan RevScan Orange R48Ti | Genius ColorPage Vivid III USB
+libusbscanner 0x0003 0x07b3 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U12
+libusbscanner 0x0003 0x07b3 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U24
+libusbscanner 0x0003 0x07b3 0x0011 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro UT12
+libusbscanner 0x0003 0x07b3 0x0013 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U24
+libusbscanner 0x0003 0x07b3 0x0015 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro UT12 | Plustek OpticPro UT16 | Plustek OpticPro UT24
+libusbscanner 0x0003 0x07b3 0x0017 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro 1248U | RevScan 19200i
+libusbscanner 0x0003 0x07b3 0x0400 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro 1248U
+libusbscanner 0x0003 0x07b3 0x0401 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U16B
+libusbscanner 0x0003 0x07b3 0x0402 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro U16B+ | Plustek OpticPro UT16B
+libusbscanner 0x0003 0x07b3 0x0403 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Nortek MyScan 1200 | Plustek OpticPro S12 | Plustek OpticPro ST12
+libusbscanner 0x0003 0x07b3 0x040b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticPro S24
+libusbscanner 0x0003 0x07b3 0x040e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# NeatReceipts Scanalizer Professional 2.5 | Plustek OpticSlim M12
+libusbscanner 0x0003 0x07b3 0x0412 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 1200
+libusbscanner 0x0003 0x07b3 0x0413 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 2400
+libusbscanner 0x0003 0x07b3 0x0422 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticSlim 2400 plus
+libusbscanner 0x0003 0x07b3 0x0454 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek Iriscan Express 2
+libusbscanner 0x0003 0x07b3 0x045f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# NeatReceipts Mobile Scanner
+libusbscanner 0x0003 0x07b3 0x0462 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Plustek OpticBook 3600
+libusbscanner 0x0003 0x07b3 0x0900 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Corex 600c
+libusbscanner 0x0003 0x08f0 0x0002 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Corex 800c
+libusbscanner 0x0003 0x08f0 0x0005 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Phaser 6110MFP
+libusbscanner 0x0003 0x0924 0x3d5d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox Phaser 3200MFP
+libusbscanner 0x0003 0x0924 0x3da4 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 4118 Series
+libusbscanner 0x0003 0x0924 0x420c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3119 Series
+libusbscanner 0x0003 0x0924 0x4265 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3210
+libusbscanner 0x0003 0x0924 0x4293 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Xerox WorkCentre 3220
+libusbscanner 0x0003 0x0924 0x4294 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Pentax DSmobile 600
+libusbscanner 0x0003 0x0a17 0x3210 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Portable Peripheral Co., Ltd. Q-Scan USB001 (A4 portable scanner)
+libusbscanner 0x0003 0x0a53 0x1000 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan TravelScan 460/464 | Ambir Visigo A4
+libusbscanner 0x0003 0x0a82 0x4600 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 465
+libusbscanner 0x0003 0x0a82 0x4802 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 665
+libusbscanner 0x0003 0x0a82 0x4803 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 685/ Ambir DS685
+libusbscanner 0x0003 0x0a82 0x480c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan DocketPort 485
+libusbscanner 0x0003 0x0a82 0x4810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Syscan TravelScan 662
+libusbscanner 0x0003 0x0a82 0x6620 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-55
+libusbscanner 0x0003 0x1083 0x160c 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-1210C
+libusbscanner 0x0003 0x1083 0x160f 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-4010C
+libusbscanner 0x0003 0x1083 0x1614 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2510C
+libusbscanner 0x0003 0x1083 0x1617 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-X10C
+libusbscanner 0x0003 0x1083 0x1618 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-25
+libusbscanner 0x0003 0x1083 0x161a 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-2010C
+libusbscanner 0x0003 0x1083 0x161b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-3010C
+libusbscanner 0x0003 0x1083 0x161d 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7090C
+libusbscanner 0x0003 0x1083 0x1620 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-9050C
+libusbscanner 0x0003 0x1083 0x1622 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-7550C
+libusbscanner 0x0003 0x1083 0x1623 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6050C
+libusbscanner 0x0003 0x1083 0x1624 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6010C
+libusbscanner 0x0003 0x1083 0x1626 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-190i
+libusbscanner 0x0003 0x1083 0x162b 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon DR-6030C
+libusbscanner 0x0003 0x1083 0x1638 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Canon CR-135i
+libusbscanner 0x0003 0x1083 0x1639 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Digital Dream l' espion XS
+libusbscanner 0x0003 0x1183 0x0001 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# KONICA MINOLTA magicolor 1690MF
+libusbscanner 0x0003 0x132b 0x2089 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 1220U
+libusbscanner 0x0003 0x1606 0x0010 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 1600U | UMAX Astra 2000U
+libusbscanner 0x0003 0x1606 0x0030 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 3400
+libusbscanner 0x0003 0x1606 0x0050 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 3400 | Umax UMAX Astranet ia101 | Umax UMAX 3450
+libusbscanner 0x0003 0x1606 0x0060 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 4400 | UMAX Astra 4450
+libusbscanner 0x0003 0x1606 0x0070 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 2100U
+libusbscanner 0x0003 0x1606 0x0130 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Umax UMAX 5400
+libusbscanner 0x0003 0x1606 0x0160 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# UMAX Astra 2200 (SU)
+libusbscanner 0x0003 0x1606 0x0230 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# DCT DocketPort 487
+libusbscanner 0x0003 0x1dcc 0x4810 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell A920
+libusbscanner 0x0003 0x413c 0x5105 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell Dell MFP Laser Printer 1815dn
+libusbscanner 0x0003 0x413c 0x5124 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
+# Dell 1600n
+libusbscanner 0x0003 0x413c 0x5250 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
diff --git a/config-archive/etc/idmapd.conf b/config-archive/etc/idmapd.conf
new file mode 100644 (file)
index 0000000..3e81a75
--- /dev/null
@@ -0,0 +1,102 @@
+[General]
+#Verbosity = 0
+# The following should be set to the local NFSv4 domain name (REQUIRED)
+Domain = local.domain.edu
+
+[Mapping]
+
+#Nobody-User = nobody
+#Nobody-Group = nobody
+
+[Translation]
+
+# Translation Method is an comma-separated, ordered list of
+# translation methods that can be used.  Distributed methods
+# include "nsswitch", "umich_ldap", and "static".  Each method
+# is a dynamically loadable plugin library.
+# New methods may be defined and inserted in the list.
+# The default is "nsswitch".
+#Method = nsswitch
+
+# Optional.  This is a comma-separated, ordered list of
+# translation methods to be used for translating GSS
+# authenticated names to ids.
+# If this option is omitted, the same methods as those
+# specified in "Method" are used.
+#GSS-Methods = <alternate method list for translating GSS names>
+#-------------------------------------------------------------------#
+# The following are used only for the "static" Translation Method.
+#-------------------------------------------------------------------#
+[Static]
+
+# A "static" list of GSS-Authenticated names to
+# local user name mappings
+
+#someuser@REALM = localuser
+
+
+#-------------------------------------------------------------------#
+# The following are used only for the "umich_ldap" Translation Method.
+#-------------------------------------------------------------------#
+
+[UMICH_SCHEMA]
+
+# server information (REQUIRED)
+LDAP_server = ldap-server.local.domain.edu
+
+# the default search base (REQUIRED)
+LDAP_base = dc=local,dc=domain,dc=edu
+
+#-----------------------------------------------------------#
+# The remaining options have defaults (as shown)
+# and are therefore not required.
+#-----------------------------------------------------------#
+
+# whether or not to perform canonicalization on the
+# name given as LDAP_server
+#LDAP_canonicalize_name = true
+
+# absolute search base for (people) accounts
+#LDAP_people_base = <LDAP_base>
+
+# absolute search base for groups
+#LDAP_group_base = <LDAP_base>
+
+# Set to true to enable SSL - anything else is not enabled
+#LDAP_use_ssl = false
+
+# You must specify a CA certificate location if you enable SSL
+#LDAP_ca_cert = /etc/ldapca.cert
+
+# Objectclass mapping information
+
+# Mapping for the person (account) object class
+#NFSv4_person_objectclass = NFSv4RemotePerson
+
+# Mapping for the nfsv4name attribute the person object
+#NFSv4_name_attr = NFSv4Name
+
+# Mapping for the UID number
+#NFSv4_uid_attr = UIDNumber
+
+# Mapping for the GSSAPI Principal name
+#GSS_principal_attr = GSSAuthName
+
+# Mapping for the account name attribute (usually uid)
+# The value for this attribute must match the value of 
+# the group member attribute - NFSv4_member_attr
+#NFSv4_acctname_attr = uid
+
+# Mapping for the group object class
+#NFSv4_group_objectclass = NFSv4RemoteGroup
+
+# Mapping for the GID attribute
+#NFSv4_gid_attr = GIDNumber
+
+# Mapping for the Group NFSv4 name
+#NFSv4_group_attr = NFSv4Name
+
+# Mapping for the Group member attribute (usually memberUID)
+# The value of this attribute must match the value of NFSv4_acctname_attr
+#NFSv4_member_attr = memberUID
diff --git a/config-archive/etc/idmapd.conf.dist b/config-archive/etc/idmapd.conf.dist
new file mode 100644 (file)
index 0000000..ebf9754
--- /dev/null
@@ -0,0 +1,114 @@
+[General]
+#Verbosity = 0
+# The following should be set to the local NFSv4 domain name
+# The default is the host's DNS domain name.
+#Domain = local.domain.edu
+
+# The following is a comma-separated list of Kerberos realm
+# names that should be considered to be equivalent to the
+# local realm, such that <user>@REALM.A can be assumed to
+# be the same user as <user>@REALM.B
+# If not specified, the default local realm is the domain name,
+# which defaults to the host's DNS domain name,
+# translated to upper-case.
+# Note that if this value is specified, the local realm name
+# must be included in the list!
+#Local-Realms = 
+
+[Mapping]
+
+#Nobody-User = nobody
+#Nobody-Group = nobody
+
+[Translation]
+
+# Translation Method is an comma-separated, ordered list of
+# translation methods that can be used.  Distributed methods
+# include "nsswitch", "umich_ldap", and "static".  Each method
+# is a dynamically loadable plugin library.
+# New methods may be defined and inserted in the list.
+# The default is "nsswitch".
+#Method = nsswitch
+
+# Optional.  This is a comma-separated, ordered list of
+# translation methods to be used for translating GSS
+# authenticated names to ids.
+# If this option is omitted, the same methods as those
+# specified in "Method" are used.
+#GSS-Methods = <alternate method list for translating GSS names>
+#-------------------------------------------------------------------#
+# The following are used only for the "static" Translation Method.
+#-------------------------------------------------------------------#
+[Static]
+
+# A "static" list of GSS-Authenticated names to
+# local user name mappings
+
+#someuser@REALM = localuser
+
+
+#-------------------------------------------------------------------#
+# The following are used only for the "umich_ldap" Translation Method.
+#-------------------------------------------------------------------#
+
+[UMICH_SCHEMA]
+
+# server information (REQUIRED)
+LDAP_server = ldap-server.local.domain.edu
+
+# the default search base (REQUIRED)
+LDAP_base = dc=local,dc=domain,dc=edu
+
+#-----------------------------------------------------------#
+# The remaining options have defaults (as shown)
+# and are therefore not required.
+#-----------------------------------------------------------#
+
+# whether or not to perform canonicalization on the
+# name given as LDAP_server
+#LDAP_canonicalize_name = true
+
+# absolute search base for (people) accounts
+#LDAP_people_base = <LDAP_base>
+
+# absolute search base for groups
+#LDAP_group_base = <LDAP_base>
+
+# Set to true to enable SSL - anything else is not enabled
+#LDAP_use_ssl = false
+
+# You must specify a CA certificate location if you enable SSL
+#LDAP_ca_cert = /etc/ldapca.cert
+
+# Objectclass mapping information
+
+# Mapping for the person (account) object class
+#NFSv4_person_objectclass = NFSv4RemotePerson
+
+# Mapping for the nfsv4name attribute the person object
+#NFSv4_name_attr = NFSv4Name
+
+# Mapping for the UID number
+#NFSv4_uid_attr = UIDNumber
+
+# Mapping for the GSSAPI Principal name
+#GSS_principal_attr = GSSAuthName
+
+# Mapping for the account name attribute (usually uid)
+# The value for this attribute must match the value of 
+# the group member attribute - NFSv4_member_attr
+#NFSv4_acctname_attr = uid
+
+# Mapping for the group object class
+#NFSv4_group_objectclass = NFSv4RemoteGroup
+
+# Mapping for the GID attribute
+#NFSv4_gid_attr = GIDNumber
+
+# Mapping for the Group NFSv4 name
+#NFSv4_group_attr = NFSv4Name
+
+# Mapping for the Group member attribute (usually memberUID)
+# The value of this attribute must match the value of NFSv4_acctname_attr
+#NFSv4_member_attr = memberUID
diff --git a/config-archive/etc/init.d/bluetooth b/config-archive/etc/init.d/bluetooth
new file mode 100755 (executable)
index 0000000..6339f99
--- /dev/null
@@ -0,0 +1,33 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/bluetooth-init.d,v 1.2 2011/03/20 16:57:35 pacho Exp $
+
+depend() {
+       after coldplug
+       need dbus localmount hostname
+}
+
+start() {
+       ebegin "Starting Bluetooth"
+
+       udevadm trigger --subsystem-match=bluetooth --action=add
+       eend $?
+
+       if [ "${RFCOMM_ENABLE}" = "true" -a -x /usr/bin/rfcomm ]; then
+               if [ -f "${RFCOMM_CONFIG}" ]; then
+                       eindent
+                       ebegin "Starting rfcomm"
+                       /usr/bin/rfcomm -f "${RFCOMM_CONFIG}" bind all
+                       eoutdent
+                       eend $?
+               else
+                       ewarn "Not enabling rfcomm because RFCOMM_CONFIG does not exists"
+               fi
+       fi
+}
+
+stop() {
+       ebegin "Shutting down Bluetooth"
+       eend 0
+}
diff --git a/config-archive/etc/init.d/bluetooth.dist b/config-archive/etc/init.d/bluetooth.dist
new file mode 100755 (executable)
index 0000000..9280f93
--- /dev/null
@@ -0,0 +1,19 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/bluetooth-init.d-r1,v 1.1 2012/01/09 23:01:55 pacho Exp $
+
+depend() {
+       after coldplug
+       need dbus localmount hostname
+}
+
+start() {
+       ebegin "Udev coldplug of bluetooth devices"
+       udevadm trigger --subsystem-match=bluetooth --action=add
+       eend $?
+}
+
+stop() {
+       return 0
+}
diff --git a/config-archive/etc/init.d/bootmisc b/config-archive/etc/init.d/bootmisc
new file mode 100755 (executable)
index 0000000..35af097
--- /dev/null
@@ -0,0 +1,171 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+depend()
+{
+       need localmount
+       before logger
+       after clock sysctl
+       keyword -prefix -timeout
+}
+
+dir_writeable()
+{
+       mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
+}
+
+: ${wipe_tmp:=${WIPE_TMP:-yes}}
+: ${log_dmesg:=${LOG_DMESG:-yes}}
+
+cleanup_tmp_dir()
+{
+       local dir="$1"
+
+       if ! [ -d "$dir" ]; then
+               mkdir -p "$dir" || return $?
+       fi
+       dir_writeable "$dir" || return 1
+       chmod a+rwt "$dir" 2> /dev/null
+       cd "$dir" || return 1
+       if yesno $wipe_tmp; then
+               ebegin "Wiping $dir directory"
+
+               # Faster than raw find
+               if ! rm -rf -- [^ajlq\.]* 2>/dev/null ; then
+                       # Blah, too many files
+                       find . -maxdepth 1 -name '[^ajlq\.]*' -exec rm -rf -- {} +
+               fi
+
+               # pam_mktemp creates a .private directory within which
+               # each user gets a private directory with immutable
+               # bit set; remove the immutable bit before trying to
+               # remove it.
+               [ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null
+
+               # Prune the paths that are left
+               find . -maxdepth 1 \
+                       ! -name . \
+                       ! -name lost+found \
+                       ! -name quota.user \
+                       ! -name aquota.user \
+                       ! -name quota.group \
+                       ! -name aquota.group \
+                       ! -name journal \
+                       -exec rm -rf -- {} +
+               eend 0
+       else
+               ebegin "Cleaning $dir directory"
+               rm -rf -- .X*-lock esrv* kio* \
+                       jpsock.* .fam* .esd* \
+                       orbit-* ssh-* ksocket-* \
+                       .*-unix
+               eend 0
+       fi
+}
+
+mkutmp()
+{
+       : >"$1"
+       # Not all systems have the utmp group
+       chgrp utmp "$1" 2>/dev/null
+       chmod 0664 "$1"
+}
+
+start()
+{
+       # Remove any added console dirs
+       rm -rf "$RC_LIBEXECDIR"/console/*
+
+       local logw=false runw=false extra=
+       # Ensure that our basic dirs exist
+       [ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
+       for x in /var/log /var/run /tmp $extra; do
+               if ! [ -d $x ]; then
+                       if ! mkdir -p $x; then
+                               eend 1 "failed to create needed directory $x"
+                               return 1
+                       fi
+               fi
+       done
+
+       if dir_writeable /var/run; then
+               ebegin "Creating user login records"
+               local xtra=
+               [ "$RC_UNAME" = NetBSD ] && xtra=x
+               for x in "" $xtra; do
+                       mkutmp /var/run/utmp$x
+               done
+               [ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
+               eend 0
+
+               ebegin "Cleaning /var/run"
+               for x in $(find /var/run ! -type d ! -name utmp \
+                       ! -name random-seed ! -name dev.db \
+                       ! -name ld-elf.so.hints ! -name ld.so.hints);
+               do
+                       # Clean stale sockets
+                       if [ -S "$x" ]; then
+                               if type fuser >/dev/null 2>&1; then
+                                       fuser "$x" >/dev/null 2>&1 || rm -- "$x"
+                               else
+                                       rm -- "$x"
+                               fi
+                       fi
+                       [ ! -f "$x" ] && continue
+                       # Do not remove pidfiles of already running daemons
+                       case "$x" in
+                               *.pid)
+                                       start-stop-daemon --test --quiet \
+                                       --stop --pidfile "$x" && continue
+                               ;;
+                       esac
+                       rm -f -- "$x"
+               done
+               eend 0
+       fi
+
+       # Clean up /tmp directories
+       local tmp=
+       for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
+               cleanup_tmp_dir "$tmp"
+       done
+
+       if dir_writeable /tmp; then
+               # Make sure our X11 stuff have the correct permissions
+               # Omit the chown as bootmisc is run before network is up
+               # and users may be using lame LDAP auth #139411
+               rm -rf /tmp/.ICE-unix /tmp/.X11-unix
+               mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
+               chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
+               if [ -x /sbin/restorecon ]; then
+                       restorecon /tmp/.ICE-unix /tmp/.X11-unix
+               fi
+       fi
+
+       if yesno $log_dmesg; then
+               if $logw || dir_writeable /var/log; then
+                       # Create an 'after-boot' dmesg log
+                       if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
+                               dmesg > /var/log/dmesg
+                               chmod 640 /var/log/dmesg
+                       fi
+               fi
+       fi
+
+       [ -w /etc/nologin ] && rm -f /etc/nologin
+       return 0
+}
+
+stop()
+{
+       # Write a halt record if we're shutting down
+       if [ "$RC_RUNLEVEL" = shutdown ]; then
+               [ "$RC_UNAME" = Linux ] && halt -w
+               if [ "$RC_SYS" = OPENVZ ]; then
+                       yesno $RC_REBOOT && printf "" >/reboot
+               fi
+       fi
+
+       return 0
+}
diff --git a/config-archive/etc/init.d/bootmisc.dist b/config-archive/etc/init.d/bootmisc.dist
new file mode 100755 (executable)
index 0000000..0e03938
--- /dev/null
@@ -0,0 +1,204 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+depend()
+{
+       need localmount
+       before logger
+       after clock sysctl
+       keyword -prefix -timeout
+}
+
+dir_writable()
+{
+       mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
+}
+
+: ${wipe_tmp:=${WIPE_TMP:-yes}}
+: ${log_dmesg:=${LOG_DMESG:-yes}}
+
+cleanup_tmp_dir()
+{
+       local dir="$1"
+
+       if ! [ -d "$dir" ]; then
+               mkdir -p "$dir" || return $?
+       fi
+       dir_writable "$dir" || return 1
+       chmod a+rwt "$dir" 2> /dev/null
+       cd "$dir" || return 1
+       if yesno $wipe_tmp; then
+               ebegin "Wiping $dir directory"
+
+               # Faster than raw find
+               if ! rm -rf -- [^ajlq\.]* 2>/dev/null ; then
+                       # Blah, too many files
+                       find . -maxdepth 1 -name '[^ajlq\.]*' -exec rm -rf -- {} +
+               fi
+
+               # pam_mktemp creates a .private directory within which
+               # each user gets a private directory with immutable
+               # bit set; remove the immutable bit before trying to
+               # remove it.
+               [ -d /tmp/.private ] && chattr -R -a /tmp/.private 2> /dev/null
+
+               # Prune the paths that are left
+               find . -maxdepth 1 \
+                       ! -name . \
+                       ! -name lost+found \
+                       ! -name quota.user \
+                       ! -name aquota.user \
+                       ! -name quota.group \
+                       ! -name aquota.group \
+                       ! -name journal \
+                       -exec rm -rf -- {} +
+               eend 0
+       else
+               ebegin "Cleaning $dir directory"
+               rm -rf -- .X*-lock esrv* kio* \
+                       jpsock.* .fam* .esd* \
+                       orbit-* ssh-* ksocket-* \
+                       .*-unix
+               eend 0
+       fi
+}
+
+mkutmp()
+{
+       : >"$1"
+       # Not all systems have the utmp group
+       chgrp utmp "$1" 2>/dev/null
+       chmod 0664 "$1"
+}
+
+migrate_to_run()
+{
+       src="$1"
+       dst="$2"
+       if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
+               ewarn "$src does not point to $dst."
+               ewarn "Setting $src to point to $dst."
+               rm $src
+       elif [ ! -L $src -a -d $src ]; then
+               ebegin "Migrating $src to $dst"
+               cp -a $src/* $dst/
+               rm -rf $src
+               eend $?
+       fi
+       # If $src doesn't exist at all, just run this
+       if [ ! -e $src ]; then
+               ln -s $dst $src
+       fi
+}
+
+start()
+{
+       # Remove any added console dirs
+       rm -rf "$RC_LIBEXECDIR"/console/*
+
+       local logw=false runw=false extra=
+       # Ensure that our basic dirs exist
+       if [ "$RC_UNAME" = Linux ]; then
+               # Satisfy Linux FHS
+               extra=/var/lib/misc
+               if [ ! -d /run ]; then
+                       extra="/var/run $extra"
+               fi
+       else
+               extra=/var/run
+       fi
+       for x in /var/log /tmp $extra; do
+               if ! [ -d $x ]; then
+                       if ! mkdir -p $x; then
+                               eend 1 "failed to create needed directory $x"
+                               return 1
+                       fi
+               fi
+       done
+
+       if [ "$RC_UNAME" = Linux -a -d /run ] && false; then
+               migrate_to_run  /var/lock /run/lock
+               migrate_to_run  /var/run /run
+       fi
+
+       if dir_writable /var/run; then
+               ebegin "Creating user login records"
+               local xtra=
+               [ "$RC_UNAME" = NetBSD ] && xtra=x
+               for x in "" $xtra; do
+                       mkutmp /var/run/utmp$x
+               done
+               [ -e /var/log/wtmp ] || mkutmp /var/log/wtmp
+               eend 0
+
+               ebegin "Cleaning /var/run"
+               for x in $(find /var/run ! -type d ! -name utmp \
+                       ! -name random-seed ! -name dev.db \
+                       ! -name ld-elf.so.hints ! -name ld.so.hints);
+               do
+                       # Clean stale sockets
+                       if [ -S "$x" ]; then
+                               if type fuser >/dev/null 2>&1; then
+                                       fuser "$x" >/dev/null 2>&1 || rm -- "$x"
+                               else
+                                       rm -- "$x"
+                               fi
+                       fi
+                       [ ! -f "$x" ] && continue
+                       # Do not remove pidfiles of already running daemons
+                       case "$x" in
+                               *.pid)
+                                       start-stop-daemon --test --quiet \
+                                       --stop --pidfile "$x" && continue
+                               ;;
+                       esac
+                       rm -f -- "$x"
+               done
+               eend 0
+       fi
+
+       # Clean up /tmp directories
+       local tmp=
+       for tmp in ${clean_tmp_dirs:-${wipe_tmp_dirs-/tmp}}; do
+               cleanup_tmp_dir "$tmp"
+       done
+
+       if dir_writable /tmp; then
+               # Make sure our X11 stuff have the correct permissions
+               # Omit the chown as bootmisc is run before network is up
+               # and users may be using lame LDAP auth #139411
+               rm -rf /tmp/.ICE-unix /tmp/.X11-unix
+               mkdir -p /tmp/.ICE-unix /tmp/.X11-unix
+               chmod 1777 /tmp/.ICE-unix /tmp/.X11-unix
+               if [ -x /sbin/restorecon ]; then
+                       restorecon /tmp/.ICE-unix /tmp/.X11-unix
+               fi
+       fi
+
+       if yesno $log_dmesg; then
+               if $logw || dir_writable /var/log; then
+                       # Create an 'after-boot' dmesg log
+                       if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
+                               dmesg > /var/log/dmesg
+                               chmod 640 /var/log/dmesg
+                       fi
+               fi
+       fi
+
+       [ -w /etc/nologin ] && rm -f /etc/nologin
+       return 0
+}
+
+stop()
+{
+       # Write a halt record if we're shutting down
+       if [ "$RC_RUNLEVEL" = shutdown ]; then
+               [ "$RC_UNAME" = Linux ] && halt -w
+               if [ "$RC_SYS" = OPENVZ ]; then
+                       yesno $RC_REBOOT && printf "" >/reboot
+               fi
+       fi
+
+       return 0
+}
diff --git a/config-archive/etc/init.d/consolefont b/config-archive/etc/init.d/consolefont
new file mode 100755 (executable)
index 0000000..ca9ee31
--- /dev/null
@@ -0,0 +1,67 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Sets a font for the consoles."
+
+depend()
+{
+       need localmount termencoding
+       after hotplug bootmisc
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+start()
+{
+       ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+       consolefont=${consolefont:-${CONSOLEFONT}}
+       unicodemap=${unicodemap:-${UNICODEMAP}}
+       consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
+
+       if [ -z "$consolefont" ]; then
+               ebegin "Using the default console font"
+               eend 0
+               return 0
+       fi
+
+       if [ "$ttyn" = 0 ]; then
+               ebegin "Skipping font setup (rc_tty_number == 0)"
+               eend 0
+               return 0
+       fi
+
+       local x= param= sf_param= retval=0 ttydev=/dev/tty
+
+       # Get additional parameters
+       if [ -n "$consoletranslation" ]; then
+               param="$param -m $consoletranslation"
+       fi
+       if [ -n "${unicodemap}" ]; then
+               param="$param -u $unicodemap"
+       fi
+
+       # Set the console font
+       ebegin "Setting console font [$consolefont]"
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+       x=1
+       while [ $x -le $ttyn ]; do
+               if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then
+                       retval=1
+                       break
+               fi
+               x=$(($x + 1))
+       done
+       eend $retval
+
+       # Store the last font so we can use it ASAP on boot
+       if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               for font in /usr/share/consolefonts/"$consolefont".*; do
+                       :
+               done
+               cp "$font" "$RC_LIBEXECDIR"/console
+               echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
+       fi
+
+       return $retval
+}
diff --git a/config-archive/etc/init.d/consolefont.dist b/config-archive/etc/init.d/consolefont.dist
new file mode 100755 (executable)
index 0000000..f989d2d
--- /dev/null
@@ -0,0 +1,67 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Sets a font for the consoles."
+
+depend()
+{
+       need localmount termencoding
+       after hotplug bootmisc
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+start()
+{
+       ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+       consolefont=${consolefont:-${CONSOLEFONT}}
+       unicodemap=${unicodemap:-${UNICODEMAP}}
+       consoletranslation=${consoletranslation:-${CONSOLETRANSLATION}}
+
+       if [ -z "$consolefont" ]; then
+               ebegin "Using the default console font"
+               eend 0
+               return 0
+       fi
+
+       if [ "$ttyn" = 0 ]; then
+               ebegin "Skipping font setup (rc_tty_number == 0)"
+               eend 0
+               return 0
+       fi
+
+       local x= param= sf_param= retval=0 ttydev=/dev/tty
+
+       # Get additional parameters
+       if [ -n "$consoletranslation" ]; then
+               param="$param -m $consoletranslation"
+       fi
+       if [ -n "${unicodemap}" ]; then
+               param="$param -u $unicodemap"
+       fi
+
+       # Set the console font
+       ebegin "Setting console font [$consolefont]"
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+       x=1
+       while [ $x -le $ttyn ]; do
+               if ! setfont $consolefont $param -C $ttydev$x >/dev/null; then
+                       retval=1
+                       break
+               fi
+               : $(( x += 1 ))
+       done
+       eend $retval
+
+       # Store the last font so we can use it ASAP on boot
+       if [ $retval -eq 0 -a -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               for font in /usr/share/consolefonts/"$consolefont".*; do
+                       :
+               done
+               cp "$font" "$RC_LIBEXECDIR"/console
+               echo "${font##*/}" >"$RC_LIBEXECDIR"/console/font
+       fi
+
+       return $retval
+}
diff --git a/config-archive/etc/init.d/fsck b/config-archive/etc/init.d/fsck
new file mode 100755 (executable)
index 0000000..3960553
--- /dev/null
@@ -0,0 +1,109 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Check and repair filesystems according to /etc/fstab"
+_IFS="
+"
+
+depend()
+{
+       use dev clock modules
+       keyword -jail -openvz -prefix -timeout -vserver -lxc
+}
+
+_abort() {
+       rc-abort
+       return 1
+}
+
+# We should only reboot when first booting
+_reboot() {
+       if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then
+               reboot "$@"
+               _abort || return 1
+       fi
+}
+
+_forcefsck()
+{
+       [ -e /forcefsck ] || get_bootparam forcefsck
+}
+
+start()
+{
+       local fsck_opts= p= check_extra=
+
+       if [ -e /fastboot ]; then
+               ewarn "Skipping fsck due to /fastboot"
+               return 0
+       fi
+       if _forcefsck; then
+               fsck_opts="$fsck_opts -f"
+               check_extra="(check forced)"
+       elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then
+               ewarn "Skipping fsck due to not being on AC power"
+               return 0
+       fi
+
+       if [ -n "$fsck_passno" ]; then
+               check_extra="[passno $fsck_passno] $check_extra"
+       fi
+       ebegin "Checking local filesystems $check_extra"
+       for p in $fsck_passno; do
+               local IFS="$_IFS"
+               case "$p" in
+                       [0-9]*) p="=$p";;
+               esac
+               set -- "$@" $(fstabinfo --passno "$p")
+               unset IFS
+       done
+
+       if [ "$RC_UNAME" = Linux ]; then
+               fsck_opts="$fsck_opts -C0 -T"
+               if [ -z "$fsck_passno" ]; then
+                       fsck_args=${fsck_args--A -p}
+                       if echo 2>/dev/null >/.test.$$; then
+                               rm -f /.test.$$
+                               fsck_opts="$fsck_opts -R"
+                       fi
+               fi
+       fi
+
+       trap : INT QUIT
+       fsck ${fsck_args--p} $fsck_opts "$@"
+       case $? in
+       0)      eend 0; return 0;;
+       1)      ewend 1 "Filesystems repaired"; return 0;;
+       2|3)    if [ "$RC_UNAME" = Linux ]; then
+                       ewend 1 "Filesystems repaired, but reboot needed"
+                       _reboot -f
+               else
+                       ewend 1 "Filesystems still have errors;" \
+                               "manual fsck required"
+                       _abort
+               fi;;
+       4)      if [ "$RC_UNAME" = Linux ]; then
+                       ewend 1 "Fileystem errors left uncorrected, aborting"
+                       _abort
+               else
+                       ewend 1 "Filesystems repaired, but reboot needed"
+                       _reboot
+               fi;;
+       8)      ewend 1 "Operational error"; return 0;;
+       12)     ewend 1 "fsck interupted";;
+       *)      eend 2 "Filesystems couldn't be fixed";;
+       esac
+       _abort || return 1
+}
+
+stop()
+{
+       # Fake function so we always shutdown correctly.
+       _abort() { return 0; }
+       _reboot() { return 0; }
+       _forcefsck() { return 1; }
+
+       yesno $fsck_shutdown && start
+       return 0
+}
diff --git a/config-archive/etc/init.d/fsck.dist b/config-archive/etc/init.d/fsck.dist
new file mode 100755 (executable)
index 0000000..9cf35b8
--- /dev/null
@@ -0,0 +1,120 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Check and repair filesystems according to /etc/fstab"
+_IFS="
+"
+
+depend()
+{
+       use dev clock modules
+       keyword -jail -openvz -prefix -timeout -vserver -lxc
+}
+
+_abort() {
+       rc-abort
+       return 1
+}
+
+# We should only reboot when first booting
+_reboot() {
+       if [ "$RC_RUNLEVEL" = "$RC_BOOTLEVEL" ]; then
+               reboot "$@"
+               _abort || return 1
+       fi
+}
+
+_forcefsck()
+{
+       [ -e /forcefsck ] || get_bootparam forcefsck
+}
+
+start()
+{
+       local fsck_opts= p= check_extra=
+
+       if [ -e /fastboot ]; then
+               ewarn "Skipping fsck due to /fastboot"
+               return 0
+       fi
+       if _forcefsck; then
+               fsck_opts="$fsck_opts -f"
+               check_extra="(check forced)"
+       elif ! yesno ${fsck_on_battery:-YES} && ! on_ac_power; then
+               ewarn "Skipping fsck due to not being on AC power"
+               return 0
+       fi
+
+       if [ -n "$fsck_passno" ]; then
+               check_extra="[passno $fsck_passno] $check_extra"
+               if [ -n "$fsck_mnt" ]; then
+                       eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
+                       return 1
+               fi
+       fi
+       ebegin "Checking local filesystems $check_extra"
+       # Append passno mounts
+       for p in $fsck_passno; do
+               local IFS="$_IFS"
+               case "$p" in
+                       [0-9]*) p="=$p";;
+               esac
+               set -- "$@" $(fstabinfo --passno "$p")
+               unset IFS
+       done
+       # Append custom mounts
+       for m in $fsck_mnt ; do
+               local IFS="$_IFS"
+               set -- "$@" "$m"
+               unset IFS
+       done
+
+       if [ "$RC_UNAME" = Linux ]; then
+               fsck_opts="$fsck_opts -C0 -T"
+               if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
+                       fsck_args=${fsck_args--A -p}
+                       if echo 2>/dev/null >/.test.$$; then
+                               rm -f /.test.$$
+                               fsck_opts="$fsck_opts -R"
+                       fi
+               fi
+       fi
+
+       trap : INT QUIT
+       fsck ${fsck_args--p} $fsck_opts "$@"
+       case $? in
+       0)      eend 0; return 0;;
+       1)      ewend 1 "Filesystems repaired"; return 0;;
+       2|3)    if [ "$RC_UNAME" = Linux ]; then
+                       ewend 1 "Filesystems repaired, but reboot needed"
+                       _reboot -f
+               else
+                       ewend 1 "Filesystems still have errors;" \
+                               "manual fsck required"
+                       _abort
+               fi;;
+       4)      if [ "$RC_UNAME" = Linux ]; then
+                       ewend 1 "Fileystem errors left uncorrected, aborting"
+                       _abort
+               else
+                       ewend 1 "Filesystems repaired, but reboot needed"
+                       _reboot
+               fi;;
+       8)      ewend 1 "Operational error"; return 0;;
+       12)     ewend 1 "fsck interrupted";;
+       *)      eend 2 "Filesystems couldn't be fixed";;
+       esac
+       _abort || return 1
+}
+
+stop()
+{
+       # Fake function so we always shutdown correctly.
+       _abort() { return 0; }
+       _reboot() { return 0; }
+       _forcefsck() { return 1; }
+
+       yesno $fsck_shutdown && start
+       return 0
+}
diff --git a/config-archive/etc/init.d/hwclock b/config-archive/etc/init.d/hwclock
new file mode 100755 (executable)
index 0000000..20a9859
--- /dev/null
@@ -0,0 +1,146 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+extra_commands="save show"
+
+description="Sets the local clock to UTC or Local Time."
+description_save="Saves the current time in the BIOS."
+description_show="Displays the current time in the BIOS."
+
+: ${clock_adjfile:=${CLOCK_ADJFILE}}
+: ${clock_args:=${CLOCK_OPTS}}
+: ${clock_systohc:=${CLOCK_SYSTOHC}}
+: ${clock:=${CLOCK:-UTC}}
+if [ "$clock" = "UTC" ]; then
+       utc="UTC"
+       utc_cmd="--utc"
+else
+       utc="Local Time"
+       utc_cmd="--localtime"
+fi
+
+depend()
+{
+       provide clock
+       if yesno $clock_adjfile; then
+               use root
+       else
+               before *
+       fi
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+setupopts()
+{
+       case "$(uname -m)" in
+               s390*)
+                       utc="s390"
+                       ;;
+               *)
+                       if [ -e /proc/devices ] && \
+                               grep -q " cobd$" /proc/devices
+                       then
+                               utc="coLinux"
+                       fi
+                       ;;
+       esac
+
+       case "$utc" in
+               UTC|Local" "Time);;
+               *) unset utc_cmd;;
+       esac
+}
+
+# hwclock doesn't always return non zero on error
+_hwclock()
+{
+       local err="$(hwclock "$@" 2>&1 >/dev/null)"
+
+       [ -z "$err" ] && return 0
+       echo "${err}" >&2
+       return 1
+}
+
+start()
+{
+       local retval=0 errstr=""
+       setupopts
+
+       if [ -z "$utc_cmd" ]; then
+               ewarn "Not setting clock for $utc system"
+               return 0
+       fi
+
+       ebegin "Setting system clock using the hardware clock [$utc]"
+       if [ -e /proc/modules ]; then
+               local rtc=
+               for rtc in /dev/rtc /dev/rtc[0-9]*; do
+                       [ -e "$rtc" ] && break
+               done
+               if [ ! -e "${rtc}" ]; then
+                       modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc
+               fi
+       fi
+
+       if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
+               _hwclock --adjust $utc_cmd
+               retval=$(($retval + $?))
+       fi
+
+       # If setting UTC, don't bother to run hwclock when first booting
+       # as that's the default
+       if [ "$PREVLEVEL" != N -o \
+               "$utc_cmd" != --utc -o \
+               -n "$clock_args" ];
+       then
+               if yesno $clock_hctosys; then
+                       _hwclock --hctosys $utc_cmd $clock_args
+               else
+                       _hwclock --systz $utc_cmd $clock_args
+               fi
+               retval=$(($retval + $?))
+       fi
+
+       eend $retval "Failed to set the system clock"
+
+       return 0
+}
+
+stop()
+{
+       # Don't tweak the hardware clock on LiveCD halt.
+       [ -n "$CDBOOT" ] && return 0
+       yesno $clock_systohc || return 0
+
+       local retval=0 errstr=""
+       setupopts
+
+       [ -z "$utc_cmd" ] && return 0
+
+       ebegin "Setting hardware clock using the system clock" "[$utc]"
+
+       if ! yesno $clock_adjfile; then
+               # Some implementations don't handle adjustments
+               if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
+                       utc_cmd="$utc_cmd --noadjfile"
+               fi
+       fi
+
+       _hwclock --systohc $utc_cmd $clock_args
+       retval=$?
+
+       eend $retval "Failed to sync clocks"
+}
+
+save()
+{
+       clock_systohc=yes
+       stop
+}
+
+show()
+{
+       setupopts
+       hwclock --show "$utc_cmd" $clock_args
+}
diff --git a/config-archive/etc/init.d/hwclock.dist b/config-archive/etc/init.d/hwclock.dist
new file mode 100755 (executable)
index 0000000..28d675a
--- /dev/null
@@ -0,0 +1,146 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+extra_commands="save show"
+
+description="Sets the local clock to UTC or Local Time."
+description_save="Saves the current time in the BIOS."
+description_show="Displays the current time in the BIOS."
+
+: ${clock_adjfile:=${CLOCK_ADJFILE}}
+: ${clock_args:=${CLOCK_OPTS}}
+: ${clock_systohc:=${CLOCK_SYSTOHC}}
+: ${clock:=${CLOCK:-UTC}}
+if [ "$clock" = "UTC" ]; then
+       utc="UTC"
+       utc_cmd="--utc"
+else
+       utc="Local Time"
+       utc_cmd="--localtime"
+fi
+
+depend()
+{
+       provide clock
+       if yesno $clock_adjfile; then
+               use root
+       else
+               before *
+       fi
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+setupopts()
+{
+       case "$(uname -m)" in
+               s390*)
+                       utc="s390"
+                       ;;
+               *)
+                       if [ -e /proc/devices ] && \
+                               grep -q " cobd$" /proc/devices
+                       then
+                               utc="coLinux"
+                       fi
+                       ;;
+       esac
+
+       case "$utc" in
+               UTC|Local" "Time);;
+               *) unset utc_cmd;;
+       esac
+}
+
+# hwclock doesn't always return non zero on error
+_hwclock()
+{
+       local err="$(hwclock "$@" 2>&1 >/dev/null)"
+
+       [ -z "$err" ] && return 0
+       echo "${err}" >&2
+       return 1
+}
+
+start()
+{
+       local retval=0 errstr=""
+       setupopts
+
+       if [ -z "$utc_cmd" ]; then
+               ewarn "Not setting clock for $utc system"
+               return 0
+       fi
+
+       ebegin "Setting system clock using the hardware clock [$utc]"
+       if [ -e /proc/modules ]; then
+               local rtc=
+               for rtc in /dev/rtc /dev/rtc[0-9]*; do
+                       [ -e "$rtc" ] && break
+               done
+               if [ ! -e "${rtc}" ]; then
+                       modprobe -q rtc-cmos || modprobe -q rtc || modprobe -q genrtc
+               fi
+       fi
+
+       if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
+               _hwclock --adjust $utc_cmd
+               : $(( retval += $? ))
+       fi
+
+       # If setting UTC, don't bother to run hwclock when first booting
+       # as that's the default
+       if [ "$PREVLEVEL" != N -o \
+               "$utc_cmd" != --utc -o \
+               -n "$clock_args" ];
+       then
+               if yesno $clock_hctosys; then
+                       _hwclock --hctosys $utc_cmd $clock_args
+               else
+                       _hwclock --systz $utc_cmd $clock_args
+               fi
+               : $(( retval += $? ))
+       fi
+
+       eend $retval "Failed to set the system clock"
+
+       return 0
+}
+
+stop()
+{
+       # Don't tweak the hardware clock on LiveCD halt.
+       [ -n "$CDBOOT" ] && return 0
+       yesno $clock_systohc || return 0
+
+       local retval=0 errstr=""
+       setupopts
+
+       [ -z "$utc_cmd" ] && return 0
+
+       ebegin "Setting hardware clock using the system clock" "[$utc]"
+
+       if ! yesno $clock_adjfile; then
+               # Some implementations don't handle adjustments
+               if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
+                       utc_cmd="$utc_cmd --noadjfile"
+               fi
+       fi
+
+       _hwclock --systohc $utc_cmd $clock_args
+       retval=$?
+
+       eend $retval "Failed to sync clocks"
+}
+
+save()
+{
+       clock_systohc=yes
+       stop
+}
+
+show()
+{
+       setupopts
+       hwclock --show "$utc_cmd" $clock_args
+}
diff --git a/config-archive/etc/init.d/keymaps b/config-archive/etc/init.d/keymaps
new file mode 100755 (executable)
index 0000000..8ab72fd
--- /dev/null
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Applies a keymap for the consoles."
+
+depend()
+{
+       need localmount termencoding
+       after bootmisc
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+start()
+{
+       ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+       : ${unicode:=$UNICODE}
+       : ${keymap:=$KEYMAP}
+       : ${extended_keymaps:=$EXTENDED_KEYMAPS}
+       : ${windowkeys:=$SET_WINDOWSKEYS}
+       : ${fix_euro:=$FIX_EURO}
+       : ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
+
+       if [ -z "$keymap" ]; then
+               eerror "You need to setup keymap in /etc/conf.d/keymaps first"
+               return 1
+       fi
+
+       local ttydev=/dev/tty n=
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+
+       # Force linux keycodes for PPC.
+       if [ -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes ]; then
+               echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
+       fi
+
+       local wkeys= kmode="-a" msg="ASCII"
+       if yesno $unicode; then
+               kmode="-u"
+               msg="UTF-8"
+       fi
+       yesno $windowkeys && wkeys="windowkeys"
+
+       # Set terminal encoding to either ASCII or UNICODE.
+       # See utf-8(7) for more information.
+       ebegin "Setting keyboard mode [$msg]"
+       n=1
+       while [ $n -le $ttyn ]; do
+               kbd_mode $kmode -C $ttydev$n
+               n=$(($n + 1))
+       done
+       eend 0
+
+       ebegin "Loading key mappings [$keymap]"
+       loadkeys -q $wkeys $keymap $extended_keymaps
+       eend $? "Error loading key mappings" || return $?
+
+       if yesno $fix_euro; then
+               ebegin "Fixing font for euro symbol"
+               # Fix some fonts displaying the Euro, #173528.
+               echo "altgr keycode 18 = U+20AC" | loadkeys -q
+               eend $?
+       fi
+
+       # Save the keymapping for use immediately at boot
+       if [ -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               dumpkeys >"$RC_LIBEXECDIR"/console/keymap
+       fi
+}
diff --git a/config-archive/etc/init.d/keymaps.dist b/config-archive/etc/init.d/keymaps.dist
new file mode 100755 (executable)
index 0000000..211fdd3
--- /dev/null
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2008 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Applies a keymap for the consoles."
+
+depend()
+{
+       need localmount termencoding
+       after bootmisc
+       keyword -openvz -prefix -uml -vserver -xenu -lxc
+}
+
+start()
+{
+       ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+       : ${unicode:=$UNICODE}
+       : ${keymap:=$KEYMAP}
+       : ${extended_keymaps:=$EXTENDED_KEYMAPS}
+       : ${windowkeys:=$SET_WINDOWSKEYS}
+       : ${fix_euro:=$FIX_EURO}
+       : ${dumpkeys_charset:=${DUMPKEYS_CHARSET}}
+
+       if [ -z "$keymap" ]; then
+               eerror "You need to setup keymap in /etc/conf.d/keymaps first"
+               return 1
+       fi
+
+       local ttydev=/dev/tty n=
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+
+       # Force linux keycodes for PPC.
+       if [ -f /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes ]; then
+               echo 1 > /proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes
+       fi
+
+       local wkeys= kmode="-a" msg="ASCII"
+       if yesno $unicode; then
+               kmode="-u"
+               msg="UTF-8"
+       fi
+       yesno $windowkeys && wkeys="windowkeys"
+
+       # Set terminal encoding to either ASCII or UNICODE.
+       # See utf-8(7) for more information.
+       ebegin "Setting keyboard mode [$msg]"
+       n=1
+       while [ $n -le $ttyn ]; do
+               kbd_mode $kmode -C $ttydev$n
+               : $(( n += 1 ))
+       done
+       eend 0
+
+       ebegin "Loading key mappings [$keymap]"
+       loadkeys -q $wkeys $keymap $extended_keymaps
+       eend $? "Error loading key mappings" || return $?
+
+       if yesno $fix_euro; then
+               ebegin "Fixing font for euro symbol"
+               # Fix some fonts displaying the Euro, #173528.
+               echo "altgr keycode 18 = U+20AC" | loadkeys -q
+               eend $?
+       fi
+
+       # Save the keymapping for use immediately at boot
+       if [ -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               dumpkeys >"$RC_LIBEXECDIR"/console/keymap
+       fi
+}
diff --git a/config-archive/etc/init.d/modules b/config-archive/etc/init.d/modules
new file mode 100755 (executable)
index 0000000..3fa5867
--- /dev/null
@@ -0,0 +1,63 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Loads a user defined list of kernel modules."
+
+depend()
+{
+       use isapnp
+       keyword -openvz -prefix -vserver -lxc
+}
+
+start()
+{
+       # Should not fail if kernel do not have module
+       # support compiled in ...
+       [ ! -f /proc/modules ] && return 0
+
+       local KV x y kv_variant_list
+       KV=$(uname -r)
+       # full $KV
+       kv_variant_list="${KV}"
+       # remove any KV_EXTRA options to just get the full version
+       x=${KV%%-*}
+       # now slowly strip them
+       while [ -n "$x" ] && [ "$x" != "$y" ]; do
+               kv_variant_list="${kv_variant_list} $x"
+               y=$x
+               x=${x%.*}
+       done
+
+       local list= x= xx= y= args= mpargs= cnt=0 a=
+       for x in $kv_variant_list ; do
+               eval list=\$modules_$(shell_var "$x")
+               [ -n "$list" ] && break
+       done
+       [ -z "$list" ] && list=$modules
+
+       for x in $list; do
+               a=${x#*:}
+               if [ "$a" = "$x" ]; then
+                       unset mpargs
+                       ebegin "Loading module $x"
+               else
+                       x=${x%%:*}
+                       mpargs="-o $a"
+                       ebegin "Loading module $x as $a"
+               fi
+               aa=$(shell_var "$a")
+               xx=$(shell_var "$x")
+               for y in $kv_variant_list ; do
+                       eval args=\$module_${aa}_args_$(shell_var "$y")
+                       [ -n "${args}" ] && break
+                       eval args=\$module_${xx}_args_$(shell_var "$y")
+                       [ -n "${args}" ] && break
+               done
+               [ -z "$args" ] && eval args=\$module_${aa}_args
+               [ -z "$args" ] && eval args=\$module_${xx}_args
+               eval modprobe -q "$mpargs" "$x" "$args"
+               eend $? "Failed to load $x" && cnt=$(($cnt + 1))
+       done
+       einfo "Autoloaded $cnt module(s)"
+}
diff --git a/config-archive/etc/init.d/modules.dist b/config-archive/etc/init.d/modules.dist
new file mode 100755 (executable)
index 0000000..17f60ce
--- /dev/null
@@ -0,0 +1,63 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Loads a user defined list of kernel modules."
+
+depend()
+{
+       use isapnp
+       keyword -openvz -prefix -vserver -lxc
+}
+
+start()
+{
+       # Should not fail if kernel do not have module
+       # support compiled in ...
+       [ ! -f /proc/modules ] && return 0
+
+       local KV x y kv_variant_list
+       KV=$(uname -r)
+       # full $KV
+       kv_variant_list="${KV}"
+       # remove any KV_EXTRA options to just get the full version
+       x=${KV%%-*}
+       # now slowly strip them
+       while [ -n "$x" ] && [ "$x" != "$y" ]; do
+               kv_variant_list="${kv_variant_list} $x"
+               y=$x
+               x=${x%.*}
+       done
+
+       local list= x= xx= y= args= mpargs= cnt=0 a=
+       for x in $kv_variant_list ; do
+               eval list=\$modules_$(shell_var "$x")
+               [ -n "$list" ] && break
+       done
+       [ -z "$list" ] && list=$modules
+
+       for x in $list; do
+               a=${x#*:}
+               if [ "$a" = "$x" ]; then
+                       unset mpargs
+                       ebegin "Loading module $x"
+               else
+                       x=${x%%:*}
+                       mpargs="-o $a"
+                       ebegin "Loading module $x as $a"
+               fi
+               aa=$(shell_var "$a")
+               xx=$(shell_var "$x")
+               for y in $kv_variant_list ; do
+                       eval args=\$module_${aa}_args_$(shell_var "$y")
+                       [ -n "${args}" ] && break
+                       eval args=\$module_${xx}_args_$(shell_var "$y")
+                       [ -n "${args}" ] && break
+               done
+               [ -z "$args" ] && eval args=\$module_${aa}_args
+               [ -z "$args" ] && eval args=\$module_${xx}_args
+               eval modprobe -q "$mpargs" "$x" "$args"
+               eend $? "Failed to load $x" && : $(( cnt += 1 ))
+       done
+       einfo "Autoloaded $cnt module(s)"
+}
diff --git a/config-archive/etc/init.d/net.lo b/config-archive/etc/init.d/net.lo
new file mode 100755 (executable)
index 0000000..6f8b5b1
--- /dev/null
@@ -0,0 +1,737 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+MODULESDIR="${RC_LIBEXECDIR}/net"
+MODULESLIST="${RC_SVCDIR}/nettree"
+_config_vars="config routes"
+
+[ -z "${IN_BACKGROUND}" ] && IN_BACKGROUND="NO"
+
+description="Configures network interfaces."
+
+# Handy var so we don't have to embed new lines everywhere for array splitting
+__IFS="
+"
+depend()
+{
+       local IFACE=${RC_SVCNAME#*.}
+       local IFVAR=$(shell_var "${IFACE}")
+
+       need localmount
+       after bootmisc
+       provide net
+       keyword -jail -prefix -vserver
+
+       case "${IFACE}" in
+               lo|lo0);;
+               *) after net.lo net.lo0;;
+       esac
+
+       if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
+               depend_${IFVAR}
+       fi
+
+       local dep= prov=
+       for dep in need use before after provide keyword; do
+               eval prov=\$rc_${dep}_${IFVAR}
+               if [ -n "${prov}" ]; then
+                       ${dep} ${prov}
+               fi
+       done
+}
+
+# Support bash arrays - sigh
+_array_helper()
+{
+       local _a=
+
+       eval _a=\$$1
+       _a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')
+
+       [ -n "${_a}" ] && printf "%s\n" "${_a}"
+}
+
+_get_array()
+{
+       local _a=
+       if [ -n "${BASH}" ]; then
+               case "$(declare -p "$1" 2>/dev/null)" in
+                       "declare -a "*)
+                               ewarn "You are using a bash array for $1."
+                               ewarn "This feature will be removed in the future."
+                               ewarn "Please see net.example for the correct format for $1."
+                               eval "set -- \"\${$1[@]}\""
+                               for _a; do
+                                       printf "%s\n" "${_a}"
+                               done
+                               return 0
+                               ;;
+               esac
+       fi
+
+       _array_helper $1
+}
+
+# Flatten bash arrays to simple strings
+_flatten_array()
+{
+       if [ -n "${BASH}" ]; then
+               case "$(declare -p "$1" 2>/dev/null)" in
+                       "declare -a "*)
+                               ewarn "You are using a bash array for $1."
+                               ewarn "This feature will be removed in the future."
+                               ewarn "Please see net.example for the correct format for $1."
+                               eval "set -- \"\${$1[@]}\""
+                               for x; do
+                                       printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"
+                               done
+                               return 0
+                               ;;
+               esac
+       fi
+
+       _array_helper $1
+}
+
+_wait_for_carrier()
+{
+       local timeout= efunc=einfon
+
+       _has_carrier  && return 0
+
+       eval timeout=\$carrier_timeout_${IFVAR}
+       timeout=${timeout:-${carrier_timeout:-5}}
+
+       # Incase users don't want this nice feature ...
+       [ ${timeout} -le 0 ] && return 0
+
+       yesno ${RC_PARALLEL} && efunc=einfo
+       ${efunc} "Waiting for carrier (${timeout} seconds) "
+       while [ ${timeout} -gt 0 ]; do
+               sleep 1
+               if _has_carrier; then
+                       [ "${efunc}" = "einfon" ] && echo
+                       eend 0
+                       return 0
+               fi
+               timeout=$((${timeout} - 1))
+               [ "${efunc}" = "einfon" ] && printf "."
+       done
+
+       [ "${efunc}" = "einfon" ] && echo
+       eend 1
+       return 1
+}
+
+_netmask2cidr()
+{
+       # Some shells cannot handle hex arithmetic, so we massage it slightly
+       # Buggy shells include FreeBSD sh, dash and busybox.
+       # bash and NetBSD sh don't need this.
+       case $1 in
+               0x*)
+               local hex=${1#0x*} quad=
+               while [ -n "${hex}" ]; do
+                       local lastbut2=${hex#??*}
+                       quad=${quad}${quad:+.}0x${hex%${lastbut2}*}
+                       hex=${lastbut2}
+               done
+               set -- ${quad}
+               ;;
+       esac
+
+       local i= len=
+       local IFS=.
+       for i in $1; do
+               while [ ${i} != "0" ]; do
+                       len=$((${len} + ${i} % 2))
+                       i=$((${i} >> 1))
+               done
+       done
+
+       echo "${len}"
+}
+
+_configure_variables()
+{
+       local var= v= t=
+
+       for var in ${_config_vars}; do
+               local v=
+               for t; do
+                       eval v=\$${var}_${t}
+                       if [ -n "${v}" ]; then
+                               eval ${var}_${IFVAR}=\$${var}_${t}
+                               continue 2
+                       fi
+               done
+       done
+}
+
+_show_address()
+{
+       einfo "received address $(_get_inet_address "${IFACE}")"
+}
+
+# Basically sorts our modules into order and saves the list
+_gen_module_list()
+{
+       local x= f= force=$1
+       if ! ${force} && [ -s "${MODULESLIST}" -a "${MODULESLIST}" -nt "${MODULESDIR}" ]; then
+               local update=false
+               for x in "${MODULESDIR}"/*.sh; do
+                       [ -e "${x}" ] || continue
+                       if [ "${x}" -nt "${MODULESLIST}" ]; then
+                               update=true
+                               break
+                       fi
+               done
+               ${update} || return 0
+       fi
+
+       einfo "Caching network module dependencies"
+       # Run in a subshell to protect the main script
+       (
+       after() {
+               eval ${MODULE}_after="\"\${${MODULE}_after}\${${MODULE}_after:+ }$*\""
+       }
+
+       before() {
+               local mod=${MODULE}
+               local MODULE=
+               for MODULE; do
+                       after "${mod}"
+               done
+       }
+
+       program() {
+               if [ "$1" = "start" -o "$1" = "stop" ]; then
+                       local s="$1"
+                       shift
+                       eval ${MODULE}_program_${s}="\"\${${MODULE}_program_${s}}\${${MODULE}_program_${s}:+ }$*\""
+               else
+                       eval ${MODULE}_program="\"\${${MODULE}_program}\${${MODULE}_program:+ }$*\""
+               fi
+       }
+
+       provide() {
+               eval ${MODULE}_provide="\"\${${MODULE}_provide}\${${MODULE}_provide:+ }$*\""
+               local x
+               for x in $*; do
+                       eval ${x}_providedby="\"\${${MODULE}_providedby}\${${MODULE}_providedby:+ }${MODULE}\""
+               done
+       }
+
+       for MODULE in "${MODULESDIR}"/*.sh; do
+               sh -n "${MODULE}" || continue
+               . "${MODULE}" || continue
+               MODULE=${MODULE#${MODULESDIR}/}
+               MODULE=${MODULE%.sh}
+               eval ${MODULE}_depend
+               MODULES="${MODULES} ${MODULE}"
+       done
+
+       VISITED=
+       SORTED=
+       visit() {
+               case " ${VISITED} " in
+                       *" $1 "*) return;;
+               esac
+               VISITED="${VISITED} $1"
+
+               eval AFTER=\$${1}_after
+               for MODULE in ${AFTER}; do
+                       eval PROVIDEDBY=\$${MODULE}_providedby
+                       if [ -n "${PROVIDEDBY}" ]; then
+                               for MODULE in ${PROVIDEDBY}; do
+                                       visit "${MODULE}"
+                               done
+                       else
+                               visit "${MODULE}"
+                       fi
+               done
+
+               eval PROVIDE=\$${1}_provide
+               for MODULE in ${PROVIDE}; do
+                       visit "${MODULE}"
+               done
+
+               eval PROVIDEDBY=\$${1}_providedby
+               [ -z "${PROVIDEDBY}" ] && SORTED="${SORTED} $1"
+       }
+
+       for MODULE in ${MODULES}; do
+               visit "${MODULE}"
+       done
+
+       printf "" > "${MODULESLIST}"
+       i=0
+       for MODULE in ${SORTED}; do
+               eval PROGRAM=\$${MODULE}_program
+               eval PROGRAM_START=\$${MODULE}_program_start
+               eval PROGRAM_STOP=\$${MODULE}_program_stop
+               eval PROVIDE=\$${MODULE}_provide
+               echo "module_${i}='${MODULE}'" >> "${MODULESLIST}"
+               echo "module_${i}_program='${PROGRAM}'" >> "${MODULESLIST}"
+               echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
+               echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
+               echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
+               i=$((${i} + 1))
+       done
+       echo "module_${i}=" >> "${MODULESLIST}"
+       )
+
+       return 0
+}
+
+_load_modules()
+{
+       local starting=$1 mymods=
+
+       # Ensure our list is up to date
+       _gen_module_list false
+       if ! . "${MODULESLIST}"; then
+               _gen_module_list true
+               . "${MODULESLIST}"
+       fi
+
+       MODULES=
+       if [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               eval mymods=\$modules_${IFVAR}
+               [ -z "${mymods}" ] && mymods=${modules}
+       fi
+
+       local i=-1 x= mod= f= provides=
+       while true; do
+               i=$((${i} + 1))
+               eval mod=\$module_${i}
+               [ -z "${mod}" ] && break
+               [ -e "${MODULESDIR}/${mod}.sh" ] || continue
+
+               eval set -- \$module_${i}_program
+               if [ -n "$1" ]; then
+                       x=
+                       for x; do
+                               [ -x "${x}" ] && break
+                       done
+                       [ -x "${x}" ] || continue
+               fi
+               if ${starting}; then
+                       eval set -- \$module_${i}_program_start
+               else
+                       eval set -- \$module_${i}_program_stop
+               fi
+               if [ -n "$1" ]; then
+                       x=
+                       for x; do
+                               case "${x}" in
+                                       /*) [ -x "${x}" ] && break;;
+                                       *) type "${x}" >/dev/null 2>&1 && break;;
+                               esac
+                               unset x
+                       done
+                       [ -n "${x}" ] || continue
+               fi
+
+               eval provides=\$module_${i}_provide
+               if ${starting}; then
+                       case " ${mymods} " in
+                               *" !${mod} "*) continue;;
+                               *" !${provides} "*) [ -n "${provides}" ] && continue;;
+                       esac
+               fi
+               MODULES="${MODULES}${MODULES:+ }${mod}"
+
+               # Now load and wrap our functions
+               if ! . "${MODULESDIR}/${mod}.sh"; then
+                       eend 1 "${RC_SVCNAME}: error loading module \`${mod}'"
+                       exit 1
+               fi
+
+               [ -z "${provides}" ] && continue
+
+               # Wrap our provides
+               local f=
+               for f in pre_start start post_start; do
+                       eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
+               done
+
+               eval module_${mod}_provides="${provides}"
+               eval module_${provides}_providedby="${mod}"
+       done
+
+       # Wrap our preferred modules
+       for mod in ${mymods}; do
+               case " ${MODULES} " in
+                       *" ${mod} "*)
+                       eval x=\$module_${mod}_provides
+                       [ -z "${x}" ] && continue
+                       for f in pre_start start post_start; do
+                               eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
+                       done
+                       eval module_${x}_providedby="${mod}"
+                       ;;
+               esac
+       done
+
+       # Finally remove any duplicated provides from our list if we're starting
+       # Otherwise reverse the list
+       local LIST="${MODULES}" p=
+       MODULES=
+       if ${starting}; then
+               for mod in ${LIST}; do
+                       eval x=\$module_${mod}_provides
+                       if [ -n "${x}" ]; then
+                               eval p=\$module_${x}_providedby
+                               [ "${mod}" != "${p}" ] && continue
+                       fi
+                       MODULES="${MODULES}${MODULES:+ }${mod}"
+               done
+       else
+               for mod in ${LIST}; do
+                       MODULES="${mod}${MODULES:+ }${MODULES}"
+               done
+       fi
+
+       veinfo "Loaded modules: ${MODULES}"
+}
+
+_load_config()
+{
+       local config="$(_get_array "config_${IFVAR}")"
+       local fallback="$(_get_array fallback_${IFVAR})"
+
+       config_index=0
+       local IFS="$__IFS"
+       set -- ${config}
+
+       # We should support a space separated array for cidr configs
+       if [ $# = 1 ]; then
+               unset IFS
+               set -- ${config}
+               # Of course, we may have a single address added old style.
+               case "$2" in
+                       netmask|broadcast|brd|brd+|peer|pointopoint)
+                               local IFS="$__IFS"
+                               set -- ${config}
+                               ;;
+               esac
+       fi
+
+       # Ensure that loopback has the correct address
+       if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
+               if [ "$1" != "null" ]; then
+                       config_0="127.0.0.1/8"
+                       config_index=1
+               fi
+       else
+               if [ -z "$1" ]; then
+                       ewarn "No configuration specified; defaulting to DHCP"
+                       config_0="dhcp"
+                       config_index=1
+               fi
+       fi
+
+
+       # We store our config in an array like vars
+       # so modules can influence it
+       for cmd; do
+               eval config_${config_index}="'${cmd}'"
+               config_index=$((${config_index} + 1))
+       done
+       # Terminate the list
+       eval config_${config_index}=
+
+       config_index=0
+       for cmd in ${fallback}; do
+               eval fallback_${config_index}="'${cmd}'"
+               config_index=$((${config_index} + 1))
+       done
+       # Terminate the list
+       eval fallback_${config_index}=
+
+       # Don't set to zero, so any net modules don't have to do anything extra
+       config_index=-1
+}
+
+# Support functions
+_run_if()
+{
+       local cmd=$1 iface=$2 ifr=${IFACE} ifv=${IFVAR}
+       # Ensure that we don't stamp on real values
+       local IFACE= IFVAR=
+       shift
+       if [ -n "${iface}" ]; then
+               IFACE="${iface}"
+               [ "${iface}" != "${ifr}" ] && IFVAR=$(shell_var "${IFACE}")
+       else
+               IFACE=${ifr}
+               IFVAR=${ifv}
+       fi
+       ${cmd}
+}
+interface_exists()
+{
+       _run_if _exists "$@"
+}
+interface_up()
+{
+       _run_if _up "$@"
+}
+interface_down()
+{
+       _run_if _down "$@"
+}
+
+start()
+{
+       local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
+       local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
+       local metric=0
+
+       einfo "Bringing up interface ${IFACE}"
+       eindent
+
+       if [ -z "${MODULES}" ]; then
+               local MODULES=
+               _load_modules true
+       fi
+
+       # We up the iface twice if we have a preup to ensure it's up if
+       # available in preup and afterwards incase the user inadvertently
+       # brings it down
+       if [ "$(command -v preup)" = "preup" ]; then
+               _up 2>/dev/null
+               ebegin "Running preup"
+               eindent
+               preup || return 1
+               eoutdent
+       fi
+
+       _up 2>/dev/null
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
+                       ${module}_pre_start || exit $?
+               fi
+       done
+
+       if ! _exists; then
+               eerror "ERROR: interface ${IFACE} does not exist"
+               eerror "Ensure that you have loaded the correct kernel module for your hardware"
+               return 1
+       fi
+
+       if ! _wait_for_carrier; then
+               if service_started devd; then
+                       ewarn "no carrier, but devd will start us when we have one"
+                       mark_service_inactive "${RC_SVCNAME}"
+               else
+                       eerror "no carrier"
+               fi
+               return 1
+       fi
+
+       local config= config_index=
+       _load_config
+       config_index=0
+
+       eval our_metric=\$metric_${IFVAR}
+       if [ -n "${our_metric}" ]; then
+               metric=${our_metric}
+       elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               metric=$((${metric} + $(_ifindex)))
+       fi
+
+       while true; do
+               eval config=\$config_${config_index}
+               [ -z "${config}" ] && break
+
+               set -- ${config}
+               if [ "$1" != "null" -a "$1" != "noop" ]; then
+                       ebegin "$1"
+               fi
+               eindent
+               case "$1" in
+                       noop)
+                               if [ -n "$(_get_inet_address)" ]; then
+                                       oneworked=true
+                                       break
+                               fi
+                               ;;
+                       null) :;;
+                       [0-9]*|*:*) _add_address ${config};;
+                       *)
+                               if [ "$(command -v "${config}_start")" = "${config}_start" ]; then
+                                       "${config}"_start
+                               else
+                                       eerror "nothing provides \`${config}'"
+                               fi
+                               ;;
+               esac
+               if eend $?; then
+                       oneworked=true
+               else
+                       eval config=\$fallback_${config_index}
+                       if [ -n "${config}" ]; then
+                               fallback=true
+                               eoutdent
+                               ewarn "Trying fallback configuration ${config}"
+                               eindent
+                               eval config_${config_index}=\$config
+                               unset fallback_${config_index}
+                               config_index=$((${config_index} - 1))
+                       fi
+               fi
+               eoutdent
+               config_index=$((${config_index} + 1))
+       done
+
+       if ! ${oneworked}; then
+               if [ "$(command -v failup)" = "failup" ]; then
+                       ebegin "Running failup"
+                       eindent
+                       failup
+                       eoutdent
+               fi
+               return 1
+       fi
+
+       local hidefirstroute=false first=true routes=
+       if ${fallback}; then
+               routes="$(_get_array "fallback_routes_${IFVAR}")"
+       fi
+       if [ -z "${routes}" ]; then
+               routes="$(_get_array "routes_${IFVAR}")"
+       fi
+       if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
+               if [ "${config_0}" != "null" ]; then
+                       routes="127.0.0.0/8 via 127.0.0.1
+${routes}"
+                       hidefirstroute=true
+               fi
+       fi
+
+       local OIFS="${IFS}" SIFS="${IFS-y}"
+       local IFS="$__IFS"
+       for cmd in ${routes}; do
+               unset IFS
+               if ${first}; then
+                       first=false
+                       einfo "Adding routes"
+               fi
+               eindent
+               ebegin ${cmd}
+               # Work out if we're a host or a net if not told
+               case ${cmd} in
+                       -net" "*|-host" "*);;
+                       *" "netmask" "*)                   cmd="-net ${cmd}";;
+                       *.*.*.*/32*)                       cmd="-host ${cmd}";;
+                       *.*.*.*/*|0.0.0.0|0.0.0.0" "*)     cmd="-net ${cmd}";;
+                       default|default" "*)               cmd="-net ${cmd}";;
+                       *)                                 cmd="-host ${cmd}";;
+               esac
+               if ${hidefirstroute}; then
+                       _add_route ${cmd} >/dev/null 2>&1
+                       hidefirstroute=false
+               else
+                       _add_route ${cmd} >/dev/null
+               fi
+               eend $?
+               eoutdent
+       done
+       if [ "${SIFS}" = "y" ]; then
+               unset IFS
+       else
+               IFS="${OIFS}"
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_post_start")" = "${module}_post_start" ]; then
+                       ${module}_post_start || exit $?
+               fi
+       done
+
+       if [ "$(command -v postup)" = "postup" ]; then
+               ebegin "Running postup"
+               eindent
+               postup
+               eoutdent
+       fi
+
+       return 0
+}
+
+stop()
+{
+       local IFACE=${RC_SVCNAME#*.} module=
+       local IFVAR=$(shell_var "${IFACE}") opts=
+
+       einfo "Bringing down interface ${IFACE}"
+       eindent
+
+       if [ -z "${MODULES}" ]; then
+               local MODULES=
+               _load_modules false
+       fi
+
+       if [ "$(command -v predown)" = "predown" ]; then
+               ebegin "Running predown"
+               eindent
+               predown || return 1
+               eoutdent
+       else
+               if is_net_fs /; then
+                       eerror "root filesystem is network mounted -- can't stop ${IFACE}"
+                       return 1
+               fi
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_pre_stop")" = "${module}_pre_stop" ]; then
+                       ${module}_pre_stop || exit $?
+               fi
+       done
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_stop")" = "${module}_stop" ]; then
+                       ${module}_stop
+               fi
+       done
+
+       # Only delete addresses for interfaces that exist
+       if _exists; then
+               # PPP can manage it's own addresses when IN_BACKGROUND
+               # Important in case "demand" set on the ppp link
+               if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then
+                       _delete_addresses "${IFACE}"
+               fi
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_post_stop")" = "${module}_post_stop" ]; then
+                       ${module}_post_stop
+               fi
+       done
+
+       # If not in background, and not loopback then bring the interface down
+       # unless overridden.
+       if ! yesno ${IN_BACKGROUND} && \
+       [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               eval module=\$ifdown_${IFVAR}
+               module=${module:-${ifdown:-YES}}
+               yesno ${module} && _down 2>/dev/null
+       fi
+
+       type resolvconf >/dev/null 2>&1 && resolvconf -d "${IFACE}" 2>/dev/null
+
+       if [ "$(command -v "postdown")" = "postdown" ]; then
+               ebegin "Running postdown"
+               eindent
+               postdown
+               eoutdent
+       fi
+
+       return 0
+}
diff --git a/config-archive/etc/init.d/net.lo.dist b/config-archive/etc/init.d/net.lo.dist
new file mode 100755 (executable)
index 0000000..2314363
--- /dev/null
@@ -0,0 +1,765 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+MODULESDIR="${RC_LIBEXECDIR}/net"
+MODULESLIST="${RC_SVCDIR}/nettree"
+_config_vars="config routes"
+
+[ -z "${IN_BACKGROUND}" ] && IN_BACKGROUND="NO"
+
+description="Configures network interfaces."
+
+# Handy var so we don't have to embed new lines everywhere for array splitting
+__IFS="
+"
+depend()
+{
+       local IFACE=${RC_SVCNAME#*.}
+       local IFVAR=$(shell_var "${IFACE}")
+
+       need localmount
+       after bootmisc
+       provide net
+       keyword -shutdown -jail -prefix -vserver
+
+       case "${IFACE}" in
+               lo|lo0);;
+               *) after net.lo net.lo0 dbus;;
+       esac
+
+       if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
+               depend_${IFVAR}
+       fi
+
+       local dep= prov=
+       for dep in need use before after provide keyword; do
+               eval prov=\$rc_${dep}_${IFVAR}
+               if [ -n "${prov}" ]; then
+                       ${dep} ${prov}
+               fi
+       done
+}
+
+# Support bash arrays - sigh
+_array_helper()
+{
+       local _a=
+
+       eval _a=\$$1
+       _a=$(echo "${_a}" | sed -e 's:^[[:space:]]*::' -e 's:[[:space:]]*$::' -e '/^$/d' -e 's:[[:space:]]\{1,\}: :g')
+
+       [ -n "${_a}" ] && printf "%s\n" "${_a}"
+}
+
+_get_array()
+{
+       local _a=
+       if [ -n "${BASH}" ]; then
+               case "$(declare -p "$1" 2>/dev/null)" in
+                       "declare -a "*)
+                               ewarn "You are using a bash array for $1."
+                               ewarn "This feature will be removed in the future."
+                               ewarn "Please see net.example for the correct format for $1."
+                               eval "set -- \"\${$1[@]}\""
+                               for _a; do
+                                       printf "%s\n" "${_a}"
+                               done
+                               return 0
+                               ;;
+               esac
+       fi
+
+       _array_helper $1
+}
+
+# Flatten bash arrays to simple strings
+_flatten_array()
+{
+       if [ -n "${BASH}" ]; then
+               case "$(declare -p "$1" 2>/dev/null)" in
+                       "declare -a "*)
+                               ewarn "You are using a bash array for $1."
+                               ewarn "This feature will be removed in the future."
+                               ewarn "Please see net.example for the correct format for $1."
+                               eval "set -- \"\${$1[@]}\""
+                               for x; do
+                                       printf "'%s' " "$(printf "$x" | sed "s:':'\\\'':g")"
+                               done
+                               return 0
+                               ;;
+               esac
+       fi
+
+       _array_helper $1
+}
+
+_wait_for_carrier()
+{
+       local timeout= efunc=einfon
+
+       _has_carrier  && return 0
+
+       eval timeout=\$carrier_timeout_${IFVAR}
+       timeout=${timeout:-${carrier_timeout:-5}}
+
+       # Incase users don't want this nice feature ...
+       [ ${timeout} -le 0 ] && return 0
+
+       yesno ${RC_PARALLEL} && efunc=einfo
+       ${efunc} "Waiting for carrier (${timeout} seconds) "
+       while [ ${timeout} -gt 0 ]; do
+               sleep 1
+               if _has_carrier; then
+                       [ "${efunc}" = "einfon" ] && echo
+                       eend 0
+                       return 0
+               fi
+               : $(( timeout -= 1 ))
+               [ "${efunc}" = "einfon" ] && printf "."
+       done
+
+       [ "${efunc}" = "einfon" ] && echo
+       eend 1
+       return 1
+}
+
+_netmask2cidr()
+{
+       # Some shells cannot handle hex arithmetic, so we massage it slightly
+       # Buggy shells include FreeBSD sh, dash and busybox.
+       # bash and NetBSD sh don't need this.
+       case $1 in
+               0x*)
+               local hex=${1#0x*} quad=
+               while [ -n "${hex}" ]; do
+                       local lastbut2=${hex#??*}
+                       quad=${quad}${quad:+.}0x${hex%${lastbut2}*}
+                       hex=${lastbut2}
+               done
+               set -- ${quad}
+               ;;
+       esac
+
+       local i= len=
+       local IFS=.
+       for i in $1; do
+               while [ ${i} -ne 0 ]; do
+                       : $(( len += i % 2 ))
+                       : $(( i >>= 1 ))
+               done
+       done
+
+       echo "${len}"
+}
+
+_configure_variables()
+{
+       local var= v= t=
+
+       for var in ${_config_vars}; do
+               local v=
+               for t; do
+                       eval v=\$${var}_${t}
+                       if [ -n "${v}" ]; then
+                               eval ${var}_${IFVAR}=\$${var}_${t}
+                               continue 2
+                       fi
+               done
+       done
+}
+
+_which()
+{
+       local i OIFS
+       # Empty
+       [ -z "$1" ] && return
+       # check paths
+       OIFS="$IFS"
+       IFS=:
+       for i in $PATH ; do
+               [ -x $i/$1 ] && echo $i/$1 && break
+       done
+       IFS=$OIFS
+}
+
+# Like _which, but also consider shell builtins, and multiple alternatives
+_program_available()
+{
+       [ -z "$1" ] && return 0
+       local x=
+       for x; do
+               case "${x}" in
+                       /*) [ -x "${x}" ] && break;;
+                       *) type "${x}" >/dev/null 2>&1 && break;;
+               esac
+               unset x
+       done
+       [ -n "${x}" ] && echo $x && return 0
+       return 1
+}
+
+_show_address()
+{
+       einfo "received address $(_get_inet_address "${IFACE}")"
+}
+
+# Basically sorts our modules into order and saves the list
+_gen_module_list()
+{
+       local x= f= force=$1
+       if ! ${force} && [ -s "${MODULESLIST}" -a "${MODULESLIST}" -nt "${MODULESDIR}" ]; then
+               local update=false
+               for x in "${MODULESDIR}"/*.sh; do
+                       [ -e "${x}" ] || continue
+                       if [ "${x}" -nt "${MODULESLIST}" ]; then
+                               update=true
+                               break
+                       fi
+               done
+               ${update} || return 0
+       fi
+
+       einfo "Caching network module dependencies"
+       # Run in a subshell to protect the main script
+       (
+       after() {
+               eval ${MODULE}_after="\"\${${MODULE}_after}\${${MODULE}_after:+ }$*\""
+       }
+
+       before() {
+               local mod=${MODULE}
+               local MODULE=
+               for MODULE; do
+                       after "${mod}"
+               done
+       }
+
+       program() {
+               if [ "$1" = "start" -o "$1" = "stop" ]; then
+                       local s="$1"
+                       shift
+                       eval ${MODULE}_program_${s}="\"\${${MODULE}_program_${s}}\${${MODULE}_program_${s}:+ }$*\""
+               else
+                       eval ${MODULE}_program="\"\${${MODULE}_program}\${${MODULE}_program:+ }$*\""
+               fi
+       }
+
+       provide() {
+               eval ${MODULE}_provide="\"\${${MODULE}_provide}\${${MODULE}_provide:+ }$*\""
+               local x
+               for x in $*; do
+                       eval ${x}_providedby="\"\${${MODULE}_providedby}\${${MODULE}_providedby:+ }${MODULE}\""
+               done
+       }
+
+       for MODULE in "${MODULESDIR}"/*.sh; do
+               sh -n "${MODULE}" || continue
+               . "${MODULE}" || continue
+               MODULE=${MODULE#${MODULESDIR}/}
+               MODULE=${MODULE%.sh}
+               eval ${MODULE}_depend
+               MODULES="${MODULES} ${MODULE}"
+       done
+
+       VISITED=
+       SORTED=
+       visit() {
+               case " ${VISITED} " in
+                       *" $1 "*) return;;
+               esac
+               VISITED="${VISITED} $1"
+
+               eval AFTER=\$${1}_after
+               for MODULE in ${AFTER}; do
+                       eval PROVIDEDBY=\$${MODULE}_providedby
+                       if [ -n "${PROVIDEDBY}" ]; then
+                               for MODULE in ${PROVIDEDBY}; do
+                                       visit "${MODULE}"
+                               done
+                       else
+                               visit "${MODULE}"
+                       fi
+               done
+
+               eval PROVIDE=\$${1}_provide
+               for MODULE in ${PROVIDE}; do
+                       visit "${MODULE}"
+               done
+
+               eval PROVIDEDBY=\$${1}_providedby
+               [ -z "${PROVIDEDBY}" ] && SORTED="${SORTED} $1"
+       }
+
+       for MODULE in ${MODULES}; do
+               visit "${MODULE}"
+       done
+
+       printf "" > "${MODULESLIST}"
+       i=0
+       for MODULE in ${SORTED}; do
+               eval PROGRAM=\$${MODULE}_program
+               eval PROGRAM_START=\$${MODULE}_program_start
+               eval PROGRAM_STOP=\$${MODULE}_program_stop
+               eval PROVIDE=\$${MODULE}_provide
+               echo "module_${i}='${MODULE}'" >> "${MODULESLIST}"
+               echo "module_${i}_program='${PROGRAM}'" >> "${MODULESLIST}"
+               echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
+               echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
+               echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
+               : $(( i += 1 ))
+       done
+       echo "module_${i}=" >> "${MODULESLIST}"
+       )
+
+       return 0
+}
+
+_load_modules()
+{
+       local starting=$1 mymods=
+
+       # Ensure our list is up to date
+       _gen_module_list false
+       if ! . "${MODULESLIST}"; then
+               _gen_module_list true
+               . "${MODULESLIST}"
+       fi
+
+       MODULES=
+       if [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               eval mymods=\$modules_${IFVAR}
+               [ -z "${mymods}" ] && mymods=${modules}
+       fi
+
+       local i=-1 x= mod= f= provides=
+       while true; do
+               : $(( i += 1 ))
+               eval mod=\$module_${i}
+               [ -z "${mod}" ] && break
+               [ -e "${MODULESDIR}/${mod}.sh" ] || continue
+
+               eval set -- \$module_${i}_program
+               if [ -n "$1" ]; then
+                       if ! _program_available "$@" >/dev/null; then
+                               vewarn "Skipping module $mod due to missing program: $@"
+                               continue
+                       fi
+               fi
+               if ${starting}; then
+                       eval set -- \$module_${i}_program_start
+               else
+                       eval set -- \$module_${i}_program_stop
+               fi
+               if [ -n "$1" ]; then
+                       if ! _program_available "$@" >/dev/null; then
+                               vewarn "Skipping module $mod due to missing program: $@"
+                               continue
+                       fi
+               fi
+
+               eval provides=\$module_${i}_provide
+               if ${starting}; then
+                       case " ${mymods} " in
+                               *" !${mod} "*) continue;;
+                               *" !${provides} "*) [ -n "${provides}" ] && continue;;
+                       esac
+               fi
+               MODULES="${MODULES}${MODULES:+ }${mod}"
+
+               # Now load and wrap our functions
+               if ! . "${MODULESDIR}/${mod}.sh"; then
+                       eend 1 "${RC_SVCNAME}: error loading module \`${mod}'"
+                       exit 1
+               fi
+
+               [ -z "${provides}" ] && continue
+
+               # Wrap our provides
+               local f=
+               for f in pre_start start post_start; do
+                       eval "${provides}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
+               done
+
+               eval module_${mod}_provides="${provides}"
+               eval module_${provides}_providedby="${mod}"
+       done
+
+       # Wrap our preferred modules
+       for mod in ${mymods}; do
+               case " ${MODULES} " in
+                       *" ${mod} "*)
+                       eval x=\$module_${mod}_provides
+                       [ -z "${x}" ] && continue
+                       for f in pre_start start post_start; do
+                               eval "${x}_${f}() { [ "$(command -v "${mod}_${f}")" = "${mod}_${f}" ] || return 0; ${mod}_${f} \"\$@\"; }"
+                       done
+                       eval module_${x}_providedby="${mod}"
+                       ;;
+               esac
+       done
+
+       # Finally remove any duplicated provides from our list if we're starting
+       # Otherwise reverse the list
+       local LIST="${MODULES}" p=
+       MODULES=
+       if ${starting}; then
+               for mod in ${LIST}; do
+                       eval x=\$module_${mod}_provides
+                       if [ -n "${x}" ]; then
+                               eval p=\$module_${x}_providedby
+                               [ "${mod}" != "${p}" ] && continue
+                       fi
+                       MODULES="${MODULES}${MODULES:+ }${mod}"
+               done
+       else
+               for mod in ${LIST}; do
+                       MODULES="${mod}${MODULES:+ }${MODULES}"
+               done
+       fi
+
+       veinfo "Loaded modules: ${MODULES}"
+}
+
+_load_config()
+{
+       local config="$(_get_array "config_${IFVAR}")"
+       local fallback="$(_get_array fallback_${IFVAR})"
+
+       config_index=0
+       local IFS="$__IFS"
+       set -- ${config}
+
+       # We should support a space separated array for cidr configs
+       # But only as long as they do not contain other parameters for the address
+       if [ $# = 1 ]; then
+               unset IFS
+               set -- ${config}
+               # Of course, we may have a single address added old style.
+               # If the NEXT argument is a v4 or v6 address, it's the next config.
+               # Otherwise, it's arguments to the first config...
+               if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then
+                       # Not an IPv4/IPv6
+                       local IFS="$__IFS"
+                       set -- ${config}
+               fi
+       fi
+
+       # Ensure that loopback has the correct address
+       if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
+               if [ "$1" != "null" ]; then
+                       config_0="127.0.0.1/8"
+                       config_index=1
+               fi
+       else
+               if [ -z "$1" ]; then
+                       ewarn "No configuration specified; defaulting to DHCP"
+                       config_0="dhcp"
+                       config_index=1
+               fi
+       fi
+
+
+       # We store our config in an array like vars
+       # so modules can influence it
+       for cmd; do
+               eval config_${config_index}="'${cmd}'"
+               : $(( config_index += 1 ))
+       done
+       # Terminate the list
+       eval config_${config_index}=
+
+       config_index=0
+       for cmd in ${fallback}; do
+               eval fallback_${config_index}="'${cmd}'"
+               : $(( config_index += 1 ))
+       done
+       # Terminate the list
+       eval fallback_${config_index}=
+
+       # Don't set to zero, so any net modules don't have to do anything extra
+       config_index=-1
+}
+
+# Support functions
+_run_if()
+{
+       local cmd=$1 iface=$2 ifr=${IFACE} ifv=${IFVAR}
+       # Ensure that we don't stamp on real values
+       local IFACE= IFVAR=
+       shift
+       if [ -n "${iface}" ]; then
+               IFACE="${iface}"
+               [ "${iface}" != "${ifr}" ] && IFVAR=$(shell_var "${IFACE}")
+       else
+               IFACE=${ifr}
+               IFVAR=${ifv}
+       fi
+       ${cmd}
+}
+interface_exists()
+{
+       _run_if _exists "$@"
+}
+interface_up()
+{
+       _run_if _up "$@"
+}
+interface_down()
+{
+       _run_if _down "$@"
+}
+
+start()
+{
+       local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
+       local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
+       local metric=0 _up_before_preup
+       eval _up_before_preup="\$up_before_preup_${IFVAR}"
+       [ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
+
+       einfo "Bringing up interface ${IFACE}"
+       eindent
+
+       if [ -z "${MODULES}" ]; then
+               local MODULES=
+               _load_modules true
+       fi
+
+       # We up the iface twice if we have a preup to ensure it's up if
+       # available in preup and afterwards incase the user inadvertently
+       # brings it down
+       if [ "$(command -v preup)" = "preup" ]; then
+               yesno "${_up_before_preup:-yes}" && _up 2>/dev/null
+               ebegin "Running preup"
+               eindent
+               preup || return 1
+               eoutdent
+       fi
+
+       _up 2>/dev/null
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_pre_start")" = "${module}_pre_start" ]; then
+                       ${module}_pre_start || exit $?
+               fi
+       done
+
+       if ! _exists; then
+               eerror "ERROR: interface ${IFACE} does not exist"
+               eerror "Ensure that you have loaded the correct kernel module for your hardware"
+               return 1
+       fi
+
+       if ! _wait_for_carrier; then
+               if service_started devd; then
+                       ewarn "no carrier, but devd will start us when we have one"
+                       mark_service_inactive "${RC_SVCNAME}"
+               else
+                       eerror "no carrier"
+               fi
+               return 1
+       fi
+
+       local config= config_index=
+       _load_config
+       config_index=0
+
+       eval our_metric=\$metric_${IFVAR}
+       if [ -n "${our_metric}" ]; then
+               metric=${our_metric}
+       elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               : $(( metric += $(_ifindex) ))
+       fi
+
+       while true; do
+               eval config=\$config_${config_index}
+               [ -z "${config}" ] && break
+
+               set -- ${config}
+               if [ "$1" != "null" -a "$1" != "noop" ]; then
+                       ebegin "$1"
+               fi
+               eindent
+               case "$1" in
+                       noop)
+                               if [ -n "$(_get_inet_address)" ]; then
+                                       oneworked=true
+                                       break
+                               fi
+                               ;;
+                       null) :;;
+                       [0-9]*|*:*) _add_address ${config};;
+                       *)
+                               if [ "$(command -v "${config}_start")" = "${config}_start" ]; then
+                                       "${config}"_start
+                               else
+                                       eerror "nothing provides \`${config}'"
+                               fi
+                               ;;
+               esac
+               if eend $?; then
+                       oneworked=true
+               else
+                       eval config=\$fallback_${config_index}
+                       if [ -n "${config}" ]; then
+                               fallback=true
+                               eoutdent
+                               ewarn "Trying fallback configuration ${config}"
+                               eindent
+                               eval config_${config_index}=\$config
+                               unset fallback_${config_index}
+                               : $(( config_index -= 1 ))
+                       fi
+               fi
+               eoutdent
+               : $(( config_index += 1 ))
+       done
+
+       if ! ${oneworked}; then
+               if [ "$(command -v failup)" = "failup" ]; then
+                       ebegin "Running failup"
+                       eindent
+                       failup
+                       eoutdent
+               fi
+               return 1
+       fi
+
+       local hidefirstroute=false first=true routes=
+       if ${fallback}; then
+               routes="$(_get_array "fallback_routes_${IFVAR}")"
+       fi
+       if [ -z "${routes}" ]; then
+               routes="$(_get_array "routes_${IFVAR}")"
+       fi
+       if [ "${IFACE}" = "lo" -o "${IFACE}" = "lo0" ]; then
+               if [ "${config_0}" != "null" ]; then
+                       routes="127.0.0.0/8 via 127.0.0.1
+${routes}"
+                       hidefirstroute=true
+               fi
+       fi
+
+       local OIFS="${IFS}" SIFS="${IFS-y}"
+       local IFS="$__IFS"
+       for cmd in ${routes}; do
+               unset IFS
+               if ${first}; then
+                       first=false
+                       einfo "Adding routes"
+               fi
+               eindent
+               ebegin ${cmd}
+               # Work out if we're a host or a net if not told
+               case ${cmd} in
+                       -net" "*|-host" "*);;
+                       *" "netmask" "*)                   cmd="-net ${cmd}";;
+                       *.*.*.*/32*)                       cmd="-host ${cmd}";;
+                       *.*.*.*/*|0.0.0.0|0.0.0.0" "*)     cmd="-net ${cmd}";;
+                       default|default" "*)               cmd="-net ${cmd}";;
+                       *)                                 cmd="-host ${cmd}";;
+               esac
+               if ${hidefirstroute}; then
+                       _add_route ${cmd} >/dev/null 2>&1
+                       hidefirstroute=false
+               else
+                       _add_route ${cmd} >/dev/null
+               fi
+               eend $?
+               eoutdent
+       done
+       if [ "${SIFS}" = "y" ]; then
+               unset IFS
+       else
+               IFS="${OIFS}"
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_post_start")" = "${module}_post_start" ]; then
+                       ${module}_post_start || exit $?
+               fi
+       done
+
+       if [ "$(command -v postup)" = "postup" ]; then
+               ebegin "Running postup"
+               eindent
+               postup
+               eoutdent
+       fi
+
+       return 0
+}
+
+stop()
+{
+       local IFACE=${RC_SVCNAME#*.} module=
+       local IFVAR=$(shell_var "${IFACE}") opts=
+
+       einfo "Bringing down interface ${IFACE}"
+       eindent
+
+       if [ -z "${MODULES}" ]; then
+               local MODULES=
+               _load_modules false
+       fi
+
+       if [ "$(command -v predown)" = "predown" ]; then
+               ebegin "Running predown"
+               eindent
+               predown || return 1
+               eoutdent
+       else
+               if is_net_fs /; then
+                       eerror "root filesystem is network mounted -- can't stop ${IFACE}"
+                       return 1
+               fi
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_pre_stop")" = "${module}_pre_stop" ]; then
+                       ${module}_pre_stop || exit $?
+               fi
+       done
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_stop")" = "${module}_stop" ]; then
+                       ${module}_stop
+               fi
+       done
+
+       # Only delete addresses for interfaces that exist
+       if _exists; then
+               # PPP can manage it's own addresses when IN_BACKGROUND
+               # Important in case "demand" set on the ppp link
+               if ! (yesno ${IN_BACKGROUND} && is_ppp) ; then
+                       _delete_addresses "${IFACE}"
+               fi
+       fi
+
+       for module in ${MODULES}; do
+               if [ "$(command -v "${module}_post_stop")" = "${module}_post_stop" ]; then
+                       ${module}_post_stop
+               fi
+       done
+
+       # If not in background, and not loopback then bring the interface down
+       # unless overridden.
+       if ! yesno ${IN_BACKGROUND} && \
+       [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
+               eval module=\$ifdown_${IFVAR}
+               module=${module:-${ifdown:-YES}}
+               yesno ${module} && _down 2>/dev/null
+       fi
+
+       type resolvconf >/dev/null 2>&1 && resolvconf -d "${IFACE}" 2>/dev/null
+
+       if [ "$(command -v "postdown")" = "postdown" ]; then
+               ebegin "Running postdown"
+               eindent
+               postdown
+               eoutdent
+       fi
+
+       return 0
+}
diff --git a/config-archive/etc/init.d/network b/config-archive/etc/init.d/network
new file mode 100755 (executable)
index 0000000..9f8ac71
--- /dev/null
@@ -0,0 +1,352 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+# This script was inspired by the equivalent rc.d network from NetBSD.
+
+description="Configures network interfaces."
+__nl="
+"
+
+depend()
+{
+       need localmount
+       after bootmisc
+       provide net
+       keyword -jail -prefix -vserver
+}
+
+uniqify()
+{
+       local result= i=
+       for i; do
+               case " $result " in
+               *" $i "*);;
+               *) result="$result $i";;
+               esac
+       done
+       echo "${result# *}"
+}
+
+reverse()
+{
+       local result= i=
+       for i; do
+               result="$i $result"
+       done
+       echo "${result# *}"
+}
+
+sys_interfaces()
+{
+       case "$RC_UNAME" in
+       Linux)
+               local w= rest= i= cmd=$1
+               while read w rest; do
+                       i=${w%%:*}
+                       [ "$i" != "$w" ] || continue
+                       if [ "$cmd" = u ]; then
+                               ifconfig "$i" | grep -q "[ ]*UP" || continue
+                       fi
+                       printf "%s " "$i"
+               done </proc/net/dev
+               ;;
+       *)
+               ifconfig -l$1
+               ;;
+       esac
+}
+
+tentative()
+{
+       local inet= address= rest=
+
+       case "$RC_UNAME" in
+       Linux)
+               [ -x /sbin/ip ] || [ -x /bin/ip ] || return 1
+               [ -n "$(ip -f inet6 addr show tentative)" ]
+               ;;
+       *)
+               local inet= address= rest=
+               LC_ALL=C ifconfig -a | while read inet address rest; do
+                       case "${inet}" in
+                       inet6)
+                               case "${rest}" in
+                               *" "tentative*) return 2;;
+                               esac
+                               ;;
+                       esac
+               done
+               [ $? = 2 ]
+               ;;
+       esac
+}
+
+
+auto_interfaces()
+{
+       local ifs= c= f=
+
+       case "$RC_UNAME" in
+       NetBSD)
+               for c in $(ifconfig -C 2>/dev/null); do
+                       for f in /etc/ifconfig.${c}[0-9]*; do
+                               [ -f "$f" ] && printf "%s" "$f{##*.} "
+                       done
+               done
+               ;;
+       *)
+               for f in /etc/ifconfig.*; do
+                       [ -f "$f" ] && printf "%s" "${f##*.} "
+               done
+               for f in /etc/ip.*; do
+                       [ -f "$f" ] && printf "%s" "${f##*.} "
+               done
+               ;;
+       esac
+       echo
+}
+
+interfaces()
+{
+       uniqify $(sys_interfaces "$@") $interfaces $(auto_interfaces)
+}
+
+dumpargs()
+{
+       local f="$1"
+
+       shift
+       case "$@" in
+       '')             [ -f "$f" ] && cat "$f";;
+       *"$__nl"*)      echo "$@";;
+       *)
+               (
+                       set -o noglob
+                       IFS=';'; set -- $@
+                       IFS="$__nl"; echo "$*"
+               );;
+       esac
+}
+
+intup=false
+runip()
+{
+       local int="$1" err=
+       shift
+
+       # Ensure we have a valid broadcast address
+       case "$@" in
+       *" broadcast "*|*" brd "*) ;;
+       *:*) ;; # Ignore IPv6
+       *) set -- "$@" brd +;;
+       esac
+
+       err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
+       if [ -z "$err" ]; then
+               # ip does not bring up the interface when adding addresses
+               if ! $intup; then
+                       ip link set "$int" up
+                       intup=true
+               fi
+               return 0
+       fi
+       if [ "$err" = "RTNETLINK answers: File exists" ]; then
+               ip address del "$@" dev "$int" 2>/dev/null
+       fi
+       # Localise the error
+       ip address add "$@" dev "$int"
+}
+
+routeflush()
+{
+       if [ "$RC_UNAME" = Linux ]; then
+               if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
+                       ip route flush scope global
+                       ip route delete default 2>/dev/null
+               else
+                       # Sadly we also delete some link routes, but
+                       # this cannot be helped
+                       local dest= gate= net= flags= rest=
+                       route -n | while read dest gate net flags rest; do
+                               [ -z "$net" ] && continue
+                               case "$dest" in
+                               [0-9]*) ;;
+                               *)      continue;;
+                               esac
+                               local xtra= netmask="netmask $net"
+                               case "$flags" in
+                               U)      continue;;
+                               *H*)    flags=-host; netmask=;;
+                               *!*)    flags=-net; xtra=reject;;
+                               *)      flags=-net;;
+                               esac
+                               route del $flags $dest $netmask $xtra
+                       done
+                       # Erase any default dev eth0 routes
+                       route del default 2>/dev/null
+               fi
+       else
+               route -qn flush
+       fi
+}
+
+runargs()
+{
+       dumpargs "$@" | while read -r args; do
+               case "$args" in
+               ''|"#"*)        ;;
+               *)
+                               (
+                                       eval vebegin "${args#*!}"
+                                       eval "${args#*!}"
+                                       veend $?
+                               );;
+               esac
+       done
+}
+
+start()
+{
+       local cr=0 r= int= intv= cmd= args= upcmd=
+
+       if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
+               domainname=$(cat /etc/defaultdomain)
+       fi
+       if [ -n "$domainname" ]; then
+               ebegin "Setting NIS domainname: $domainname"
+               domainname "$domainname"
+               eend $?
+       fi
+
+       einfo "Starting network"
+       routeflush
+       if [ "$RC_UNAME" = "Linux" ]; then
+               ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
+               route add -net 127.0.0.0 netmask 255.0.0.0 \
+                       gw 127.0.0.1 reject 2>/dev/null
+       else
+               ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
+               route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
+                       127.0.0.1 -reject || cr=1
+       fi
+       eindent
+       for int in $(interfaces); do
+               local func= cf=
+               intv=$(shell_var "$int")
+               eval upcmd=\$ifup_$intv
+               for func in ip ifconfig; do
+                       eval cmd=\$${func}_$intv
+                       if [ -n "$cmd" -o -f /etc/"$func.$int" ]; then
+                               cf=/etc/"$func.$int"
+                               break
+                       fi
+               done
+               [ -n "$cf" -o -n "$upcmd" -o \
+                       -f /etc/ifup."$int" -o -f "$cf" ] || continue
+               veinfo "$int"
+               case "$func" in
+               ip)     func=runip; intup=false;;
+               esac
+               eindent
+               runargs /etc/ifup."$int" "$upcmd"
+               r=0
+               dumpargs "$cf" "$cmd" | while read -r args; do
+                       case "$args" in
+                       ''|"#"*)        ;;
+                       "!"*)
+                                       (
+                                               eval vebegin "${args#*!}"
+                                               eval "${args#*!}"
+                                               veend $?
+                                       );;
+                       *)
+                                       (
+                                               set -o noglob
+                                               eval set -- "$args"
+                                               vebegin "$@"
+                                               $func "$int" "$@"
+                                               veend $?
+                                       );;
+                       esac
+               done
+               eoutdent
+       done
+       eoutdent
+       eend $cr
+
+       # Wait for any inet6 tentative addresses
+       r=5
+       while [ $r -gt 0 ]; do
+               tentative || break
+               [ $r = 5 ] && vebegin "Waiting for tentative addresses"
+               sleep 1
+               r=$(($r - 1))
+       done
+       if [ $r != 5 ]; then
+               [ $r != 0 ]
+               veend $?
+       fi
+
+       if [ -n "$defaultroute" ]; then
+               ebegin "Setting default route $defaultroute"
+               route add default $defaultroute
+               eend $?
+       elif [ -n "$defaultiproute" ]; then
+               ebegin "Setting default route $defaultiproute"
+               ip route add default $defaultiproute
+               eend $?
+       fi
+
+       if [ -n "$defaultroute6" ]; then
+               ebegin "Setting default route $defaultroute6"
+               if [ "$RC_UNAME" = Linux ]; then
+                       routecmd="route -A inet6 add"
+               else
+                       routecmd="route -inet6 add"
+               fi
+               $routecmd default $defaultroute6
+               eend $?
+       elif [ -n "$defaultiproute6" ]; then
+               ebegin "Setting default route $defaultiproute6"
+               ip -f inet6 route add default $defaultiproute6
+               eend $?
+       fi
+
+       return 0
+}
+
+stop()
+{
+       # Don't stop the network at shutdown.
+       # We don't use the noshutdown keyword so that we are started again
+       # correctly if we go back to multiuser.
+       yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0
+
+       local int= intv= cmd= downcmd= r=
+       einfo "Stopping network"
+       routeflush
+       eindent
+       for int in $(reverse $(interfaces u)); do
+               intv=$(shell_var "$int")
+               eval downcmd=\$ifdown_$intv
+               eval cmd=\$ip_$intv
+               [ -z "$cmd" ] && eval cmd=\$ifconfig_$intv
+               if [ -n "$cmd" -o -f /etc/ip."$int" -o \
+                       -f /etc/ifconfig."$int" -o \
+                       -n "$downcmd" -o -f /etc/ifdown."$int" ];
+               then
+                       veinfo "$int"
+                       runargs /etc/ifdown."$int" "$downcmd"
+                       if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
+                               # We need to do this, otherwise we may
+                               # fail to add things correctly on restart
+                               ip address flush dev "$int" 2>/dev/null
+                       fi
+                       ifconfig "$int" down 2>/dev/null
+                       ifconfig "$int" destroy 2>/dev/null
+               fi
+       done
+       eoutdent
+       eend 0
+}
diff --git a/config-archive/etc/init.d/network.dist b/config-archive/etc/init.d/network.dist
new file mode 100755 (executable)
index 0000000..7ba4f48
--- /dev/null
@@ -0,0 +1,358 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+# This script was inspired by the equivalent rc.d network from NetBSD.
+
+description="Configures network interfaces."
+__nl="
+"
+
+depend()
+{
+       need localmount
+       after bootmisc
+       provide net
+       keyword -jail -prefix -vserver
+}
+
+uniqify()
+{
+       local result= i=
+       for i; do
+               case " $result " in
+               *" $i "*);;
+               *) result="$result $i";;
+               esac
+       done
+       echo "${result# *}"
+}
+
+reverse()
+{
+       local result= i=
+       for i; do
+               result="$i $result"
+       done
+       echo "${result# *}"
+}
+
+sys_interfaces()
+{
+       case "$RC_UNAME" in
+       Linux)
+               local w= rest= i= cmd=$1
+               while read w rest; do
+                       i=${w%%:*}
+                       [ "$i" != "$w" ] || continue
+                       if [ "$cmd" = u ]; then
+                               ifconfig "$i" | grep -q "[ ]*UP" || continue
+                       fi
+                       printf "%s " "$i"
+               done </proc/net/dev
+               ;;
+       *)
+               ifconfig -l$1
+               ;;
+       esac
+}
+
+tentative()
+{
+       local inet= address= rest=
+
+       case "$RC_UNAME" in
+       Linux)
+               [ -x /sbin/ip ] || [ -x /bin/ip ] || return 1
+               [ -n "$(ip -f inet6 addr show tentative)" ]
+               ;;
+       *)
+               local inet= address= rest=
+               LC_ALL=C ifconfig -a | while read inet address rest; do
+                       case "${inet}" in
+                       inet6)
+                               case "${rest}" in
+                               *" "tentative*) return 2;;
+                               esac
+                               ;;
+                       esac
+               done
+               [ $? = 2 ]
+               ;;
+       esac
+}
+
+
+auto_interfaces()
+{
+       local ifs= c= f=
+
+       case "$RC_UNAME" in
+       NetBSD)
+               for c in $(ifconfig -C 2>/dev/null); do
+                       for f in /etc/ifconfig.${c}[0-9]*; do
+                               [ -f "$f" ] && printf "%s" "$f{##*.} "
+                       done
+               done
+               ;;
+       *)
+               for f in /etc/ifconfig.*; do
+                       [ -f "$f" ] && printf "%s" "${f##*.} "
+               done
+               for f in /etc/ip.*; do
+                       [ -f "$f" ] && printf "%s" "${f##*.} "
+               done
+               ;;
+       esac
+       echo
+}
+
+interfaces()
+{
+       uniqify $(sys_interfaces "$@") $interfaces $(auto_interfaces)
+}
+
+dumpargs()
+{
+       local f="$1"
+
+       shift
+       case "$@" in
+       '')             [ -f "$f" ] && cat "$f";;
+       *"$__nl"*)      echo "$@";;
+       *)
+               (
+                       set -o noglob
+                       IFS=';'; set -- $@
+                       IFS="$__nl"; echo "$*"
+               );;
+       esac
+}
+
+intup=false
+runip()
+{
+       local int="$1" err=
+       shift
+
+       # Ensure we have a valid broadcast address
+       case "$@" in
+       *" broadcast "*|*" brd "*) ;;
+       *:*) ;; # Ignore IPv6
+       *) set -- "$@" brd +;;
+       esac
+
+       err=$(LC_ALL=C ip address add "$@" dev "$int" 2>&1)
+       if [ -z "$err" ]; then
+               # ip does not bring up the interface when adding addresses
+               if ! $intup; then
+                       ip link set "$int" up
+                       intup=true
+               fi
+               return 0
+       fi
+       if [ "$err" = "RTNETLINK answers: File exists" ]; then
+               ip address del "$@" dev "$int" 2>/dev/null
+       fi
+       # Localise the error
+       ip address add "$@" dev "$int"
+}
+
+routeflush()
+{
+       if [ "$RC_UNAME" = Linux ]; then
+               if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
+                       ip route flush scope global
+                       ip route delete default 2>/dev/null
+               else
+                       # Sadly we also delete some link routes, but
+                       # this cannot be helped
+                       local dest= gate= net= flags= rest=
+                       route -n | while read dest gate net flags rest; do
+                               [ -z "$net" ] && continue
+                               case "$dest" in
+                               [0-9]*) ;;
+                               *)      continue;;
+                               esac
+                               local xtra= netmask="netmask $net"
+                               case "$flags" in
+                               U)      continue;;
+                               *H*)    flags=-host; netmask=;;
+                               *!*)    flags=-net; xtra=reject;;
+                               *)      flags=-net;;
+                               esac
+                               route del $flags $dest $netmask $xtra
+                       done
+                       # Erase any default dev eth0 routes
+                       route del default 2>/dev/null
+               fi
+       else
+               route -qn flush
+       fi
+}
+
+runargs()
+{
+       dumpargs "$@" | while read -r args; do
+               case "$args" in
+               ''|"#"*)        ;;
+               *)
+                               (
+                                       eval vebegin "${args#*!}"
+                                       eval "${args#*!}"
+                                       veend $?
+                               );;
+               esac
+       done
+}
+
+start()
+{
+       local cr=0 r= int= intv= cmd= args= upcmd=
+
+       if [ -z "$domainname" -a -s /etc/defaultdomain ]; then
+               domainname=$(cat /etc/defaultdomain)
+       fi
+       if [ -n "$domainname" ]; then
+               ebegin "Setting NIS domainname: $domainname"
+               domainname "$domainname"
+               eend $?
+       fi
+
+       ewarn
+       ewarn "The $RC_SVCNAME script is deprecated and will be"
+       ewarn "removed in the future."
+       ewarn "Please use the net.* scripts to manage your network interfaces."
+       ewarn
+
+       einfo "Starting network"
+       routeflush
+       if [ "$RC_UNAME" = "Linux" ]; then
+               ifconfig lo 127.0.0.1 netmask 255.0.0.0 || cr=1
+               route add -net 127.0.0.0 netmask 255.0.0.0 \
+                       gw 127.0.0.1 reject 2>/dev/null
+       else
+               ifconfig lo0 127.0.0.1 netmask 255.0.0.0 || cr=1
+               route -q add -inet 127.0.0.0 -netmask 255.0.0.0 \
+                       127.0.0.1 -reject || cr=1
+       fi
+       eindent
+       for int in $(interfaces); do
+               local func= cf=
+               intv=$(shell_var "$int")
+               eval upcmd=\$ifup_$intv
+               for func in ip ifconfig; do
+                       eval cmd=\$${func}_$intv
+                       if [ -n "$cmd" -o -f /etc/"$func.$int" ]; then
+                               cf=/etc/"$func.$int"
+                               break
+                       fi
+               done
+               [ -n "$cf" -o -n "$upcmd" -o \
+                       -f /etc/ifup."$int" -o -f "$cf" ] || continue
+               veinfo "$int"
+               case "$func" in
+               ip)     func=runip; intup=false;;
+               esac
+               eindent
+               runargs /etc/ifup."$int" "$upcmd"
+               r=0
+               dumpargs "$cf" "$cmd" | while read -r args; do
+                       case "$args" in
+                       ''|"#"*)        ;;
+                       "!"*)
+                                       (
+                                               eval vebegin "${args#*!}"
+                                               eval "${args#*!}"
+                                               veend $?
+                                       );;
+                       *)
+                                       (
+                                               set -o noglob
+                                               eval set -- "$args"
+                                               vebegin "$@"
+                                               $func "$int" "$@"
+                                               veend $?
+                                       );;
+                       esac
+               done
+               eoutdent
+       done
+       eoutdent
+       eend $cr
+
+       # Wait for any inet6 tentative addresses
+       r=5
+       while [ $r -gt 0 ]; do
+               tentative || break
+               [ $r = 5 ] && vebegin "Waiting for tentative addresses"
+               sleep 1
+               : $(( r -= 1 ))
+       done
+       if [ $r != 5 ]; then
+               [ $r != 0 ]
+               veend $?
+       fi
+
+       if [ -n "$defaultroute" ]; then
+               ebegin "Setting default route $defaultroute"
+               route add default $defaultroute
+               eend $?
+       elif [ -n "$defaultiproute" ]; then
+               ebegin "Setting default route $defaultiproute"
+               ip route add default $defaultiproute
+               eend $?
+       fi
+
+       if [ -n "$defaultroute6" ]; then
+               ebegin "Setting default route $defaultroute6"
+               if [ "$RC_UNAME" = Linux ]; then
+                       routecmd="route -A inet6 add"
+               else
+                       routecmd="route -inet6 add"
+               fi
+               $routecmd default $defaultroute6
+               eend $?
+       elif [ -n "$defaultiproute6" ]; then
+               ebegin "Setting default route $defaultiproute6"
+               ip -f inet6 route add default $defaultiproute6
+               eend $?
+       fi
+
+       return 0
+}
+
+stop()
+{
+       # Don't stop the network at shutdown.
+       # We don't use the noshutdown keyword so that we are started again
+       # correctly if we go back to multiuser.
+       yesno ${shutdown_network:-YES} && yesno $RC_GOINGDOWN && return 0
+
+       local int= intv= cmd= downcmd= r=
+       einfo "Stopping network"
+       routeflush
+       eindent
+       for int in $(reverse $(interfaces u)); do
+               intv=$(shell_var "$int")
+               eval downcmd=\$ifdown_$intv
+               eval cmd=\$ip_$intv
+               [ -z "$cmd" ] && eval cmd=\$ifconfig_$intv
+               if [ -n "$cmd" -o -f /etc/ip."$int" -o \
+                       -f /etc/ifconfig."$int" -o \
+                       -n "$downcmd" -o -f /etc/ifdown."$int" ];
+               then
+                       veinfo "$int"
+                       runargs /etc/ifdown."$int" "$downcmd"
+                       if [ -x /sbin/ip ] || [ -x /bin/ip ]; then
+                               # We need to do this, otherwise we may
+                               # fail to add things correctly on restart
+                               ip address flush dev "$int" 2>/dev/null
+                       fi
+                       ifconfig "$int" down 2>/dev/null
+                       ifconfig "$int" destroy 2>/dev/null
+               fi
+       done
+       eoutdent
+       eend 0
+}
diff --git a/config-archive/etc/init.d/numlock b/config-archive/etc/init.d/numlock
new file mode 100755 (executable)
index 0000000..bfa6add
--- /dev/null
@@ -0,0 +1,42 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Turns numlock on for the consoles."
+
+ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+
+depend()
+{
+       need localmount
+       keyword -openvz -prefix -vserver -lxc
+}
+
+_setleds()
+{
+       [ -z "$1" ] && return 1
+
+       local dev=/dev/tty t= i=1 retval=0
+       [ -d /dev/vc ] && dev=/dev/vc/
+
+       while [ $i -le $ttyn ]; do
+               setleds -D "$1"num < $dev$i || retval=1
+               i=$(($i + 1))
+       done
+
+       return $retval
+}
+
+start()
+{
+       ebegin "Enabling numlock on ttys"
+       _setleds +
+       eend $? "Failed to enable numlock"
+}
+
+stop()
+{
+       ebegin "Disabling numlock on ttys"
+       _setleds -
+       eend $? "Failed to disable numlock"
+}
diff --git a/config-archive/etc/init.d/numlock.dist b/config-archive/etc/init.d/numlock.dist
new file mode 100755 (executable)
index 0000000..e354dfd
--- /dev/null
@@ -0,0 +1,42 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Turns numlock on for the consoles."
+
+ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+
+depend()
+{
+       need localmount
+       keyword -openvz -prefix -vserver -lxc
+}
+
+_setleds()
+{
+       [ -z "$1" ] && return 1
+
+       local dev=/dev/tty t= i=1 retval=0
+       [ -d /dev/vc ] && dev=/dev/vc/
+
+       while [ $i -le $ttyn ]; do
+               setleds -D "$1"num < $dev$i || retval=1
+               : $(( i += 1 ))
+       done
+
+       return $retval
+}
+
+start()
+{
+       ebegin "Enabling numlock on ttys"
+       _setleds +
+       eend $? "Failed to enable numlock"
+}
+
+stop()
+{
+       ebegin "Disabling numlock on ttys"
+       _setleds -
+       eend $? "Failed to disable numlock"
+}
diff --git a/config-archive/etc/init.d/staticroute b/config-archive/etc/init.d/staticroute
new file mode 100755 (executable)
index 0000000..558d57e
--- /dev/null
@@ -0,0 +1,104 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+# This script was inspired by the equivalent rc.d staticroute from NetBSD.
+
+description="Configures static routes."
+__nl="
+"
+
+depend()
+{
+       provide net
+       use network
+       keyword -jail -prefix -vserver
+}
+
+pre_flight_checks()
+{
+       route=route
+       [ -s /etc/route.conf ] && return 0
+
+       if [ -n "$staticiproute" ]; then
+               route="ip route"
+               staticroute="$staticiproute"
+       fi
+}
+
+dump_args()
+{
+       # Route configuration file, as used by the NetBSD RC system
+       if [ -s /etc/route.conf ]; then
+               cat /etc/route.conf
+               return $?
+       fi
+
+       case "$staticroute" in
+       *"$__nl"*)
+               echo "$staticroute"
+               ;;
+       *)
+               (
+                       set -o noglob
+                       IFS=';'; set -- $staticroute
+                       IFS="$__nl"; echo "$*"
+               )
+               ;;
+       esac
+}
+
+do_routes()
+{
+       local xtra= family=
+       [ "$RC_UNAME" != Linux ] && xtra=-q
+
+       ebegin "$1 static routes"
+       eindent
+       pre_flight_checks
+       dump_args | while read args; do
+               [ -z "$args" ] && continue
+               case "$args" in
+               "#"*)
+                       ;;
+               "+"*)
+                       [ $2 = "add" ] && eval ${args#*+}
+                       ;;
+               "-"*)
+                       [ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
+                       ;;
+               *)
+                       veinfo "$args"
+                       case "$route" in
+                       "ip route")
+                               ip route $2 $args
+                               ;;
+                       *)
+                               # Linux route does cannot work it out ...
+                               if [ "$RC_UNAME" = Linux ]; then
+                                       case "$args" in
+                                       *:*) family="-A inet6";;
+                                       *) family=;;
+                                       esac
+                               fi
+                               route $family $xtra $2 -$args
+                               ;;
+                       esac
+                       veend $?
+               esac
+       done
+       eoutdent
+       eend 0
+}
+
+start()
+{
+       do_routes "Adding" "add"
+}
+
+stop()
+{
+       local cmd="delete"
+       [ "$RC_UNAME" = Linux ] && cmd="del"
+       do_routes "Deleting" "$cmd"
+}
diff --git a/config-archive/etc/init.d/staticroute.dist b/config-archive/etc/init.d/staticroute.dist
new file mode 100755 (executable)
index 0000000..3a5d326
--- /dev/null
@@ -0,0 +1,109 @@
+#!/sbin/runscript
+# Copyright (c) 2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+# This script was inspired by the equivalent rc.d staticroute from NetBSD.
+
+description="Configures static routes."
+__nl="
+"
+
+depend()
+{
+       provide net
+       use network
+       keyword -jail -prefix -vserver
+}
+
+pre_flight_checks()
+{
+       route=route
+       [ -s /etc/route.conf ] && return 0
+
+       if [ -n "$staticiproute" ]; then
+               route="ip route"
+               staticroute="$staticiproute"
+       fi
+}
+
+dump_args()
+{
+       # Route configuration file, as used by the NetBSD RC system
+       if [ -s /etc/route.conf ]; then
+               cat /etc/route.conf
+               return $?
+       fi
+
+       case "$staticroute" in
+       *"$__nl"*)
+               echo "$staticroute"
+               ;;
+       *)
+               (
+                       set -o noglob
+                       IFS=';'; set -- $staticroute
+                       IFS="$__nl"; echo "$*"
+               )
+               ;;
+       esac
+}
+
+do_routes()
+{
+       local xtra= family=
+       [ "$RC_UNAME" != Linux ] && xtra=-q
+
+       ebegin "$1 static routes"
+       eindent
+       pre_flight_checks
+       dump_args | while read args; do
+               [ -z "$args" ] && continue
+               case "$args" in
+               "#"*)
+                       ;;
+               "+"*)
+                       [ $2 = "add" ] && eval ${args#*+}
+                       ;;
+               "-"*)
+                       [ $2 = "del" -o $2 = "delete" ] && eval ${args#*-}
+                       ;;
+               *)
+                       veinfo "$args"
+                       case "$route" in
+                       "ip route")
+                               ip route $2 $args
+                               ;;
+                       *)
+                               # Linux route does cannot work it out ...
+                               if [ "$RC_UNAME" = Linux ]; then
+                                       case "$args" in
+                                       *:*) family="-A inet6";;
+                                       *) family=;;
+                                       esac
+                               fi
+                               route $family $xtra $2 -$args
+                               ;;
+                       esac
+                       veend $?
+               esac
+       done
+       eoutdent
+       eend 0
+}
+
+start()
+{
+       ewarn
+       ewarn "The $RC_SVCNAME script is deprecated and will be"
+       ewarn "removed in the future."
+       ewarn "Please use the net.* scripts to manage your network interfaces."
+       ewarn
+       do_routes "Adding" "add"
+}
+
+stop()
+{
+       local cmd="delete"
+       [ "$RC_UNAME" = Linux ] && cmd="del"
+       do_routes "Deleting" "$cmd"
+}
diff --git a/config-archive/etc/init.d/sysfs b/config-archive/etc/init.d/sysfs
new file mode 100755 (executable)
index 0000000..2433d84
--- /dev/null
@@ -0,0 +1,64 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Mount the sys filesystem."
+
+depend()
+{
+       keyword -prefix -vserver
+}
+
+mount_sys()
+{
+       grep -Eq "[[:space:]]+sysfs$" /proc/filesystems || return 1
+       mountinfo -q /sys && return 0
+
+       if [ ! -d /sys ]; then
+               if ! mkdir -m 0755 /sys; then
+                       ewarn "Could not create /sys!"
+                       return 1
+               fi
+       fi
+
+       ebegin "Mounting /sys"
+       if ! fstabinfo --mount /sys; then
+               mount -n -t sysfs -o noexec,nosuid,nodev sysfs /sys
+       fi
+       eend $?
+}
+
+mount_misc()
+{
+       # Setup Kernel Support for securityfs
+       if [ -d /sys/kernel/security ] && \
+               ! mountinfo -q /sys/kernel/security; then
+               if grep -qs securityfs /proc/filesystems; then
+                       ebegin "Mounting security filesystem"
+                       mount -n -t securityfs -o nodev,noexec,nosuid \
+                               securityfs /sys/kernel/security
+                       eend $?
+               fi
+       fi
+
+       # Setup Kernel Support for debugfs
+       if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then
+               if grep -qs debugfs /proc/filesystems; then
+                       ebegin "Mounting debug filesystem"
+                       mount -n -t debugfs -o nodev,noexec,nosuid \
+                               debugfs /sys/kernel/debug
+                       eend $?
+               fi
+       fi
+}
+
+start()
+{
+       local retval
+       mount_sys
+       retval=$?
+       if [ $retval -eq 0 ]; then
+               mount_misc
+       fi
+       return $retval
+}
diff --git a/config-archive/etc/init.d/sysfs.dist b/config-archive/etc/init.d/sysfs.dist
new file mode 100755 (executable)
index 0000000..dd3fc0e
--- /dev/null
@@ -0,0 +1,106 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Mount the sys filesystem."
+
+depend()
+{
+       keyword -prefix -vserver
+}
+
+mount_sys()
+{
+       grep -Eq "[[:space:]]+sysfs$" /proc/filesystems || return 1
+       mountinfo -q /sys && return 0
+
+       if [ ! -d /sys ]; then
+               if ! mkdir -m 0755 /sys; then
+                       ewarn "Could not create /sys!"
+                       return 1
+               fi
+       fi
+
+       ebegin "Mounting /sys"
+       if ! fstabinfo --mount /sys; then
+               mount -n -t sysfs -o noexec,nosuid,nodev sysfs /sys
+       fi
+       eend $?
+}
+
+mount_misc()
+{
+       # Setup Kernel Support for securityfs
+       if [ -d /sys/kernel/security ] && \
+               ! mountinfo -q /sys/kernel/security; then
+               if grep -qs securityfs /proc/filesystems; then
+                       ebegin "Mounting security filesystem"
+                       mount -n -t securityfs -o nodev,noexec,nosuid \
+                               securityfs /sys/kernel/security
+                       eend $?
+               fi
+       fi
+
+       # Setup Kernel Support for debugfs
+       if [ -d /sys/kernel/debug ] && ! mountinfo -q /sys/kernel/debug; then
+               if grep -qs debugfs /proc/filesystems; then
+                       ebegin "Mounting debug filesystem"
+                       mount -n -t debugfs -o nodev,noexec,nosuid \
+                               debugfs /sys/kernel/debug
+                       eend $?
+               fi
+       fi
+
+       # Setup Kernel Support for configfs
+       if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then
+               if grep -qs configfs /proc/filesystems; then
+                       ebegin "Mounting config filesystem"
+                       mount -n -t configfs -o  nodev,noexec,nosuid \
+                               configfs /sys/kernel/config
+                       eend $?
+               fi
+       fi
+
+       # set up kernel support for cgroups
+       if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then
+               if grep -qs cgroup /proc/filesystems; then
+                       ebegin "Mounting cgroup filesystem"
+                       local opts="nodev,noexec,nosuid,mode=755,size=${rc_cgroupsize:-10m}"
+                       mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup
+                       eend $?
+               fi
+       fi
+}
+
+mount_cgroups()
+{
+       yesno ${rc_cgroups:-YES} || return 0
+       if [ ! -e /proc/cgroups ]; then
+               return 0
+       fi
+
+       while read name hier groups enabled rest; do
+               case "${enabled}" in
+                       1)      mkdir /sys/fs/cgroup/${name}
+                               mount -t cgroup -o nodev,noexec,nosuid,${name} \
+                                       ${name} /sys/fs/cgroup/${name}
+                               ;;
+               esac
+       done < /proc/cgroups
+}
+
+start()
+{
+       local retval
+       mount_sys
+       retval=$?
+       if [ $retval -eq 0 ]; then
+               mount_misc
+               retval=$?
+       fi
+       if [ $retval -eq 0 ]; then
+               mount_cgroups
+               retval=$?
+       fi
+       return $retval
+}
diff --git a/config-archive/etc/init.d/termencoding b/config-archive/etc/init.d/termencoding
new file mode 100755 (executable)
index 0000000..2c2e6b0
--- /dev/null
@@ -0,0 +1,48 @@
+#!/sbin/runscript
+# Copyright (c) 2008-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Configures terminal encoding."
+
+ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+: ${unicode:=${UNICODE}}
+
+depend()
+{
+       keyword -openvz -prefix -uml -vserver -xenu
+       need root
+       after bootmisc
+}
+
+start()
+{
+       local ttydev=/dev/tty n=
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+
+       # Set terminal encoding to either ASCII or UNICODE.
+       # See utf-8(7) for more information.
+       local termencoding="%@" termmsg="ASCII"
+       if yesno ${unicode}; then
+               termencoding="%G"
+               termmsg="UTF-8"
+       fi
+
+       ebegin "Setting terminal encoding [$termmsg]"
+       n=1
+       while [ ${n} -le "$ttyn" ]; do
+               printf "\033%s" "$termencoding" >$ttydev$n
+               n=$(($n + 1))
+       done
+
+       # Save the encoding for use immediately at boot
+       if [ -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               if yesno ${unicode:-${UNICODE}}; then
+                       echo "" > "$RC_LIBEXECDIR"/console/unicode
+               else
+                       rm -f "$RC_LIBEXECDIR"/console/unicode
+               fi
+       fi
+
+       eend 0
+}
diff --git a/config-archive/etc/init.d/termencoding.dist b/config-archive/etc/init.d/termencoding.dist
new file mode 100755 (executable)
index 0000000..d7951d1
--- /dev/null
@@ -0,0 +1,48 @@
+#!/sbin/runscript
+# Copyright (c) 2008-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+description="Configures terminal encoding."
+
+ttyn=${rc_tty_number:-${RC_TTY_NUMBER:-12}}
+: ${unicode:=${UNICODE}}
+
+depend()
+{
+       keyword -openvz -prefix -uml -vserver -xenu
+       need root
+       after bootmisc
+}
+
+start()
+{
+       local ttydev=/dev/tty n=
+       [ -d /dev/vc ] && ttydev=/dev/vc/
+
+       # Set terminal encoding to either ASCII or UNICODE.
+       # See utf-8(7) for more information.
+       local termencoding="%@" termmsg="ASCII"
+       if yesno ${unicode}; then
+               termencoding="%G"
+               termmsg="UTF-8"
+       fi
+
+       ebegin "Setting terminal encoding [$termmsg]"
+       n=1
+       while [ ${n} -le "$ttyn" ]; do
+               printf "\033%s" "$termencoding" >$ttydev$n
+               : $(( n += 1 ))
+       done
+
+       # Save the encoding for use immediately at boot
+       if [ -w "$RC_LIBEXECDIR" ]; then
+               mkdir -p "$RC_LIBEXECDIR"/console
+               if yesno ${unicode:-${UNICODE}}; then
+                       echo "" > "$RC_LIBEXECDIR"/console/unicode
+               else
+                       rm -f "$RC_LIBEXECDIR"/console/unicode
+               fi
+       fi
+
+       eend 0
+}
diff --git a/config-archive/etc/init.d/udev b/config-archive/etc/init.d/udev
new file mode 100755 (executable)
index 0000000..833cca0
--- /dev/null
@@ -0,0 +1,272 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Run udevd and create the device-nodes"
+
+[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf
+
+rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}
+
+depend()
+{
+       if [ -f /etc/init.d/sysfs ]; then
+               # require new enough openrc with sysinit being extra runlevel
+               # on linux we just check if sysfs init-script exists
+               # this is to silence out ugly warnings about not-existing sysfs script
+               provide dev
+               if yesno "${rc_device_tarball:-no}"; then
+                       need sysfs udev-mount udev-dev-tarball
+               else
+                       need sysfs udev-mount
+               fi
+               before checkfs fsck
+
+               # udev does not work inside vservers
+               keyword novserver nolxc
+       fi
+}
+
+cleanup()
+{
+       # fail more gracely and not leave udevd running
+       start-stop-daemon --stop --exec /sbin/udevd
+       exit 1
+}
+
+disable_hotplug_agent()
+{
+       if [ -e /proc/sys/kernel/hotplug ]; then
+               echo "" >/proc/sys/kernel/hotplug
+       fi
+}
+
+root_link()
+{
+       /lib64/udev/write_root_link_rule
+}
+
+rules_disable_switch()
+{
+       # this function disables rules files
+       # by creating new files with the same name
+       # in a temp rules directory with higher priority
+       local f=/dev/.udev/rules.d/"$1" bname="$1" onoff="$2"
+
+       if yesno "${onoff}"; then
+               echo "# This file disables ${bname} due to /etc/conf.d/udev" \
+                       > "${f}"
+       else
+               rm -f "${f}"
+       fi
+}
+
+# only called on openrc
+is_service_enabled() {
+       local svc="$1"
+
+       [ ! -e "/etc/init.d/${svc}" ] && return 1
+
+       [ -e "/etc/runlevels/${RC_BOOTLEVEL}/${svc}" ] && return 0
+       [ -e "/etc/runlevels/${RC_DEFAULTLEVEL}/${svc}" ] && return 0
+       return 1
+}
+
+check_openrc_net()
+{
+       local f=/dev/.udev/rules.d/90-network.rules
+       is_service_enabled network || return 0
+
+       # disable network hotplugging
+       echo "# This file disables network hotplug events calling old-style openrc net scripts" >> "${f}"
+       echo "# as we use new-style network init script /etc/init.d/network" >> "${f}"
+}
+
+start_udevd()
+{
+       # load unix domain sockets if built as module, Bug #221253
+       if [ -e /proc/modules ] ; then
+               modprobe -q unix 2>/dev/null
+       fi
+       local opts="${udev_opts}"
+
+       ebegin "Starting udevd"
+       if yesno "${udev_debug:-no}"; then
+               /sbin/udevd --daemon ${opts} --debug 2>/dev/.udev/udev.log
+       else
+               start-stop-daemon --start --exec /sbin/udevd -- --daemon ${opts}
+       fi
+
+       eend $?
+}
+
+# populate /dev with devices already found by the kernel
+populate_dev()
+{
+       if get_bootparam "nocoldplug" ; then
+               rc_coldplug="NO"
+               ewarn "Skipping udev coldplug as requested in kernel cmdline"
+       fi
+
+       ebegin "Populating /dev with existing devices through uevents"
+       udevadm control --property=STARTUP=1
+       if yesno "${rc_coldplug}"; then
+               udevadm trigger --action="add"
+       else
+               # Do not run any init-scripts, Bug #206518
+               udevadm control --property=do_not_run_plug_service=1
+
+               # only create device nodes
+               udevadm trigger --action="add" --attr-match=dev
+
+               # run persistent-net stuff, bug 191466
+               udevadm trigger --action="add" --subsystem-match=net
+       fi
+       eend $?
+
+       # we can speed up booting under these conditions:
+       #  * using devtmpfs so kernel creates device nodes for us
+       #  * only using kernel created device nodes at boot (in /etc/fstab and elsewhere)
+       #
+       ebegin "Waiting for uevents to be processed"
+       udevadm settle --timeout=${udev_settle_timeout:-60}
+       eend $?
+
+       udevadm control --property=do_not_run_plug_service=
+       udevadm control --property=STARTUP=
+       return 0
+}
+
+# for debugging
+start_udevmonitor()
+{
+       yesno "${udev_monitor:-no}" || return 0
+
+       udevmonitor_log=/dev/.udev/udevmonitor.log
+       udevmonitor_pid=/dev/.udev/udevmonitor.pid
+
+       einfo "udev: Running udevadm monitor ${udev_monitor_opts} to get a log of all events"
+       start-stop-daemon --start --stdout "${udevmonitor_log}" \
+               --make-pidfile --pidfile "${udevmonitor_pid}" \
+               --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}
+}
+
+stop_udevmonitor()
+{
+       yesno "${udev_monitor:-no}" || return 0
+
+       if yesno "${udev_monitor_keep_running:-no}"; then
+               ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"
+       else
+               einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"
+               start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm
+       fi
+}
+
+display_hotplugged_services() {
+       local svcfile= svc= services=
+       for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
+               svc="${svcfile##*/}"
+               [ -x "${svcfile}" ] || continue
+
+               services="${services} ${svc}"
+       done
+       [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
+}
+
+check_persistent_net()
+{
+       # check if there are problems with persistent-net
+       local syspath= devs= problem=false
+       for syspath in /sys/class/net/*_rename*; do
+               if [ -d "${syspath}" ]; then
+                       devs="${devs} ${syspath##*/}"
+                       problem=true
+               fi
+       done
+
+       ${problem} || return 0
+
+       eerror "UDEV: Your system has a problem assigning persistent names"
+       eerror "to these network interfaces: ${devs}"
+
+       einfo "Checking persistent-net rules:"
+       # the sed-expression lists all duplicate lines
+       # from the input, like "uniq -d" does, but uniq
+       # is installed into /usr/bin and not available at boot.
+       dups=$(
+       RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
+       . /lib64/udev/rule_generator.functions
+       find_all_rules 'NAME=' '.*' | \
+       tr ' ' '\n' | \
+       sort | \
+       sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
+       )
+       if [ -n "${dups}" ]; then
+               ewarn "The rules create multiple entries assigning these names:"
+               eindent
+               ewarn "${dups}"
+               eoutdent
+       else
+               ewarn "Found no duplicate names in persistent-net rules,"
+               ewarn "there must be some other problem!"
+       fi
+       return 1
+}
+
+check_udev_works()
+{
+       # should exist on every system, else udev failed
+       if [ ! -e /dev/zero ]; then
+               eerror "Assuming udev failed somewhere, as /dev/zero does not exist."
+               return 1
+       fi
+       return 0
+}
+
+start()
+{
+       # do not run this on old baselayout where udev-addon gets loaded
+       if [ ! -f /etc/init.d/sysfs ]; then
+               eerror "The $SVCNAME init-script is written for baselayout-2!"
+               eerror "Please do not use it with baselayout-1!".
+               return 1
+       fi
+
+       check_openrc_net
+       _start
+       
+       display_hotplugged_services
+
+       return 0
+}
+
+_start()
+{
+       if [ ! -e /etc/runlevels/${RC_DEFAULTLEVEL:-default}/udev-postmount ]; then
+               ewarn "You should add udev-postmount service to your default runlevel."
+       fi
+
+       root_link
+       rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable:-no}"
+       rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable:-no}
+       
+       disable_hotplug_agent
+       start_udevd || cleanup
+       start_udevmonitor
+       populate_dev || cleanup
+
+       check_persistent_net
+
+       check_udev_works || cleanup
+       stop_udevmonitor
+
+       return 0
+}
+
+stop() {
+       ebegin "Stopping udevd"
+       start-stop-daemon --stop --exec /sbin/udevd
+       eend $?
+}
+
diff --git a/config-archive/etc/init.d/udev-mount b/config-archive/etc/init.d/udev-mount
new file mode 100755 (executable)
index 0000000..52cf26b
--- /dev/null
@@ -0,0 +1,107 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Mount tmpfs on /dev"
+[ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
+
+# get_KV and KV_to_int
+. /lib64/udev/shell-compat-KV.sh
+
+# FIXME
+# Instead of this script testing kernel version, udev itself should
+# Maybe something like udevd --test || exit $?
+check_kernel()
+{
+       if [ $(get_KV) -lt $(KV_to_int '2.6.25') ]; then
+               eerror "Your kernel is too old to work with this version of udev."
+               eerror "Current udev only supports Linux kernel 2.6.25 and newer."
+               return 1
+       fi
+
+       yesno "${unreliable_kernel_warning:-yes}" || return 0
+
+       if [ $(get_KV) -lt $(KV_to_int '2.6.27') ]; then
+               ewarn "You need at least Linux kernel 2.6.27 for reliable operation of udev."
+       fi
+       return 0
+}
+
+
+mount_dev_directory()
+{
+       if mountinfo -q /dev; then
+               einfo "/dev is already mounted"
+               return 0
+       fi
+
+       # No options are processed here as they should all be in /etc/fstab
+       ebegin "Mounting /dev"
+       if ! fstabinfo --mount /dev; then
+               # we mount devtmpfs if supported
+               local fs=tmpfs
+               grep -qs devtmpfs /proc/filesystems && fs=devtmpfs
+
+               # Some devices require exec, Bug #92921
+               mount -n -t "$fs" -o "exec,nosuid,mode=0755,size=10M" udev /dev
+       fi
+       eend $?
+}
+
+seed_dev()
+{
+       # Seed /dev with some things that we know we need
+
+       # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
+       # to $CONSOLE with/without bootsplash before udevd creates it
+       [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
+       [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
+       [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
+
+       # udevd will dup its stdin/stdout/stderr to /dev/null
+       # and we do not want a file which gets buffered in ram
+       [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
+       ${HAVE_SELINUX} && restorecon /dev/null
+
+       # so udev can add its start-message to dmesg
+       [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
+
+       # Create problematic directories
+       mkdir -p /dev/pts /dev/shm
+       ${HAVE_SELINUX} && restorecon -R /dev >/dev/null
+       return 0
+}
+
+
+start()
+{
+       # do not run this on too old baselayout - udev-addon is already loaded!
+       if [ ! -f /etc/init.d/sysfs ]; then
+               eerror "The $SVCNAME init-script is written for baselayout-2!"
+               eerror "Please do not use it with baselayout-1!".
+               return 1
+       fi
+
+       _start
+}
+
+_start()
+{
+       check_kernel || return 1
+       mount_dev_directory || return 1
+
+       # Selinux lovin; /selinux should be mounted by selinux-patched init
+       if [ -x /sbin/restorecon -a -c /selinux/null ]; then
+               HAVE_SELINUX=true
+               restorecon /dev > /selinux/null
+       else
+               HAVE_SELINUX=false
+       fi
+
+       # make sure it exists
+       mkdir -p /dev/.udev /dev/.udev/rules.d
+       
+       seed_dev
+
+       return 0
+}
diff --git a/config-archive/etc/init.d/udev-mount.dist b/config-archive/etc/init.d/udev-mount.dist
new file mode 100755 (executable)
index 0000000..62742bd
--- /dev/null
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="mount devtmpfs or tmpfs on /dev"
+
+depend()
+{
+       keyword -vserver -lxc
+}
+
+mount_dev_directory()
+{
+       if mountinfo -q /dev; then
+               einfo "/dev is already mounted"
+               return 0
+       fi
+
+       # No options are processed here as they should all be in /etc/fstab
+       ebegin "Mounting /dev"
+       if ! fstabinfo --mount /dev; then
+               # we mount devtmpfs if supported
+               local fs=tmpfs
+               grep -qs devtmpfs /proc/filesystems && fs=devtmpfs
+
+               # Some devices require exec, Bug #92921
+               mount -n -t "$fs" -o "exec,nosuid,mode=0755,size=10M" udev /dev
+       fi
+       eend $?
+}
+
+seed_dev()
+{
+       # Seed /dev with some things that we know we need
+
+       # creating /dev/console, /dev/tty and /dev/tty1 to be able to write
+       # to $CONSOLE with/without bootsplash before udevd creates it
+       [ -c /dev/console ] || mknod -m 600 /dev/console c 5 1
+       [ -c /dev/tty1 ] || mknod -m 620 /dev/tty1 c 4 1
+       [ -c /dev/tty ] || mknod -m 666 /dev/tty c 5 0
+
+       # udevd will dup its stdin/stdout/stderr to /dev/null
+       # and we do not want a file which gets buffered in ram
+       [ -c /dev/null ] || mknod -m 666 /dev/null c 1 3
+       ${HAVE_SELINUX} && restorecon /dev/null
+
+       # so udev can add its start-message to dmesg
+       [ -c /dev/kmsg ] || mknod -m 660 /dev/kmsg c 1 11
+
+       # Create problematic directories
+       mkdir -p /dev/pts /dev/shm
+       ${HAVE_SELINUX} && restorecon -R /dev >/dev/null
+       return 0
+}
+
+start()
+{
+       mount_dev_directory || return 1
+
+       # Selinux lovin; /selinux should be mounted by selinux-patched init
+       if [ -x /sbin/restorecon -a -c /selinux/null ]; then
+               HAVE_SELINUX=true
+               restorecon /dev > /selinux/null
+       else
+               HAVE_SELINUX=false
+       fi
+
+       seed_dev
+       return 0
+}
diff --git a/config-archive/etc/init.d/udev-postmount b/config-archive/etc/init.d/udev-postmount
new file mode 100755 (executable)
index 0000000..12a30f6
--- /dev/null
@@ -0,0 +1,53 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/files/164/udev-postmount.initd,v 1.1 2010/10/30 13:53:54 zzam Exp $
+
+depend() {
+       need localmount
+       after dbus # for trigger failed
+}
+
+dir_writeable()
+{
+        touch "$1"/.test.$$ 2>/dev/null && rm "$1"/.test.$$
+}
+
+# store persistent-rules that got created while booting
+# when / was still read-only
+store_persistent_rules() {
+       # only continue if rules-directory is writable
+       dir_writeable /etc/udev/rules.d || return 0
+
+       local file dest
+       for file in /dev/.udev/tmp-rules--*; do
+               dest=${file##*tmp-rules--}
+               [ "$dest" = '*' ] && break
+               type=${dest##70-persistent-}
+               type=${type%%.rules}
+               ebegin "Saving udev persistent ${type} rules to /etc/udev/rules.d"
+               cat "$file" >> /etc/udev/rules.d/"$dest" && rm -f "$file"
+               eend $? "Failed moving persistent rules!"
+       done
+}
+
+
+start() {
+       # check if this system uses udev
+       [ -d /dev/.udev/ ] || return 0
+
+       einfo "Doing udev cleanups"
+
+       # Run the events that failed at first udev trigger
+       udevadm trigger --type=failed -v
+
+       # store persistent-rules that got created while booting
+       # when / was still read-only
+       store_persistent_rules
+}
+
+stop() {
+       :
+}
+
+# vim:ts=4
diff --git a/config-archive/etc/init.d/udev-postmount.dist b/config-archive/etc/init.d/udev-postmount.dist
new file mode 100755 (executable)
index 0000000..d689681
--- /dev/null
@@ -0,0 +1,66 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+udev_version()
+{
+       echo $(udevadm --version)
+}
+
+depend()
+{
+       need localmount
+       if [ $(udev_version) -lt 175 ]; then
+               after dbus # for trigger failed
+       fi
+       keyword -vserver -lxc
+}
+
+dir_writeable()
+{
+        touch "$1"/.test.$$ 2>/dev/null && rm "$1"/.test.$$
+}
+
+# store persistent-rules that got created while booting
+# when / was still read-only
+store_persistent_rules()
+{
+       # only continue if rules-directory is writable
+       dir_writeable /etc/udev/rules.d || return 0
+
+       local file dest
+       for file in "${RUNDIR}"/tmp-rules--*; do
+               dest=${file##*tmp-rules--}
+               [ "$dest" = '*' ] && break
+               type=${dest##70-persistent-}
+               type=${type%%.rules}
+               ebegin "Saving udev persistent ${type} rules to /etc/udev/rules.d"
+               cat "$file" >> /etc/udev/rules.d/"$dest" && rm -f "$file"
+               eend $? "Failed moving persistent rules!"
+       done
+}
+
+start()
+{
+       RUNDIR=$(udevadm info --run)
+       # check if this system uses udev
+       [ -d "${RUNDIR}" ] || return 0
+
+       einfo "Doing udev cleanups"
+
+       if [ $(udev_version) -lt 175 ]; then
+               # Run the events that failed at first udev trigger
+               udevadm trigger --type=failed -v
+       fi
+
+       # store persistent-rules that got created while booting
+       # when / was still read-only
+       store_persistent_rules
+}
+
+stop()
+{
+       return 0
+}
+
+# vim:ts=4
diff --git a/config-archive/etc/init.d/udev.dist b/config-archive/etc/init.d/udev.dist
new file mode 100755 (executable)
index 0000000..1912c8b
--- /dev/null
@@ -0,0 +1,275 @@
+#!/sbin/runscript
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command=/sbin/udevd
+command_args="--daemon ${udev_opts}"
+description="Run udevd and create the device-nodes"
+
+persistent_cd_disable="${persistent_cd_disable:-no}"
+persistent_net_disable="${persistent_net_disable:-no}"
+rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}
+udev_debug="${udev_debug:-no}"
+udev_monitor="${udev_monitor:-no}"
+udev_monitor_keep_running="${udev_monitor_keep_running:-no}"
+udev_settle_timeout="${udev_settle_timeout:-60}"
+kv_min="${kb_min:-2.6.32}"
+
+depend()
+{
+       provide dev
+       need sysfs udev-mount
+       before checkfs fsck
+
+       # udev does not work inside vservers
+       keyword -vserver -lxc
+}
+
+KV_to_int()
+{
+       [ -z $1 ] && return 1
+
+       local x=${1%%[!0-9.]*} y= z=
+       local KV_MAJOR=${x%%.*}
+       y=${x#*.}
+       [ "$x" = "$y" ] && y=0.0
+       local KV_MINOR=${y%%.*}
+       z=${y#*.}
+       [ "$y" = "$z" ] && z=0
+       local KV_MICRO=${z%%.*}
+       local KV_int=$((${KV_MAJOR} * 65536 + ${KV_MINOR} * 256 + ${KV_MICRO} ))
+
+       # We make version 2.2.0 the minimum version we will handle as
+       # a sanity check ... if its less, we fail ...
+       [ "${KV_int}" -lt 131584 ] && return 1
+       
+       echo "${KV_int}"
+}
+
+_RC_GET_KV_CACHE=""
+get_KV()
+{
+       if [ -z "${_RC_GET_KV_CACHE}" ] ; then
+               _RC_GET_KV_CACHE="$(uname -r)"
+       fi
+       echo "$(KV_to_int "${_RC_GET_KV_CACHE}")"
+       return $?
+}
+
+# FIXME
+# Instead of this script testing kernel version, udev itself should
+# Maybe something like udevd --test || exit $?
+check_kernel()
+{
+       if [ $(get_KV) -lt $(KV_to_int ${kv_min}) ]; then
+               eerror "Your kernel is too old to work with this version of udev."
+               eerror "Current udev only supports Linux kernel ${kv_min} and newer."
+               return 1
+       fi
+       return 0
+}
+
+get_rundir()
+{
+       echo $(udevadm info --run)
+}
+
+cleanup()
+{
+       # fail more gracely and not leave udevd running
+       start-stop-daemon --stop --exec /sbin/udevd
+       exit 1
+}
+
+rules_disable_switch()
+{
+       # this function disables rules files
+       # by creating new files with the same name
+       # in a temp rules directory with higher priority
+       local f=$(get_rundir)/rules.d/"$1" bname="$1" onoff="$2"
+
+       if yesno "${onoff}"; then
+               echo "# This file disables ${bname} due to /etc/conf.d/udev" \
+                       > "${f}"
+       else
+               rm -f "${f}"
+       fi
+}
+
+is_service_enabled()
+{
+       local svc="$1"
+
+       [ ! -e "/etc/init.d/${svc}" ] && return 1
+
+       [ -e "/etc/runlevels/${RC_BOOTLEVEL}/${svc}" ] && return 0
+       [ -e "/etc/runlevels/${RC_DEFAULTLEVEL}/${svc}" ] && return 0
+       return 1
+}
+
+start_pre()
+{
+       if [ -d /run ]; then
+               checkpath -d -m 0755 -o root:root -q /run/udev
+       fi
+
+       if is_service_enabled network; then
+               # disable network hotplugging
+               local f="$(get_rundir)/rules.d/90-network.rules"
+               echo "# This file disables network hotplug events calling" >> "${f}"
+               echo "# old-style openrc net scripts" >> "${f}"
+               echo "# as we use /etc/init.d/network to set up our network" >> "${f}"
+       fi
+
+       if [ ! -e /etc/runlevels/${RC_DEFAULTLEVEL:-default}/udev-postmount ]; then
+               ewarn "You should add udev-postmount service to your default runlevel."
+       fi
+
+       /lib/udev/write_root_link_rule
+
+       rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable}"
+       rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable}
+       
+       if [ -e /proc/sys/kernel/hotplug ]; then
+               echo "" >/proc/sys/kernel/hotplug
+       fi
+
+       # load unix domain sockets if built as module, Bug #221253
+       # and not yet loaded, Bug #363549
+       if [ ! -e /proc/net/unix ]; then
+               if ! modprobe unix; then
+                       eerror "Cannot load the unix domain socket module"
+               fi
+       fi
+
+       if yesno "${udev_debug}"; then
+               command_args="${command_args} --debug 2> $(get_rundir)/udev.log"
+       fi
+}
+
+start_udevmonitor()
+{
+       yesno "${udev_monitor}" || return 0
+
+       udevmonitor_log="$(get_rundir)/udevmonitor.log"
+       udevmonitor_pid="$(get_rundir)/udevmonitor.pid"
+
+       einfo "udev: Running udevadm monitor ${udev_monitor_opts} to log all events"
+       start-stop-daemon --start --stdout "${udevmonitor_log}" \
+               --make-pidfile --pidfile "${udevmonitor_pid}" \
+               --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}
+}
+
+populate_dev()
+{
+       if get_bootparam "nocoldplug" ; then
+               rc_coldplug="NO"
+               ewarn "Skipping udev coldplug as requested in kernel cmdline"
+       fi
+
+       ebegin "Populating /dev with existing devices through uevents"
+       if ! yesno "${rc_coldplug}"; then
+               # Do not run any init-scripts, Bug #206518
+               udevadm control --property=do_not_run_plug_service=1
+       fi
+       udevadm trigger --type=subsystems --action=add
+       udevadm trigger --type=devices --action=add
+       eend $?
+
+       # we can speed up booting under these conditions:
+       #  * using devtmpfs so kernel creates device nodes for us
+       #  * only using kernel created device nodes at boot
+       # (in /etc/fstab and elsewhere)
+       #
+       ebegin "Waiting for uevents to be processed"
+       udevadm settle --timeout=${udev_settle_timeout}
+       eend $?
+
+       udevadm control --property=do_not_run_plug_service=
+       return 0
+}
+
+check_persistent_net()
+{
+       # check if there are problems with persistent-net
+       local syspath= devs= problem=false
+       for syspath in /sys/class/net/*_rename*; do
+               if [ -d "${syspath}" ]; then
+                       devs="${devs} ${syspath##*/}"
+                       problem=true
+               fi
+       done
+
+       ${problem} || return 0
+
+       eerror "UDEV: Your system has a problem assigning persistent names"
+       eerror "to these network interfaces: ${devs}"
+
+       einfo "Checking persistent-net rules:"
+       # the sed-expression lists all duplicate lines
+       # from the input, like "uniq -d" does, but uniq
+       # is installed into /usr/bin and not available at boot.
+       dups=$(
+       RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
+       . /lib/udev/rule_generator.functions
+       find_all_rules 'NAME=' '.*' | \
+       tr ' ' '\n' | \
+       sort | \
+       sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
+       )
+       if [ -n "${dups}" ]; then
+               ewarn "The rules create multiple entries assigning these names:"
+               eindent
+               ewarn "${dups}"
+               eoutdent
+       else
+               ewarn "Found no duplicate names in persistent-net rules,"
+               ewarn "there must be some other problem!"
+       fi
+       return 1
+}
+
+check_udev_works()
+{
+       # should exist on every system, else udev failed
+       if [ ! -e /dev/zero ]; then
+               eerror "Assuming udev failed somewhere, as /dev/zero does not exist."
+               return 1
+       fi
+       return 0
+}
+
+stop_udevmonitor()
+{
+       yesno "${udev_monitor}" || return 0
+
+       if yesno "${udev_monitor_keep_running}"; then
+               ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"
+       else
+               einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"
+               start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm
+       fi
+}
+
+display_hotplugged_services()
+{
+       local svcfile= svc= services=
+       for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
+               svc="${svcfile##*/}"
+               [ -x "${svcfile}" ] || continue
+
+               services="${services} ${svc}"
+       done
+       [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
+}
+
+start_post()
+{
+       start_udevmonitor
+       populate_dev
+       check_persistent_net
+       check_udev_works || cleanup
+       stop_udevmonitor
+       display_hotplugged_services
+       return 0
+}
diff --git a/config-archive/etc/init.d/urandom b/config-archive/etc/init.d/urandom
new file mode 100755 (executable)
index 0000000..99e1127
--- /dev/null
@@ -0,0 +1,45 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+: ${urandom_seed:=${URANDOM_SEED:-/var/run/random-seed}}
+description="Initializes the random number generator."
+
+depend()
+{
+       need localmount
+       keyword -jail -openvz -prefix
+}
+
+save_seed()
+{
+       local psz=1
+
+       if [ -e /proc/sys/kernel/random/poolsize ]; then
+               psz=$(($(cat /proc/sys/kernel/random/poolsize) / 4096))
+       fi
+
+       (       # sub shell to prevent umask pollution
+               umask 077
+               dd if=/dev/urandom of="$urandom_seed" count=${psz} 2>/dev/null
+       )
+}
+
+start()
+{
+       [ -c /dev/urandom ] || return
+       if [ -f "$urandom_seed" ]; then
+               ebegin "Initializing random number generator"
+               cat "$urandom_seed" > /dev/urandom
+               eend $? "Error initializing random number generator"
+       fi
+       rm -f "$urandom_seed" && save_seed
+       return 0
+}
+
+stop()
+{
+       ebegin "Saving random seed"
+       save_seed
+       eend $? "Failed to save random seed"
+}
diff --git a/config-archive/etc/init.d/urandom.dist b/config-archive/etc/init.d/urandom.dist
new file mode 100755 (executable)
index 0000000..20e4325
--- /dev/null
@@ -0,0 +1,45 @@
+#!/sbin/runscript
+# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
+# Released under the 2-clause BSD license.
+
+: ${urandom_seed:=${URANDOM_SEED:-/var/lib/misc/random-seed}}
+description="Initializes the random number generator."
+
+depend()
+{
+       need localmount
+       keyword -jail -openvz -prefix
+}
+
+save_seed()
+{
+       local psz=1
+
+       if [ -e /proc/sys/kernel/random/poolsize ]; then
+               : $(( psz = $(cat /proc/sys/kernel/random/poolsize) / 4096 ))
+       fi
+
+       (       # sub shell to prevent umask pollution
+               umask 077
+               dd if=/dev/urandom of="$urandom_seed" count=${psz} 2>/dev/null
+       )
+}
+
+start()
+{
+       [ -c /dev/urandom ] || return
+       if [ -f "$urandom_seed" ]; then
+               ebegin "Initializing random number generator"
+               cat "$urandom_seed" > /dev/urandom
+               eend $? "Error initializing random number generator"
+       fi
+       rm -f "$urandom_seed" && save_seed
+       return 0
+}
+
+stop()
+{
+       ebegin "Saving random seed"
+       save_seed
+       eend $? "Failed to save random seed"
+}
diff --git a/config-archive/etc/logrotate.conf b/config-archive/etc/logrotate.conf
new file mode 100644 (file)
index 0000000..b6162de
--- /dev/null
@@ -0,0 +1,53 @@
+# $Header: /var/cvsroot/gentoo-x86/app-admin/logrotate/files/logrotate.conf,v 1.3 2008/12/24 20:49:10 dang Exp $
+#
+# Logrotate default configuration file for Gentoo Linux
+#
+# See "man logrotate" for details
+
+# rotate log files weekly
+weekly
+#daily
+
+# keep 4 weeks worth of backlogs
+rotate 10
+maxage 2y
+
+# create new (empty) log files after rotating old ones
+create
+
+tabooprefix    \.
+
+# use date as a suffix of the rotated file
+dateext
+
+# do not rotate, if the file is empty
+notifempty
+
+# uncomment this if you want your log files compressed
+compress
+
+# is it okay, if a logfile doesn't exists ?
+missingok
+
+#nomail
+noolddir
+
+# packages can drop log rotation information into this directory
+include /etc/logrotate.d
+
+# no packages own lastlog or wtmp -- we'll rotate them here
+/var/log/wtmp {
+    monthly
+    create 0664 root utmp
+    rotate 12
+    size=4096K
+}
+
+/var/log/btmp {
+    missingok
+    monthly
+    create 0600 root utmp
+    rotate 1
+}
+
+# system-specific logs may be also be configured here.
diff --git a/config-archive/etc/logrotate.conf.dist.new b/config-archive/etc/logrotate.conf.dist.new
new file mode 100644 (file)
index 0000000..25dd134
--- /dev/null
@@ -0,0 +1,44 @@
+# $Header: /var/cvsroot/gentoo-x86/app-admin/logrotate/files/logrotate.conf,v 1.3 2008/12/24 20:49:10 dang Exp $
+#
+# Logrotate default configuration file for Gentoo Linux
+#
+# See "man logrotate" for details
+
+# rotate log files weekly
+weekly
+#daily
+
+# keep 4 weeks worth of backlogs
+rotate 4
+
+# create new (empty) log files after rotating old ones
+create
+
+# use date as a suffix of the rotated file
+dateext
+
+# uncomment this if you want your log files compressed
+compress
+
+# packages can drop log rotation information into this directory
+include /etc/logrotate.d
+
+notifempty
+nomail
+noolddir
+
+# no packages own lastlog or wtmp -- we'll rotate them here
+/var/log/wtmp {
+    monthly
+    create 0664 root utmp
+    rotate 1
+}
+
+/var/log/btmp {
+    missingok
+    monthly
+    create 0600 root utmp
+    rotate 1
+}
+
+# system-specific logs may be also be configured here.
diff --git a/config-archive/etc/lvm/lvm.conf b/config-archive/etc/lvm/lvm.conf
new file mode 100644 (file)
index 0000000..567144b
--- /dev/null
@@ -0,0 +1,525 @@
+# This is an example configuration file for the LVM2 system.
+# It contains the default settings that would be used if there was no
+# /etc/lvm/lvm.conf file.
+#
+# Refer to 'man lvm.conf' for further information including the file layout.
+#
+# To put this file in a different directory and override /etc/lvm set
+# the environment variable LVM_SYSTEM_DIR before running the tools.
+
+
+# This section allows you to configure which block devices should
+# be used by the LVM system.
+devices {
+
+    # Where do you want your volume groups to appear ?
+    dir = "/dev"
+
+    # An array of directories that contain the device nodes you wish
+    # to use with LVM2.
+    scan = [ "/dev" ]
+
+    # If several entries in the scanned directories correspond to the
+    # same block device and the tools need to display a name for device,
+    # all the pathnames are matched against each item in the following
+    # list of regular expressions in turn and the first match is used.
+    preferred_names = [ ]
+
+    # Try to avoid using undescriptive /dev/dm-N names, if present.
+    # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
+
+    # A filter that tells LVM2 to only use a restricted set of devices.
+    # The filter consists of an array of regular expressions.  These
+    # expressions can be delimited by a character of your choice, and
+    # prefixed with either an 'a' (for accept) or 'r' (for reject).
+    # The first expression found to match a device name determines if
+    # the device will be accepted or rejected (ignored).  Devices that
+    # don't match any patterns are accepted.
+
+    # Be careful if there there are symbolic links or multiple filesystem 
+    # entries for the same device as each name is checked separately against
+    # the list of patterns.  The effect is that if any name matches any 'a'
+    # pattern, the device is accepted; otherwise if any name matches any 'r'
+    # pattern it is rejected; otherwise it is accepted.
+
+    # Don't have more than one filter line active at once: only one gets used.
+
+    # Run vgscan after you change this parameter to ensure that
+    # the cache file gets regenerated (see below).
+    # If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
+
+
+    # By default we accept every block device:
+    # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
+    # noise when you probed while not available.
+    filter = [ "r|/dev/nbd.*|", "a/.*/" ]
+
+    # Exclude the cdrom drive
+    # filter = [ "r|/dev/cdrom|" ]
+
+    # When testing I like to work with just loopback devices:
+    # filter = [ "a/loop/", "r/.*/" ]
+
+    # Or maybe all loops and ide drives except hdc:
+    # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
+
+    # Use anchors if you want to be really specific
+    # filter = [ "a|^/dev/hda8$|", "r/.*/" ]
+
+    # The results of the filtering are cached on disk to avoid
+    # rescanning dud devices (which can take a very long time).
+    # By default this cache is stored in the /etc/lvm/cache directory
+    # in a file called '.cache'.
+    # It is safe to delete the contents: the tools regenerate it.
+    # (The old setting 'cache' is still respected if neither of
+    # these new ones is present.)
+    cache_dir = "/etc/lvm/cache"
+    cache_file_prefix = ""
+
+    # You can turn off writing this cache file by setting this to 0.
+    write_cache_state = 1
+
+    # Advanced settings.
+
+    # List of pairs of additional acceptable block device types found 
+    # in /proc/devices with maximum (non-zero) number of partitions.
+    # types = [ "fd", 16 ]
+
+    # If sysfs is mounted (2.6 kernels) restrict device scanning to 
+    # the block devices it believes are valid.
+    # 1 enables; 0 disables.
+    sysfs_scan = 1
+
+    # By default, LVM2 will ignore devices used as components of
+    # software RAID (md) devices by looking for md superblocks.
+    # 1 enables; 0 disables.
+    md_component_detection = 1
+
+    # By default, if a PV is placed directly upon an md device, LVM2
+    # will align its data blocks with the md device's stripe-width.
+    # 1 enables; 0 disables.
+    md_chunk_alignment = 1
+
+    # By default, the start of a PV's data area will be a multiple of
+    # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs.
+    # - minimum_io_size - the smallest request the device can perform
+    #   w/o incurring a read-modify-write penalty (e.g. MD's chunk size)
+    # - optimal_io_size - the device's preferred unit of receiving I/O
+    #   (e.g. MD's stripe width)
+    # minimum_io_size is used if optimal_io_size is undefined (0).
+    # If md_chunk_alignment is enabled, that detects the optimal_io_size.
+    # This setting takes precedence over md_chunk_alignment.
+    # 1 enables; 0 disables.
+    data_alignment_detection = 1
+
+    # Alignment (in KB) of start of data area when creating a new PV.
+    # If a PV is placed directly upon an md device and md_chunk_alignment or
+    # data_alignment_detection is enabled this parameter is ignored.
+    # Set to 0 for the default alignment of 1MB or page size, if larger.
+    data_alignment = 0
+
+    # By default, the start of the PV's aligned data area will be shifted by
+    # the 'alignment_offset' exposed in sysfs.  This offset is often 0 but
+    # may be non-zero; e.g.: certain 4KB sector drives that compensate for
+    # windows partitioning will have an alignment_offset of 3584 bytes
+    # (sector 7 is the lowest aligned logical block, the 4KB sectors start
+    # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary).
+    # 1 enables; 0 disables.
+    data_alignment_offset_detection = 1
+
+    # If, while scanning the system for PVs, LVM2 encounters a device-mapper
+    # device that has its I/O suspended, it waits for it to become accessible.
+    # Set this to 1 to skip such devices.  This should only be needed
+    # in recovery situations.
+    ignore_suspended_devices = 0
+
+    # Allow use of pvcreate --uuid without requiring --restorefile.
+    require_restorefile_with_uuid = 1
+}
+
+# This section that allows you to configure the nature of the
+# information that LVM2 reports.
+log {
+
+    # Controls the messages sent to stdout or stderr.
+    # There are three levels of verbosity, 3 being the most verbose.
+    verbose = 0
+
+    # Should we send log messages through syslog?
+    # 1 is yes; 0 is no.
+    syslog = 1
+
+    # Should we log error and debug messages to a file?
+    # By default there is no log file.
+    #file = "/var/log/lvm2.log"
+
+    # Should we overwrite the log file each time the program is run?
+    # By default we append.
+    overwrite = 0
+
+    # What level of log messages should we send to the log file and/or syslog?
+    # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
+    # 7 is the most verbose (LOG_DEBUG).
+    level = 0
+
+    # Format of output messages
+    # Whether or not (1 or 0) to indent messages according to their severity
+    indent = 1
+
+    # Whether or not (1 or 0) to display the command name on each line output
+    command_names = 0
+
+    # A prefix to use before the message text (but after the command name,
+    # if selected).  Default is two spaces, so you can see/grep the severity
+    # of each message.
+    prefix = "  "
+
+    # To make the messages look similar to the original LVM tools use:
+    #   indent = 0
+    #   command_names = 1
+    #   prefix = " -- "
+
+    # Set this if you want log messages during activation.
+    # Don't use this in low memory situations (can deadlock).
+    # activation = 0
+}
+
+# Configuration of metadata backups and archiving.  In LVM2 when we
+# talk about a 'backup' we mean making a copy of the metadata for the
+# *current* system.  The 'archive' contains old metadata configurations.
+# Backups are stored in a human readeable text format.
+backup {
+
+    # Should we maintain a backup of the current metadata configuration ?
+    # Use 1 for Yes; 0 for No.
+    # Think very hard before turning this off!
+    backup = 1
+
+    # Where shall we keep it ?
+    # Remember to back up this directory regularly!
+    backup_dir = "/etc/lvm/backup"
+
+    # Should we maintain an archive of old metadata configurations.
+    # Use 1 for Yes; 0 for No.
+    # On by default.  Think very hard before turning this off.
+    archive = 1
+
+    # Where should archived files go ?
+    # Remember to back up this directory regularly!
+    archive_dir = "/etc/lvm/archive"
+
+    # What is the minimum number of archive files you wish to keep ?
+    retain_min = 10
+
+    # What is the minimum time you wish to keep an archive file for ?
+    retain_days = 30
+}
+
+# Settings for the running LVM2 in shell (readline) mode.
+shell {
+
+    # Number of lines of history to store in ~/.lvm_history
+    history_size = 100
+}
+
+
+# Miscellaneous global LVM2 settings
+global {
+
+    # The file creation mask for any files and directories created.
+    # Interpreted as octal if the first digit is zero.
+    umask = 077
+
+    # Allow other users to read the files
+    #umask = 022
+
+    # Enabling test mode means that no changes to the on disk metadata
+    # will be made.  Equivalent to having the -t option on every
+    # command.  Defaults to off.
+    test = 0
+
+    # Default value for --units argument
+    units = "h"
+
+    # Since version 2.02.54, the tools distinguish between powers of
+    # 1024 bytes (e.g. KiB, MiB, GiB) and powers of 1000 bytes (e.g.
+    # KB, MB, GB).
+    # If you have scripts that depend on the old behaviour, set this to 0
+    # temporarily until you update them.
+    si_unit_consistency = 1
+
+    # Whether or not to communicate with the kernel device-mapper.
+    # Set to 0 if you want to use the tools to manipulate LVM metadata 
+    # without activating any logical volumes.
+    # If the device-mapper kernel driver is not present in your kernel
+    # setting this to 0 should suppress the error messages.
+    activation = 1
+
+    # If we can't communicate with device-mapper, should we try running 
+    # the LVM1 tools?
+    # This option only applies to 2.4 kernels and is provided to help you
+    # switch between device-mapper kernels and LVM1 kernels.
+    # The LVM1 tools need to be installed with .lvm1 suffices
+    # e.g. vgscan.lvm1 and they will stop working after you start using
+    # the new lvm2 on-disk metadata format.
+    # The default value is set when the tools are built.
+    # fallback_to_lvm1 = 0
+    # Gentoo: the LVM tools are a seperate package.
+    fallback_to_lvm1 = 0
+
+    # The default metadata format that commands should use - "lvm1" or "lvm2".
+    # The command line override is -M1 or -M2.
+    # Defaults to "lvm2".
+    # format = "lvm2"
+
+    # Location of proc filesystem
+    proc = "/proc"
+
+    # Type of locking to use. Defaults to local file-based locking (1).
+    # Turn locking off by setting to 0 (dangerous: risks metadata corruption
+    # if LVM2 commands get run concurrently).
+    # Type 2 uses the external shared library locking_library.
+    # Type 3 uses built-in clustered locking.
+    # Type 4 uses read-only locking which forbids any operations that might 
+    # change metadata.
+    locking_type = 1
+
+    # Set to 0 to fail when a lock request cannot be satisfied immediately.
+    wait_for_locks = 1
+
+    # If using external locking (type 2) and initialisation fails,
+    # with this set to 1 an attempt will be made to use the built-in
+    # clustered locking.
+    # If you are using a customised locking_library you should set this to 0.
+    fallback_to_clustered_locking = 1
+
+    # If an attempt to initialise type 2 or type 3 locking failed, perhaps
+    # because cluster components such as clvmd are not running, with this set
+    # to 1 an attempt will be made to use local file-based locking (type 1).
+    # If this succeeds, only commands against local volume groups will proceed.
+    # Volume Groups marked as clustered will be ignored.
+    fallback_to_local_locking = 1
+
+    # Local non-LV directory that holds file-based locks while commands are
+    # in progress.  A directory like /tmp that may get wiped on reboot is OK.
+    locking_dir = "/var/lock/lvm"
+
+    # Whenever there are competing read-only and read-write access requests for
+    # a volume group's metadata, instead of always granting the read-only
+    # requests immediately, delay them to allow the read-write requests to be
+    # serviced.  Without this setting, write access may be stalled by a high
+    # volume of read-only requests.
+    # NB. This option only affects locking_type = 1 viz. local file-based
+    # locking.
+    prioritise_write_locks = 1
+
+    # Other entries can go here to allow you to load shared libraries
+    # e.g. if support for LVM1 metadata was compiled as a shared library use
+    #   format_libraries = "liblvm2format1.so" 
+    # Full pathnames can be given.
+
+    # Search this directory first for shared libraries.
+    #   library_dir = "/lib"
+
+    # The external locking library to load if locking_type is set to 2.
+    #   locking_library = "liblvm2clusterlock.so"
+
+    # Treat any internal errors as fatal errors, aborting the process that
+    # encountered the internal error. Please only enable for debugging.
+    abort_on_internal_errors = 0
+}
+
+activation {
+    # Set to 0 to disable udev synchronisation (if compiled into the binaries).
+    # Processes will not wait for notification from udev.
+    # They will continue irrespective of any possible udev processing
+    # in the background.  You should only use this if udev is not running
+    # or has rules that ignore the devices LVM2 creates.
+    # The command line argument --nodevsync takes precedence over this setting.
+    # If set to 1 when udev is not running, and there are LVM2 processes
+    # waiting for udev, run 'dmsetup udevcomplete_all' manually to wake them up.
+    udev_sync = 1
+
+    # Set to 0 to disable the udev rules installed by LVM2 (if built with
+    # --enable-udev_rules). LVM2 will then manage the /dev nodes and symlinks
+    # for active logical volumes directly itself.
+    # N.B. Manual intervention may be required if this setting is changed
+    # while any logical volumes are active.
+    udev_rules = 1
+
+    # How to fill in missing stripes if activating an incomplete volume.
+    # Using "error" will make inaccessible parts of the device return
+    # I/O errors on access.  You can instead use a device path, in which 
+    # case, that device will be used to in place of missing stripes.
+    # But note that using anything other than "error" with mirrored 
+    # or snapshotted volumes is likely to result in data corruption.
+    missing_stripe_filler = "error"
+
+    # How much stack (in KB) to reserve for use while devices suspended
+    reserved_stack = 256
+
+    # How much memory (in KB) to reserve for use while devices suspended
+    reserved_memory = 8192
+
+    # Nice value used while devices suspended
+    process_priority = -18
+
+    # If volume_list is defined, each LV is only activated if there is a
+    # match against the list.
+    #   "vgname" and "vgname/lvname" are matched exactly.
+    #   "@tag" matches any tag set in the LV or VG.
+    #   "@*" matches if any tag defined on the host is also set in the LV or VG
+    #
+    # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+
+    # Size (in KB) of each copy operation when mirroring
+    mirror_region_size = 512
+
+    # Setting to use when there is no readahead value stored in the metadata.
+    #
+    # "none" - Disable readahead.
+    # "auto" - Use default value chosen by kernel.
+    readahead = "auto"
+
+    # 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define
+    # how a device failure affecting a mirror is handled.
+    # A mirror is composed of mirror images (copies) and a log.
+    # A disk log ensures that a mirror does not need to be re-synced
+    # (all copies made the same) every time a machine reboots or crashes.
+    #
+    # In the event of a failure, the specified policy will be used to determine
+    # what happens. This applies to automatic repairs (when the mirror is being
+    # monitored by dmeventd) and to manual lvconvert --repair when
+    # --use-policies is given.
+    #
+    # "remove" - Simply remove the faulty device and run without it.  If
+    #            the log device fails, the mirror would convert to using
+    #            an in-memory log.  This means the mirror will not
+    #            remember its sync status across crashes/reboots and
+    #            the entire mirror will be re-synced.  If a
+    #            mirror image fails, the mirror will convert to a
+    #            non-mirrored device if there is only one remaining good
+    #            copy.
+    #
+    # "allocate" - Remove the faulty device and try to allocate space on
+    #            a new device to be a replacement for the failed device.
+    #            Using this policy for the log is fast and maintains the
+    #            ability to remember sync state through crashes/reboots.
+    #            Using this policy for a mirror device is slow, as it
+    #            requires the mirror to resynchronize the devices, but it
+    #            will preserve the mirror characteristic of the device.
+    #            This policy acts like "remove" if no suitable device and
+    #            space can be allocated for the replacement.
+    #
+    # "allocate_anywhere" - Not yet implemented. Useful to place the log device
+    #            temporarily on same physical volume as one of the mirror
+    #            images. This policy is not recommended for mirror devices
+    #            since it would break the redundant nature of the mirror. This
+    #            policy acts like "remove" if no suitable device and space can
+    #            be allocated for the replacement.
+
+    mirror_log_fault_policy = "allocate"
+    mirror_image_fault_policy = "remove"
+
+    # While activating devices, I/O to devices being (re)configured is
+    # suspended, and as a precaution against deadlocks, LVM2 needs to pin
+    # any memory it is using so it is not paged out.  Groups of pages that
+    # are known not to be accessed during activation need not be pinned
+    # into memory.  Each string listed in this setting is compared against
+    # each line in /proc/self/maps, and the pages corresponding to any
+    # lines that match are not pinned.  On some systems locale-archive was
+    # found to make up over 80% of the memory used by the process.
+    # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ]
+
+    # Set to 1 to revert to the default behaviour prior to version 2.02.62
+    # which used mlockall() to pin the whole process's memory while activating
+    # devices.
+    use_mlockall = 0
+
+    # Monitoring is enabled by default when activating logical volumes.
+    # Set to 0 to disable monitoring or use the --ignoremonitoring option.
+    monitoring = 1
+
+    # When pvmove or lvconvert must wait for the kernel to finish
+    # synchronising or merging data, they check and report progress
+    # at intervals of this number of seconds.  The default is 15 seconds.
+    # If this is set to 0 and there is only one thing to wait for, there
+    # are no progress reports, but the process is awoken immediately the
+    # operation is complete.
+    polling_interval = 15
+}
+
+
+####################
+# Advanced section #
+####################
+
+# Metadata settings
+#
+metadata {
+    # Default number of copies of metadata to hold on each PV.  0, 1 or 2.
+    # You might want to override it from the command line with 0 
+    # when running pvcreate on new PVs which are to be added to large VGs.
+    # Gentoo: enable for data safety, but PV resize is then disabled.
+    #pvmetadatacopies = 2
+
+    # Default number of copies of metadata to maintain for each VG.
+    # If set to a non-zero value, LVM automatically chooses which of
+    # the available metadata areas to use to achieve the requested
+    # number of copies of the VG metadata.  If you set a value larger
+    # than the the total number of metadata areas available then
+    # metadata is stored in them all.
+    # The default value of 0 ("unmanaged") disables this automatic
+    # management and allows you to control which metadata areas
+    # are used at the individual PV level using 'pvchange
+    # --metadataignore y/n'.
+
+    # vgmetadatacopies = 0
+
+    # Approximate default size of on-disk metadata areas in sectors.
+    # You should increase this if you have large volume groups or
+    # you want to retain a large on-disk history of your metadata changes.
+
+    # pvmetadatasize = 255
+
+    # List of directories holding live copies of text format metadata.
+    # These directories must not be on logical volumes!
+    # It's possible to use LVM2 with a couple of directories here,
+    # preferably on different (non-LV) filesystems, and with no other 
+    # on-disk metadata (pvmetadatacopies = 0). Or this can be in
+    # addition to on-disk metadata areas.
+    # The feature was originally added to simplify testing and is not
+    # supported under low memory situations - the machine could lock up.
+    #
+    # Never edit any files in these directories by hand unless you
+    # you are absolutely sure you know what you are doing! Use
+    # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+    # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+}
+
+# Event daemon
+#
+dmeventd {
+    # mirror_library is the library used when monitoring a mirror device.
+    #
+    # "libdevmapper-event-lvm2mirror.so" attempts to recover from
+    # failures.  It removes failed devices from a volume group and
+    # reconfigures a mirror as necessary. If no mirror library is
+    # provided, mirrors are not monitored through dmeventd.
+
+    mirror_library = "libdevmapper-event-lvm2mirror.so"
+
+    # snapshot_library is the library used when monitoring a snapshot device.
+    #
+    # "libdevmapper-event-lvm2snapshot.so" monitors the filling of
+    # snapshots and emits a warning through syslog when the use of
+    # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and
+    # 95% of the snapshot is filled.
+
+    snapshot_library = "libdevmapper-event-lvm2snapshot.so"
+
+    # Full path of the dmeventd binary.
+    #
+    # executable = "/sbin/dmeventd"
+}
diff --git a/config-archive/etc/lvm/lvm.conf.dist b/config-archive/etc/lvm/lvm.conf.dist
new file mode 100644 (file)
index 0000000..cec2578
--- /dev/null
@@ -0,0 +1,666 @@
+# This is an example configuration file for the LVM2 system.
+# It contains the default settings that would be used if there was no
+# /etc/lvm/lvm.conf file.
+#
+# Refer to 'man lvm.conf' for further information including the file layout.
+#
+# To put this file in a different directory and override /etc/lvm set
+# the environment variable LVM_SYSTEM_DIR before running the tools.
+#
+# N.B. Take care that each setting only appears once if uncommenting
+# example settings in this file.
+
+
+# This section allows you to configure which block devices should
+# be used by the LVM system.
+devices {
+
+    # Where do you want your volume groups to appear ?
+    dir = "/dev"
+
+    # An array of directories that contain the device nodes you wish
+    # to use with LVM2.
+    scan = [ "/dev" ]
+
+    # If set, the cache of block device nodes with all associated symlinks
+    # will be constructed out of the existing udev database content.
+    # This avoids using and opening any inapplicable non-block devices or
+    # subdirectories found in the device directory. This setting is applied
+    # to udev-managed device directory only, other directories will be scanned
+    # fully. LVM2 needs to be compiled with udev support for this setting to
+    # take effect. N.B. Any device node or symlink not managed by udev in
+    # udev directory will be ignored with this setting on.
+    obtain_device_list_from_udev = 1
+
+    # If several entries in the scanned directories correspond to the
+    # same block device and the tools need to display a name for device,
+    # all the pathnames are matched against each item in the following
+    # list of regular expressions in turn and the first match is used.
+    preferred_names = [ ]
+
+    # Try to avoid using undescriptive /dev/dm-N names, if present.
+    # preferred_names = [ "^/dev/mpath/", "^/dev/mapper/mpath", "^/dev/[hs]d" ]
+
+    # A filter that tells LVM2 to only use a restricted set of devices.
+    # The filter consists of an array of regular expressions.  These
+    # expressions can be delimited by a character of your choice, and
+    # prefixed with either an 'a' (for accept) or 'r' (for reject).
+    # The first expression found to match a device name determines if
+    # the device will be accepted or rejected (ignored).  Devices that
+    # don't match any patterns are accepted.
+
+    # Be careful if there there are symbolic links or multiple filesystem 
+    # entries for the same device as each name is checked separately against
+    # the list of patterns.  The effect is that if any name matches any 'a'
+    # pattern, the device is accepted; otherwise if any name matches any 'r'
+    # pattern it is rejected; otherwise it is accepted.
+
+    # Don't have more than one filter line active at once: only one gets used.
+
+    # Run vgscan after you change this parameter to ensure that
+    # the cache file gets regenerated (see below).
+    # If it doesn't do what you expect, check the output of 'vgscan -vvvv'.
+
+
+    # By default we accept every block device:
+    # Gentoo: we exclude /dev/nbd by default, because it makes a lot of kernel
+    # noise when you probed while not available.
+    filter = [ "r|/dev/nbd.*|", "a/.*/" ]
+
+    # Exclude the cdrom drive
+    # filter = [ "r|/dev/cdrom|" ]
+
+    # When testing I like to work with just loopback devices:
+    # filter = [ "a/loop/", "r/.*/" ]
+
+    # Or maybe all loops and ide drives except hdc:
+    # filter =[ "a|loop|", "r|/dev/hdc|", "a|/dev/ide|", "r|.*|" ]
+
+    # Use anchors if you want to be really specific
+    # filter = [ "a|^/dev/hda8$|", "r/.*/" ]
+
+    # The results of the filtering are cached on disk to avoid
+    # rescanning dud devices (which can take a very long time).
+    # By default this cache is stored in the /etc/lvm/cache directory
+    # in a file called '.cache'.
+    # It is safe to delete the contents: the tools regenerate it.
+    # (The old setting 'cache' is still respected if neither of
+    # these new ones is present.)
+    cache_dir = "/etc/lvm/cache"
+    cache_file_prefix = ""
+
+    # You can turn off writing this cache file by setting this to 0.
+    write_cache_state = 1
+
+    # Advanced settings.
+
+    # List of pairs of additional acceptable block device types found 
+    # in /proc/devices with maximum (non-zero) number of partitions.
+    # types = [ "fd", 16 ]
+
+    # If sysfs is mounted (2.6 kernels) restrict device scanning to 
+    # the block devices it believes are valid.
+    # 1 enables; 0 disables.
+    sysfs_scan = 1
+
+    # By default, LVM2 will ignore devices used as components of
+    # software RAID (md) devices by looking for md superblocks.
+    # 1 enables; 0 disables.
+    md_component_detection = 1
+
+    # By default, if a PV is placed directly upon an md device, LVM2
+    # will align its data blocks with the md device's stripe-width.
+    # 1 enables; 0 disables.
+    md_chunk_alignment = 1
+
+    # Default alignment of the start of a data area in MB.  If set to 0,
+    # a value of 64KB will be used.  Set to 1 for 1MiB, 2 for 2MiB, etc.
+    # default_data_alignment = 1
+
+    # By default, the start of a PV's data area will be a multiple of
+    # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs.
+    # - minimum_io_size - the smallest request the device can perform
+    #   w/o incurring a read-modify-write penalty (e.g. MD's chunk size)
+    # - optimal_io_size - the device's preferred unit of receiving I/O
+    #   (e.g. MD's stripe width)
+    # minimum_io_size is used if optimal_io_size is undefined (0).
+    # If md_chunk_alignment is enabled, that detects the optimal_io_size.
+    # This setting takes precedence over md_chunk_alignment.
+    # 1 enables; 0 disables.
+    data_alignment_detection = 1
+
+    # Alignment (in KB) of start of data area when creating a new PV.
+    # md_chunk_alignment and data_alignment_detection are disabled if set.
+    # Set to 0 for the default alignment (see: data_alignment_default)
+    # or page size, if larger.
+    data_alignment = 0
+
+    # By default, the start of the PV's aligned data area will be shifted by
+    # the 'alignment_offset' exposed in sysfs.  This offset is often 0 but
+    # may be non-zero; e.g.: certain 4KB sector drives that compensate for
+    # windows partitioning will have an alignment_offset of 3584 bytes
+    # (sector 7 is the lowest aligned logical block, the 4KB sectors start
+    # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary).
+    # But note that pvcreate --dataalignmentoffset will skip this detection.
+    # 1 enables; 0 disables.
+    data_alignment_offset_detection = 1
+
+    # If, while scanning the system for PVs, LVM2 encounters a device-mapper
+    # device that has its I/O suspended, it waits for it to become accessible.
+    # Set this to 1 to skip such devices.  This should only be needed
+    # in recovery situations.
+    ignore_suspended_devices = 0
+
+    # During each LVM operation errors received from each device are counted.
+    # If the counter of a particular device exceeds the limit set here, no
+    # further I/O is sent to that device for the remainder of the respective
+    # operation. Setting the parameter to 0 disables the counters altogether.
+    disable_after_error_count = 0
+
+    # Allow use of pvcreate --uuid without requiring --restorefile.
+    require_restorefile_with_uuid = 1
+
+    # Minimum size (in KB) of block devices which can be used as PVs.
+    # In a clustered environment all nodes must use the same value.
+    # Any value smaller than 512KB is ignored.
+
+    # Ignore devices smaller than 2MB such as floppy drives.
+    pv_min_size = 2048
+
+    # The original built-in setting was 512 up to and including version 2.02.84.
+    # pv_min_size = 512
+
+    # Issue discards to a logical volumes's underlying physical volume(s) when
+    # the logical volume is no longer using the physical volumes' space (e.g.
+    # lvremove, lvreduce, etc).  Discards inform the storage that a region is
+    # no longer in use.  Storage that supports discards advertise the protocol
+    # specific way discards should be issued by the kernel (TRIM, UNMAP, or
+    # WRITE SAME with UNMAP bit set).  Not all storage will support or benefit
+    # from discards but SSDs and thinly provisioned LUNs generally do.  If set
+    # to 1, discards will only be issued if both the storage and kernel provide
+    # support.
+    # 1 enables; 0 disables.
+    issue_discards = 0
+}
+
+# This section allows you to configure the way in which LVM selects
+# free space for its Logical Volumes.
+#allocation {
+#    When searching for free space to extend an LV, the "cling"
+#    allocation policy will choose space on the same PVs as the last
+#    segment of the existing LV.  If there is insufficient space and a
+#    list of tags is defined here, it will check whether any of them are
+#    attached to the PVs concerned and then seek to match those PV tags
+#    between existing extents and new extents.
+#    Use the special tag "@*" as a wildcard to match any PV tag.
+#    
+#    Example: LVs are mirrored between two sites within a single VG.
+#    PVs are tagged with either @site1 or @site2 to indicate where
+#    they are situated.
+#
+#    cling_tag_list = [ "@site1", "@site2" ]
+#    cling_tag_list = [ "@*" ]
+#
+#    Changes made in version 2.02.85 extended the reach of the 'cling'
+#    policies to detect more situations where data can be grouped
+#    onto the same disks.  Set this to 0 to revert to the previous
+#    algorithm.
+#
+#    maximise_cling = 1
+#
+#    Set to 1 to guarantee that mirror logs will always be placed on 
+#    different PVs from the mirror images.  This was the default
+#    until version 2.02.85.
+#
+#    mirror_logs_require_separate_pvs = 0
+#}
+
+# This section that allows you to configure the nature of the
+# information that LVM2 reports.
+log {
+
+    # Controls the messages sent to stdout or stderr.
+    # There are three levels of verbosity, 3 being the most verbose.
+    verbose = 0
+
+    # Should we send log messages through syslog?
+    # 1 is yes; 0 is no.
+    syslog = 1
+
+    # Should we log error and debug messages to a file?
+    # By default there is no log file.
+    #file = "/var/log/lvm2.log"
+
+    # Should we overwrite the log file each time the program is run?
+    # By default we append.
+    overwrite = 0
+
+    # What level of log messages should we send to the log file and/or syslog?
+    # There are 6 syslog-like log levels currently in use - 2 to 7 inclusive.
+    # 7 is the most verbose (LOG_DEBUG).
+    level = 0
+
+    # Format of output messages
+    # Whether or not (1 or 0) to indent messages according to their severity
+    indent = 1
+
+    # Whether or not (1 or 0) to display the command name on each line output
+    command_names = 0
+
+    # A prefix to use before the message text (but after the command name,
+    # if selected).  Default is two spaces, so you can see/grep the severity
+    # of each message.
+    prefix = "  "
+
+    # To make the messages look similar to the original LVM tools use:
+    #   indent = 0
+    #   command_names = 1
+    #   prefix = " -- "
+
+    # Set this if you want log messages during activation.
+    # Don't use this in low memory situations (can deadlock).
+    # activation = 0
+}
+
+# Configuration of metadata backups and archiving.  In LVM2 when we
+# talk about a 'backup' we mean making a copy of the metadata for the
+# *current* system.  The 'archive' contains old metadata configurations.
+# Backups are stored in a human readeable text format.
+backup {
+
+    # Should we maintain a backup of the current metadata configuration ?
+    # Use 1 for Yes; 0 for No.
+    # Think very hard before turning this off!
+    backup = 1
+
+    # Where shall we keep it ?
+    # Remember to back up this directory regularly!
+    backup_dir = "/etc/lvm/backup"
+
+    # Should we maintain an archive of old metadata configurations.
+    # Use 1 for Yes; 0 for No.
+    # On by default.  Think very hard before turning this off.
+    archive = 1
+
+    # Where should archived files go ?
+    # Remember to back up this directory regularly!
+    archive_dir = "/etc/lvm/archive"
+
+    # What is the minimum number of archive files you wish to keep ?
+    retain_min = 10
+
+    # What is the minimum time you wish to keep an archive file for ?
+    retain_days = 30
+}
+
+# Settings for the running LVM2 in shell (readline) mode.
+shell {
+
+    # Number of lines of history to store in ~/.lvm_history
+    history_size = 100
+}
+
+
+# Miscellaneous global LVM2 settings
+global {
+
+    # The file creation mask for any files and directories created.
+    # Interpreted as octal if the first digit is zero.
+    umask = 077
+
+    # Allow other users to read the files
+    #umask = 022
+
+    # Enabling test mode means that no changes to the on disk metadata
+    # will be made.  Equivalent to having the -t option on every
+    # command.  Defaults to off.
+    test = 0
+
+    # Default value for --units argument
+    units = "h"
+
+    # Since version 2.02.54, the tools distinguish between powers of
+    # 1024 bytes (e.g. KiB, MiB, GiB) and powers of 1000 bytes (e.g.
+    # KB, MB, GB).
+    # If you have scripts that depend on the old behaviour, set this to 0
+    # temporarily until you update them.
+    si_unit_consistency = 1
+
+    # Whether or not to communicate with the kernel device-mapper.
+    # Set to 0 if you want to use the tools to manipulate LVM metadata 
+    # without activating any logical volumes.
+    # If the device-mapper kernel driver is not present in your kernel
+    # setting this to 0 should suppress the error messages.
+    activation = 1
+
+    # If we can't communicate with device-mapper, should we try running 
+    # the LVM1 tools?
+    # This option only applies to 2.4 kernels and is provided to help you
+    # switch between device-mapper kernels and LVM1 kernels.
+    # The LVM1 tools need to be installed with .lvm1 suffices
+    # e.g. vgscan.lvm1 and they will stop working after you start using
+    # the new lvm2 on-disk metadata format.
+    # The default value is set when the tools are built.
+    # fallback_to_lvm1 = 0
+    # Gentoo: the LVM tools are a seperate package.
+    fallback_to_lvm1 = 0
+
+    # The default metadata format that commands should use - "lvm1" or "lvm2".
+    # The command line override is -M1 or -M2.
+    # Defaults to "lvm2".
+    # format = "lvm2"
+
+    # Location of proc filesystem
+    proc = "/proc"
+
+    # Type of locking to use. Defaults to local file-based locking (1).
+    # Turn locking off by setting to 0 (dangerous: risks metadata corruption
+    # if LVM2 commands get run concurrently).
+    # Type 2 uses the external shared library locking_library.
+    # Type 3 uses built-in clustered locking.
+    # Type 4 uses read-only locking which forbids any operations that might 
+    # change metadata.
+    locking_type = 1
+
+    # Set to 0 to fail when a lock request cannot be satisfied immediately.
+    wait_for_locks = 1
+
+    # If using external locking (type 2) and initialisation fails,
+    # with this set to 1 an attempt will be made to use the built-in
+    # clustered locking.
+    # If you are using a customised locking_library you should set this to 0.
+    fallback_to_clustered_locking = 1
+
+    # If an attempt to initialise type 2 or type 3 locking failed, perhaps
+    # because cluster components such as clvmd are not running, with this set
+    # to 1 an attempt will be made to use local file-based locking (type 1).
+    # If this succeeds, only commands against local volume groups will proceed.
+    # Volume Groups marked as clustered will be ignored.
+    fallback_to_local_locking = 1
+
+    # Local non-LV directory that holds file-based locks while commands are
+    # in progress.  A directory like /tmp that may get wiped on reboot is OK.
+    locking_dir = "/var/lock/lvm"
+
+    # Whenever there are competing read-only and read-write access requests for
+    # a volume group's metadata, instead of always granting the read-only
+    # requests immediately, delay them to allow the read-write requests to be
+    # serviced.  Without this setting, write access may be stalled by a high
+    # volume of read-only requests.
+    # NB. This option only affects locking_type = 1 viz. local file-based
+    # locking.
+    prioritise_write_locks = 1
+
+    # Other entries can go here to allow you to load shared libraries
+    # e.g. if support for LVM1 metadata was compiled as a shared library use
+    #   format_libraries = "liblvm2format1.so" 
+    # Full pathnames can be given.
+
+    # Search this directory first for shared libraries.
+    #   library_dir = "/lib"
+
+    # The external locking library to load if locking_type is set to 2.
+    #   locking_library = "liblvm2clusterlock.so"
+
+    # Treat any internal errors as fatal errors, aborting the process that
+    # encountered the internal error. Please only enable for debugging.
+    abort_on_internal_errors = 0
+
+    # Check whether CRC is matching when parsed VG is used multiple times.
+    # This is useful to catch unexpected internal cached volume group
+    # structure modification. Please only enable for debugging.
+    detect_internal_vg_cache_corruption = 0
+
+    # If set to 1, no operations that change on-disk metadata will be permitted.
+    # Additionally, read-only commands that encounter metadata in need of repair
+    # will still be allowed to proceed exactly as if the repair had been 
+    # performed (except for the unchanged vg_seqno).
+    # Inappropriate use could mess up your system, so seek advice first!
+    metadata_read_only = 0
+
+    # 'mirror_segtype_default' defines which segtype will be used when the
+    # shorthand '-m' option is used for mirroring.  The possible options are:
+    #
+    # "mirror" - The original RAID1 implementation provided by LVM2/DM.  It is
+    #           characterized by a flexible log solution (core, disk, mirrored)
+    #           and by the necessity to block I/O while reconfiguring in the
+    #           event of a failure.  Snapshots of this type of RAID1 can be
+    #           problematic.
+    #
+    # "raid1"  - This implementation leverages MD's RAID1 personality through
+    #           device-mapper.  It is characterized by a lack of log options.
+    #           (A log is always allocated for every device and they are placed
+    #           on the same device as the image - no separate devices are
+    #           required.)  This mirror implementation does not require I/O
+    #           to be blocked in the kernel in the event of a failure.
+    #
+    # Specify the '--type <mirror|raid1>' option to override this default
+    # setting.
+    mirror_segtype_default = "mirror"
+}
+
+activation {
+    # Set to 1 to perform internal checks on the operations issued to
+    # libdevmapper.  Useful for debugging problems with activation.
+    # Some of the checks may be expensive, so it's best to use this
+    # only when there seems to be a problem.
+    checks = 0
+
+    # Set to 0 to disable udev synchronisation (if compiled into the binaries).
+    # Processes will not wait for notification from udev.
+    # They will continue irrespective of any possible udev processing
+    # in the background.  You should only use this if udev is not running
+    # or has rules that ignore the devices LVM2 creates.
+    # The command line argument --nodevsync takes precedence over this setting.
+    # If set to 1 when udev is not running, and there are LVM2 processes
+    # waiting for udev, run 'dmsetup udevcomplete_all' manually to wake them up.
+    udev_sync = 1
+
+    # Set to 0 to disable the udev rules installed by LVM2 (if built with
+    # --enable-udev_rules). LVM2 will then manage the /dev nodes and symlinks
+    # for active logical volumes directly itself.
+    # N.B. Manual intervention may be required if this setting is changed
+    # while any logical volumes are active.
+    udev_rules = 1
+
+    # Set to 1 for LVM2 to verify operations performed by udev. This turns on
+    # additional checks (and if necessary, repairs) on entries in the device
+    # directory after udev has completed processing its events. 
+    # Useful for diagnosing problems with LVM2/udev interactions.
+    verify_udev_operations = 0
+
+    # How to fill in missing stripes if activating an incomplete volume.
+    # Using "error" will make inaccessible parts of the device return
+    # I/O errors on access.  You can instead use a device path, in which 
+    # case, that device will be used to in place of missing stripes.
+    # But note that using anything other than "error" with mirrored 
+    # or snapshotted volumes is likely to result in data corruption.
+    missing_stripe_filler = "error"
+
+    # How much stack (in KB) to reserve for use while devices suspended
+    reserved_stack = 256
+
+    # How much memory (in KB) to reserve for use while devices suspended
+    reserved_memory = 8192
+
+    # Nice value used while devices suspended
+    process_priority = -18
+
+    # If volume_list is defined, each LV is only activated if there is a
+    # match against the list.
+    #   "vgname" and "vgname/lvname" are matched exactly.
+    #   "@tag" matches any tag set in the LV or VG.
+    #   "@*" matches if any tag defined on the host is also set in the LV or VG
+    #
+    # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
+
+    # Size (in KB) of each copy operation when mirroring
+    mirror_region_size = 512
+
+    # Setting to use when there is no readahead value stored in the metadata.
+    #
+    # "none" - Disable readahead.
+    # "auto" - Use default value chosen by kernel.
+    readahead = "auto"
+
+    # 'mirror_image_fault_policy' and 'mirror_log_fault_policy' define
+    # how a device failure affecting a mirror is handled.
+    # A mirror is composed of mirror images (copies) and a log.
+    # A disk log ensures that a mirror does not need to be re-synced
+    # (all copies made the same) every time a machine reboots or crashes.
+    #
+    # In the event of a failure, the specified policy will be used to determine
+    # what happens. This applies to automatic repairs (when the mirror is being
+    # monitored by dmeventd) and to manual lvconvert --repair when
+    # --use-policies is given.
+    #
+    # "remove" - Simply remove the faulty device and run without it.  If
+    #            the log device fails, the mirror would convert to using
+    #            an in-memory log.  This means the mirror will not
+    #            remember its sync status across crashes/reboots and
+    #            the entire mirror will be re-synced.  If a
+    #            mirror image fails, the mirror will convert to a
+    #            non-mirrored device if there is only one remaining good
+    #            copy.
+    #
+    # "allocate" - Remove the faulty device and try to allocate space on
+    #            a new device to be a replacement for the failed device.
+    #            Using this policy for the log is fast and maintains the
+    #            ability to remember sync state through crashes/reboots.
+    #            Using this policy for a mirror device is slow, as it
+    #            requires the mirror to resynchronize the devices, but it
+    #            will preserve the mirror characteristic of the device.
+    #            This policy acts like "remove" if no suitable device and
+    #            space can be allocated for the replacement.
+    #
+    # "allocate_anywhere" - Not yet implemented. Useful to place the log device
+    #            temporarily on same physical volume as one of the mirror
+    #            images. This policy is not recommended for mirror devices
+    #            since it would break the redundant nature of the mirror. This
+    #            policy acts like "remove" if no suitable device and space can
+    #            be allocated for the replacement.
+
+    mirror_log_fault_policy = "allocate"
+    mirror_image_fault_policy = "remove"
+
+    # 'snapshot_autoextend_threshold' and 'snapshot_autoextend_percent' define
+    # how to handle automatic snapshot extension. The former defines when the
+    # snapshot should be extended: when its space usage exceeds this many
+    # percent. The latter defines how much extra space should be allocated for
+    # the snapshot, in percent of its current size.
+    #
+    # For example, if you set snapshot_autoextend_threshold to 70 and
+    # snapshot_autoextend_percent to 20, whenever a snapshot exceeds 70% usage,
+    # it will be extended by another 20%. For a 1G snapshot, using up 700M will
+    # trigger a resize to 1.2G. When the usage exceeds 840M, the snapshot will
+    # be extended to 1.44G, and so on.
+    #
+    # Setting snapshot_autoextend_threshold to 100 disables automatic
+    # extensions. The minimum value is 50 (A setting below 50 will be treated
+    # as 50).
+
+    snapshot_autoextend_threshold = 100
+    snapshot_autoextend_percent = 20
+
+    # While activating devices, I/O to devices being (re)configured is
+    # suspended, and as a precaution against deadlocks, LVM2 needs to pin
+    # any memory it is using so it is not paged out.  Groups of pages that
+    # are known not to be accessed during activation need not be pinned
+    # into memory.  Each string listed in this setting is compared against
+    # each line in /proc/self/maps, and the pages corresponding to any
+    # lines that match are not pinned.  On some systems locale-archive was
+    # found to make up over 80% of the memory used by the process.
+    # mlock_filter = [ "locale/locale-archive", "gconv/gconv-modules.cache" ]
+
+    # Set to 1 to revert to the default behaviour prior to version 2.02.62
+    # which used mlockall() to pin the whole process's memory while activating
+    # devices.
+    use_mlockall = 0
+
+    # Monitoring is enabled by default when activating logical volumes.
+    # Set to 0 to disable monitoring or use the --ignoremonitoring option.
+    monitoring = 1
+
+    # When pvmove or lvconvert must wait for the kernel to finish
+    # synchronising or merging data, they check and report progress
+    # at intervals of this number of seconds.  The default is 15 seconds.
+    # If this is set to 0 and there is only one thing to wait for, there
+    # are no progress reports, but the process is awoken immediately the
+    # operation is complete.
+    polling_interval = 15
+}
+
+
+####################
+# Advanced section #
+####################
+
+# Metadata settings
+#
+metadata {
+    # Default number of copies of metadata to hold on each PV.  0, 1 or 2.
+    # You might want to override it from the command line with 0 
+    # when running pvcreate on new PVs which are to be added to large VGs.
+    # Gentoo: enable for data safety, but PV resize is then disabled.
+    #pvmetadatacopies = 2
+
+    # Default number of copies of metadata to maintain for each VG.
+    # If set to a non-zero value, LVM automatically chooses which of
+    # the available metadata areas to use to achieve the requested
+    # number of copies of the VG metadata.  If you set a value larger
+    # than the the total number of metadata areas available then
+    # metadata is stored in them all.
+    # The default value of 0 ("unmanaged") disables this automatic
+    # management and allows you to control which metadata areas
+    # are used at the individual PV level using 'pvchange
+    # --metadataignore y/n'.
+
+    # vgmetadatacopies = 0
+
+    # Approximate default size of on-disk metadata areas in sectors.
+    # You should increase this if you have large volume groups or
+    # you want to retain a large on-disk history of your metadata changes.
+
+    # pvmetadatasize = 255
+
+    # List of directories holding live copies of text format metadata.
+    # These directories must not be on logical volumes!
+    # It's possible to use LVM2 with a couple of directories here,
+    # preferably on different (non-LV) filesystems, and with no other 
+    # on-disk metadata (pvmetadatacopies = 0). Or this can be in
+    # addition to on-disk metadata areas.
+    # The feature was originally added to simplify testing and is not
+    # supported under low memory situations - the machine could lock up.
+    #
+    # Never edit any files in these directories by hand unless you
+    # you are absolutely sure you know what you are doing! Use
+    # the supplied toolset to make changes (e.g. vgcfgrestore).
+
+    # dirs = [ "/etc/lvm/metadata", "/mnt/disk2/lvm/metadata2" ]
+}
+
+# Event daemon
+#
+dmeventd {
+    # mirror_library is the library used when monitoring a mirror device.
+    #
+    # "libdevmapper-event-lvm2mirror.so" attempts to recover from
+    # failures.  It removes failed devices from a volume group and
+    # reconfigures a mirror as necessary. If no mirror library is
+    # provided, mirrors are not monitored through dmeventd.
+
+    mirror_library = "libdevmapper-event-lvm2mirror.so"
+
+    # snapshot_library is the library used when monitoring a snapshot device.
+    #
+    # "libdevmapper-event-lvm2snapshot.so" monitors the filling of
+    # snapshots and emits a warning through syslog when the use of
+    # the snapshot exceeds 80%. The warning is repeated when 85%, 90% and
+    # 95% of the snapshot is filled.
+
+    snapshot_library = "libdevmapper-event-lvm2snapshot.so"
+
+    # Full path of the dmeventd binary.
+    #
+    # executable = "/sbin/dmeventd"
+}
diff --git a/config-archive/etc/rc.conf b/config-archive/etc/rc.conf
new file mode 100644 (file)
index 0000000..9d8afee
--- /dev/null
@@ -0,0 +1,148 @@
+# Global OpenRC configuration settings
+
+# Set to "YES" if you want the rc system to try and start services
+# in parallel for a slight speed improvement. When running in parallel we
+# prefix the service output with its name as the output will get
+# jumbled up.
+# WARNING: whilst we have improved parallel, it can still potentially lock
+# the boot process. Don't file bugs about this unless you can supply
+# patches that fix it without breaking other things!
+#rc_parallel="NO"
+rc_parallel="YES"
+
+# Set rc_interactive to "YES" and you'll be able to press the I key during
+# boot so you can choose to start specific services. Set to "NO" to disable
+# this feature. This feature is automatically disabled if rc_parallel is
+# set to YES.
+#rc_interactive="YES"
+rc_interactive="YES"
+
+# If we need to drop to a shell, you can specify it here.
+# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
+# otherwise /bin/sh
+# Linux users could specify /sbin/sulogin
+rc_shell=/sbin/sulogin
+
+# Do we allow any started service in the runlevel to satisfy the dependency
+# or do we want all of them regardless of state? For example, if net.eth0
+# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
+# both will be started, but services that depend on 'net' will work if either
+# one comes up. With rc_depend_strict="YES" we would require them both to
+# come up.
+#rc_depend_strict="YES"
+
+# rc_hotplug is a list of services that we allow to be hotplugged.
+# By default we do not allow hotplugging.
+# A hotplugged service is one started by a dynamic dev manager when a matching
+# hardware device is found.
+# This service is intrinsically included in the boot runlevel.
+# To disable services, prefix with a !
+# Example - rc_hotplug="net.wlan !net.*"
+# This allows net.wlan and any service not matching net.* to be plugged.
+# Example - rc_hotplug="*"
+# This allows all services to be hotplugged
+#rc_hotplug="*"
+
+# rc_logger launches a logging daemon to log the entire rc process to
+# /var/log/rc.log
+# NOTE: Linux systems require the devfs service to be started before
+# logging can take place and as such cannot log the sysinit runlevel.
+rc_logger="YES"
+
+# Through rc_log_path you can specify a custom log file.
+# The default value is: /var/log/rc.log
+rc_log_path="/var/log/rc.log"
+
+# By default we filter the environment for our running scripts. To allow other
+# variables through, add them here. Use a * to allow all variables through.
+#rc_env_allow="VAR1 VAR2"
+
+# By default we assume that all daemons will start correctly.
+# However, some do not - a classic example is that they fork and return 0 AND
+# then child barfs on a configuration error. Or the daemon has a bug and the
+# child crashes. You can set the number of milliseconds start-stop-daemon
+# waits to check that the daemon is still running after starting here.
+# The default is 0 - no checking.
+#rc_start_wait=100
+
+# rc_nostop is a list of services which will not stop when changing runlevels.
+# This still allows the service itself to be stopped when called directly.
+#rc_nostop=""
+
+# rc will attempt to start crashed services by default.
+# However, it will not stop them by default as that could bring down other
+# critical services.
+#rc_crashed_stop=NO
+#rc_crashed_start=YES
+
+##############################################################################
+# MISC CONFIGURATION VARIABLES
+# There variables are shared between many init scripts
+
+# Set unicode to YES to turn on unicode support for keyboards and screens.
+unicode="YES"
+
+# Below is the default list of network fstypes.
+#
+# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
+# nfs nfs4 ocfs2 shfs smbfs
+#
+# If you would like to add to this list, you can do so by adding your
+# own fstypes to the following variable.
+#extra_net_fs_list=""
+
+##############################################################################
+# SERVICE CONFIGURATION VARIABLES
+# These variables are documented here, but should be configured in
+# /etc/conf.d/foo for service foo and NOT enabled here unless you
+# really want them to work on a global basis.
+
+# Some daemons are started and stopped via start-stop-daemon.
+# We can set some things on a per service basis, like the nicelevel.
+#export SSD_NICELEVEL="-19"
+
+# Pass ulimit parameters
+#rc_ulimit="-u 30"
+
+# It's possible to define extra dependencies for services like so
+#rc_config="/etc/foo"
+#rc_need="openvpn"
+#rc_use="net.eth0"
+#rc_after="clock"
+#rc_before="local"
+#rc_provide="!net"
+
+# You can also enable the above commands here for each service. Below is an
+# example for service foo.
+#rc_foo_config="/etc/foo"
+#rc_foo_need="openvpn"
+#rc_foo_after="clock"
+
+# You can also remove dependencies.
+# This is mainly used for saying which servies do NOT provide net.
+#rc_net_tap0_provide="!net"
+
+##############################################################################
+# LINUX SPECIFIC OPTIONS
+
+# This is the subsystem type. Valid options on Linux:
+# ""        - nothing special
+# "lxc"     - Linux Containers
+# "openvz"  - Linux OpenVZ
+# "prefix"  - Prefix
+# "uml"     - Usermode Linux
+# "vserver" - Linux vserver
+# "xen0"    - Xen0 Domain
+# "xenU"    - XenU Domain
+# If this is commented out, automatic detection will be attempted.
+# Note that autodetection will not work in a prefix environment or in a
+# linux container.
+#
+# This should be set to the value representing the environment this file is
+# PRESENTLY in, not the virtualization the environment is capable of.
+rc_sys=""
+
+# This is the number of tty's used in most of the rc-scripts (like
+# consolefont, numlock, etc ...)
+rc_tty_number=12
+
diff --git a/config-archive/etc/rc.conf.dist.new b/config-archive/etc/rc.conf.dist.new
new file mode 100644 (file)
index 0000000..d3f5eb9
--- /dev/null
@@ -0,0 +1,135 @@
+# Global OpenRC configuration settings
+
+# Set rc_interactive to "YES" and you'll be able to press the I key during
+# boot so you can choose to start specific services. Set to "NO" to disable
+# this feature.
+#rc_interactive="YES"
+
+# If we need to drop to a shell, you can specify it here.
+# If not specified we use $SHELL, otherwise the one specified in /etc/passwd,
+# otherwise /bin/sh
+# Linux users could specify /sbin/sulogin
+rc_shell=/sbin/sulogin
+
+# Do we allow any started service in the runlevel to satisfy the dependency
+# or do we want all of them regardless of state? For example, if net.eth0
+# and net.eth1 are in the default runlevel then with rc_depend_strict="NO"
+# both will be started, but services that depend on 'net' will work if either
+# one comes up. With rc_depend_strict="YES" we would require them both to
+# come up.
+#rc_depend_strict="YES"
+
+# rc_hotplug is a list of services that we allow to be hotplugged.
+# By default we do not allow hotplugging.
+# A hotplugged service is one started by a dynamic dev manager when a matching
+# hardware device is found.
+# This service is intrinsically included in the boot runlevel.
+# To disable services, prefix with a !
+# Example - rc_hotplug="net.wlan !net.*"
+# This allows net.wlan and any service not matching net.* to be plugged.
+# Example - rc_hotplug="*"
+# This allows all services to be hotplugged
+#rc_hotplug="*"
+
+# rc_logger launches a logging daemon to log the entire rc process to
+# /var/log/rc.log
+# NOTE: Linux systems require the devfs service to be started before
+# logging can take place and as such cannot log the sysinit runlevel.
+#rc_logger="YES"
+
+# Through rc_log_path you can specify a custom log file.
+# The default value is: /var/log/rc.log
+#rc_log_path="/var/log/rc.log"
+
+# By default we filter the environment for our running scripts. To allow other
+# variables through, add them here. Use a * to allow all variables through.
+#rc_env_allow="VAR1 VAR2"
+
+# By default we assume that all daemons will start correctly.
+# However, some do not - a classic example is that they fork and return 0 AND
+# then child barfs on a configuration error. Or the daemon has a bug and the
+# child crashes. You can set the number of milliseconds start-stop-daemon
+# waits to check that the daemon is still running after starting here.
+# The default is 0 - no checking.
+#rc_start_wait=100
+
+# rc_nostop is a list of services which will not stop when changing runlevels.
+# This still allows the service itself to be stopped when called directly.
+#rc_nostop=""
+
+# rc will attempt to start crashed services by default.
+# However, it will not stop them by default as that could bring down other
+# critical services.
+#rc_crashed_stop=NO
+#rc_crashed_start=YES
+
+##############################################################################
+# MISC CONFIGURATION VARIABLES
+# There variables are shared between many init scripts
+
+# Set unicode to YES to turn on unicode support for keyboards and screens.
+unicode="YES"
+
+# Below is the default list of network fstypes.
+#
+# afs cifs coda davfs fuse fuse.sshfs gfs glusterfs lustre ncpfs
+# nfs nfs4 ocfs2 shfs smbfs
+#
+# If you would like to add to this list, you can do so by adding your
+# own fstypes to the following variable.
+#extra_net_fs_list=""
+
+##############################################################################
+# SERVICE CONFIGURATION VARIABLES
+# These variables are documented here, but should be configured in
+# /etc/conf.d/foo for service foo and NOT enabled here unless you
+# really want them to work on a global basis.
+
+# Some daemons are started and stopped via start-stop-daemon.
+# We can set some things on a per service basis, like the nicelevel.
+#export SSD_NICELEVEL="-19"
+
+# Pass ulimit parameters
+#rc_ulimit="-u 30"
+
+# It's possible to define extra dependencies for services like so
+#rc_config="/etc/foo"
+#rc_need="openvpn"
+#rc_use="net.eth0"
+#rc_after="clock"
+#rc_before="local"
+#rc_provide="!net"
+
+# You can also enable the above commands here for each service. Below is an
+# example for service foo.
+#rc_foo_config="/etc/foo"
+#rc_foo_need="openvpn"
+#rc_foo_after="clock"
+
+# You can also remove dependencies.
+# This is mainly used for saying which servies do NOT provide net.
+#rc_net_tap0_provide="!net"
+
+##############################################################################
+# LINUX SPECIFIC OPTIONS
+
+# This is the subsystem type. Valid options on Linux:
+# ""        - nothing special
+# "lxc"     - Linux Containers
+# "openvz"  - Linux OpenVZ
+# "prefix"  - Prefix
+# "uml"     - Usermode Linux
+# "vserver" - Linux vserver
+# "xen0"    - Xen0 Domain
+# "xenU"    - XenU Domain
+# If this is commented out, automatic detection will be attempted.
+# Note that autodetection will not work in a prefix environment or in a
+# linux container.
+#
+# This should be set to the value representing the environment this file is
+# PRESENTLY in, not the virtualization the environment is capable of.
+#rc_sys=""
+
+# This is the number of tty's used in most of the rc-scripts (like
+# consolefont, numlock, etc ...)
+rc_tty_number=12
diff --git a/config-archive/etc/sensors3.conf b/config-archive/etc/sensors3.conf
new file mode 100644 (file)
index 0000000..35f4908
--- /dev/null
@@ -0,0 +1,434 @@
+# libsensors configuration file
+# -----------------------------
+#
+# This default configuration file only includes statements which do not
+# differ from one mainboard to the next. Only label, compute and set
+# statements for internal voltage and temperature sensors are included.
+#
+# In general, local changes should not be added to this file, but rather
+# placed in custom configuration files located in /etc/sensors.d. This
+# approach makes further updates much easier.
+#
+# Such custom configuration files for specific mainboards can be found at
+# http://www.lm-sensors.org/wiki/Configurations
+
+chip "lm78-*" "lm79-*" "lm80-*"
+
+    label temp1 "M/B Temp"
+
+
+chip "w83792d-*"
+
+    label in0 "VcoreA"
+    label in1 "VcoreB"
+    label in6 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    set in6_min  5.0 * 0.90
+    set in6_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
+chip "w83793-*"
+
+    label in0 "VcoreA"
+    label in1 "VcoreB"
+    label in7 "+5V"
+    label in8 "5VSB"
+    label in9 "Vbat"
+
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  5.0 * 0.90
+    set in8_max  5.0 * 1.10
+    set in9_min  3.0 * 0.90
+    set in9_max  3.0 * 1.10
+
+
+chip "via686a-*"
+
+    label in0 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+
+
+chip "adm1025-*" "ne1619-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "VCC"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+# Depending on how your chip is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp1 "CPU Temp"
+    label temp2 "M/B Temp"
+
+
+chip "lm87-*" "adm1024-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+
+    label temp1 "M/B Temp"
+    label temp2 "CPU Temp"
+
+
+chip "it87-*" "it8712-*" "it8716-*" "it8718-*" "it8720-*"
+
+    label in8 "Vbat"
+
+
+chip "fscpos-*" "fscher-*"
+#FSC "Hermes"
+
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+
+    label temp1 "CPU Temp"
+    label temp2 "M/B Temp"
+    label temp3 "Aux Temp"
+
+
+chip "fscscy-*"
+#FSC "Scylla"
+
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "+3.3V"
+
+    label temp1 "CPU0 Temp"
+    label temp2 "CPU1 Temp"
+    label temp3 "M/B Temp"
+    label temp4 "Aux Temp"
+
+
+chip "fschds-*"
+# Fujitsu Technology Solutions, "Hades"-Chip
+
+# Temperatures
+    label temp1 "CPU Temp"
+    label temp2 "Super I/O Temp"
+    label temp3 "System Temp"
+
+# Fans
+    label fan1 "PSU Fan"
+    label fan2 "CPU Fan"
+    label fan3 "System FAN2"
+    label fan4 "System FAN3"
+    label fan5 "System FAN4"
+
+# Voltages
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+
+chip "fscsyl-*"
+# Fujitsu Technology Solutions, "Syleus"-Chip
+
+# Temperatures
+    label temp1 "CPU Temp"
+    label temp4 "Super I/O Temp"
+    label temp5 "Northbridge Temp"
+
+# Fans
+    label fan1 "CPU Fan"
+    label fan2 "System FAN2"
+    label fan3 "System FAN3"
+    label fan4 "System FAN4"
+    label fan7 "PSU Fan"
+
+# Voltages
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+    label in3 "+3.3V"
+    label in5 "+3.3V-Aux"
+
+chip "vt1211-*"
+
+    label in5 "+3.3V"
+
+    label temp2 "SIO Temp"
+
+
+chip "vt8231-*"
+
+    label in5 "+3.3V"
+
+
+chip "smsc47m192-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "VCC"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+
+    label temp1 "SIO Temp"
+
+
+chip "lm85-*" "lm85b-*" "lm85c-*" "adm1027-*" "adt7463-*" "adt7468-*" "emc6d100-*" "emc6d102-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+# Depending on how your chip is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp2 "M/B Temp"
+
+
+chip "pc87365-*" "pc87366-*"
+
+# Voltage inputs
+
+    label in7 "3VSB"
+    label in8 "VDD"
+    label in9 "Vbat"
+    label in10 "AVDD"
+
+    compute in7   @*2, @/2
+    compute in8   @*2, @/2
+    compute in10  @*2, @/2
+
+# These are the operating conditions as recommended by National
+# Semiconductor
+    set in7_min   3.0
+    set in7_max   3.6
+    set in8_min   3.0
+    set in8_max   3.6
+    set in10_min  3.0
+    set in10_max  3.6
+# Depending on the hardware setup, the battery voltage may or may not
+# be monitored.
+#    set in9_min   2.4
+#    set in9_max   3.6
+
+    label temp3 "SIO Temp"
+
+    set temp3_min    0
+    set temp3_max   70
+    set temp3_crit  85
+
+
+chip "adm1030-*" "adm1031-*"
+
+    label temp1 "M/B Temp"
+
+
+chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*"
+
+    label in0 "Vcore"
+    label in2 "AVCC"
+    label in3 "+3.3V"
+    label in7 "3VSB"
+    label in8 "Vbat"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  3.3 * 0.90
+    set in3_max  3.3 * 1.10
+    set in7_min  3.3 * 0.90
+    set in7_max  3.3 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
+chip "f71805f-*"
+
+    label in0 "+3.3V"
+
+    set in0_min  3.3 * 0.90
+    set in0_max  3.3 * 1.10
+
+
+chip "f71872f-*"
+
+    label in0 "+3.3V"
+    label in9 "Vbat"
+    label in10 "3VSB"
+
+    set in0_min   3.3 * 0.90
+    set in0_max   3.3 * 1.10
+    set in9_min   3.0 * 0.90
+    set in9_max   3.0 * 1.10
+    set in10_min  3.3 * 0.90
+    set in10_max  3.3 * 1.10
+
+
+chip "k8temp-*"
+
+    label temp1 "Core0 Temp"
+    label temp2 "Core0 Temp"
+    label temp3 "Core1 Temp"
+    label temp4 "Core1 Temp"
+
+
+chip "dme1737-*"
+
+    label in0 "5VSB"
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in0_min  5.0 * 0.90
+    set in0_max  5.0 * 1.10
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "sch311x-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "sch5027-*"
+
+    label in0 "5VSB"
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in0_min  5.0 * 0.90
+    set in0_max  5.0 * 1.10
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "f71882fg-*"
+
+    label in0 "+3.3V"
+    label in7 "3VSB"
+    label in8 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in7  @*2, @/2
+    compute in8  @*2, @/2
+
+
+chip "f8000-*"
+
+    label in0 "+3.3V"
+    label in1 "3VSB"
+    label in2 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in1  @*2, @/2
+    compute in2  @*2, @/2
+
+
+chip "adt7473-*" "adt7475-*"
+
+    label in2 "+3.3V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+
+    label temp2 "Board Temp"
+
+
+chip "adt7476-*" "adt7490-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+# Depending on how your ADT7476 is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp2 "M/B Temp"
diff --git a/config-archive/etc/sensors3.conf.dist b/config-archive/etc/sensors3.conf.dist
new file mode 100644 (file)
index 0000000..c1e08f9
--- /dev/null
@@ -0,0 +1,519 @@
+# libsensors configuration file
+# -----------------------------
+#
+# This default configuration file only includes statements which do not
+# differ from one mainboard to the next. Only label, compute and set
+# statements for internal voltage and temperature sensors are included.
+#
+# In general, local changes should not be added to this file, but rather
+# placed in custom configuration files located in /etc/sensors.d. This
+# approach makes further updates much easier.
+#
+# Such custom configuration files for specific mainboards can be found at
+# http://www.lm-sensors.org/wiki/Configurations
+
+chip "lm78-*" "lm79-*" "lm80-*"
+
+    label temp1 "M/B Temp"
+
+
+chip "w83792d-*"
+
+    label in0 "VcoreA"
+    label in1 "VcoreB"
+    label in6 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    set in6_min  5.0 * 0.90
+    set in6_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
+chip "w83793-*"
+
+    label in0 "VcoreA"
+    label in1 "VcoreB"
+    label in7 "+5V"
+    label in8 "5VSB"
+    label in9 "Vbat"
+
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  5.0 * 0.90
+    set in8_max  5.0 * 1.10
+    set in9_min  3.0 * 0.90
+    set in9_max  3.0 * 1.10
+
+
+chip "w83795g-*" "w83795adg-*"
+
+    label in12 "+3.3V"
+    label in13 "3VSB"
+    label in14 "Vbat"
+
+    set in12_min  3.3 * 0.90
+    set in12_max  3.3 * 1.10
+    set in13_min  3.3 * 0.90
+    set in13_max  3.3 * 1.10
+    set in14_min  3.0 * 0.90
+    set in14_max  3.3 * 1.10
+
+
+chip "via686a-*"
+
+    label in0 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+
+
+chip "adm1025-*" "ne1619-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "VCC"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+# Depending on how your chip is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp1 "CPU Temp"
+    label temp2 "M/B Temp"
+
+
+chip "lm87-*" "adm1024-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+
+    label temp1 "M/B Temp"
+    label temp2 "CPU Temp"
+
+
+chip "it87-*" "it8712-*" "it8716-*" "it8718-*" "it8720-*"
+
+    label in8 "Vbat"
+
+
+chip "fscpos-*" "fscher-*"
+#FSC "Hermes"
+
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+
+    label temp1 "CPU Temp"
+    label temp2 "M/B Temp"
+    label temp3 "Aux Temp"
+
+
+chip "fscscy-*"
+#FSC "Scylla"
+
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "+3.3V"
+
+    label temp1 "CPU0 Temp"
+    label temp2 "CPU1 Temp"
+    label temp3 "M/B Temp"
+    label temp4 "Aux Temp"
+
+
+chip "fschds-*"
+# Fujitsu Technology Solutions, "Hades"-Chip
+
+# Temperatures
+    label temp1 "CPU Temp"
+    label temp2 "Super I/O Temp"
+    label temp3 "System Temp"
+
+# Fans
+    label fan1 "PSU Fan"
+    label fan2 "CPU Fan"
+    label fan3 "System FAN2"
+    label fan4 "System FAN3"
+    label fan5 "System FAN4"
+
+# Voltages
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+
+chip "fscsyl-*"
+# Fujitsu Technology Solutions, "Syleus"-Chip
+
+# Temperatures
+    label temp1 "CPU Temp"
+    label temp4 "Super I/O Temp"
+    label temp5 "Northbridge Temp"
+
+# Fans
+    label fan1 "CPU Fan"
+    label fan2 "System FAN2"
+    label fan3 "System FAN3"
+    label fan4 "System FAN4"
+    label fan7 "PSU Fan"
+
+# Voltages
+    label in0 "+12V"
+    label in1 "+5V"
+    label in2 "Vbat"
+    label in3 "+3.3V"
+    label in5 "+3.3V-Aux"
+
+chip "vt1211-*"
+
+    label in5 "+3.3V"
+
+    label temp2 "SIO Temp"
+
+
+chip "vt8231-*"
+
+    label in5 "+3.3V"
+
+
+chip "smsc47m192-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "VCC"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+
+    label temp1 "SIO Temp"
+
+
+chip "lm85-*" "lm85b-*" "lm85c-*" "adm1027-*" "adt7463-*" "adt7468-*" \
+     "emc6d100-*" "emc6d102-*" "emc6d103-*" "emc6d103s-*" 
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+# Depending on how your chip is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp2 "M/B Temp"
+
+
+chip "emc6w201-*"
+
+    label in2 "+3.3V"
+    label in3 "+5V"
+
+    label temp6 "M/B Temp"
+
+
+chip "pc87365-*" "pc87366-*"
+
+# Voltage inputs
+
+    label in7 "3VSB"
+    label in8 "VDD"
+    label in9 "Vbat"
+    label in10 "AVDD"
+
+    compute in7   @*2, @/2
+    compute in8   @*2, @/2
+    compute in10  @*2, @/2
+
+# These are the operating conditions as recommended by National
+# Semiconductor
+    set in7_min   3.0
+    set in7_max   3.6
+    set in8_min   3.0
+    set in8_max   3.6
+    set in10_min  3.0
+    set in10_max  3.6
+# Depending on the hardware setup, the battery voltage may or may not
+# be monitored.
+#    set in9_min   2.4
+#    set in9_max   3.6
+
+    label temp3 "SIO Temp"
+
+    set temp3_min    0
+    set temp3_max   70
+    set temp3_crit  85
+
+
+chip "adm1030-*" "adm1031-*"
+
+    label temp1 "M/B Temp"
+
+
+chip "w83627thf-*"
+
+    label in3 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    # Internal resistors
+    compute in3  @ * (1 + 34/51), @ / (1 + 34/51)
+    compute in7  @ * (1 + 34/51), @ / (1 + 34/51)
+
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+# The battery voltage may or may not be monitored.
+#    set in8_min  3.0 * 0.90
+#    set in8_max  3.0 * 1.10
+
+
+chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*" "nct6775-*" "nct6776-*"
+
+    label in0 "Vcore"
+    label in2 "AVCC"
+    label in3 "+3.3V"
+    label in7 "3VSB"
+    label in8 "Vbat"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  3.3 * 0.90
+    set in3_max  3.3 * 1.10
+    set in7_min  3.3 * 0.90
+    set in7_max  3.3 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
+chip "w83627uhg-*"
+
+    label in2 "AVCC"
+    label in3 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    set in2_min  5.0 * 0.90
+    set in2_max  5.0 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
+chip "f71805f-*"
+
+    label in0 "+3.3V"
+
+    set in0_min  3.3 * 0.90
+    set in0_max  3.3 * 1.10
+
+
+chip "f71872f-*"
+
+    label in0 "+3.3V"
+    label in9 "Vbat"
+    label in10 "3VSB"
+
+    set in0_min   3.3 * 0.90
+    set in0_max   3.3 * 1.10
+    set in9_min   3.0 * 0.90
+    set in9_max   3.0 * 1.10
+    set in10_min  3.3 * 0.90
+    set in10_max  3.3 * 1.10
+
+
+chip "k8temp-*"
+
+    label temp1 "Core0 Temp"
+    label temp2 "Core0 Temp"
+    label temp3 "Core1 Temp"
+    label temp4 "Core1 Temp"
+
+
+chip "dme1737-*"
+
+    label in0 "5VSB"
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in0_min  5.0 * 0.90
+    set in0_max  5.0 * 1.10
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "sch311x-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in4_min 12.0 * 0.90
+    set in4_max 12.0 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "sch5027-*"
+
+    label in0 "5VSB"
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    label temp2 "SIO Temp"
+
+    set in0_min  5.0 * 0.90
+    set in0_max  5.0 * 1.10
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "sch5127-*"
+
+    label in2 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "f71808e-*" "f71808a-*" "f71862fg-*" "f71869-*" "f71869a-*" "f71882fg-*" \
+     "f71889fg-*" "f71889ed-*" "f71889a-*"
+
+    label in0 "+3.3V"
+    label in7 "3VSB"
+    label in8 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in7  @*2, @/2
+    compute in8  @*2, @/2
+
+
+chip "f71858fg-*" "f8000-*"
+
+    label in0 "+3.3V"
+    label in1 "3VSB"
+    label in2 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in1  @*2, @/2
+    compute in2  @*2, @/2
+
+
+chip "f81865f-*"
+
+    label in0 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in5  @*2, @/2
+    compute in6  @*2, @/2
+
+
+chip "adt7473-*" "adt7475-*"
+
+    label in2 "+3.3V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+
+    label temp2 "Board Temp"
+
+
+chip "adt7476-*" "adt7490-*"
+
+    label in1 "Vcore"
+    label in2 "+3.3V"
+    label in3 "+5V"
+    label in4 "+12V"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+# Depending on how your ADT7476 is hardwired, you may or may not have
+# +12V readings.
+#    set in4_min 12.0 * 0.90
+#    set in4_max 12.0 * 1.10
+
+    label temp2 "M/B Temp"
diff --git a/config-archive/usr/share/config/kdm/backgroundrc b/config-archive/usr/share/config/kdm/backgroundrc
new file mode 100644 (file)
index 0000000..359569c
--- /dev/null
@@ -0,0 +1,18 @@
+[Desktop0]
+BackgroundMode=Flat
+BlendBalance=100
+BlendMode=NoBlending
+ChangeInterval=60
+Color1=0,0,200
+Color2=192,192,192
+CurrentWallpaperName=/data/all/Bilder/bg/Naturszenen/Sun Beams, Saipan, Northern Marianas.jpg
+LastChange=1327825319
+MinOptimizationDepth=1
+MultiWallpaperMode=Random
+Pattern=fish
+Program=
+ReverseBlending=false
+UseSHM=false
+Wallpaper=default_blue.jpg
+WallpaperList=/data/all/Bilder/bg/Naturszenen/,/data/all/Bilder/bg/Naturszenen/Wasserfälle/,/data/all/Bilder/bg/Naturszenen/BergeUndWasser/
+WallpaperMode=ScaleAndCrop
diff --git a/config-archive/usr/share/config/kdm/backgroundrc.dist.new b/config-archive/usr/share/config/kdm/backgroundrc.dist.new
new file mode 100644 (file)
index 0000000..8285ea3
--- /dev/null
@@ -0,0 +1,18 @@
+[Desktop0]
+BackgroundMode=Flat
+BlendBalance=100
+BlendMode=NoBlending
+ChangeInterval=60
+Color1=0,0,200
+Color2=192,192,192
+CurrentWallpaper=0
+LastChange=0
+MinOptimizationDepth=1
+MultiWallpaperMode=NoMulti
+Pattern=fish
+Program=
+ReverseBlending=false
+UseSHM=false
+Wallpaper=stripes.png
+WallpaperList=
+WallpaperMode=Scaled
diff --git a/config-archive/usr/share/config/kdm/kdmrc b/config-archive/usr/share/config/kdm/kdmrc
new file mode 100644 (file)
index 0000000..982cfc8
--- /dev/null
@@ -0,0 +1,78 @@
+[General]
+ConfigVersion=2.4
+ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
+PidFile=/var/run/kdm.pid
+ReserveServers=:1,:2,:3
+ServerVTs=-7
+StaticServers=:0
+DataDir=/var/lib/kdm
+
+[Shutdown]
+BootManager=None
+HaltCmd=/sbin/halt
+RebootCmd=/sbin/reboot
+
+[X-*-Core]
+AllowNullPasswd=false
+AllowRootLogin=false
+AllowShutdown=Root
+AutoReLogin=true
+ClientLogFile=.xsession-errors-%d
+Reset=/usr/share/config/kdm/Xreset
+Session=/usr/share/config/kdm/Xsession
+SessionsDirs=/usr/share/apps/kdm/sessions,/usr/share/xsessions
+Setup=/usr/share/config/kdm/Xsetup
+Startup=/usr/share/config/kdm/Xstartup
+
+[X-*-Greeter]
+AntiAliasing=false
+ColorScheme=
+FaceDir=/var/lib/kdm/faces
+FaceSource=PreferUser
+FailFont=Sans Serif,10,-1,5,75,0,0,0,0,0
+ForgingSeed=1237407001
+GUIStyle=
+GreetFont=Serif,20,-1,5,50,0,0,0,0,0
+GreetString=Willkommen zu %s auf %n
+GreeterPos=50,50
+HiddenUsers=thomas
+Language=de
+LogoArea=Clock
+LogoPixmap=/usr/share/apps/kdm/pics/kdelogo.png
+MaxShowUID=65000
+MinShowUID=1000
+Preloader=/usr/bin/preloadkde
+SelectedUsers=
+ShowUsers=NotHidden
+SortUsers=true
+StdFont=Sans Serif,10,-1,5,50,0,0,0,0,0
+Theme=/usr/share/apps/kdm/themes/oxygen-air
+UseBackground=true
+UseTheme=false
+UserCompletion=false
+UserList=true
+
+[X-:*-Core]
+AllowNullPasswd=true
+AllowShutdown=All
+NoPassEnable=false
+NoPassUsers=
+ServerArgsLocal=-nolisten tcp
+ServerCmd=/usr/bin/X -br -novtswitch -quiet
+
+[X-:*-Greeter]
+AllowClose=false
+DefaultUser=doris
+FocusPasswd=true
+LoginMode=DefaultLocal
+PreselectUser=Previous
+
+[X-:0-Core]
+AutoLoginEnable=false
+AutoLoginLocked=false
+AutoLoginUser=
+ClientLogFile=.xsession-errors
+
+[Xdmcp]
+Enable=false
+Willing=/usr/share/config/kdm/Xwilling
diff --git a/config-archive/usr/share/config/kdm/kdmrc.dist.new b/config-archive/usr/share/config/kdm/kdmrc.dist.new
new file mode 100644 (file)
index 0000000..6a85895
--- /dev/null
@@ -0,0 +1,593 @@
+# KDM master configuration file
+#
+# Definition: the greeter is the login dialog, i.e., the part of KDM
+# which the user sees.
+#
+# You can configure every X-display individually.
+# Every display has a display name, which consists of a host name
+# (which is empty for local displays specified in {Static|Reserve}Servers),
+# a colon, and a display number. Additionally, a display belongs to a
+# display class (which can be ignored in most cases; the control center
+# does not support this feature at all).
+# Sections with display-specific settings have the formal syntax
+# "[X-" host [":" number [ "_" class ]] "-" sub-section "]"
+# You can use the "*" wildcard for host, number, and class. You may omit
+# trailing components; they are assumed to be "*" then.
+# The host part may be a domain specification like ".inf.tu-dresden.de".
+# It may also be "+", which means non-empty, i.e. remote displays only.
+# From which section a setting is actually taken is determined by these
+# rules:
+# - an exact match takes precedence over a partial match (for the host part),
+#   which in turn takes precedence over a wildcard ("+" taking precedence
+#   over "*")
+# - precedence decreases from left to right for equally exact matches
+# Example: display name "myhost:0", class "dpy".
+# [X-myhost:0_dpy] precedes
+# [X-myhost:0_*] (same as [X-myhost:0]) precedes
+# [X-myhost:*_dpy] precedes
+# [X-myhost:*_*] (same as [X-myhost]) precedes
+# [X-+:0_dpy] precedes
+# [X-*:0_dpy] precedes
+# [X-*:0_*] (same as [X-*:0]) precedes
+# [X-*:*_*] (same as [X-*])
+# These sections do NOT match this display:
+# [X-hishost], [X-myhost:0_dec], [X-*:1], [X-:*]
+# If a setting is not found in any matching section, the default is used.
+#
+# Every comment applies to the following section or key. Note that all
+# comments will be lost if you change this file with the systemsettings frontend.
+# The defaults refer to KDM's built-in values, not anything set in this file.
+#
+# Special characters need to be backslash-escaped (leading and trailing
+# spaces (\s), tab (\t), linefeed (\n), carriage return (\r) and the
+# backslash itself (\\)).
+# In lists, fields are separated with commas without whitespace in between.
+# Some command strings are subject to simplified sh-style word splitting:
+# single quotes (') and double quotes (") have the usual meaning; the backslash
+# quotes everything (not only special characters). Note that the backslashes
+# need to be doubled because of the two levels of quoting.
+
+[General]
+# This option exists solely for the purpose of a clean automatic upgrade.
+# Do not even think about changing it!
+ConfigVersion=2.4
+# List of permanent displays. Displays with a hostname are foreign. A display
+# class may be specified separated by an underscore.
+# Default is ":0"
+StaticServers=:0
+# List of on-demand displays. See StaticServers for syntax.
+# Default is ""
+ReserveServers=:1,:2,:3
+# VTs to allocate to X-servers. A negative number means that the VT will be
+# used only if it is free. If all VTs in this list are used up, the next free
+# one greater than the last one in this list will be allocated.
+# Default is ""
+ServerVTs=-7
+# TTYs (without /dev/) to monitor for activity while in console mode.
+# Default is ""
+ConsoleTTYs=tty1,tty2,tty3,tty4,tty5,tty6
+# Where KDM should store its PID (do not store if empty).
+# Default is ""
+PidFile=/var/run/kdm.pid
+# Whether KDM should lock the PID file to prevent having multiple KDM
+# instances running at once. Do not change unless you are brave.
+# Default is true
+#LockPidFile=false
+# Where to store authorization files.
+# Default is "/var/run/xauth"
+#AuthDir=/tmp
+# Whether KDM should automatically re-read configuration files, if it
+# finds them having changed.
+# Default is true
+#AutoRescan=false
+# Additional environment variables KDM should pass on to all programs it runs.
+# LD_LIBRARY_PATH and XCURSOR_THEME are good candidates;
+# otherwise, it should not be necessary very often.
+# Default is ""
+#ExportList=LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR
+# A character device KDM should read entropy from.
+# Empty means use the system's preferred entropy device.
+# Default is ""
+#RandomDevice=/dev/altrandom
+# Where the command sockets should be created; make it empty to disable
+# them.
+# Default is "/var/run/xdmctl"
+#FifoDir=/tmp
+# The group to which the global command socket should belong;
+# can be either a name or a numerical ID.
+# Default is 0
+#FifoGroup=xdmctl
+# The user the greeter should run as. Empty results in root.
+# Consider the impact on LogSource when setting it.
+# Default is ""
+GreeterUID=kdm
+# The directory in which KDM should store persistent working data.
+# Default is "/var/lib/kdm"
+##DataDir=
+DataDir=/var/lib/kdm
+# The directory in which KDM should store users' .dmrc files. This is only
+# needed if the home directories are not readable before actually logging in
+# (like with AFS).
+# Default is ""
+#DmrcDir=/nfs-shared/var/dmrcs
+
+[Xdmcp]
+# Whether KDM should listen to incoming XDMCP requests.
+# Default is true
+Enable=false
+# The UDP port on which KDM should listen for XDMCP requests. Do not change.
+# Default is 177
+#Port=177
+# File with the private keys of X-terminals. Required for XDM authentication.
+# Default is ""
+#KeyFile=/usr/share/config/kdm/kdmkeys
+# XDMCP access control file in the usual XDM-Xaccess format.
+# Default is "/usr/share/config/kdm/Xaccess"
+#Xaccess=
+# Number of seconds to wait for display to respond after the user has
+# selected a host from the chooser.
+# Default is 15
+#ChoiceTimeout=10
+# Strip domain name from remote display names if it is equal to the local
+# domain.
+# Default is true
+#RemoveDomainname=false
+# Use the numeric IP address of the incoming connection on multihomed hosts
+# instead of the host name.
+# Default is false
+#SourceAddress=true
+# The program which is invoked to dynamically generate replies to XDMCP
+# DirectQuery or BroadcastQuery requests.
+# If empty, no program is invoked and "Willing to manage" is sent.
+# Default is ""
+Willing=/usr/share/config/kdm/Xwilling
+
+[Shutdown]
+# The command (subject to word splitting) to run to halt the system.
+# Default is "/sbin/shutdown -h -P now"
+#HaltCmd=
+# The command (subject to word splitting) to run to reboot the system.
+# Default is "/sbin/shutdown -r now"
+#RebootCmd=
+# Whether it is allowed to shut down the system via the global command socket.
+# Default is false
+#AllowFifo=true
+# Whether it is allowed to abort active sessions when shutting down the
+# system via the global command socket.
+# Default is true
+#AllowFifoNow=false
+# The boot manager KDM should use for offering boot options in the
+# shutdown dialog.
+# "None" - no boot manager
+# "Grub" - Grub boot manager
+# "Grub2" - Grub2 boot manager
+# "Lilo" - Lilo boot manager (Linux on i386 & x86-64 only)
+# Default is None
+#BootManager=Grub
+
+# Rough estimations about how many seconds KDM will spend at most on
+# - opening a connection to the X-server (OpenTime) if the attempt
+#   - times out: OpenTimeout
+#   - is refused: OpenRepeat * OpenDelay
+# - starting a local X-server (ServerTime):
+#   ServerAttempts * (ServerTimeout + OpenDelay)
+# - starting a display:
+#   - local display: ServerTime + OpenTime
+#   - foreign display: StartAttempts * OpenTime
+#   - XDMCP display: OpenTime (repeated indefinitely by client)
+
+# Core config for all displays
+[X-*-Core]
+# How long to wait before retrying to connect a display.
+# Default is 15
+#OpenDelay=15
+# How long to wait before timing out a display connection attempt.
+# Default is 120
+#OpenTimeout=120
+# How many connection attempts to make during a start attempt. Note that
+# a timeout aborts the entire start attempt.
+# Default is 5
+#OpenRepeat=5
+# Try at most that many times to start a display. If this fails, the display
+# is disabled.
+# Default is 4
+#StartAttempts=4
+# Ping remote display every that many minutes.
+# Default is 5
+#PingInterval=5
+# Wait for a Pong that many minutes.
+# Default is 5
+#PingTimeout=5
+# The name of this X-server's Xauth file.
+# If empty, a random name in the AuthDir directory will be used.
+# Default is ""
+#AuthFile=
+# Specify a file with X-resources for the greeter, chooser and background.
+# The KDE frontend does not use this file, so you do not need it unless you
+# use another background generator than krootimage.
+# Default is ""
+#Resources=
+# The xrdb program to use to read the above specified recources.
+# Subject to word splitting.
+# Default is "/usr/bin/xrdb"
+#Xrdb=
+# A program to run before the greeter is shown. Can be used to start an
+# xconsole or an alternative background generator. Subject to word splitting.
+# Default is ""
+Setup=/usr/share/config/kdm/Xsetup
+# A program to run before a user session starts. Subject to word splitting.
+# Default is ""
+Startup=/usr/share/config/kdm/Xstartup
+# A program to run after a user session exits. Subject to word splitting.
+# Default is ""
+Reset=/usr/share/config/kdm/Xreset
+# The program which is run as the user which logs in. It is supposed to
+# interpret the session argument (see SessionsDirs) and start an appropriate
+# session according to it. Subject to word splitting.
+# Default is "/usr/bin/xterm -ls -T"
+Session=/usr/share/config/kdm/Xsession
+# The program to run if Session fails.
+# Default is "/usr/bin/xterm"
+#FailsafeClient=
+# The PATH for the Session program.
+# Default is "/usr/local/bin:/usr/bin:/bin:/usr/games"
+#UserPath=
+# The PATH for Setup, Startup and Reset, etc.
+# Default is "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+#SystemPath=
+# The default system shell.
+# Default is "/bin/sh"
+#SystemShell=/bin/bash
+# Where to put the user's X-server authorization file if ~/.Xauthority
+# cannot be created.
+# Default is "/tmp"
+#UserAuthDir=
+# If true, UserAuthDir will be used unconditionally.
+# Default is false
+#ForceUserAuthDir=true
+# Whether to automatically restart sessions after X-server crashes.
+# Note that enabling this makes circumventing screen lockers other than
+# KDE's built-in one possible!
+# Default is false
+#AutoReLogin=true
+# Allow root logins?
+# Default is true
+AllowRootLogin=false
+# Allow to log in, when user has set an empty password?
+# Default is true
+AllowNullPasswd=false
+# Who is allowed to shut down the system. This applies both to the
+# greeter and to the command sockets.
+# "None" - no "Shutdown..." menu entry is shown at all
+# "Root" - the root password must be entered to shut down
+# "All" - everybody can shut down the machine
+# Default is All
+AllowShutdown=Root
+# Who is allowed to abort active sessions when shutting down.
+# "None" - no forced shutdown is allowed at all
+# "Root" - the root password must be entered to shut down forcibly
+# "All" - everybody can shut down the machine forcibly
+# Default is All
+#AllowSdForceNow=Root
+# The default choice for the shutdown condition/timing.
+# "Schedule" - shut down after all active sessions exit (possibly at once)
+# "TryNow" - shut down, if no active sessions are open; otherwise, do nothing
+# "ForceNow" - shut down unconditionally
+# Default is Schedule
+#DefaultSdMode=ForceNow
+# How to offer shutdown scheduling options:
+# "Never" - not at all
+# "Optional" - as a button in the simple shutdown dialogs
+# "Always" - instead of the simple shutdown dialogs
+# Default is Never
+#ScheduledSd=Optional
+# The directories containing session type definitions in .desktop format,
+# ordered by falling priority.
+# Default is "/usr/share/apps/kdm/sessions"
+#SessionsDirs=/usr/share/config/kdm/sessions,/usr/share/apps/kdm/sessions
+SessionsDirs=/usr/share/apps/kdm/sessions,/usr/share/xsessions
+# The file (relative to $HOME) to redirect the session output to. The
+# following character pairs are replaced:
+# - %d -> current display
+# - %u -> current user
+# - %r -> empty at first. See below.
+# - %% -> a single %
+# When the constructed filename cannot be used safely and the specification
+# contains %<stuff>r, other names will be tried - this time expanding %<stuff>r
+# to <stuff> followed by a random number.
+# Default is ".xsession-errors"
+ClientLogFile=.xsession-errors-%d
+# Fallback when ClientLogFile cannot be used. The same expansions are
+# supported. DO NOT use relative paths here.
+# Default is "/tmp/xerr-%u-%d%-r"
+#ClientLogFallback=/var/log/xsession-errors/%u-%d%-r
+# Whether KDM's built-in utmp/wtmp/lastlog registration should be used.
+# Default is true
+#UseSessReg=false
+
+# Greeter config for all displays
+[X-*-Greeter]
+# Specify the widget style for the greeter. Empty means to use the
+# built-in default which currently is "Oxygen-air".
+# Default is ""
+#GUIStyle=Plastique
+# Specify the widget color scheme for the greeter. Empty means to use the
+# built-in default which currently is "Oxygen-air".
+# Default is ""
+#ColorScheme=MidnightMeadow
+# What should be shown in the greeter's logo are:
+# "None" - nothing
+# "Logo" - the image specified by LogoPixmap
+# "Clock" - a neat analog clock
+# Default is Clock
+LogoArea=Logo
+# The image to show when LogoArea=Logo.
+# Default is ""
+LogoPixmap=/usr/share/apps/kdm/pics/kdelogo.png
+# The relative coordinates (X,Y in percent) of the center of the greeter.
+# Default is "50,50"
+#GreeterPos=30,40
+# The screen the greeter should be displayed on in multi-headed and Xinerama
+# setups. The numbering starts with 0. For Xinerama, it corresponds to the
+# listing order in the active ServerLayout section of XF86Config; -1 means
+# to use the upper-left screen, -2 means to use the upper-right screen.
+# Default is 0
+#GreeterScreen=-1
+# The headline in the greeter. The following character pairs are replaced:
+# - %d -> current display
+# - %h -> host name, possibly with domain name
+# - %n -> node name, most probably the host name without domain name
+# - %s -> the operating system
+# - %r -> the operating system's version
+# - %m -> the machine (hardware) type
+# - %% -> a single %
+# Default is "Welcome to %s at %n"
+#GreetString=K Desktop Environment (%n)
+# Whether the fonts used in the greeter should be antialiased.
+# Default is false
+#AntiAliasing=true
+# The font for the greeter headline. The value is encoded.
+# Default is "Serif 20pt bold"
+#GreetFont=Serif,20,-1,5,50,0,0,0,0,0
+# The normal font used in the greeter. The value is encoded.
+# Default is "Sans Serif 10pt"
+#StdFont=Sans Serif,10,-1,5,50,0,0,0,0,0
+# The font used for the "Login Failed" message. The value is encoded.
+# Default is "Sans Serif 10pt bold"
+#FailFont=Sans Serif,10,-1,5,75,0,0,0,0,0
+# What to do with the Num Lock modifier for the time the greeter is running:
+# "Off" - turn off
+# "On" - turn on
+# "Keep" - do not change the state
+# Default is Keep
+#NumLock=Off
+# Language and locale to use in the greeter, encoded like $LANGUAGE.
+# If empty, the settings from the environment are used.
+# Default is ""
+#Language=de_DE
+# Enable autocompletion in the username line edit.
+# Default is false
+#UserCompletion=true
+# Enable user list (names along with images) in the greeter.
+# Default is true
+#UserList=false
+# User selection for UserCompletion and UserList:
+# "NotHidden" - all users except those listed in HiddenUsers
+# "Selected" - only the users listed in SelectedUsers
+# Default is NotHidden
+#ShowUsers=Selected
+# For ShowUsers=Selected. @<group> means all users in that group.
+# Default is ""
+#SelectedUsers=root,johndoe
+# For ShowUsers=NotHidden. @<group> means all users in that group.
+# Default is ""
+#HiddenUsers=root
+# Special case of HiddenUsers: users with a non-zero UID less than this number
+# will not be shown as well.
+# Default is 0
+MinShowUID=1000
+# Complement to MinShowUID: users with a UID greater than this number will
+# not be shown as well.
+# Default is 65535
+MaxShowUID=65000
+# If false, the users are listed in the order they appear in /etc/passwd.
+# If true, they are sorted alphabetically.
+# Default is true
+#SortUsers=false
+# Specify, where the users' pictures should be taken from.
+# "AdminOnly" - from <FaceDir>/$USER.face[.icon]
+# "PreferAdmin" - prefer <FaceDir>, fallback on $HOME
+# "PreferUser" - ... and the other way round
+# "UserOnly" - from the user's $HOME/.face[.icon]
+# Default is AdminOnly
+#FaceSource=PreferUser
+# The directory containing the user images if FaceSource is not UserOnly.
+# Default is "/usr/share/apps/kdm/faces"
+##FaceDir=/usr/share/faces
+FaceDir=/var/lib/kdm/faces
+# Specify, if/which user should be preselected for log in.
+# "None" - do not preselect any user
+# "Previous" - the user which successfully logged in last time
+# "Default" - the user specified in the DefaultUser option
+# Default is None
+#PreselectUser=Previous
+# If this is true, the password input line is focused automatically if
+# a user is preselected.
+# Default is false
+#FocusPasswd=true
+# If this is true, the entered password is echoed as bullets. Otherwise,
+# no feedback is given at all.
+# Default is true
+#EchoPasswd=false
+# If true, krootimage will be automatically started by KDM; otherwise, the
+# Setup script should be used to setup the background.
+# Default is true
+#UseBackground=false
+# The configuration file to be used by krootimage.
+# Default is "/usr/share/config/kdm/backgroundrc"
+#BackgroundCfg=
+# Whether to grab keyboard and mouse while the greeter is visible. Grabs
+# may improve security, but make on-screen keyboards, etc. unusable.
+# "Never" - never grab
+# "IfNoAuth" - grab if the display requires no X authorization
+# "Always" - always grab
+# Default is IfNoAuth
+#GrabInput=Always
+# Hold the X-server grabbed the whole time the greeter is visible. This
+# may be more secure, but it will disable any background and other
+# X-clients started from the Setup script.
+# Default is false
+#GrabServer=true
+# How many seconds to wait for grab to succeed.
+# Default is 3
+#GrabTimeout=3
+# Warn, if display has no X-authorization (local auth cannot be created,
+# XDMCP display wants no auth, or display is foreign from StaticServers).
+# Default is true
+#AuthComplain=false
+# Random seed for forging saved session types, etc. of unknown users.
+# This value should be random but constant across the login domain.
+# Default is 0
+ForgingSeed=1327834026
+# Specify conversation plugins for the login dialog. Each plugin can be
+# specified as a base name (which expands to $kde_modulesdir/kgreet_$base)
+# or as a full pathname.
+# Default is "classic"
+#PluginsLogin=sign
+# Same as PluginsLogin, but for the shutdown dialog.
+# Default is "classic"
+#PluginsShutdown=modern
+# A list of options of the form Key=Value. The conversation plugins can query
+# these settings; it is up to them what possible keys are.
+# Default is ""
+#PluginOptions=SomeKey=randomvalue,Foo=bar
+# Show the "Console Login" action in the greeter (if ServerTTY/ConsoleTTYs
+# is configured).
+# Default is true
+#AllowConsole=false
+# A program to run while the greeter is visible. It is supposed to preload
+# as much as possible of the session that is going to be started (most
+# probably).
+# Default is ""
+Preloader=/usr/bin/preloadkde
+# Whether the greeter should be themed.
+# Default is false
+UseTheme=true
+# The theme to use for the greeter. Can point to either a directory or an XML
+# file.
+# Default is ""
+Theme=/usr/share/apps/kdm/themes/horos
+# Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging.
+# Default is false
+#AllowThemeDebug=true
+
+# Core config for local displays
+[X-:*-Core]
+# How often to try to run the X-server. Running includes executing it and
+# waiting for it to come up.
+# Default is 1
+#ServerAttempts=1
+# How long to wait for a local X-server to come up.
+# Default is 30
+ServerTimeout=30
+# The command line to start the X-server, without display number and VT spec.
+# This string is subject to word splitting.
+# Default is "/usr/bin/X"
+ServerCmd=/usr/bin/X -br -novtswitch -quiet
+# Additional arguments for the X-servers for local sessions.
+# This string is subject to word splitting.
+# Default is ""
+ServerArgsLocal=-nolisten tcp
+# Additional arguments for the X-servers for remote sessions.
+# This string is subject to word splitting.
+# Default is ""
+#ServerArgsRemote=
+# The user the X-server should run as. Empty results in root.
+# Default is ""
+#ServerUID=_x11
+# Restart instead of resetting the local X-server after session exit.
+# Use it if the server leaks memory etc.
+# Default is false
+TerminateServer=true
+# Create X-authorizations for local displays.
+# Default is true
+#Authorize=false
+# Which X-authorization mechanisms should be used.
+# Default is "MIT-MAGIC-COOKIE-1"
+#AuthNames=
+# Need to reset the X-server to make it read initial Xauth file.
+# Default is false
+#ResetForAuth=true
+# See above
+AllowNullPasswd=true
+# See above
+AllowShutdown=All
+# Enable password-less logins on this display. USE WITH EXTREME CARE!
+# Default is false
+#NoPassEnable=true
+# The users that do not need to provide a password to log in. NEVER list root!
+# "*" means all non-root users. @<group> means all users in that group.
+# Default is ""
+#NoPassUsers=fred,ethel
+
+# Greeter config for local displays
+[X-:*-Greeter]
+# See above
+PreselectUser=Previous
+# See above
+FocusPasswd=true
+# Specify whether the greeter of local displays should start up in host chooser
+# (remote) or login (local) mode and whether it is allowed to switch to the
+# other mode.
+# "LocalOnly" - only local login possible
+# "DefaultLocal" - start up in local mode, but allow switching to remote mode
+# "DefaultRemote" - ... and the other way round
+# "RemoteOnly" - only choice of remote host possible
+# Default is LocalOnly
+LoginMode=DefaultLocal
+# A list of hosts to be automatically added to the remote login menu. The
+# special name "*" means broadcast.
+# Default is "*"
+#ChooserHosts=*,host1,host2,host3.local,login.domain.com
+# Show the "Restart X Server"/"Close Connection" action in the greeter.
+# Default is true
+AllowClose=false
+
+# Core config for 1st local display
+[X-:0-Core]
+# The VT the X-server should run on; auto-assign if zero, don't assign if -1.
+# Better leave it zero and use ServerVTs.
+# Default is 0
+#ServerVT=7
+# Enable automatic login. USE WITH EXTREME CARE!
+# Default is false
+#AutoLoginEnable=true
+# If true, auto-login after logout. If false, auto-login is performed only
+# when a display session starts up.
+# Default is false
+#AutoLoginAgain=true
+# The delay in seconds before automatic login kicks in.
+# Default is 0
+#AutoLoginDelay=10
+# The user to log in automatically. NEVER specify root!
+# Default is ""
+#AutoLoginUser=fred
+# The password for the user to log in automatically. This is NOT required
+# unless the user is logged into a NIS or Kerberos domain. If you use this
+# option, you should "chmod 600 kdmrc" for obvious reasons.
+# Default is ""
+#AutoLoginPass=secret!
+# Immediately lock the automatically started session. This works only with
+# KDE sessions.
+# Default is false
+#AutoLoginLocked=true
+# See above
+ClientLogFile=.xsession-errors
+
+# Greeter config for 1st local display
+[X-:0-Greeter]
+# See above
+#PreselectUser=Default
+# The user to preselect if PreselectUser=Default.
+# Default is ""
+#DefaultUser=johndoe
index 9a7ec2a29ab6870fbc7ea3b769be87df37504a44..7fbfe24c87f8928b7eef95141e83b55a1f0bbc6e 100644 (file)
@@ -1,5 +1,5 @@
 # Printer configuration file for CUPS v1.4.8
-# Written by cupsd on 2012-01-28 14:23
+# Written by cupsd on 2012-01-31 22:27
 # DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
 <DefaultPrinter FS-1020D>
 Info Kyocera FS-1020D
index a467c0d6e466375bcee97ad8aabcfcf534350d18..8db999f531771df7ca1c98b786c88fcaac2d56d1 100644 (file)
@@ -1,5 +1,5 @@
 # Printer configuration file for CUPS v1.4.8
-# Written by cupsd on 2012-01-27 08:13
+# Written by cupsd on 2012-01-30 07:04
 # DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
 <DefaultPrinter FS-1020D>
 Info Kyocera FS-1020D
index 8ca29e055ba5b01cdcafc1228e800cd16ad34465..9d4abe28060474bd4289a42aaa46ac34ee83324d 100644 (file)
@@ -1,3 +1,3 @@
 # Subscription configuration file for CUPS v1.4.8
-# Written by cupsd on 2012-01-28 14:23
-NextSubscriptionId 125
+# Written by cupsd on 2012-01-31 22:27
+NextSubscriptionId 126
index fb889dde5550e06527d268d48bb9c44e566bb546..715a89c211051a007485c8f253935ddd18125da2 100644 (file)
@@ -1,19 +1,11 @@
 # Subscription configuration file for CUPS v1.4.8
-# Written by cupsd on 2012-01-26 21:19
-NextSubscriptionId 125
-<Subscription 123>
+# Written by cupsd on 2012-01-30 18:44
+NextSubscriptionId 126
+<Subscription 125>
 Events printer-state-changed printer-restarted printer-shutdown printer-stopped printer-added printer-deleted job-state-changed job-created job-completed job-stopped job-progress
 Owner doris
 LeaseDuration 86400
 Interval 0
-ExpirationTime 1327690029
-NextEventId 1
-</Subscription>
-<Subscription 124>
-Events printer-state-changed printer-restarted printer-shutdown printer-stopped printer-added printer-deleted job-state-changed job-created job-completed job-stopped job-progress
-Owner doris
-LeaseDuration 86400
-Interval 0
-ExpirationTime 1327695553
+ExpirationTime 1328031858
 NextEventId 1
 </Subscription>
index 853f9268966a6f96e236d666f3f3bb4c1b8f52e2..664dbd984ab83bc76ada83acc94a307c6ce31780 100644 (file)
@@ -13,7 +13,9 @@
     <allow send_interface="org.bluez.Agent"/>
     <allow send_interface="org.bluez.HandsfreeAgent"/>
     <allow send_interface="org.bluez.MediaEndpoint"/>
+    <allow send_interface="org.bluez.MediaPlayer"/>
     <allow send_interface="org.bluez.Watcher"/>
+    <allow send_interface="org.bluez.ThermometerWatcher"/>
   </policy>
 
   <policy at_console="true">
index c873f957c47deeb9c9b53059acb75bdfd8b08b3a..888315773949c6983160d5e4bde3590ecacfcfe6 100644 (file)
                        <dir name="thumbnailers">
                                <entry name="disable_all" mtime="1326727479" schema="/schemas/desktop/gnome/thumbnailers/disable_all"/>
                                <dir name="application@x-cbt">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbt/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbt/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbt/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbt/enable"/>
                                </dir>
                                <dir name="application@x-cb7">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cb7/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cb7/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cb7/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cb7/enable"/>
                                </dir>
                                <dir name="application@x-cbr">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbr/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbr/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbr/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbr/enable"/>
                                </dir>
                                <dir name="application@x-cbz">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbz/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbz/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbz/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-cbz/enable"/>
                                </dir>
                                <dir name="image@x-gzeps">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-gzeps/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-gzeps/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-gzeps/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-gzeps/enable"/>
                                </dir>
                                <dir name="image@x-bzeps">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-bzeps/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-bzeps/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-bzeps/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-bzeps/enable"/>
                                </dir>
                                <dir name="image@x-eps">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-eps/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@x-eps/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-eps/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@x-eps/enable"/>
                                </dir>
                                <dir name="application@x-gzpostscript">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpostscript/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpostscript/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpostscript/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpostscript/enable"/>
                                </dir>
                                <dir name="application@x-bzpostscript">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpostscript/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpostscript/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpostscript/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpostscript/enable"/>
                                </dir>
                                <dir name="application@postscript">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@postscript/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@postscript/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@postscript/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@postscript/enable"/>
                                </dir>
                                <dir name="application@x-gzpdf">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpdf/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpdf/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpdf/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzpdf/enable"/>
                                </dir>
                                <dir name="application@x-bzpdf">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpdf/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpdf/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpdf/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzpdf/enable"/>
                                </dir>
                                <dir name="application@pdf">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@pdf/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@pdf/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@pdf/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@pdf/enable"/>
                                </dir>
                                <dir name="application@x-bzdvi">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzdvi/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzdvi/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzdvi/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-bzdvi/enable"/>
                                </dir>
                                <dir name="application@x-gzdvi">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzdvi/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzdvi/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzdvi/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-gzdvi/enable"/>
                                </dir>
                                <dir name="application@x-dvi">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-dvi/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/application@x-dvi/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-dvi/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/application@x-dvi/enable"/>
                                </dir>
                                <dir name="image@vnd.djvu">
-                                       <entry name="command" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@vnd.djvu/command"/>
-                                       <entry name="enable" mtime="1326800723" schema="/schemas/desktop/gnome/thumbnailers/image@vnd.djvu/enable"/>
+                                       <entry name="command" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@vnd.djvu/command"/>
+                                       <entry name="enable" mtime="1327840754" schema="/schemas/desktop/gnome/thumbnailers/image@vnd.djvu/enable"/>
                                </dir>
                                <dir name="application@x-flac">
                                        <entry name="command" mtime="1326800631" schema="/schemas/desktop/gnome/thumbnailers/application@x-flac/command"/>
@@ -17756,147 +17756,155 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                </local_schema>
                                        </entry>
                                        <dir name="application@x-cbt">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-cb7">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-cbr">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-cbz">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
+                                                               <longdesc></longdesc>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="image@x-gzeps">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="image@x-bzeps">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="image@x-eps">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-gzpostscript">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-bzpostscript">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@postscript">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-gzpdf">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="Thumbnail command for PDF Documents">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
@@ -17904,7 +17912,7 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                                <longdesc>Valid command plus arguments for the PDF Document thumbnailer.  See Nautilus thumbnailer documentation for more information.</longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="Enable thumbnailing of PDF Documents">
                                                                <default type="bool" value="true"/>
                                                                <longdesc>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</longdesc>
@@ -17912,7 +17920,7 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                </entry>
                                        </dir>
                                        <dir name="application@x-bzpdf">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="Thumbnail command for PDF Documents">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
@@ -17920,7 +17928,7 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                                <longdesc>Valid command plus arguments for the PDF Document thumbnailer.  See Nautilus thumbnailer documentation for more information.</longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="Enable thumbnailing of PDF Documents">
                                                                <default type="bool" value="true"/>
                                                                <longdesc>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</longdesc>
@@ -17928,7 +17936,7 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                </entry>
                                        </dir>
                                        <dir name="application@pdf">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="Thumbnail command for PDF Documents">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
@@ -17936,7 +17944,7 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                                <longdesc>Valid command plus arguments for the PDF Document thumbnailer.  See Nautilus thumbnailer documentation for more information.</longdesc>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="Enable thumbnailing of PDF Documents">
                                                                <default type="bool" value="true"/>
                                                                <longdesc>Boolean options available: true enables thumbnailing and false disables the creation of new thumbnails</longdesc>
@@ -17944,56 +17952,56 @@ The parser is fairly liberal and allows lower or upper case, and also abbreviati
                                                </entry>
                                        </dir>
                                        <dir name="application@x-bzdvi">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-gzdvi">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="application@x-dvi">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
                                                </entry>
                                        </dir>
                                        <dir name="image@vnd.djvu">
-                                               <entry name="command" mtime="1326800723" type="schema" stype="string" owner="evince">
+                                               <entry name="command" mtime="1327840754" type="schema" stype="string" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="string">
                                                                        <stringvalue>evince-thumbnailer -s %s %u %o</stringvalue>
                                                                </default>
                                                        </local_schema>
                                                </entry>
-                                               <entry name="enable" mtime="1326800723" type="schema" stype="bool" owner="evince">
+                                               <entry name="enable" mtime="1327840754" type="schema" stype="bool" owner="evince">
                                                        <local_schema locale="C" short_desc="">
                                                                <default type="bool" value="true"/>
                                                        </local_schema>
index fd6f4c0837e49e5bffe2af38c25936654153b91b..88c90398b208f03f137a901ca8b3243f4e66c1e8 100644 (file)
@@ -1,5 +1,5 @@
 # This file was automatically created based on description files (*.desc)
-# by sane-desc 3.5 from sane-backends 1.0.22 on Mon Jan 16 20:59:57 2012
+# by sane-desc 3.5 from sane-backends 1.0.22 on Sun Jan 29 13:39:48 2012
 #
 # The entries below are used to detect a USB device and change owner
 # and permissions on the "device node" used by libusb.
index 3e81a7530451d52ddc3eb4a3f32a67e40f5d6887..ebf975428e26930dfcf8717d73cd0801f6c594b8 100644 (file)
@@ -1,7 +1,19 @@
 [General]
 #Verbosity = 0
-# The following should be set to the local NFSv4 domain name (REQUIRED)
-Domain = local.domain.edu
+# The following should be set to the local NFSv4 domain name
+# The default is the host's DNS domain name.
+#Domain = local.domain.edu
+
+# The following is a comma-separated list of Kerberos realm
+# names that should be considered to be equivalent to the
+# local realm, such that <user>@REALM.A can be assumed to
+# be the same user as <user>@REALM.B
+# If not specified, the default local realm is the domain name,
+# which defaults to the host's DNS domain name,
+# translated to upper-case.
+# Note that if this value is specified, the local realm name
+# must be included in the list!
+#Local-Realms = 
 
 [Mapping]
 
index 6339f99c738e59c3b2275c66dd0383eaa1a2d694..9280f93bac8931476802dd719cf8585663095fb2 100755 (executable)
@@ -1,7 +1,7 @@
 #!/sbin/runscript
-# Copyright 1999-2011 Gentoo Foundation
+# Copyright 1999-2012 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/bluetooth-init.d,v 1.2 2011/03/20 16:57:35 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/bluetooth-init.d-r1,v 1.1 2012/01/09 23:01:55 pacho Exp $
 
 depend() {
        after coldplug
@@ -9,25 +9,11 @@ depend() {
 }
 
 start() {
-       ebegin "Starting Bluetooth"
-
+       ebegin "Udev coldplug of bluetooth devices"
        udevadm trigger --subsystem-match=bluetooth --action=add
        eend $?
-
-       if [ "${RFCOMM_ENABLE}" = "true" -a -x /usr/bin/rfcomm ]; then
-               if [ -f "${RFCOMM_CONFIG}" ]; then
-                       eindent
-                       ebegin "Starting rfcomm"
-                       /usr/bin/rfcomm -f "${RFCOMM_CONFIG}" bind all
-                       eoutdent
-                       eend $?
-               else
-                       ewarn "Not enabling rfcomm because RFCOMM_CONFIG does not exists"
-               fi
-       fi
 }
 
 stop() {
-       ebegin "Shutting down Bluetooth"
-       eend 0
+       return 0
 }
index 35af097526216c16f4abea7d4e03d1408bd3fd9f..0e03938f717c32e7338115b141a75d5ea5f35ba4 100755 (executable)
@@ -10,7 +10,7 @@ depend()
        keyword -prefix -timeout
 }
 
-dir_writeable()
+dir_writable()
 {
        mkdir "$1"/.test.$$ 2>/dev/null && rmdir "$1"/.test.$$
 }
@@ -25,7 +25,7 @@ cleanup_tmp_dir()
        if ! [ -d "$dir" ]; then
                mkdir -p "$dir" || return $?
        fi
-       dir_writeable "$dir" || return 1
+       dir_writable "$dir" || return 1
        chmod a+rwt "$dir" 2> /dev/null
        cd "$dir" || return 1
        if yesno $wipe_tmp; then
@@ -72,6 +72,26 @@ mkutmp()
        chmod 0664 "$1"
 }
 
+migrate_to_run()
+{
+       src="$1"
+       dst="$2"
+       if [ -L $src -a "$(readlink -f $src)" != $dst ]; then
+               ewarn "$src does not point to $dst."
+               ewarn "Setting $src to point to $dst."
+               rm $src
+       elif [ ! -L $src -a -d $src ]; then
+               ebegin "Migrating $src to $dst"
+               cp -a $src/* $dst/
+               rm -rf $src
+               eend $?
+       fi
+       # If $src doesn't exist at all, just run this
+       if [ ! -e $src ]; then
+               ln -s $dst $src
+       fi
+}
+
 start()
 {
        # Remove any added console dirs
@@ -79,8 +99,16 @@ start()
 
        local logw=false runw=false extra=
        # Ensure that our basic dirs exist
-       [ "$RC_UNAME" = Linux ] && extra=/var/lib/misc # Satisfy Linux FHS
-       for x in /var/log /var/run /tmp $extra; do
+       if [ "$RC_UNAME" = Linux ]; then
+               # Satisfy Linux FHS
+               extra=/var/lib/misc
+               if [ ! -d /run ]; then
+                       extra="/var/run $extra"
+               fi
+       else
+               extra=/var/run
+       fi
+       for x in /var/log /tmp $extra; do
                if ! [ -d $x ]; then
                        if ! mkdir -p $x; then
                                eend 1 "failed to create needed directory $x"
@@ -89,7 +117,12 @@ start()
                fi
        done
 
-       if dir_writeable /var/run; then
+       if [ "$RC_UNAME" = Linux -a -d /run ] && false; then
+               migrate_to_run  /var/lock /run/lock
+               migrate_to_run  /var/run /run
+       fi
+
+       if dir_writable /var/run; then
                ebegin "Creating user login records"
                local xtra=
                [ "$RC_UNAME" = NetBSD ] && xtra=x
@@ -131,7 +164,7 @@ start()
                cleanup_tmp_dir "$tmp"
        done
 
-       if dir_writeable /tmp; then
+       if dir_writable /tmp; then
                # Make sure our X11 stuff have the correct permissions
                # Omit the chown as bootmisc is run before network is up
                # and users may be using lame LDAP auth #139411
@@ -144,7 +177,7 @@ start()
        fi
 
        if yesno $log_dmesg; then
-               if $logw || dir_writeable /var/log; then
+               if $logw || dir_writable /var/log; then
                        # Create an 'after-boot' dmesg log
                        if [ "$RC_SYS" != VSERVER -a "$RC_SYS" != OPENVZ ]; then
                                dmesg > /var/log/dmesg
index ca9ee31156002ddaba195bde23a9f4ef3315fe82..f989d2d2211e7f1817a55ee02e4136a1424d7f00 100755 (executable)
@@ -49,7 +49,7 @@ start()
                        retval=1
                        break
                fi
-               x=$(($x + 1))
+               : $(( x += 1 ))
        done
        eend $retval
 
index 3960553d1fa3ce82b86b395c08e425120a0a31e4..9cf35b864fb638126d42379f9c4216dfd1acb381 100755 (executable)
@@ -48,8 +48,13 @@ start()
 
        if [ -n "$fsck_passno" ]; then
                check_extra="[passno $fsck_passno] $check_extra"
+               if [ -n "$fsck_mnt" ]; then
+                       eerror "Only 1 of fsck_passno and fsck_mnt must be set!"
+                       return 1
+               fi
        fi
        ebegin "Checking local filesystems $check_extra"
+       # Append passno mounts
        for p in $fsck_passno; do
                local IFS="$_IFS"
                case "$p" in
@@ -58,10 +63,16 @@ start()
                set -- "$@" $(fstabinfo --passno "$p")
                unset IFS
        done
+       # Append custom mounts
+       for m in $fsck_mnt ; do
+               local IFS="$_IFS"
+               set -- "$@" "$m"
+               unset IFS
+       done
 
        if [ "$RC_UNAME" = Linux ]; then
                fsck_opts="$fsck_opts -C0 -T"
-               if [ -z "$fsck_passno" ]; then
+               if [ -z "$fsck_passno" -a -z "$fsck_mnt" ]; then
                        fsck_args=${fsck_args--A -p}
                        if echo 2>/dev/null >/.test.$$; then
                                rm -f /.test.$$
@@ -91,7 +102,7 @@ start()
                        _reboot
                fi;;
        8)      ewend 1 "Operational error"; return 0;;
-       12)     ewend 1 "fsck interupted";;
+       12)     ewend 1 "fsck interrupted";;
        *)      eend 2 "Filesystems couldn't be fixed";;
        esac
        _abort || return 1
index 20a98591ee90558729029adf716192131f794640..28d675a8a25fffb6a91d6f3d7e013264f6991d1f 100755 (executable)
@@ -85,7 +85,7 @@ start()
 
        if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
                _hwclock --adjust $utc_cmd
-               retval=$(($retval + $?))
+               : $(( retval += $? ))
        fi
 
        # If setting UTC, don't bother to run hwclock when first booting
@@ -99,7 +99,7 @@ start()
                else
                        _hwclock --systz $utc_cmd $clock_args
                fi
-               retval=$(($retval + $?))
+               : $(( retval += $? ))
        fi
 
        eend $retval "Failed to set the system clock"
index 8ab72fd170c79757843d032ef8b8260054428c09..211fdd36501aa44bbb1da0b4c208efcf6761fce1 100755 (executable)
@@ -47,7 +47,7 @@ start()
        n=1
        while [ $n -le $ttyn ]; do
                kbd_mode $kmode -C $ttydev$n
-               n=$(($n + 1))
+               : $(( n += 1 ))
        done
        eend 0
 
index 3fa586749741718291169a552d31b1482bdeb2f3..17f60ce87ae9dd5aa5a53f2b4884623eef61a118 100755 (executable)
@@ -57,7 +57,7 @@ start()
                [ -z "$args" ] && eval args=\$module_${aa}_args
                [ -z "$args" ] && eval args=\$module_${xx}_args
                eval modprobe -q "$mpargs" "$x" "$args"
-               eend $? "Failed to load $x" && cnt=$(($cnt + 1))
+               eend $? "Failed to load $x" && : $(( cnt += 1 ))
        done
        einfo "Autoloaded $cnt module(s)"
 }
index 6f8b5b10c5c1db3e21e7759957b28fd6599c660e..231436391cd229b3f031ec57d613dd951003f5cd 100755 (executable)
@@ -21,11 +21,11 @@ depend()
        need localmount
        after bootmisc
        provide net
-       keyword -jail -prefix -vserver
+       keyword -shutdown -jail -prefix -vserver
 
        case "${IFACE}" in
                lo|lo0);;
-               *) after net.lo net.lo0;;
+               *) after net.lo net.lo0 dbus;;
        esac
 
        if [ "$(command -v "depend_${IFVAR}")" = "depend_${IFVAR}" ]; then
@@ -115,7 +115,7 @@ _wait_for_carrier()
                        eend 0
                        return 0
                fi
-               timeout=$((${timeout} - 1))
+               : $(( timeout -= 1 ))
                [ "${efunc}" = "einfon" ] && printf "."
        done
 
@@ -144,9 +144,9 @@ _netmask2cidr()
        local i= len=
        local IFS=.
        for i in $1; do
-               while [ ${i} != "0" ]; do
-                       len=$((${len} + ${i} % 2))
-                       i=$((${i} >> 1))
+               while [ ${i} -ne 0 ]; do
+                       : $(( len += i % 2 ))
+                       : $(( i >>= 1 ))
                done
        done
 
@@ -169,6 +169,36 @@ _configure_variables()
        done
 }
 
+_which()
+{
+       local i OIFS
+       # Empty
+       [ -z "$1" ] && return
+       # check paths
+       OIFS="$IFS"
+       IFS=:
+       for i in $PATH ; do
+               [ -x $i/$1 ] && echo $i/$1 && break
+       done
+       IFS=$OIFS
+}
+
+# Like _which, but also consider shell builtins, and multiple alternatives
+_program_available()
+{
+       [ -z "$1" ] && return 0
+       local x=
+       for x; do
+               case "${x}" in
+                       /*) [ -x "${x}" ] && break;;
+                       *) type "${x}" >/dev/null 2>&1 && break;;
+               esac
+               unset x
+       done
+       [ -n "${x}" ] && echo $x && return 0
+       return 1
+}
+
 _show_address()
 {
        einfo "received address $(_get_inet_address "${IFACE}")"
@@ -277,7 +307,7 @@ _gen_module_list()
                echo "module_${i}_program_start='${PROGRAM_START}'" >> "${MODULESLIST}"
                echo "module_${i}_program_stop='${PROGRAM_STOP}'" >> "${MODULESLIST}"
                echo "module_${i}_provide='${PROVIDE}'" >> "${MODULESLIST}"
-               i=$((${i} + 1))
+               : $(( i += 1 ))
        done
        echo "module_${i}=" >> "${MODULESLIST}"
        )
@@ -304,18 +334,17 @@ _load_modules()
 
        local i=-1 x= mod= f= provides=
        while true; do
-               i=$((${i} + 1))
+               : $(( i += 1 ))
                eval mod=\$module_${i}
                [ -z "${mod}" ] && break
                [ -e "${MODULESDIR}/${mod}.sh" ] || continue
 
                eval set -- \$module_${i}_program
                if [ -n "$1" ]; then
-                       x=
-                       for x; do
-                               [ -x "${x}" ] && break
-                       done
-                       [ -x "${x}" ] || continue
+                       if ! _program_available "$@" >/dev/null; then
+                               vewarn "Skipping module $mod due to missing program: $@"
+                               continue
+                       fi
                fi
                if ${starting}; then
                        eval set -- \$module_${i}_program_start
@@ -323,15 +352,10 @@ _load_modules()
                        eval set -- \$module_${i}_program_stop
                fi
                if [ -n "$1" ]; then
-                       x=
-                       for x; do
-                               case "${x}" in
-                                       /*) [ -x "${x}" ] && break;;
-                                       *) type "${x}" >/dev/null 2>&1 && break;;
-                               esac
-                               unset x
-                       done
-                       [ -n "${x}" ] || continue
+                       if ! _program_available "$@" >/dev/null; then
+                               vewarn "Skipping module $mod due to missing program: $@"
+                               continue
+                       fi
                fi
 
                eval provides=\$module_${i}_provide
@@ -407,16 +431,18 @@ _load_config()
        set -- ${config}
 
        # We should support a space separated array for cidr configs
+       # But only as long as they do not contain other parameters for the address
        if [ $# = 1 ]; then
                unset IFS
                set -- ${config}
                # Of course, we may have a single address added old style.
-               case "$2" in
-                       netmask|broadcast|brd|brd+|peer|pointopoint)
-                               local IFS="$__IFS"
-                               set -- ${config}
-                               ;;
-               esac
+               # If the NEXT argument is a v4 or v6 address, it's the next config.
+               # Otherwise, it's arguments to the first config...
+               if [ "${2#*.*}" = "${2}" -a "${2#*:*}" = "${2}" ]; then
+                       # Not an IPv4/IPv6
+                       local IFS="$__IFS"
+                       set -- ${config}
+               fi
        fi
 
        # Ensure that loopback has the correct address
@@ -438,7 +464,7 @@ _load_config()
        # so modules can influence it
        for cmd; do
                eval config_${config_index}="'${cmd}'"
-               config_index=$((${config_index} + 1))
+               : $(( config_index += 1 ))
        done
        # Terminate the list
        eval config_${config_index}=
@@ -446,7 +472,7 @@ _load_config()
        config_index=0
        for cmd in ${fallback}; do
                eval fallback_${config_index}="'${cmd}'"
-               config_index=$((${config_index} + 1))
+               : $(( config_index += 1 ))
        done
        # Terminate the list
        eval fallback_${config_index}=
@@ -488,7 +514,9 @@ start()
 {
        local IFACE=${RC_SVCNAME#*.} oneworked=false fallback=false module=
        local IFVAR=$(shell_var "${IFACE}") cmd= our_metric=
-       local metric=0
+       local metric=0 _up_before_preup
+       eval _up_before_preup="\$up_before_preup_${IFVAR}"
+       [ -z "${_up_before_preup}" ] && _up_before_preup=$up_before_preup
 
        einfo "Bringing up interface ${IFACE}"
        eindent
@@ -502,7 +530,7 @@ start()
        # available in preup and afterwards incase the user inadvertently
        # brings it down
        if [ "$(command -v preup)" = "preup" ]; then
-               _up 2>/dev/null
+               yesno "${_up_before_preup:-yes}" && _up 2>/dev/null
                ebegin "Running preup"
                eindent
                preup || return 1
@@ -541,7 +569,7 @@ start()
        if [ -n "${our_metric}" ]; then
                metric=${our_metric}
        elif [ "${IFACE}" != "lo" -a "${IFACE}" != "lo0" ]; then
-               metric=$((${metric} + $(_ifindex)))
+               : $(( metric += $(_ifindex) ))
        fi
 
        while true; do
@@ -581,11 +609,11 @@ start()
                                eindent
                                eval config_${config_index}=\$config
                                unset fallback_${config_index}
-                               config_index=$((${config_index} - 1))
+                               : $(( config_index -= 1 ))
                        fi
                fi
                eoutdent
-               config_index=$((${config_index} + 1))
+               : $(( config_index += 1 ))
        done
 
        if ! ${oneworked}; then
index 9f8ac7135c229d9a30ce134cab822d279c2a8beb..7ba4f48c1ab5d65aa2403b0534a8552c4dfc7843 100755 (executable)
@@ -219,6 +219,12 @@ start()
                eend $?
        fi
 
+       ewarn
+       ewarn "The $RC_SVCNAME script is deprecated and will be"
+       ewarn "removed in the future."
+       ewarn "Please use the net.* scripts to manage your network interfaces."
+       ewarn
+
        einfo "Starting network"
        routeflush
        if [ "$RC_UNAME" = "Linux" ]; then
@@ -281,7 +287,7 @@ start()
                tentative || break
                [ $r = 5 ] && vebegin "Waiting for tentative addresses"
                sleep 1
-               r=$(($r - 1))
+               : $(( r -= 1 ))
        done
        if [ $r != 5 ]; then
                [ $r != 0 ]
index bfa6add0f9dd607426246078bb8cc7673e6d9250..e354dfd19d9aadd6e8a4afab843d359cc9c07a9e 100755 (executable)
@@ -21,7 +21,7 @@ _setleds()
 
        while [ $i -le $ttyn ]; do
                setleds -D "$1"num < $dev$i || retval=1
-               i=$(($i + 1))
+               : $(( i += 1 ))
        done
 
        return $retval
diff --git a/init.d/rfcomm b/init.d/rfcomm
new file mode 100755 (executable)
index 0000000..d3b819e
--- /dev/null
@@ -0,0 +1,27 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-wireless/bluez/files/rfcomm-init.d,v 1.1 2011/12/31 21:09:18 pacho Exp $
+
+depend() {
+       after coldplug
+       need dbus localmount hostname
+}
+
+start() {
+       if [ "${RFCOMM_ENABLE}" = "true" -a -x /usr/bin/rfcomm ]; then
+               if [ -f "${RFCOMM_CONFIG}" ]; then
+                       ebegin "Starting rfcomm"
+                       /usr/bin/rfcomm -f "${RFCOMM_CONFIG}" bind all
+                       eend $?
+               else
+                       ewarn "Not enabling rfcomm because RFCOMM_CONFIG does not exists"
+               fi
+       fi
+}
+
+stop() {
+       ebegin "Shutting down rfcomm"
+       /usr/bin/rfcomm release all
+       eend $? 
+}
index 558d57e590182d37bb4ab4fdd7aaaccb43454e87..3a5d326a59af554734802c0853ccb9327b38210c 100755 (executable)
@@ -93,6 +93,11 @@ do_routes()
 
 start()
 {
+       ewarn
+       ewarn "The $RC_SVCNAME script is deprecated and will be"
+       ewarn "removed in the future."
+       ewarn "Please use the net.* scripts to manage your network interfaces."
+       ewarn
        do_routes "Adding" "add"
 }
 
index 2433d8479f8c1b7f29b6a3d3cabb9eee220366be..dd3fc0ee7b7ce94f5b35fb83e109c664c3549e1a 100755 (executable)
@@ -50,6 +50,43 @@ mount_misc()
                        eend $?
                fi
        fi
+
+       # Setup Kernel Support for configfs
+       if [ -d /sys/kernel/config ] && ! mountinfo -q /sys/kernel/config; then
+               if grep -qs configfs /proc/filesystems; then
+                       ebegin "Mounting config filesystem"
+                       mount -n -t configfs -o  nodev,noexec,nosuid \
+                               configfs /sys/kernel/config
+                       eend $?
+               fi
+       fi
+
+       # set up kernel support for cgroups
+       if [ -d /sys/fs/cgroup ] && ! mountinfo -q /sys/fs/cgroup; then
+               if grep -qs cgroup /proc/filesystems; then
+                       ebegin "Mounting cgroup filesystem"
+                       local opts="nodev,noexec,nosuid,mode=755,size=${rc_cgroupsize:-10m}"
+                       mount -n -t tmpfs -o ${opts} cgroup_root /sys/fs/cgroup
+                       eend $?
+               fi
+       fi
+}
+
+mount_cgroups()
+{
+       yesno ${rc_cgroups:-YES} || return 0
+       if [ ! -e /proc/cgroups ]; then
+               return 0
+       fi
+
+       while read name hier groups enabled rest; do
+               case "${enabled}" in
+                       1)      mkdir /sys/fs/cgroup/${name}
+                               mount -t cgroup -o nodev,noexec,nosuid,${name} \
+                                       ${name} /sys/fs/cgroup/${name}
+                               ;;
+               esac
+       done < /proc/cgroups
 }
 
 start()
@@ -59,6 +96,11 @@ start()
        retval=$?
        if [ $retval -eq 0 ]; then
                mount_misc
+               retval=$?
+       fi
+       if [ $retval -eq 0 ]; then
+               mount_cgroups
+               retval=$?
        fi
        return $retval
 }
index 2c2e6b0920aa81532719f18f26878e0f189fdd29..d7951d1e27480ce3374fe7487b59a013d1dabfee 100755 (executable)
@@ -31,7 +31,7 @@ start()
        n=1
        while [ ${n} -le "$ttyn" ]; do
                printf "\033%s" "$termencoding" >$ttydev$n
-               n=$(($n + 1))
+               : $(( n += 1 ))
        done
 
        # Save the encoding for use immediately at boot
index 833cca0c25a34a579932962fc372aa3b9806d498..1912c8be6f60a2e279bcffdff11139393beacfb7 100755 (executable)
@@ -2,48 +2,83 @@
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
+command=/sbin/udevd
+command_args="--daemon ${udev_opts}"
 description="Run udevd and create the device-nodes"
 
-[ -e /etc/udev/udev.conf ] && . /etc/udev/udev.conf
-
+persistent_cd_disable="${persistent_cd_disable:-no}"
+persistent_net_disable="${persistent_net_disable:-no}"
 rc_coldplug=${rc_coldplug:-${RC_COLDPLUG:-YES}}
+udev_debug="${udev_debug:-no}"
+udev_monitor="${udev_monitor:-no}"
+udev_monitor_keep_running="${udev_monitor_keep_running:-no}"
+udev_settle_timeout="${udev_settle_timeout:-60}"
+kv_min="${kb_min:-2.6.32}"
 
 depend()
 {
-       if [ -f /etc/init.d/sysfs ]; then
-               # require new enough openrc with sysinit being extra runlevel
-               # on linux we just check if sysfs init-script exists
-               # this is to silence out ugly warnings about not-existing sysfs script
-               provide dev
-               if yesno "${rc_device_tarball:-no}"; then
-                       need sysfs udev-mount udev-dev-tarball
-               else
-                       need sysfs udev-mount
-               fi
-               before checkfs fsck
+       provide dev
+       need sysfs udev-mount
+       before checkfs fsck
 
-               # udev does not work inside vservers
-               keyword novserver nolxc
-       fi
+       # udev does not work inside vservers
+       keyword -vserver -lxc
 }
 
-cleanup()
+KV_to_int()
 {
-       # fail more gracely and not leave udevd running
-       start-stop-daemon --stop --exec /sbin/udevd
-       exit 1
+       [ -z $1 ] && return 1
+
+       local x=${1%%[!0-9.]*} y= z=
+       local KV_MAJOR=${x%%.*}
+       y=${x#*.}
+       [ "$x" = "$y" ] && y=0.0
+       local KV_MINOR=${y%%.*}
+       z=${y#*.}
+       [ "$y" = "$z" ] && z=0
+       local KV_MICRO=${z%%.*}
+       local KV_int=$((${KV_MAJOR} * 65536 + ${KV_MINOR} * 256 + ${KV_MICRO} ))
+
+       # We make version 2.2.0 the minimum version we will handle as
+       # a sanity check ... if its less, we fail ...
+       [ "${KV_int}" -lt 131584 ] && return 1
+       
+       echo "${KV_int}"
 }
 
-disable_hotplug_agent()
+_RC_GET_KV_CACHE=""
+get_KV()
 {
-       if [ -e /proc/sys/kernel/hotplug ]; then
-               echo "" >/proc/sys/kernel/hotplug
+       if [ -z "${_RC_GET_KV_CACHE}" ] ; then
+               _RC_GET_KV_CACHE="$(uname -r)"
        fi
+       echo "$(KV_to_int "${_RC_GET_KV_CACHE}")"
+       return $?
 }
 
-root_link()
+# FIXME
+# Instead of this script testing kernel version, udev itself should
+# Maybe something like udevd --test || exit $?
+check_kernel()
 {
-       /lib64/udev/write_root_link_rule
+       if [ $(get_KV) -lt $(KV_to_int ${kv_min}) ]; then
+               eerror "Your kernel is too old to work with this version of udev."
+               eerror "Current udev only supports Linux kernel ${kv_min} and newer."
+               return 1
+       fi
+       return 0
+}
+
+get_rundir()
+{
+       echo $(udevadm info --run)
+}
+
+cleanup()
+{
+       # fail more gracely and not leave udevd running
+       start-stop-daemon --stop --exec /sbin/udevd
+       exit 1
 }
 
 rules_disable_switch()
@@ -51,7 +86,7 @@ rules_disable_switch()
        # this function disables rules files
        # by creating new files with the same name
        # in a temp rules directory with higher priority
-       local f=/dev/.udev/rules.d/"$1" bname="$1" onoff="$2"
+       local f=$(get_rundir)/rules.d/"$1" bname="$1" onoff="$2"
 
        if yesno "${onoff}"; then
                echo "# This file disables ${bname} due to /etc/conf.d/udev" \
@@ -61,8 +96,8 @@ rules_disable_switch()
        fi
 }
 
-# only called on openrc
-is_service_enabled() {
+is_service_enabled()
+{
        local svc="$1"
 
        [ ! -e "/etc/init.d/${svc}" ] && return 1
@@ -72,35 +107,59 @@ is_service_enabled() {
        return 1
 }
 
-check_openrc_net()
+start_pre()
 {
-       local f=/dev/.udev/rules.d/90-network.rules
-       is_service_enabled network || return 0
+       if [ -d /run ]; then
+               checkpath -d -m 0755 -o root:root -q /run/udev
+       fi
 
-       # disable network hotplugging
-       echo "# This file disables network hotplug events calling old-style openrc net scripts" >> "${f}"
-       echo "# as we use new-style network init script /etc/init.d/network" >> "${f}"
-}
+       if is_service_enabled network; then
+               # disable network hotplugging
+               local f="$(get_rundir)/rules.d/90-network.rules"
+               echo "# This file disables network hotplug events calling" >> "${f}"
+               echo "# old-style openrc net scripts" >> "${f}"
+               echo "# as we use /etc/init.d/network to set up our network" >> "${f}"
+       fi
+
+       if [ ! -e /etc/runlevels/${RC_DEFAULTLEVEL:-default}/udev-postmount ]; then
+               ewarn "You should add udev-postmount service to your default runlevel."
+       fi
+
+       /lib/udev/write_root_link_rule
+
+       rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable}"
+       rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable}
+       
+       if [ -e /proc/sys/kernel/hotplug ]; then
+               echo "" >/proc/sys/kernel/hotplug
+       fi
 
-start_udevd()
-{
        # load unix domain sockets if built as module, Bug #221253
-       if [ -e /proc/modules ] ; then
-               modprobe -q unix 2>/dev/null
+       # and not yet loaded, Bug #363549
+       if [ ! -e /proc/net/unix ]; then
+               if ! modprobe unix; then
+                       eerror "Cannot load the unix domain socket module"
+               fi
        fi
-       local opts="${udev_opts}"
 
-       ebegin "Starting udevd"
-       if yesno "${udev_debug:-no}"; then
-               /sbin/udevd --daemon ${opts} --debug 2>/dev/.udev/udev.log
-       else
-               start-stop-daemon --start --exec /sbin/udevd -- --daemon ${opts}
+       if yesno "${udev_debug}"; then
+               command_args="${command_args} --debug 2> $(get_rundir)/udev.log"
        fi
+}
 
-       eend $?
+start_udevmonitor()
+{
+       yesno "${udev_monitor}" || return 0
+
+       udevmonitor_log="$(get_rundir)/udevmonitor.log"
+       udevmonitor_pid="$(get_rundir)/udevmonitor.pid"
+
+       einfo "udev: Running udevadm monitor ${udev_monitor_opts} to log all events"
+       start-stop-daemon --start --stdout "${udevmonitor_log}" \
+               --make-pidfile --pidfile "${udevmonitor_pid}" \
+               --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}
 }
 
-# populate /dev with devices already found by the kernel
 populate_dev()
 {
        if get_bootparam "nocoldplug" ; then
@@ -109,71 +168,27 @@ populate_dev()
        fi
 
        ebegin "Populating /dev with existing devices through uevents"
-       udevadm control --property=STARTUP=1
-       if yesno "${rc_coldplug}"; then
-               udevadm trigger --action="add"
-       else
+       if ! yesno "${rc_coldplug}"; then
                # Do not run any init-scripts, Bug #206518
                udevadm control --property=do_not_run_plug_service=1
-
-               # only create device nodes
-               udevadm trigger --action="add" --attr-match=dev
-
-               # run persistent-net stuff, bug 191466
-               udevadm trigger --action="add" --subsystem-match=net
        fi
+       udevadm trigger --type=subsystems --action=add
+       udevadm trigger --type=devices --action=add
        eend $?
 
        # we can speed up booting under these conditions:
        #  * using devtmpfs so kernel creates device nodes for us
-       #  * only using kernel created device nodes at boot (in /etc/fstab and elsewhere)
+       #  * only using kernel created device nodes at boot
+       # (in /etc/fstab and elsewhere)
        #
        ebegin "Waiting for uevents to be processed"
-       udevadm settle --timeout=${udev_settle_timeout:-60}
+       udevadm settle --timeout=${udev_settle_timeout}
        eend $?
 
        udevadm control --property=do_not_run_plug_service=
-       udevadm control --property=STARTUP=
        return 0
 }
 
-# for debugging
-start_udevmonitor()
-{
-       yesno "${udev_monitor:-no}" || return 0
-
-       udevmonitor_log=/dev/.udev/udevmonitor.log
-       udevmonitor_pid=/dev/.udev/udevmonitor.pid
-
-       einfo "udev: Running udevadm monitor ${udev_monitor_opts} to get a log of all events"
-       start-stop-daemon --start --stdout "${udevmonitor_log}" \
-               --make-pidfile --pidfile "${udevmonitor_pid}" \
-               --background --exec /sbin/udevadm -- monitor ${udev_monitor_opts}
-}
-
-stop_udevmonitor()
-{
-       yesno "${udev_monitor:-no}" || return 0
-
-       if yesno "${udev_monitor_keep_running:-no}"; then
-               ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"
-       else
-               einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"
-               start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm
-       fi
-}
-
-display_hotplugged_services() {
-       local svcfile= svc= services=
-       for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
-               svc="${svcfile##*/}"
-               [ -x "${svcfile}" ] || continue
-
-               services="${services} ${svc}"
-       done
-       [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
-}
-
 check_persistent_net()
 {
        # check if there are problems with persistent-net
@@ -196,7 +211,7 @@ check_persistent_net()
        # is installed into /usr/bin and not available at boot.
        dups=$(
        RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
-       . /lib64/udev/rule_generator.functions
+       . /lib/udev/rule_generator.functions
        find_all_rules 'NAME=' '.*' | \
        tr ' ' '\n' | \
        sort | \
@@ -224,49 +239,37 @@ check_udev_works()
        return 0
 }
 
-start()
+stop_udevmonitor()
 {
-       # do not run this on old baselayout where udev-addon gets loaded
-       if [ ! -f /etc/init.d/sysfs ]; then
-               eerror "The $SVCNAME init-script is written for baselayout-2!"
-               eerror "Please do not use it with baselayout-1!".
-               return 1
+       yesno "${udev_monitor}" || return 0
+
+       if yesno "${udev_monitor_keep_running}"; then
+               ewarn "udev: udevmonitor is still running and writing into ${udevmonitor_log}"
+       else
+               einfo "udev: Stopping udevmonitor: Log is in ${udevmonitor_log}"
+               start-stop-daemon --stop --pidfile "${udevmonitor_pid}" --exec /sbin/udevadm
        fi
+}
 
-       check_openrc_net
-       _start
-       
-       display_hotplugged_services
+display_hotplugged_services()
+{
+       local svcfile= svc= services=
+       for svcfile in "${RC_SVCDIR}"/hotplugged/*; do
+               svc="${svcfile##*/}"
+               [ -x "${svcfile}" ] || continue
 
-       return 0
+               services="${services} ${svc}"
+       done
+       [ -n "${services}" ] && einfo "Device initiated services:${HILITE}${services}${NORMAL}"
 }
 
-_start()
+start_post()
 {
-       if [ ! -e /etc/runlevels/${RC_DEFAULTLEVEL:-default}/udev-postmount ]; then
-               ewarn "You should add udev-postmount service to your default runlevel."
-       fi
-
-       root_link
-       rules_disable_switch 75-persistent-net-generator.rules "${persistent_net_disable:-no}"
-       rules_disable_switch 75-cd-aliases-generator.rules ${persistent_cd_disable:-no}
-       
-       disable_hotplug_agent
-       start_udevd || cleanup
        start_udevmonitor
-       populate_dev || cleanup
-
+       populate_dev
        check_persistent_net
-
        check_udev_works || cleanup
        stop_udevmonitor
-
+       display_hotplugged_services
        return 0
 }
-
-stop() {
-       ebegin "Stopping udevd"
-       start-stop-daemon --stop --exec /sbin/udevd
-       eend $?
-}
-
diff --git a/init.d/udev-dev-tarball b/init.d/udev-dev-tarball
deleted file mode 100755 (executable)
index d32c7b2..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Maintain a tarball of not udev managed device nodes"
-[ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
-
-rc_device_tarball=${rc_device_tarball:-${RC_DEVICE_TARBALL:-NO}}
-device_tarball=/lib64/udev/state/devices.tar.bz2
-
-depend() {
-       if [ -f /etc/init.d/sysfs ]; then
-               need udev-mount
-       fi
-}
-
-start()
-{
-       _start
-}
-
-_start() {
-       if yesno "${rc_device_tarball}" && \
-               [ -s "${device_tarball}" ]
-       then
-               ebegin "Populating /dev with saved device nodes"
-               tar -jxpf "${device_tarball}" -C /dev
-               eend $?
-       fi
-}
-
-stop() {
-       if [ -e /dev/.devfsd ] || [ ! -e /dev/.udev ] || [ ! -z "${CDBOOT}" ] || \
-               ! yesno "${rc_device_tarball}" || \
-               ! touch "${device_tarball}" 2>/dev/null
-       then
-               return 0
-       fi
-
-       ebegin "Saving device nodes"
-       # Handle our temp files
-       save_tmp_base=/tmp/udev.savedevices."$$"
-       devices_udev="${save_tmp_base}"/devices.udev
-       devices_real="${save_tmp_base}"/devices.real
-       devices_totar="${save_tmp_base}"/devices.totar
-       device_tmp_tarball="${save_tmp_base}"/devices
-
-       rm -rf "${save_tmp_base}"
-       mkdir "${save_tmp_base}"
-       touch "${devices_udev}" "${devices_real}" \
-               "${devices_totar}" "${device_tmp_tarball}"
-
-       if [ -f "${devices_udev}" -a -f "${devices_real}" -a \
-               -f "${devices_totar}" -a -f "${device_tmp_tarball}" ]
-       then
-               cd /dev
-               # Find all devices, but ignore .udev directory
-               find . -xdev -type b -or -type c -or -type l | \
-               cut -d/ -f2- | \
-               grep -v ^\\.udev >"${devices_real}"
-
-               # Figure out what udev created
-               udevadm info --export-db | sed -ne 's,^[SN]: \(.*\),\1,p' >"${devices_udev}"
-               # These ones we also do not want in there
-               for x in MAKEDEV core fd initctl pts shm stderr stdin stdout root; do
-                       echo "${x}" >> "${devices_udev}"
-               done
-               if [ -d /lib64/udev/devices ]; then
-                       cd /lib64/udev/devices
-                       find . -xdev -type b -or -type c -or -type l | \
-                       cut -d/ -f2- >> "${devices_udev}"
-                       cd /dev
-               fi
-
-               fgrep -x -v -f "${devices_udev}" "${devices_real}" > "${devices_totar}"
-
-               # Now only tarball those not created by udev if we have any
-               if [ -s "${devices_totar}" ]; then
-                       # we dont want to descend into mounted filesystems (e.g. devpts)
-                       # looking up username may involve NIS/network
-                       # and net may be down
-                       tar --one-file-system --numeric-owner \
-                               -jcpf "${device_tmp_tarball}" -T "${devices_totar}"
-                       mv -f "${device_tmp_tarball}" "${device_tarball}"
-               else
-                       rm -f "${device_tarball}"
-               fi
-               eend 0
-       else
-               eend 1 "Could not create temporary files!"
-       fi
-
-       rm -rf "${save_tmp_base}"
-}
-
index 52cf26b72b7c5ee9abcd4d56982471e6928f3fbe..62742bd644bc1e7ce48a925ff8392852dc92f6a5 100755 (executable)
@@ -2,32 +2,13 @@
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-description="Mount tmpfs on /dev"
-[ -e /etc/conf.d/udev ] && . /etc/conf.d/udev
+description="mount devtmpfs or tmpfs on /dev"
 
-# get_KV and KV_to_int
-. /lib64/udev/shell-compat-KV.sh
-
-# FIXME
-# Instead of this script testing kernel version, udev itself should
-# Maybe something like udevd --test || exit $?
-check_kernel()
+depend()
 {
-       if [ $(get_KV) -lt $(KV_to_int '2.6.25') ]; then
-               eerror "Your kernel is too old to work with this version of udev."
-               eerror "Current udev only supports Linux kernel 2.6.25 and newer."
-               return 1
-       fi
-
-       yesno "${unreliable_kernel_warning:-yes}" || return 0
-
-       if [ $(get_KV) -lt $(KV_to_int '2.6.27') ]; then
-               ewarn "You need at least Linux kernel 2.6.27 for reliable operation of udev."
-       fi
-       return 0
+       keyword -vserver -lxc
 }
 
-
 mount_dev_directory()
 {
        if mountinfo -q /dev; then
@@ -72,22 +53,8 @@ seed_dev()
        return 0
 }
 
-
 start()
 {
-       # do not run this on too old baselayout - udev-addon is already loaded!
-       if [ ! -f /etc/init.d/sysfs ]; then
-               eerror "The $SVCNAME init-script is written for baselayout-2!"
-               eerror "Please do not use it with baselayout-1!".
-               return 1
-       fi
-
-       _start
-}
-
-_start()
-{
-       check_kernel || return 1
        mount_dev_directory || return 1
 
        # Selinux lovin; /selinux should be mounted by selinux-patched init
@@ -98,10 +65,6 @@ _start()
                HAVE_SELINUX=false
        fi
 
-       # make sure it exists
-       mkdir -p /dev/.udev /dev/.udev/rules.d
-       
        seed_dev
-
        return 0
 }
index 12a30f669a683036bec49a459878e8f7eb2f903a..d689681fbb4c9b54f3046b6fcf455042616b64b9 100755 (executable)
@@ -1,11 +1,19 @@
 #!/sbin/runscript
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/udev/files/164/udev-postmount.initd,v 1.1 2010/10/30 13:53:54 zzam Exp $
 
-depend() {
+udev_version()
+{
+       echo $(udevadm --version)
+}
+
+depend()
+{
        need localmount
-       after dbus # for trigger failed
+       if [ $(udev_version) -lt 175 ]; then
+               after dbus # for trigger failed
+       fi
+       keyword -vserver -lxc
 }
 
 dir_writeable()
@@ -15,12 +23,13 @@ dir_writeable()
 
 # store persistent-rules that got created while booting
 # when / was still read-only
-store_persistent_rules() {
+store_persistent_rules()
+{
        # only continue if rules-directory is writable
        dir_writeable /etc/udev/rules.d || return 0
 
        local file dest
-       for file in /dev/.udev/tmp-rules--*; do
+       for file in "${RUNDIR}"/tmp-rules--*; do
                dest=${file##*tmp-rules--}
                [ "$dest" = '*' ] && break
                type=${dest##70-persistent-}
@@ -31,23 +40,27 @@ store_persistent_rules() {
        done
 }
 
-
-start() {
+start()
+{
+       RUNDIR=$(udevadm info --run)
        # check if this system uses udev
-       [ -d /dev/.udev/ ] || return 0
+       [ -d "${RUNDIR}" ] || return 0
 
        einfo "Doing udev cleanups"
 
-       # Run the events that failed at first udev trigger
-       udevadm trigger --type=failed -v
+       if [ $(udev_version) -lt 175 ]; then
+               # Run the events that failed at first udev trigger
+               udevadm trigger --type=failed -v
+       fi
 
        # store persistent-rules that got created while booting
        # when / was still read-only
        store_persistent_rules
 }
 
-stop() {
-       :
+stop()
+{
+       return 0
 }
 
 # vim:ts=4
index 99e11274f1f1bc14b2dd45dbd025c6739e0f23e9..20e4325c068e1658384ee55e938a94ef9a8da922 100755 (executable)
@@ -2,7 +2,7 @@
 # Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
 # Released under the 2-clause BSD license.
 
-: ${urandom_seed:=${URANDOM_SEED:-/var/run/random-seed}}
+: ${urandom_seed:=${URANDOM_SEED:-/var/lib/misc/random-seed}}
 description="Initializes the random number generator."
 
 depend()
@@ -16,7 +16,7 @@ save_seed()
        local psz=1
 
        if [ -e /proc/sys/kernel/random/poolsize ]; then
-               psz=$(($(cat /proc/sys/kernel/random/poolsize) / 4096))
+               : $(( psz = $(cat /proc/sys/kernel/random/poolsize) / 4096 ))
        fi
 
        (       # sub shell to prevent umask pollution
index 7b448584815ef1da55ee9ba08bde127c15796924..e98206a231269a24074efb4ba29e674ea0ef5433 120000 (symlink)
@@ -1 +1 @@
-/usr/lib/jvm/icedtea6-bin
\ No newline at end of file
+/usr/lib/jvm//sun-jdk-1.6
\ No newline at end of file
index cbb63ee6ea8096268e0c70d6cf77aeca2f360da7..847023dba5e0e1caa0f74014394392f6a52886b4 100644 (file)
@@ -2,16 +2,30 @@
 # Contributes by Chuck Short
 #
 
+#/var/log/apache2/*log {
+#      missingok
+#      notifempty
+#      sharedscripts
+#      rotate 10
+#      weekly
+#      size 1m
+#      olddir /var/log/apache2/%Y-%m
+#      postrotate
+#      /etc/init.d/apache2 reload > /dev/null 2>&1 || true
+#      endscript
+#}
+
+script apache2-reload
+       /etc/init.d/apache2 reload >/dev/null || true
+endscript
+
+#rotate 10
+daily
+
 /var/log/apache2/*log {
-  missingok
-  notifempty
-  sharedscripts
-  rotate 10
-  weekly
-  size 1m
-  olddir /var/log/apache2/%Y-%m
-  postrotate
-  /etc/init.d/apache2 reload > /dev/null 2>&1 || true
-  endscript
+       size 4m 
+       olddir /var/log/apache2/%Y-%m
+       postrotate apache2-reload
 }
 
+# vim: ts=4 filetype=conf
index 567144ba14cd69e8de8bc60d4638c8bfd66b392b..cec2578230eab1490b8896ea86f26d4eb3484f03 100644 (file)
@@ -6,6 +6,9 @@
 #
 # To put this file in a different directory and override /etc/lvm set
 # the environment variable LVM_SYSTEM_DIR before running the tools.
+#
+# N.B. Take care that each setting only appears once if uncommenting
+# example settings in this file.
 
 
 # This section allows you to configure which block devices should
@@ -19,6 +22,16 @@ devices {
     # to use with LVM2.
     scan = [ "/dev" ]
 
+    # If set, the cache of block device nodes with all associated symlinks
+    # will be constructed out of the existing udev database content.
+    # This avoids using and opening any inapplicable non-block devices or
+    # subdirectories found in the device directory. This setting is applied
+    # to udev-managed device directory only, other directories will be scanned
+    # fully. LVM2 needs to be compiled with udev support for this setting to
+    # take effect. N.B. Any device node or symlink not managed by udev in
+    # udev directory will be ignored with this setting on.
+    obtain_device_list_from_udev = 1
+
     # If several entries in the scanned directories correspond to the
     # same block device and the tools need to display a name for device,
     # all the pathnames are matched against each item in the following
@@ -100,6 +113,10 @@ devices {
     # 1 enables; 0 disables.
     md_chunk_alignment = 1
 
+    # Default alignment of the start of a data area in MB.  If set to 0,
+    # a value of 64KB will be used.  Set to 1 for 1MiB, 2 for 2MiB, etc.
+    # default_data_alignment = 1
+
     # By default, the start of a PV's data area will be a multiple of
     # the 'minimum_io_size' or 'optimal_io_size' exposed in sysfs.
     # - minimum_io_size - the smallest request the device can perform
@@ -113,9 +130,9 @@ devices {
     data_alignment_detection = 1
 
     # Alignment (in KB) of start of data area when creating a new PV.
-    # If a PV is placed directly upon an md device and md_chunk_alignment or
-    # data_alignment_detection is enabled this parameter is ignored.
-    # Set to 0 for the default alignment of 1MB or page size, if larger.
+    # md_chunk_alignment and data_alignment_detection are disabled if set.
+    # Set to 0 for the default alignment (see: data_alignment_default)
+    # or page size, if larger.
     data_alignment = 0
 
     # By default, the start of the PV's aligned data area will be shifted by
@@ -124,6 +141,7 @@ devices {
     # windows partitioning will have an alignment_offset of 3584 bytes
     # (sector 7 is the lowest aligned logical block, the 4KB sectors start
     # at LBA -1, and consequently sector 63 is aligned on a 4KB boundary).
+    # But note that pvcreate --dataalignmentoffset will skip this detection.
     # 1 enables; 0 disables.
     data_alignment_offset_detection = 1
 
@@ -133,10 +151,70 @@ devices {
     # in recovery situations.
     ignore_suspended_devices = 0
 
+    # During each LVM operation errors received from each device are counted.
+    # If the counter of a particular device exceeds the limit set here, no
+    # further I/O is sent to that device for the remainder of the respective
+    # operation. Setting the parameter to 0 disables the counters altogether.
+    disable_after_error_count = 0
+
     # Allow use of pvcreate --uuid without requiring --restorefile.
     require_restorefile_with_uuid = 1
+
+    # Minimum size (in KB) of block devices which can be used as PVs.
+    # In a clustered environment all nodes must use the same value.
+    # Any value smaller than 512KB is ignored.
+
+    # Ignore devices smaller than 2MB such as floppy drives.
+    pv_min_size = 2048
+
+    # The original built-in setting was 512 up to and including version 2.02.84.
+    # pv_min_size = 512
+
+    # Issue discards to a logical volumes's underlying physical volume(s) when
+    # the logical volume is no longer using the physical volumes' space (e.g.
+    # lvremove, lvreduce, etc).  Discards inform the storage that a region is
+    # no longer in use.  Storage that supports discards advertise the protocol
+    # specific way discards should be issued by the kernel (TRIM, UNMAP, or
+    # WRITE SAME with UNMAP bit set).  Not all storage will support or benefit
+    # from discards but SSDs and thinly provisioned LUNs generally do.  If set
+    # to 1, discards will only be issued if both the storage and kernel provide
+    # support.
+    # 1 enables; 0 disables.
+    issue_discards = 0
 }
 
+# This section allows you to configure the way in which LVM selects
+# free space for its Logical Volumes.
+#allocation {
+#    When searching for free space to extend an LV, the "cling"
+#    allocation policy will choose space on the same PVs as the last
+#    segment of the existing LV.  If there is insufficient space and a
+#    list of tags is defined here, it will check whether any of them are
+#    attached to the PVs concerned and then seek to match those PV tags
+#    between existing extents and new extents.
+#    Use the special tag "@*" as a wildcard to match any PV tag.
+#    
+#    Example: LVs are mirrored between two sites within a single VG.
+#    PVs are tagged with either @site1 or @site2 to indicate where
+#    they are situated.
+#
+#    cling_tag_list = [ "@site1", "@site2" ]
+#    cling_tag_list = [ "@*" ]
+#
+#    Changes made in version 2.02.85 extended the reach of the 'cling'
+#    policies to detect more situations where data can be grouped
+#    onto the same disks.  Set this to 0 to revert to the previous
+#    algorithm.
+#
+#    maximise_cling = 1
+#
+#    Set to 1 to guarantee that mirror logs will always be placed on 
+#    different PVs from the mirror images.  This was the default
+#    until version 2.02.85.
+#
+#    mirror_logs_require_separate_pvs = 0
+#}
+
 # This section that allows you to configure the nature of the
 # information that LVM2 reports.
 log {
@@ -327,9 +405,47 @@ global {
     # Treat any internal errors as fatal errors, aborting the process that
     # encountered the internal error. Please only enable for debugging.
     abort_on_internal_errors = 0
+
+    # Check whether CRC is matching when parsed VG is used multiple times.
+    # This is useful to catch unexpected internal cached volume group
+    # structure modification. Please only enable for debugging.
+    detect_internal_vg_cache_corruption = 0
+
+    # If set to 1, no operations that change on-disk metadata will be permitted.
+    # Additionally, read-only commands that encounter metadata in need of repair
+    # will still be allowed to proceed exactly as if the repair had been 
+    # performed (except for the unchanged vg_seqno).
+    # Inappropriate use could mess up your system, so seek advice first!
+    metadata_read_only = 0
+
+    # 'mirror_segtype_default' defines which segtype will be used when the
+    # shorthand '-m' option is used for mirroring.  The possible options are:
+    #
+    # "mirror" - The original RAID1 implementation provided by LVM2/DM.  It is
+    #           characterized by a flexible log solution (core, disk, mirrored)
+    #           and by the necessity to block I/O while reconfiguring in the
+    #           event of a failure.  Snapshots of this type of RAID1 can be
+    #           problematic.
+    #
+    # "raid1"  - This implementation leverages MD's RAID1 personality through
+    #           device-mapper.  It is characterized by a lack of log options.
+    #           (A log is always allocated for every device and they are placed
+    #           on the same device as the image - no separate devices are
+    #           required.)  This mirror implementation does not require I/O
+    #           to be blocked in the kernel in the event of a failure.
+    #
+    # Specify the '--type <mirror|raid1>' option to override this default
+    # setting.
+    mirror_segtype_default = "mirror"
 }
 
 activation {
+    # Set to 1 to perform internal checks on the operations issued to
+    # libdevmapper.  Useful for debugging problems with activation.
+    # Some of the checks may be expensive, so it's best to use this
+    # only when there seems to be a problem.
+    checks = 0
+
     # Set to 0 to disable udev synchronisation (if compiled into the binaries).
     # Processes will not wait for notification from udev.
     # They will continue irrespective of any possible udev processing
@@ -347,6 +463,12 @@ activation {
     # while any logical volumes are active.
     udev_rules = 1
 
+    # Set to 1 for LVM2 to verify operations performed by udev. This turns on
+    # additional checks (and if necessary, repairs) on entries in the device
+    # directory after udev has completed processing its events. 
+    # Useful for diagnosing problems with LVM2/udev interactions.
+    verify_udev_operations = 0
+
     # How to fill in missing stripes if activating an incomplete volume.
     # Using "error" will make inaccessible parts of the device return
     # I/O errors on access.  You can instead use a device path, in which 
@@ -421,6 +543,25 @@ activation {
     mirror_log_fault_policy = "allocate"
     mirror_image_fault_policy = "remove"
 
+    # 'snapshot_autoextend_threshold' and 'snapshot_autoextend_percent' define
+    # how to handle automatic snapshot extension. The former defines when the
+    # snapshot should be extended: when its space usage exceeds this many
+    # percent. The latter defines how much extra space should be allocated for
+    # the snapshot, in percent of its current size.
+    #
+    # For example, if you set snapshot_autoextend_threshold to 70 and
+    # snapshot_autoextend_percent to 20, whenever a snapshot exceeds 70% usage,
+    # it will be extended by another 20%. For a 1G snapshot, using up 700M will
+    # trigger a resize to 1.2G. When the usage exceeds 840M, the snapshot will
+    # be extended to 1.44G, and so on.
+    #
+    # Setting snapshot_autoextend_threshold to 100 disables automatic
+    # extensions. The minimum value is 50 (A setting below 50 will be treated
+    # as 50).
+
+    snapshot_autoextend_threshold = 100
+    snapshot_autoextend_percent = 20
+
     # While activating devices, I/O to devices being (re)configured is
     # suspended, and as a precaution against deadlocks, LVM2 needs to pin
     # any memory it is using so it is not paged out.  Groups of pages that
index b76c8aa7ada302bdb5df4647a84501de4e43d370..56b4d846de5430459a2badf0b0860fd5dc91e4f6 100644 (file)
--- a/make.conf
+++ b/make.conf
@@ -31,6 +31,7 @@ ACCEPT_LICENSE=" \
        AdobeFlash-10 \
        AdobeFlash-10.1 \
        skype-eula \
+       Oracle-BCLA-JavaSE \
 "
 
 EMERGE_DEFAULT_OPTS="--with-bdeps y "
diff --git a/motd b/motd
index 53358159892245fe91e75ef7c144e35afaca0b34..e074835e701c48bf9834bc7ddaa33298d0d6ad08 100644 (file)
--- a/motd
+++ b/motd
@@ -7,27 +7,17 @@ Gentoo Base System release 2.0.3
 |____/|_|   \__,_|_| |_|_|
                           
 
-Der Antichrist. Fluch auf das Christenthum.
-24.
-... Die Juden sind das merkwürdigste Volk der Weltgeschichte, weil sie,
-vor die Frage von Sein und Nichtsein gestellt, mit einer vollkommen
-unheimlichen Bewusstheit das Sein um jeden Preis vorgezogen haben:
-dieser Preis war die radikale Fälschung aller Natur, aller
-Natürlichkeit, aller Realität, der ganzen inneren Welt so gut als der
-äusseren. Sie grenzten sich ab gegen alle Bedingungen, unter denen
-bisher ein Volk leben konnte, leben durfte, sie schufen aus sich einen
-Gegensatz-Begriff zu natürlichen Bedingungen, - sie haben, der Reihe
-nach, die Religion, den Cultus, die Moral, die Geschichte, die
-Psychologie auf eine unheilbare Weise in den Widerspruch zu deren
-Natur-Werthen umgedreht. Wir begegnen demselben Phänomene noch einmal
-und in unsäglich vergrösserten Proportionen, trotzdem nur als Copie: -
-die christliche Kirche entbehrt, im Vergleich zum "Volk der Heiligen",
-jedes Anspruchs auf Originalität. Die Juden sind, ebendamit, das
-verhängnissvollste Volk der Weltgeschichte: in ihrer Nachwirkung haben
-sie die Menschheit dermaassen falsch gemacht, daß heute noch der
-Christ antijüdisch fühlen kann, ohne sich als die letzte jüdische
-Consequenz zu verstehn.
-               -- Friedrich Wilhelm Nietzsche
+Da nun den Menschen eigentlich nichts interessiert als seine 
+Meinung, so sieht jedermann, der eine Meinung vorträgt, sich rechts 
+und links nach Hilfsmitteln um, damit er sich und andere bestärken 
+möge. Des Wahren bedient man sich, solange es brauchbar ist, aber 
+leidenschaftlich rhetorisch ergreift man das Falsche, sobald man es 
+für den Augenblick nutzen, damit, als einem Halbargumente, blenden, 
+als mit einem Lückenbüßer das Zerstückelte scheinbar vereinigen kann. 
+Dieses zu erfahren, war mir erst ein Ärgernis, dann betrübte ich mich 
+darüber, und nun macht es mir Schadenfreude: Ich habe mir das Wort 
+gegeben, ein solches Verfahren niemals wieder aufzudecken.
+               -- Goethe, Maximen und Reflektionen, Nr. 870
 
-Today is Pungenday, the 28th day of Chaos in the YOLD 3178
+Today is Sweetmorn, the 31st day of Chaos in the YOLD 3178
 
index a6751e85f63a4b6d66f9454cbaec936076c16fd4..9aff133885e67f12659523f6cd161719b85a50c9 100644 (file)
@@ -1,4 +1,7 @@
 
+~dev-java/sun-jdk-1.6.0.30
+~dev-java/sun-jre-bin-1.6.0.30
+
 dev-python/fbrehm-libs
 ~dev-python/iniparse-0.4
 
index cccdb2a6c965904c63f8fa70e44e9a070771a202..64b5e2d456e536bbeffb73fcf797014f45becf07 100644 (file)
@@ -45,7 +45,7 @@ dev-java/ant-tasks                    javamail
 dev-java/commons-logging               log4j
 dev-java/jdbc-mysql                    c3p0
 dev-java/log4j                         javamail
-dev-java/sun-jdk                       jce
+dev-java/sun-jdk                       -doc jce
 
 dev-lang/perl                          ithreads perlsuid
 dev-lang/php                           bcmath cgi embed filter force-cgi-redirect enchant fpm gd hash intl json -ldap-sasl mysqlnd -oci8 -recode reflection sharedext suhosin -threads tokenizer xmlreader xmlwriter -xpm zip
diff --git a/revdep-rebuild/61-sun-jdk-1.6 b/revdep-rebuild/61-sun-jdk-1.6
new file mode 100644 (file)
index 0000000..f32aa92
--- /dev/null
@@ -0,0 +1 @@
+SEARCH_DIRS_MASK="/opt/sun-jdk-1.6.0.30"
diff --git a/revdep-rebuild/61-sun-jre-bin-1.6 b/revdep-rebuild/61-sun-jre-bin-1.6
new file mode 100644 (file)
index 0000000..9822590
--- /dev/null
@@ -0,0 +1 @@
+SEARCH_DIRS_MASK="/opt/sun-jre-bin-1.6.0.30"
index 35f4908dbcb9d82358fc7778413dfdbefdc100e6..c1e08f98fd267e5804c47231314975f002f3a932 100644 (file)
@@ -49,6 +49,20 @@ chip "w83793-*"
     set in9_max  3.0 * 1.10
 
 
+chip "w83795g-*" "w83795adg-*"
+
+    label in12 "+3.3V"
+    label in13 "3VSB"
+    label in14 "Vbat"
+
+    set in12_min  3.3 * 0.90
+    set in12_max  3.3 * 1.10
+    set in13_min  3.3 * 0.90
+    set in13_max  3.3 * 1.10
+    set in14_min  3.0 * 0.90
+    set in14_max  3.3 * 1.10
+
+
 chip "via686a-*"
 
     label in0 "Vcore"
@@ -209,7 +223,8 @@ chip "smsc47m192-*"
     label temp1 "SIO Temp"
 
 
-chip "lm85-*" "lm85b-*" "lm85c-*" "adm1027-*" "adt7463-*" "adt7468-*" "emc6d100-*" "emc6d102-*"
+chip "lm85-*" "lm85b-*" "lm85c-*" "adm1027-*" "adt7463-*" "adt7468-*" \
+     "emc6d100-*" "emc6d102-*" "emc6d103-*" "emc6d103s-*" 
 
     label in1 "Vcore"
     label in2 "+3.3V"
@@ -228,6 +243,14 @@ chip "lm85-*" "lm85b-*" "lm85c-*" "adm1027-*" "adt7463-*" "adt7468-*" "emc6d100-
     label temp2 "M/B Temp"
 
 
+chip "emc6w201-*"
+
+    label in2 "+3.3V"
+    label in3 "+5V"
+
+    label temp6 "M/B Temp"
+
+
 chip "pc87365-*" "pc87366-*"
 
 # Voltage inputs
@@ -266,7 +289,26 @@ chip "adm1030-*" "adm1031-*"
     label temp1 "M/B Temp"
 
 
-chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*"
+chip "w83627thf-*"
+
+    label in3 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    # Internal resistors
+    compute in3  @ * (1 + 34/51), @ / (1 + 34/51)
+    compute in7  @ * (1 + 34/51), @ / (1 + 34/51)
+
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+# The battery voltage may or may not be monitored.
+#    set in8_min  3.0 * 0.90
+#    set in8_max  3.0 * 1.10
+
+
+chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*" "nct6775-*" "nct6776-*"
 
     label in0 "Vcore"
     label in2 "AVCC"
@@ -284,6 +326,23 @@ chip "w83627ehf-*" "w83627dhg-*" "w83667hg-*"
     set in8_max  3.0 * 1.10
 
 
+chip "w83627uhg-*"
+
+    label in2 "AVCC"
+    label in3 "+5V"
+    label in7 "5VSB"
+    label in8 "Vbat"
+
+    set in2_min  5.0 * 0.90
+    set in2_max  5.0 * 1.10
+    set in3_min  5.0 * 0.90
+    set in3_max  5.0 * 1.10
+    set in7_min  5.0 * 0.90
+    set in7_max  5.0 * 1.10
+    set in8_min  3.0 * 0.90
+    set in8_max  3.0 * 1.10
+
+
 chip "f71805f-*"
 
     label in0 "+3.3V"
@@ -383,7 +442,22 @@ chip "sch5027-*"
     set in6_max  3.0 * 1.10
 
 
-chip "f71882fg-*"
+chip "sch5127-*"
+
+    label in2 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    set in2_min  3.3 * 0.90
+    set in2_max  3.3 * 1.10
+    set in5_min  3.3 * 0.90
+    set in5_max  3.3 * 1.10
+    set in6_min  3.0 * 0.90
+    set in6_max  3.0 * 1.10
+
+
+chip "f71808e-*" "f71808a-*" "f71862fg-*" "f71869-*" "f71869a-*" "f71882fg-*" \
+     "f71889fg-*" "f71889ed-*" "f71889a-*"
 
     label in0 "+3.3V"
     label in7 "3VSB"
@@ -394,7 +468,7 @@ chip "f71882fg-*"
     compute in8  @*2, @/2
 
 
-chip "f8000-*"
+chip "f71858fg-*" "f8000-*"
 
     label in0 "+3.3V"
     label in1 "3VSB"
@@ -405,6 +479,17 @@ chip "f8000-*"
     compute in2  @*2, @/2
 
 
+chip "f81865f-*"
+
+    label in0 "+3.3V"
+    label in5 "3VSB"
+    label in6 "Vbat"
+
+    compute in0  @*2, @/2
+    compute in5  @*2, @/2
+    compute in6  @*2, @/2
+
+
 chip "adt7473-*" "adt7475-*"
 
     label in2 "+3.3V"
index ad5918c66ad19f0c6715e62fa96bfebdd1693409..bd5e06be634a4d0dc0b6627fe7e2d6b5bb833c70 100644 (file)
@@ -22,8 +22,6 @@ config
 ./dvips.d:
 
 ./fmtutil.d:
-._cfg0000_format.texlive-context.cnf
-._cfg0000_format.texlive-formatsextra.cnf
 format.jadetex.cnf
 format.texlive-basic.cnf
 format.texlive-context.cnf
@@ -42,9 +40,6 @@ language.texlive-langenglish.dat
 language.texlive-langgerman.dat
 
 ./language.dat.lua.d:
-._cfg0000_language.texlive-langcyrillic.dat.lua
-._cfg0000_language.texlive-langenglish.dat.lua
-._cfg0000_language.texlive-langgerman.dat.lua
 .keep_app-text_texlive-core-0
 language.texlive-langcyrillic.dat.lua
 language.texlive-langenglish.dat.lua
index 71c0d45216210c0359c2b5fa05e2b46da2123847..0eb80c2fa2bb90c167197bb3136833b150c4994c 100644 (file)
@@ -17,13 +17,10 @@ cont-en     xetex   cont-usr.tex    -8bit *cont-en.ini
 #! cont-it     pdftex  cont-usr.tex    -8bit *cont-it.ini
 #! cont-nl     pdftex  cont-usr.tex    -8bit *cont-nl.ini
 #! cont-ro     pdftex  cont-usr.tex    -8bit *cont-ro.ini
-metafun        mpost   -       metafun.mp
 # Generated for texlive-formatsextra by texlive-module.eclass
 eplain pdftex  language.dat    -translate-file=cp227.tcx *eplain.ini
 mllatex        pdftex  language.dat    -translate-file=cp227.tcx -mltex mllatex.ini
 mltex  pdftex  -       -translate-file=cp227.tcx -mltex mltex.ini
-physe  pdftex  -       physe.ini
-phyzzx pdftex  -       physe.ini
 texsis pdftex  -       -translate-file=cp227.tcx texsis.ini
 # Generated for texlive-langcyrillic by texlive-module.eclass
 #! cyramstex   pdftex  language.dat    -translate-file=cp227.tcx *cyramstx.ini