+++ /dev/null
-.\" $OpenBSD: fw_update.1,v 1.19 2014/02/23 22:22:16 halex Exp $
-.\"
-.\" Copyright (c) 2011 Alexander Hall <alexander@beard.se>
-.\"
-.\" Permission to use, copy, modify, and distribute this software for any
-.\" purpose with or without fee is hereby granted, provided that the above
-.\" copyright notice and this permission notice appear in all copies.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.Dd $Mdocdate: February 23 2014 $
-.Dt FW_UPDATE 1
-.Os
-.Sh NAME
-.Nm fw_update
-.Nd install non-free firmware packages
-.Sh SYNOPSIS
-.Nm
-.Op Fl adnv
-.Op Fl p Ar path
-.Op Ar driver ...
-.Sh DESCRIPTION
-The
-.Nm
-utility installs, updates, or deletes firmware packages for
-.Ar driver
-from the Internet.
-If no
-.Ar driver
-is specified, the
-.Nm
-utility tries to determine which firmware are needed on the system.
-.Pp
-Since firmware with acceptable licenses are already present in
-.Ox ,
-.Nm
-exists purely to deal with firmware that may not be freely
-distributed with
-.Ox .
-.Pp
-The options are as follows:
-.Bl -tag -width Ds
-.It Fl a
-Install or update firmware for all drivers.
-It is an error to specify this option with any
-.Ar driver
-arguments.
-.It Fl d
-Delete firmware for
-.Ar driver .
-If used in conjunction with
-.Fl a ,
-delete firmware for all drivers.
-.It Fl n
-Dry run.
-Do not actually install or update any firmware packages;
-just report the steps that would be taken.
-.It Fl p Ar path
-Use the firmware found at
-.Ar path ,
-being either a local directory or a URL,
-instead of the default location.
-.It Fl v
-Turn on verbose output.
-This flag can be specified multiple times for increased verbosity.
-.El
-.Pp
-Firmware is downloaded from release-specific directories at
-.Lk http://firmware.openbsd.org/firmware/ .
-The files are in the format required by
-.Xr pkg_add 1 ,
-but direct use of pkg_add is discouraged.
-.Sh SEE ALSO
-.Xr pkg_add 1 ,
-.Xr dmesg 8
-.Sh AUTHORS
-.An -nosplit
-The
-.Nm
-program was written by
-.An Alexander Hall Aq Mt alexander@beard.se .
+++ /dev/null
-#!/bin/sh
-
-# $OpenBSD: fw_update.sh,v 1.21 2014/02/23 22:22:16 halex Exp $
-# Copyright (c) 2011 Alexander Hall <alexander@beard.se>
-#
-# Permission to use, copy, modify, and distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-# This is the list of drivers we should look for
-DRIVERS="acx athn bwi ipw iwi iwn malo otus pgt radeondrm rsu uath
- upgt urtwn uvideo wpi"
-
-PKG_ADD="pkg_add -I -D repair -DFW_UPDATE"
-PKG_DELETE="pkg_delete -I -DFW_UPDATE"
-
-usage() {
- echo "usage: ${0##*/} [-adnv] [-p path] [driver ...]" >&2
- exit 1
-}
-
-verbose() {
- [ "$verbose" ] && echo "${0##*/}: $@"
-}
-
-setpath() {
- [ "$path" ] && export PKG_PATH=$path && return
-
- set -- $(sysctl -n kern.version |
- sed 's/^OpenBSD \([0-9]\.[0-9]\)\([^ ]*\).*/\1 \2/;q')
-
- local version=$1 tag=$2
-
- [[ $tag == -!(stable) ]] && version=snapshots
- export PKG_PATH=http://firmware.openbsd.org/firmware/$version/
-}
-
-perform() {
- if [ "$verbose" ]; then
- "$@"
- else
- "$@" 2>/dev/null
- fi
-}
-
-all=false
-verbose=
-nop=
-delete=false
-path=
-while getopts 'adnp:v' s "$@" 2>/dev/null; do
- case "$s" in
- a) all=true;;
- d) delete=true;;
- n) nop=-n;;
- p) path=$OPTARG;;
- v) verbose=${verbose:--}v;;
- *) usage;;
- esac
-done
-
-shift $((OPTIND - 1))
-
-if $all; then
- [ $# != 0 ] && usage
- set -- $DRIVERS
-fi
-
-if $delete && [ $# == 0 ]; then
- echo "Driver specification required for delete operation" >&2
- exit 1
-fi
-
-setpath
-
-installed=$(pkg_info -q)
-dmesg=$(cat /var/run/dmesg.boot; echo; dmesg)
-
-install=
-update=
-extra=
-
-if [ $# = 0 ]; then
- for driver in $DRIVERS; do
- if print "$installed" | grep -q "^$driver-firmware-" ||
- print -r -- "$dmesg" | egrep -q "^$driver[0-9]+ at "; then
- set -- "$@" $driver
- fi
- done
-fi
-
-for driver; do
- if print "$installed" | grep -q "^${driver}-firmware-"; then
- update="$update ${driver}-firmware"
- extra="$extra -Dupdate_${driver}-firmware"
- elif printf "%s\n" $DRIVERS | fgrep -qx "$driver"; then
- install="$install ${driver}-firmware"
- else
- print -r "${0##*/}: $driver: unknown driver" >&2
- exit 1
- fi
-done
-
-if ! $delete && [ -z "$install$update" ]; then
- verbose "No devices found which need firmware files to be downloaded."
- exit 0
-elif $delete && [ -z "$update" ]; then
- verbose "No firmware to delete."
- exit 0
-fi
-
-$delete || verbose "Path to firmware: $PKG_PATH"
-
-[ "$nop" ] || [ 0 = $(id -u) ] ||
- { echo "${0##*/} must be run as root" >&2; exit 1; }
-
-# Install missing firmware packages
-if ! $delete && [ "$install" ]; then
- verbose "Installing firmware:$update $install."
- perform $PKG_ADD $nop $verbose $update $install
-fi
-
-# Update or delete installed firmware packages
-if [ "$update" ]; then
- if $delete; then
- verbose "Deleting firmware:$update."
- perform $PKG_DELETE $nop $verbose $update
- else
- verbose "Updating firmware:$update."
- perform $PKG_ADD $extra $nop $verbose -u $update
- fi
-fi