On Wednesday 12 November 2003 04:44, Olivier Blin wrote:
>
> $ diff -u kernel-config-2.6-{,allmod-}i586smp | egrep -A 3"^-.*=y"
> -CONFIG_M586=y
> +# CONFIG_M586 is not set
> # CONFIG_M586TSC is not set
> # CONFIG_M586MMX is not set
OK that needs tweaking anyway.
> --
> -CONFIG_X86_F00F_BUG=y
> CONFIG_X86_WP_WORKS_OK=y
> CONFIG_X86_INVLPG=y
> CONFIG_X86_BSWAP=y
F00F code is really small, there is no reason to disable it.
> --
> -CONFIG_X86_ALIGNMENT_16=y
> +CONFIG_X86_GOOD_APIC=y
I can't find where it is referenced
> CONFIG_X86_INTEL_USERCOPY=y
> -# CONFIG_HPET_TIMER is not set
anyone has info about how widely it is used? should it be enabled in generic
kernel?
> --
> -CONFIG_EDD=y
> -# CONFIG_NOHIGHMEM is not set
> -CONFIG_HIGHMEM4G=y
> +CONFIG_EDD=m
> +CONFIG_NOHIGHMEM=y
> +# CONFIG_HIGHMEM4G is not set
make CONFIG_EDD module. It provides just sysfs interface to EDD data, unless
we have applications that access sysfs we do not need it in kernel. And those
applications can always modprobe edd first.
> --
> -CONFIG_HIGHMEM=y
> -CONFIG_HIGHPTE=y
> -# CONFIG_MATH_EMULATION is not set
> +CONFIG_MATH_EMULATION=y
OK that is just stupidity of allmodconfig. Remember it blindly tries to enable
everything ...
> CONFIG_MTRR=y
> --
> -CONFIG_ACPI_AC=y
> -CONFIG_ACPI_BATTERY=y
> -CONFIG_ACPI_BUTTON=y
No, please! Everything that can be module should be module. Desktop users has
no need for most of them and those who need can always load them. It would be
nice if harddrake could detect needed modules and automatically update
/etc/sysconfig/acpi.
> +CONFIG_ACPI_AC=m
> +CONFIG_ACPI_BATTERY=m
> +CONFIG_ACPI_BUTTON=m
> --
> -CONFIG_APM=y
> +CONFIG_APM=m
not sure. Probably it should be builtin for legacy reasons - else you get "APM
missing in Mandrake kernel!". Although technically it can just be loaded out
of initrd I guess. Given that new systems are likely to support ACPI may be
we should make it module. And make harddrake detect when APM is needed :)
> CONFIG_APM_IGNORE_USER_SUSPEND=y
> CONFIG_APM_DO_ENABLE=y
> --
> -CONFIG_CPU_FREQ_TABLE=y
> +CONFIG_CPU_FREQ_GOV_USERSPACE=m
> +CONFIG_CPU_FREQ_24_API=y
> +CONFIG_CPU_FREQ_TABLE=m
I think those need be modules if possible. Anyone has any experience with it?
> --
> -CONFIG_BINFMT_ELF=y
> +CONFIG_BINFMT_ELF=m
> CONFIG_BINFMT_AOUT=m
> CONFIG_BINFMT_MISC=m
> --
> -CONFIG_PARPORT=y
> -CONFIG_PARPORT_PC=y
> -CONFIG_PARPORT_PC_CML1=y
> +CONFIG_PARPORT=m
> +CONFIG_PARPORT_PC=m
> +CONFIG_PARPORT_PC_CML1=m
come on, why should it be builtin?
> --
> -CONFIG_BLK_DEV_FD=y
ditto
> +CONFIG_BLK_DEV_FD=m
> +CONFIG_BLK_DEV_PS2=m
> CONFIG_BLK_DEV_XD=m
> --
> -CONFIG_PARIDE_PARPORT=y
> +CONFIG_PARIDE_PARPORT=m
>
ditto. I do not have paride device nor I believe do 99% of users.
> #
> --
> -CONFIG_BLK_DEV_RAM=y
> +CONFIG_BLK_DEV_RAM=m
should it be builtin for initrd to work? If not there is no reason to have it
builtin.
> CONFIG_BLK_DEV_RAM_SIZE=4096
> CONFIG_BLK_DEV_INITRD=y
> --
> -CONFIG_IDE=y
> -CONFIG_BLK_DEV_IDE=y
> +CONFIG_IDE=m
> +CONFIG_BLK_DEV_IDE=m
>
> --
> -CONFIG_BLK_DEV_IDEDISK=y
> +CONFIG_BLK_DEV_HD_IDE=y
> +CONFIG_BLK_DEV_IDEDISK=m
> CONFIG_IDEDISK_MULTI_MODE=y
nope, module does not work. Even if it possible to fix all missing exported
symbols, IDE layer does not provide for any sort of module reference counting
(for chipset drivers) meaning it is simply unsafe. Which implies kernel must
include all IDE drivers :(
> --
> -CONFIG_SCSI=y
> +CONFIG_SCSI=m
module, please!
> CONFIG_SCSI_PROC_FS=y
>
> --
> -CONFIG_BLK_DEV_MD=y
> +CONFIG_BLK_DEV_MD=m
same.
> CONFIG_MD_LINEAR=m
> CONFIG_MD_RAID0=m
> --
> -CONFIG_PACKET=y
> +CONFIG_PACKET=m
module
> CONFIG_PACKET_MMAP=y
> CONFIG_NETLINK_DEV=m
> -CONFIG_UNIX=y
> +CONFIG_UNIX=m
module
> CONFIG_NET_KEY=m
> CONFIG_INET=y
> --
> -CONFIG_ATM=y
> -CONFIG_ATM_CLIP=y
> -# CONFIG_ATM_CLIP_NO_ICMP is not set
> +CONFIG_ATM=m
> +CONFIG_ATM_CLIP=m
come on really, should everyone have ATM?
> --
> -CONFIG_INPUT_MOUSEDEV=y
> +CONFIG_INPUT_MOUSEDEV=m
> CONFIG_INPUT_MOUSEDEV_PSAUX=y
> CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> --
> -CONFIG_SERIO=y
> -CONFIG_SERIO_I8042=y
> +CONFIG_SERIO=m
> +CONFIG_SERIO_I8042=m
> CONFIG_SERIO_SERPORT=m
> --
> -CONFIG_KEYBOARD_ATKBD=y
> +CONFIG_KEYBOARD_ATKBD=m
> CONFIG_KEYBOARD_SUNKBD=m
> CONFIG_KEYBOARD_XTKBD=m
> --
> -CONFIG_MOUSE_PS2=y
> +CONFIG_MOUSE_PS2=m
> CONFIG_MOUSE_PS2_SYNAPTICS=y
> CONFIG_MOUSE_SERIAL=m
that is bad. Apparently to have your mouse (and keyboard) autodetected you
have
to build it in. OTOH some drivers are still left as module. Meaning - there
should be some manual configuration. In which case why not configure others
as well?
There is no problem loading them out of initrd. Of course it needs harddrake
support finally.
WDYT?
> --
> -CONFIG_SERIAL_8250=y
> -CONFIG_SERIAL_8250_CONSOLE=y
> +CONFIG_SERIAL_8250=m
it needs to be builtin only to have console support ... not sure actually how
widely it is used. those needing it to debug are likely to know how to
recompile kernel.
> CONFIG_SERIAL_8250_CS=m
> CONFIG_SERIAL_8250_ACPI=y
> --
> -CONFIG_SERIAL_CORE=y
> -CONFIG_SERIAL_CORE_CONSOLE=y
> +CONFIG_SERIAL_CORE=m
see above
> CONFIG_UNIX98_PTYS=y
> CONFIG_UNIX98_PTY_COUNT=256
> --
> -CONFIG_AGP=y
> -CONFIG_AGP_ALI=y
> +CONFIG_AGP=m
> +CONFIG_AGP_ALI=m
> CONFIG_AGP_ATI=m
> -CONFIG_AGP_AMD=y
> +CONFIG_AGP_AMD=m
> CONFIG_AGP_AMD64=m
> -CONFIG_AGP_INTEL=y
> +CONFIG_AGP_INTEL=m
> CONFIG_AGP_NVIDIA=m
> -CONFIG_AGP_SIS=y
> -CONFIG_AGP_SWORKS=y
> -CONFIG_AGP_VIA=y
> +CONFIG_AGP_SIS=m
> +CONFIG_AGP_SWORKS=m
> +CONFIG_AGP_VIA=m
any reason to have this builtin? I think it works just fine as module?
> --
> -CONFIG_EXT2_FS=y
> +CONFIG_EXT2_FS=m
if we switch to initramfs format even this can be module :)
> CONFIG_EXT2_FS_XATTR=y
> CONFIG_EXT2_FS_POSIX_ACL=y
> --
> -CONFIG_FS_MBCACHE=y
why do you need it in kernel?
> +CONFIG_JBD_DEBUG=y
> +CONFIG_FS_MBCACHE=m
> CONFIG_REISERFS_FS=m
> --
> -CONFIG_QFMT_V2=y
why?
> +CONFIG_QFMT_V2=m
> CONFIG_QUOTACTL=y
> CONFIG_AUTOFS_FS=m
> --
> -CONFIG_NFS_FS=y
why? OK diskless stations ... that is the only application that may require
it. this is rather special case for generic kernel?
> +CONFIG_NFS_FS=m
> CONFIG_NFS_V3=y
> CONFIG_NFS_V4=y
> --
> -CONFIG_NFSD=y
why?
> +CONFIG_NFSD=m
> CONFIG_NFSD_V3=y
> CONFIG_NFSD_V4=y
> --
> -CONFIG_LOCKD=y
why (unless it is forced by NFS)?
> +CONFIG_LOCKD=m
> CONFIG_LOCKD_V4=y
> -CONFIG_EXPORTFS=y
> -CONFIG_SUNRPC=y
why?
> +CONFIG_EXPORTFS=m
> +CONFIG_SUNRPC=m
> CONFIG_SUNRPC_GSS=m