2 function usage ()
3 {
4 echo "Usage: <option=1> `basename $0` <kernel_config_file>"
5 echo "options:"
6 echo "IP_TABLES - add ip tables support"
7 echo "NO_DEVICE_TREE - add support for non device tree compilation"
8 echo "BT_HCI - add support for BT HCI"
9 exit 1
10 }
12 base_config=(
13 CONFIG_WLAN=y
14 CONFIG_WIRELESS=y
15 CONFIG_KEYS=y
16 CONFIG_SECURITY=y
17 CONFIG_CRYPTO=y
18 CONFIG_WIRELESS_EXT=y
19 CONFIG_CRYPTO_ARC4=y
20 CONFIG_CRYPTO_ECB=y
21 CONFIG_CRYPTO_AES=y
22 CONFIG_CRYPTO_MICHAEL_MIC=y
23 CONFIG_CRYPTO_CCM=y
24 CONFIG_CRYPTO_GCM=y
25 CONFIG_RFKILL=y
26 CONFIG_REGULATOR_FIXED_VOLTAGE=y
27 CONFIG_CRC7=y
28 CONFIG_INPUT_UINPUT=y
29 )
31 ip_table_config=(
32 CONFIG_NF_CONNTRACK=y
33 CONFIG_NF_CONNTRACK_IPV4=y
34 CONFIG_IP_NF_IPTABLES=y
35 CONFIG_IP_NF_FILTER=y
36 CONFIG_NF_NAT_IPV4=y
37 CONFIG_IP_NF_TARGET_MASQUERADE=y
38 )
40 no_dt_config=(
41 CONFIG_WL12XX_PLATFORM_DATA=y
42 )
44 bt_hci_config=(
45 CONFIG_ST_HCI=y
46 )
47 function verify_configuration()
48 {
49 conf_list=("${!1}")
50 echo ""
51 echo "Validating kernel .config ($1) "
52 echo ""
54 i="0"
55 while [ $i -lt ${#conf_list[@]} ]; do
56 cat $kernel_config_file 2> /dev/null | grep ${conf_list[i]} > /dev/null 2>&1
57 STATUS=$?
58 if [ $STATUS -eq 1 ] ; then
59 echo "Missing - ${conf_list[i]}"
60 read -p "Do you want to add it [y/n] ? " yn
61 case $yn in
62 [Yy]* ) echo "${conf_list[i]}" >> ${kernel_config_file} && echo "${conf_list[i]} - Was Added!" && echo "";;
63 [Nn]* ) echo "${conf_list[i]} was not added.";;
64 * ) echo "Please answer y or n.";;
65 esac
66 fi
67 i=$[$i + 1]
68 done
69 #echo "$1 scan completed"
70 }
72 if [ $# -lt 1 ]
73 then
74 usage
75 fi
76 kernel_config_file=$1
78 if ! [ -f $kernel_config_file ];
79 then
80 echo "Configuration file $kernel_config_file does not exists"
81 exit 1
82 fi
84 verify_configuration base_config[@]
85 [ $IP_TABLES ] && verify_configuration ip_table_config[@]
86 [ $NO_DEVICE_TREE ] && verify_configuration no_dt_config[@]
87 [ $BT_HCI ] && verify_configuration hci_config[@]
88 exit