Processor type kernel option for Core Duo (not Core 2) - Setup

This is a discussion on Processor type kernel option for Core Duo (not Core 2) - Setup ; I've got a Centrino Core Duo laptop; the processor number is T2300E. I can't work out which processor type option to use for the kernel. AFAICT, despite the "Core" branding, it has much more in common with Pentium M than ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: Processor type kernel option for Core Duo (not Core 2)

  1. Processor type kernel option for Core Duo (not Core 2)


    I've got a Centrino Core Duo laptop; the processor number is T2300E. I
    can't work out which processor type option to use for the kernel.
    AFAICT, despite the "Core" branding, it has much more in common with
    Pentium M than Core 2, so I tried Pentium M at first; this seemed to
    prevent the laptop from booting ("Waiting for root filesystem" or
    something like that). Then I tried the Core 2 option and also enabled
    "Generic x86". It works, but I'm not at all sure that it's the correct
    optimisation and suspect it might fail if I disable the generic option.

    FWIW I've found out that "prescott" is the best gcc -march option for
    this type of processor on the grounds that their MMX/SSE was improved
    over earlier Pentium Ms. Would the same theory apply to the kernel
    option?

    --
    TH * http://www.realh.co.uk

  2. Re: Processor type kernel option for Core Duo (not Core 2)

    On Sat, 20 Oct 2007 13:46:23 +0100, Tony Houghton wrote:

    >
    > I've got a Centrino Core Duo laptop; the processor number is T2300E. I
    > can't work out which processor type option to use for the kernel. AFAICT,
    > despite the "Core" branding, it has much more in common with Pentium M
    > than Core 2, so I tried Pentium M at first; this seemed to prevent the
    > laptop from booting ("Waiting for root filesystem" or something like
    > that). Then I tried the Core 2 option and also enabled "Generic x86". It
    > works, but I'm not at all sure that it's the correct optimisation and
    > suspect it might fail if I disable the generic option.
    >
    > FWIW I've found out that "prescott" is the best gcc -march option for this
    > type of processor on the grounds that their MMX/SSE was improved over
    > earlier Pentium Ms. Would the same theory apply to the kernel option?
    >

    AFAIK, the CPU type selection within the kernel configuration (make
    xconfig, make menuconfig, etc) specifically enables features found on
    specific processors. For example, processor scaling is a feature present
    only on some processors. Therefore, to use the feature, you need the
    hardware (the device with the feature) and the software support.
    The kernel should be configured to support any devices you intend
    to use. The kernel configuration allows fine grained control over which
    features it will support.

    Both the Core and Core 2 are P6 derivatives, and have more in common with
    Pentium-III, than Pentium IV.
    http://en.wikipedia.org/wiki/Intel_P6

    Your CPU settings...
    I don't have a "core duo" CPU, but I am guessing that the setting should
    be at least to the level identified as "Coppermine." Most likely, Pentium
    M is most appropriate. You want SMP support if you have dual cores. CPU
    count >= 2. AKAIK, for this architecture, "SMT hyperthreading support" is
    not appropriate (deselect). Enable "multi-core scheduler support".

    And if your CPU supports processor scaling, then add that support, too.
    That is configured in the next category, "Power management options."

    Compiler options...
    I think you are correct that the compiler used should use
    optimizations for the processor architecture that will run the
    kernel. I haven't ever specifically set this, as the default appears to
    be ok. But P6 architecture optimizations might be slightly better than P5
    optimizations, but I am guessing P6 optimizations are "good enough."

    Boot problems...
    Your current boot problem with the "root filesystem" not found is probably
    not related to an error choosing the proper CPU architecture. Most
    likely, it is due to other options you made when configuring the kernel
    as a whole. Configuring the kernel is a daunting task, BTW. I always
    start with a "known good" configuration, and then add minor tweaks.

    Root filesystem...
    The most common causes for errors setting the root filesystem are as
    follows:

    1. Bad data in /etc/fstab. This comes up quite often when changing
    hardware- hda becomes sda, etc.

    2. Lack of kernel support for the device and/or filesystem where the
    root filesystem resides. Kernel support for devices and filesystems can be
    built directly into the kernel, or added as a module. Kernel modules can
    be loaded at boot time using an initrd. (Making an initrd is distribution
    dependant.) If the kernel does not load the necessary modules (or have
    support built in), then it will be unable to begin using the root
    filesystem. If you decide to use an initrd, then you must include any
    modules which are necessary to start using the root filesystem. Note:
    modules may require other modules (man depmod).

    --
    Douglas Mayne


  3. Re: Processor type kernel option for Core Duo (not Core 2)

    On 21/10/07 17:52, Douglas Mayne wrote:
    > On Sat, 20 Oct 2007 13:46:23 +0100, Tony Houghton wrote:
    >
    >> I've got a Centrino Core Duo laptop; the processor number is T2300E. I
    >> can't work out which processor type option to use for the kernel.

    AFAICT,
    >> despite the "Core" branding, it has much more in common with Pentium M
    >> than Core 2, so I tried Pentium M at first; this seemed to prevent the
    >> laptop from booting ("Waiting for root filesystem" or something like
    >> that). Then I tried the Core 2 option and also enabled "Generic x86". It
    >> works, but I'm not at all sure that it's the correct optimisation and
    >> suspect it might fail if I disable the generic option.
    >>
    >> FWIW I've found out that "prescott" is the best gcc -march option

    for this
    >> type of processor on the grounds that their MMX/SSE was improved over
    >> earlier Pentium Ms. Would the same theory apply to the kernel option?
    >>

    > AFAIK, the CPU type selection within the kernel configuration (make
    > xconfig, make menuconfig, etc) specifically enables features found on
    > specific processors. For example, processor scaling is a feature present
    > only on some processors. Therefore, to use the feature, you need the
    > hardware (the device with the feature) and the software support.
    > The kernel should be configured to support any devices you intend
    > to use. The kernel configuration allows fine grained control over which
    > features it will support.
    >
    > Both the Core and Core 2 are P6 derivatives, and have more in common with
    > Pentium-III, than Pentium IV.
    > http://en.wikipedia.org/wiki/Intel_P6
    >
    > Your CPU settings...
    > I don't have a "core duo" CPU, but I am guessing that the setting should
    > be at least to the level identified as "Coppermine." Most likely, Pentium
    > M is most appropriate. You want SMP support if you have dual cores. CPU
    > count >= 2. AKAIK, for this architecture, "SMT hyperthreading support" is
    > not appropriate (deselect). Enable "multi-core scheduler support".
    >
    > And if your CPU supports processor scaling, then add that support, too.
    > That is configured in the next category, "Power management options."


    Yes, I decided to use "ondemand" and edited rc.local to enable it.

    > Compiler options...
    > I think you are correct that the compiler used should use
    > optimizations for the processor architecture that will run the
    > kernel. I haven't ever specifically set this, as the default appears to
    > be ok. But P6 architecture optimizations might be slightly better than P5
    > optimizations, but I am guessing P6 optimizations are "good enough."


    I decided to go ahead with basing my decision on what experts say is
    most appropriate for gcc and used Pentium 4 rather than Pentium M. It
    seems to work fine even with generic x86 disabled.

    > Boot problems...
    > Your current boot problem with the "root filesystem" not found is

    probably
    > not related to an error choosing the proper CPU architecture. Most
    > likely, it is due to other options you made when configuring the kernel
    > as a whole. Configuring the kernel is a daunting task, BTW. I always
    > start with a "known good" configuration, and then add minor tweaks.


    I've been compiling kernels for years. I was also sure the mistake must
    be in my choice of SATA driver etc and spent ages trying every sort of
    thing appropriate for Intel (it's definitely an Intel chipset) and
    generic support, but in the end changing the CPU type (and enabling
    generic x86, although that doesn't seem necessary now) was what made the
    difference. It's possible there was a make dependency error and changing
    the CPU type forced everything to be recompiled and fixed it, but I
    haven't heard of anything like that happening with the kernel.

    > Root filesystem...
    > The most common causes for errors setting the root filesystem are as
    > follows:
    >
    > 1. Bad data in /etc/fstab. This comes up quite often when changing
    > hardware- hda becomes sda, etc.


    It's a SATA drive so I think it would always be sda on this system.
    I didn't think of checking fstab (surely that can't be read until after
    / is mounted anyway), but I made grub use UUID just in case.

    > 2. Lack of kernel support for the device and/or filesystem where the
    > root filesystem resides. Kernel support for devices and filesystems

    can be
    > built directly into the kernel, or added as a module. Kernel modules can
    > be loaded at boot time using an initrd. (Making an initrd is distribution
    > dependant.) If the kernel does not load the necessary modules (or have
    > support built in), then it will be unable to begin using the root
    > filesystem. If you decide to use an initrd, then you must include any
    > modules which are necessary to start using the root filesystem. Note:
    > modules may require other modules (man depmod).


    I generally use initramfs (I think - the various tools involved still
    tend to refer to it as initrd) and UUID in my grub config nowadays.

    --
    TH * http://www.realh.co.uk

+ Reply to Thread