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