[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Powerdown with apm in newer kernels ##FIXED##



This is for everyone who has tried to compile a newer kernel than the stock 2.4.18bf-2.4 and lost the ability to shut down your computer at powerdown. The problem lies in new features in the newer kernels and the default settings when you compile.

I found the problem. When you first untar the kernel source and run make xconfig (or whatever means) in the Processor Type and Features section the option for smp is enabled by default. You should select N here if you have single processors. The help file provided states that with this option selected the apm module will be disabled by default. So powerdown will not work with apm if smp is enabled. Even using the append="apm=on" or append="apm=powerdown" in lilo won't work.

BUT there's a catch. If you try to fix this with an alredy used Linux-2.4.xx kernel directory it won't undo the settings. In other words. If you've already compiled your own kernel, and the smp is enabled and you just go back to the directory and run make xconfig and disable the smp option it will still conflict. Specifically when you run make bzImage. It will give error listings saying it can't find the smp module in its former location (or something to that affect) So disabling it isn't just the answer. What you should do is save your kernel config to a file and copy that config file somewhere safe and then delete the linux-2.4.xx directory and re-untar it and start from scratch, making sure to move your kernel config file back into the new linux-2.4.xx directory, loading it in make xconfig and first thing disabling the smp option. This is just what I did and I got my powerdown to work finally with my new custom kernel. Here are my options for my kernel config:

# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_HAS_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_F00F_WORKS_OK=y
CONFIG_X86_MCE=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_HIGHMEM is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_MTRR is not set
# CONFIG_SMP is not set        <---here is the option to disable.
# CONFIG_X86_UP_APIC is not set
# CONFIG_X86_TSC_DISABLE is not set
CONFIG_X86_TSC=y



Reply to: