diff -Naru linux-2.6.18.6-3.11/.config linux-2.6.18.6/.config --- linux-2.6.18.6-3.11/.config 2009-05-11 04:47:18.000000000 +0300 +++ linux-2.6.18.6/.config 2009-05-16 21:42:27.823657770 +0300 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.18.6 -# Wed Nov 19 14:53:45 2008 +# Sat May 16 20:28:10 2009 # CONFIG_ARM=y CONFIG_MMU=y @@ -195,7 +195,8 @@ # CONFIG_PREEMPT is not set # CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 -# CONFIG_AEABI is not set +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -216,7 +217,8 @@ # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="rootfstype=jffs2 root=/dev/mtdblock1 mtdparts=physmap-flash.0:15M(ras),896k(etc),-(bootbase) console=ttyS0,115200n8 mem=128M init=/sbin/init" +CONFIG_CMDLINE="rootfstype=reiserfs root=/dev/sda3 mtdparts=physmap-flash.0:15M(ras),896k(etc),-(bootbase) console=ttyS0,115200n8 mem=128M init=/sbin/init" +CONFIG_CMDLINE_OVERRIDE=y # CONFIG_XIP_KERNEL is not set # @@ -236,7 +238,6 @@ CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set # # Power management options @@ -256,17 +257,12 @@ CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -# CONFIG_IP_PNP_BOOTP is not set -# CONFIG_IP_PNP_RARP is not set +# CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set @@ -277,8 +273,8 @@ # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set @@ -571,30 +567,7 @@ # # IEEE 1394 (FireWire) support # -CONFIG_IEEE1394=m - -# -# Subsystem Options -# -# CONFIG_IEEE1394_VERBOSEDEBUG is not set -# CONFIG_IEEE1394_OUI_DB is not set -# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set -# CONFIG_IEEE1394_EXPORT_FULL_API is not set - -# -# Device Drivers -# -# CONFIG_IEEE1394_PCILYNX is not set -CONFIG_IEEE1394_OHCI1394=m - -# -# Protocol Drivers -# -CONFIG_IEEE1394_VIDEO1394=m -CONFIG_IEEE1394_SBP2=m -# CONFIG_IEEE1394_ETH1394 is not set -# CONFIG_IEEE1394_DV1394 is not set -# CONFIG_IEEE1394_RAWIO is not set +# CONFIG_IEEE1394 is not set # # I2O device support @@ -645,7 +618,7 @@ # CONFIG_FORCEDETH is not set # CONFIG_DGRS is not set # CONFIG_EEPRO100 is not set -CONFIG_E100=y +# CONFIG_E100 is not set # CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set @@ -670,8 +643,7 @@ # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set -CONFIG_SK98LIN=y -# CONFIG_SK98LIN_NAPI is not set +# CONFIG_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set @@ -700,15 +672,7 @@ # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set -CONFIG_PPP=y -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y -CONFIG_PPP_ASYNC=y -CONFIG_PPP_SYNC_TTY=y -CONFIG_PPP_DEFLATE=y -CONFIG_PPP_BSDCOMP=y -CONFIG_PPP_MPPE=y -CONFIG_PPPOE=y +# CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set @@ -1001,7 +965,7 @@ # USB Device Class drivers # # CONFIG_USB_ACM is not set -CONFIG_USB_PRINTER=y +# CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' @@ -1025,11 +989,7 @@ # # USB Input Devices # -CONFIG_USB_HID=m -CONFIG_USB_HIDINPUT=y -# CONFIG_USB_HIDINPUT_POWERBOOK is not set -# CONFIG_HID_FF is not set -CONFIG_USB_HIDDEV=y +# CONFIG_USB_HID is not set # # USB HID Boot Protocol drivers @@ -1146,21 +1106,25 @@ # # File systems # -CONFIG_EXT2_FS=y +CONFIG_EXT2_FS=m # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y # CONFIG_EXT3_FS_POSIX_ACL is not set # CONFIG_EXT3_FS_SECURITY is not set -CONFIG_JBD=y +CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y -CONFIG_REISERFS_FS=m +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y # CONFIG_REISERFS_FS_XATTR is not set -# CONFIG_JFS_FS is not set +CONFIG_JFS_FS=m +# CONFIG_JFS_POSIX_ACL is not set +# CONFIG_JFS_SECURITY is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set # CONFIG_FS_POSIX_ACL is not set CONFIG_XFS_FS=m # CONFIG_XFS_QUOTA is not set @@ -1172,10 +1136,7 @@ # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y -CONFIG_QUOTA=y -# CONFIG_QFMT_V1 is not set -CONFIG_QFMT_V2=y -CONFIG_QUOTACTL=y +# CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set @@ -1223,23 +1184,20 @@ # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set -CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS=m CONFIG_JFFS2_FS_DEBUG=0 -CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WRITEBUFFER is not set # CONFIG_JFFS2_SUMMARY is not set # CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set +CONFIG_JFFS2_RUBIN=y # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set # CONFIG_CRAMFS is not set -CONFIG_SQUASHFS=y -CONFIG_SQUASHFS_EMBEDDED=y -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_SQUASHFS_VMALLOC is not set +# CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1249,19 +1207,8 @@ # # Network File Systems # -CONFIG_NFS_FS=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFS_FS is not set # CONFIG_NFSD is not set -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -# CONFIG_RPCSEC_GSS_KRB5 is not set -# CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set diff -Naru linux-2.6.18.6-3.11/Makefile linux-2.6.18.6/Makefile --- linux-2.6.18.6-3.11/Makefile 2009-05-11 04:47:18.000000000 +0300 +++ linux-2.6.18.6/Makefile 2009-08-01 15:45:38.968530434 +0300 @@ -176,7 +176,7 @@ #ARCH ?= arm #CROSS_COMPILE ?= ARCH = arm -CROSS_COMPILE = arm_v5t_le- +CROSS_COMPILE = /opt/arm-2009q1/bin/arm-none-eabi- # Architecture as present in compile.h UTS_MACHINE := $(ARCH) diff -Naru linux-2.6.18.6-3.11/arch/arm/Kconfig linux-2.6.18.6/arch/arm/Kconfig --- linux-2.6.18.6-3.11/arch/arm/Kconfig 2009-05-11 04:46:38.000000000 +0300 +++ linux-2.6.18.6/arch/arm/Kconfig 2009-05-15 18:55:23.076362022 +0300 @@ -664,6 +664,17 @@ time by entering them here. As a minimum, you should specify the memory size and the root device (e.g., mem=64M root=/dev/nfs). +config CMDLINE_OVERRIDE + bool "Built-in command line overrides boot loader arguments" + default n + help + Set this option to 'Y' to have the kernel ignore the boot loader + command line, and use ONLY the built-in command line. + + This is used to work around broken boot loaders or when it + is difficult to change the command line in the boot loader. + This should be set to 'N' under normal conditions. + config XIP_KERNEL bool "Kernel Execute-In-Place from ROM" depends on !ZBOOT_ROM diff -Naru linux-2.6.18.6-3.11/arch/arm/kernel/setup.c linux-2.6.18.6/arch/arm/kernel/setup.c --- linux-2.6.18.6-3.11/arch/arm/kernel/setup.c 2009-05-11 04:46:33.000000000 +0300 +++ linux-2.6.18.6/arch/arm/kernel/setup.c 2009-05-15 18:58:00.657412479 +0300 @@ -699,11 +699,18 @@ __tagtable(ATAG_REVISION, parse_tag_revision); +#ifdef CONFIG_CMDLINE_OVERRIDE +static inline int __init parse_tag_cmdline(const struct tag *tag) +{ + return 0; +} +#else static int __init parse_tag_cmdline(const struct tag *tag) { strlcpy(default_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE); return 0; } +#endif __tagtable(ATAG_CMDLINE, parse_tag_cmdline); diff -Naru linux-2.6.18.6-3.11/drivers/char/NSA220Button/btnpower.c linux-2.6.18.6/drivers/char/NSA220Button/btnpower.c --- linux-2.6.18.6-3.11/drivers/char/NSA220Button/btnpower.c 2009-05-11 04:47:03.000000000 +0300 +++ linux-2.6.18.6/drivers/char/NSA220Button/btnpower.c 2009-05-15 23:35:05.040235389 +0300 @@ -107,7 +107,7 @@ void nsa_shutdown_func(void *in) { if(atomic_read(&shutdown_enable)) - sys_kill(1,10); + call_usermodehelper("/usr/local/btn/shutdown.sh", NULL, NULL, 0); } void nsa_power_off_func(void *in) @@ -143,11 +143,11 @@ } void btncpy_signal_func10(void *in) { - sys_kill(btncpy_pid, 10); + call_usermodehelper("/usr/local/btn/short_copy.sh", NULL, NULL, 0); } void btncpy_signal_func12(void *in) { - sys_kill(btncpy_pid, 12); + call_usermodehelper("/usr/local/btn/long_copy.sh", NULL, NULL, 0); } inline int Button_Released(unsigned long REG_OFFSET) { @@ -165,7 +165,7 @@ if(polling_times >= QUICK_PRESS_TIME && polling_times <= QUICK_PRESS_TIME + 1) { // del_timer(&btnpow_timer); - nsa_shutdown_func(NULL); + //nsa_shutdown_func(NULL); PREPARE_WORK(&halt_nsa, nsa_shutdown_func, NULL); queue_work(btn_workqueue,&halt_nsa); @@ -199,19 +199,19 @@ { if(polling_times >= 2 && polling_times <= 3) { - printk(KERN_INFO"Reset admin password & ip setting ........\n"); // May move to Reset_UserInfo_func + //printk(KERN_INFO"Reset admin password & ip setting ........\n"); // May move to Reset_UserInfo_func PREPARE_WORK(&Reset_User_Info, Reset_UserInfo_func, NULL); queue_work(btn_workqueue, &Reset_User_Info); } else if(polling_times >= 6 && polling_times <= 7) { - printk(KERN_INFO"Open backdoor ... \n"); //... + //printk(KERN_INFO"Open backdoor ... \n"); //... PREPARE_WORK(&Open_Backdoor, Open_Backdoor_func, NULL); queue_work(btn_workqueue, &Open_Backdoor); } else if(polling_times >= 10) { - printk(KERN_INFO"remove configuration (etc/zyxel/config) and reboot\n"); + //printk(KERN_INFO"remove configuration (etc/zyxel/config) and reboot\n"); PREPARE_WORK(&Reset_To_Default, Reset_To_Defu_func, NULL); queue_work(btn_workqueue, &Reset_To_Default); @@ -240,8 +240,8 @@ if(Button_Released(COPY_GPIO_REG_OFFSET)) { - if(btncpy_pid) - { + //if(btncpy_pid) + //{ if(polling_times >= 30) { PREPARE_WORK(&btncpy_signal12, btncpy_signal_func12, NULL); queue_work(btn_workqueue, &btncpy_signal12); @@ -249,7 +249,7 @@ PREPARE_WORK(&btncpy_signal10, btncpy_signal_func10, NULL); queue_work(btn_workqueue, &btncpy_signal10); } - } + //} polling_times = 0; enable_irq(COPY_IRQ); }