| Bryan Huntsman | 3f2bc4d | 2011-08-16 17:27:22 -0700 | [diff] [blame] | 1 | # /bin/sh | 
 | 2 |  | 
 | 3 | # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. | 
 | 4 | # Distributed under the terms of the GNU General Public License v2 | 
 | 5 |  | 
 | 6 | # | 
 | 7 | # Helper script to setup compat-wireless configuration. | 
 | 8 | # | 
 | 9 |  | 
 | 10 | S=${1:?No kernel source directory specified} | 
 | 11 |  | 
 | 12 | COMPAT_WIRELESS="${S}"/chromeos/compat-wireless | 
 | 13 | COMPAT_VERSION=`cat ${COMPAT_WIRELESS}/compat_version` | 
 | 14 | COMPAT_RELEASE=`cat ${COMPAT_WIRELESS}/compat_version` | 
 | 15 | COMPAT_BASE_TREE=`cat ${COMPAT_WIRELESS}/compat_base_tree` | 
 | 16 | COMPAT_BASE_TREE_VERSION=`cat ${COMPAT_WIRELESS}/compat_base_tree_version` | 
 | 17 | # TODO(sleffler) calculate CONFIG_COMPAT_KERNEL version | 
 | 18 |  | 
 | 19 | COMPAT_CONFIG=' | 
 | 20 | 	CONFIG_COMPAT_KERNEL_33=y | 
 | 21 | 	CONFIG_COMPAT_FIRMWARE_CLASS=m | 
 | 22 |  | 
 | 23 | 	CONFIG_COMPAT_RFKILL=y | 
 | 24 | 	CONFIG_RFKILL_BACKPORT=y | 
 | 25 | 	CONFIG_RFKILL_BACKPORT_INPUT=y | 
 | 26 |  | 
 | 27 | 	CONFIG_COMPAT_WIRELESS=m | 
 | 28 | 	CONFIG_COMPAT_WIRELESS_MODULES=m | 
 | 29 |  | 
 | 30 | 	CONFIG_MAC80211=m | 
 | 31 | 	CONFIG_MAC80211_LEDS=y | 
 | 32 | 	CONFIG_MAC80211_DEBUGFS=y | 
 | 33 | 	CONFIG_MAC80211_RC_MINSTREL=y | 
 | 34 | 	CONFIG_MAC80211_RC_DEFAULT="minstrel" | 
 | 35 | 	CONFIG_COMPAT_MAC80211_RC_DEFAULT="minstrel" | 
 | 36 |  | 
 | 37 | 	CONFIG_CFG80211=m | 
 | 38 | 	CONFIG_CFG80211_DEBUGFS=y | 
 | 39 | 	CONFIG_CFG80211_DEFAULT_PS=y | 
 | 40 | 	CONFIG_CFG80211_WEXT=y | 
 | 41 |  | 
 | 42 | 	CONFIG_ATH=y | 
 | 43 | 	CONFIG_ATH_COMMON=m | 
 | 44 | 	CONFIG_ATH_DEBUG=y | 
 | 45 | 	CONFIG_ATH5K=m | 
 | 46 | 	CONFIG_ATH9K=m | 
 | 47 | 	CONFIG_ATH9K_HW=m | 
 | 48 | 	CONFIG_ATH9K_COMMON=m | 
 | 49 | 	CONFIG_ATH9K_DEBUGFS=y | 
 | 50 |  | 
 | 51 | 	CONFIG_IWLWIFI=m | 
 | 52 | 	CONFIG_IWLWIFI_SPECTRUM_MANAGEMENT=y | 
 | 53 | 	CONFIG_IWLAGN=m | 
 | 54 | 	CONFIG_COMPAT_IWL4965=y | 
 | 55 | 	CONFIG_IWL5000=y | 
 | 56 | 	CONFIG_IWL3945=m | 
 | 57 | 	CONFIG_IWL3945_SPECTRUM_MANAGEMENT=y | 
 | 58 | 	CONFIG_IWLWIFI_DEBUG=y | 
 | 59 | 	CONFIG_IWLWIFI_DEBUGFS=y | 
 | 60 |  | 
 | 61 | 	CONFIG_USB_NET_COMPAT_CDCETHER=m | 
 | 62 | 	CONFIG_USB_NET_COMPAT_RNDIS_HOST=m | 
 | 63 | 	CONFIG_USB_COMPAT_USBNET=m | 
 | 64 | ' | 
 | 65 | echo "Configure compat-wireless: ${COMPAT_CONFIG}" | 
 | 66 |  | 
 | 67 | # | 
 | 68 | # Edit Makefiles to reflect configuration knobs | 
 | 69 | # | 
 | 70 | SED_ARGS= | 
 | 71 | for c in $COMPAT_CONFIG; do | 
 | 72 | 	a=`echo $c | sed s/=.*//` | 
 | 73 | 	b=`echo $c | sed s/.*=//` | 
 | 74 | 	SED_ARGS="$SED_ARGS -e s/[\$]("$a")/"$b"/" | 
 | 75 | done | 
 | 76 |  | 
 | 77 | Makefiles=`find -L "${COMPAT_WIRELESS}" -name Makefile` | 
 | 78 | for m in $Makefiles; do | 
 | 79 | 	sed $SED_ARGS -i $m | 
 | 80 | done | 
 | 81 |  | 
 | 82 | # Construct include/linux/compat_autoconf.h | 
 | 83 | (cat<<EOF | 
 | 84 | #ifndef COMPAT_AUTOCONF_INCLUDED | 
 | 85 | #define COMPAT_AUTOCONF_INCLUDED | 
 | 86 | /* | 
 | 87 | * Automatically generated by chromeos-base/kernel/kernel-*.ebuild | 
 | 88 | * compat-wireless-2.6: $COMPAT_VERSION | 
 | 89 | * linux-2.6: v2.6.32 | 
 | 90 | */ | 
 | 91 | #define COMPAT_BASE_TREE "$COMPAT_BASE_TREE" | 
 | 92 | #define COMPAT_BASE_TREE_VERSION "$COMPAT_BASE_TREE_VERSION" | 
 | 93 | #define COMPAT_PROJECT "Compat-wireless" | 
 | 94 | #define COMPAT_VERSION "$COMPAT_VERSION" | 
 | 95 |  | 
 | 96 | #ifndef CONFIG_WIRELESS_EXT | 
 | 97 | #error Compat-wireless requirement: CONFIG_WIRELESS_EXT must be enabled in your kernel | 
 | 98 | #endif /* CONFIG_WIRELESS_EXT */ | 
 | 99 | EOF | 
 | 100 |  for c in $COMPAT_CONFIG; do | 
 | 101 | 	a=`echo $c | sed s/=.*//` | 
 | 102 | 	b=`echo $c | sed s/.*=//` | 
 | 103 | 	case $b in | 
 | 104 | 	m|y) | 
 | 105 | 	    echo "#define $a 1";; | 
 | 106 | 	*) | 
 | 107 | 	    echo "#define $a $b";; | 
 | 108 | 	esac | 
 | 109 |  done | 
 | 110 |  cat<<'EOF' | 
 | 111 | #ifdef CONFIG_NET_SCHED | 
 | 112 | #ifdef CONFIG_NETDEVICES_MULTIQUEUE | 
 | 113 | #ifndef CONFIG_MAC80211_QOS | 
 | 114 | #define CONFIG_MAC80211_QOS 1 | 
 | 115 | #endif /* CONFIG_MAC80211_QOS */ | 
 | 116 | #endif | 
 | 117 | #endif | 
 | 118 | #endif /* COMPAT_AUTOCONF_INCLUDED */ | 
 | 119 | EOF | 
 | 120 | )>"${COMPAT_WIRELESS}"/include/linux/compat_autoconf.h |