#!/bin/sh # Copyright (C) 2004-2005 Intel Corporation #MODULES=iwl-4965 iwl-3945 #MODULES=iwl-4965 MODULES=iwlwifi function check_root() { [ `whoami` != "root" ] && echo "You must be root to run this script." && return 1 } function unload() { ./unload || return 1 } function load_pre { mod_dir=/lib/modules/$(uname -r)/kernel/crypto [ -e $mod_dir/crypto_algapi.ko ] && insmod $mod_dir/crypto_algapi.ko [ -e $mod_dir/blkcipher.ko ] && insmod $mod_dir/blkcipher.ko find $mod_dir/ -name '*ko' -exec insmod {} \; for i in cfg80211 mac80211 firmware_class; do if ! (lsmod | grep -q $i) && \ ! (modprobe $i > /dev/null 2>&1 && LOADED="${LOADED}${i} ") && \ ! (grep -q request_firmware /proc/kallsyms); then if [ ! -e /proc/kallsyms ]; then echo "Could not be determine if ${i} is already loaded." echo "Attempting to load driver anyway..." else echo "${i} capabilities not found. See INSTALL." return 1 fi fi done } function load_module { I_DEBUG="" [ -d compatible ] && dir=compatible || dir=origin for i in ${MODULES}; do insmod $dir/${i}.ko $@ && LOADED="${LOADED}${i} " || return 1 done } function load() { load_pre && load_module $@ && { if [ -z "${LOADED}" ]; then echo "No modules loaded." else echo "Loaded: ${LOADED}" fi return 0 } echo "Load failed." return 1 } function parse_args() { driver_args= while [ "$1" ]; do case $1 in --) shift break ;; *) driver_args="$driver_args $1" shift ;; esac done path=${path/%\//}/ } unset LOADED path=/sbin parse_args $@ && unload && load $driver_args