#!/bin/bash

make allmodconfig
rm -f .config-biff
wget -q 'http://sites.google.com/site/bifferboard/Home/s3282-kernel-issues/bifferboard-2.6.30.5-3.config?attredirects=0&d=1' -O .config-biff
grep =y .config-biff|egrep -v ^CONFIG_CRYPTO > .config-biff-yes
perl -pi -e 's/=y/=n/g' .config
cat .config-biff-yes >> .config

cat <<EOF >> .config
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_INITRD=n
CONFIG_MAC80211=m
CONFIG_VGA_CONSOLE=y

#CONFIG_SWAP=y
CONFIG_NAMESPACES=n
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_IKCONFIG_PROC=y
#CONFIG_PROFILING=y
CONFIG_HUGETLBFS=n

CONFIG_NET_EMATCH=y
CONFIG_NET_CLS_ACT=y

CONFIG_IDE_GD_ATA=y
CONFIG_IDE_PROC_FS=y
CONFIG_SCSI_PROC_FS=y

CONFIG_NET_VENDOR_3COM=y
CONFIG_WLAN_PRE80211=y
CONFIG_IPW2100_MONITOR=y
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IWLWIFI_LEDS=y
CONFIG_IWLWIFI_RFKILL=y
CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
CONFIG_IWL4965=y
CONFIG_IWL5000=y
CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y

CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
CONFIG_USB_EPSON2888=y
CONFIG_USB_KC2190=y

CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_MOUSE_PS2_ELANTECH=y
CONFIG_MOUSE_PS2_TOUCHKIT=y

CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_IFORCE_232=y
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y

CONFIG_SERIAL_NONSTANDARD=y
CONFIG_VIDEO_V4L1_COMPAT=y

CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y

CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y

CONFIG_DNOTIFY=n
CONFIG_INOTIFY=y
#CONFIG_EXT2_FS=y
CONFIG_EXT3_FS=y

CONFIG_NETFILTER=y
CONFIG_NET_SCHED=y
CONFIG_HAMRADIO=y
CONFIG_BLK_DEV=y
CONFIG_MISC_DEVICES=y
CONFIG_MD=y
CONFIG_FUSION=y
CONFIG_ATM_DRIVERS=y
CONFIG_ISDN=y
CONFIG_NET_TULIP=y
CONFIG_NETDEV_1000=y
CONFIG_CAPI_EICON=y
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_USB_EGALAX=y
CONFIG_TOUCHSCREEN_USB_PANJIT=y
CONFIG_TOUCHSCREEN_USB_3M=y
CONFIG_TOUCHSCREEN_USB_ITM=y
CONFIG_TOUCHSCREEN_USB_ETURBO=y
CONFIG_TOUCHSCREEN_USB_GUNZE=y
CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
CONFIG_TOUCHSCREEN_USB_GOTOP=y
CONFIG_INPUT_MISC=y
CONFIG_REGULATOR=y
CONFIG_MEDIA_TUNER_CUSTOMISE=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
CONFIG_V4L_USB_DRIVERS=y
CONFIG_RADIO_ADAPTERS=y
CONFIG_DVB_CAPTURE_DRIVERS=y
CONFIG_SND_DRIVERS=y
CONFIG_SND_PCI=y
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_PCMCIA=y
CONFIG_HID_SUPPORT=y
CONFIG_AUXDISPLAY=y
CONFIG_MISC_FILESYSTEMS=y
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_VIRTUALIZATION=n
CONFIG_STAGING=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_HW=y

# device drivers => CONFIG_STAGING=y

CONFIG_USB_SUPPORT=y
CONFIG_USB_DEVICEFS=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_USB_STORAGE=y

CONFIG_CFG80211=m

# make all GPIO, MMC/SD, I2C as modules

CONFIG_GPIO_RDC321X=m

CONFIG_MMC=y
CONFIG_MMC_SPI=m

CONFIG_SPI_GPIO=m
CONFIG_SPI_GPIO_OLD=m
CONFIG_SPI_BITBANG=m

CONFIG_I2C_GPIO=m
CONFIG_I2C_GPIO_CUSTOM=m

# Dallas's 1-wire support
CONFIG_W1=m
CONFIG_W1_MASTER_GPIO=m
CONFIG_W1_MASTER_GPIO_CUSTOM=m
CONFIG_W1_SLAVE_THERM=m
EOF

make menuconfig || exit 1

CONCURRENCY_LEVEL=8 fakeroot make-kpkg clean
CONCURRENCY_LEVEL=8 fakeroot make-kpkg --bzImage --append-to-version=-bifferboard kernel_image kernel_headers

