# EMBEDDED option in kernel config

## lefsha

Manual says:

 *Quote:*   

> EMBEDDED — Configure standard kernel features (for small systems)
> 
> Description
> 
> This option allows certain base kernel options and settings to be disabled or tweaked. This is for specialized environments that can tolerate a "non-standard" kernel. This is recommend only for experts, as it is very easy to change the options to create a kernel that will not even boot properly.
> ...

 

But at the same time it's forced on by default.

Any reason for that? Can one disable it? And how?

There are some other such options. Like AGP etc. So that is only an example.

----------

## ToeiRei

Feel free to disable it.

It is an option to strip down the kernel to the absolute minimum.

Rei

----------

## lefsha

 *ToeiRei wrote:*   

> Feel free to disable it.
> 
> It is an option to strip down the kernel to the absolute minimum.
> 
> Rei

 

You haven't got my point. It can't be disabled! That's the point!

----------

## dmpogo

 *ToeiRei wrote:*   

> Feel free to disable it.
> 
> It is an option to strip down the kernel to the absolute minimum.
> 
> Rei

 

It is just an option to open the choice for fine-grain management of the kernel.  So embedded is a bit a misnomer, but it came from the idea that only embedded people would want to play with the options that it hides.

----------

## dmpogo

 *lefsha wrote:*   

>  *ToeiRei wrote:*   Feel free to disable it.
> 
> It is an option to strip down the kernel to the absolute minimum.
> 
> Rei 
> ...

 

In the kernel configuration, whenever some option can't be changed, that means that some other option forces it into particular state.

If you hit 'Help' tab while the option is selected, it will give you a description what otther options will force it.

Hm, 'configure standard features for small systems' seems does not have this description.

BTW, AGP is forced by IOMMU  (even if you don't have AGP hardware on your system, IOMMU implementation requires AGP kernel infrastructure).

IOMMU in turn can only be disabled if 'configure standard features for small systems' is selected.

----------

## lefsha

no text

----------

## lefsha

 *dmpogo wrote:*   

> 
> 
> In the kernel configuration, whenever some option can't be changed, that means that some other option forces it into particular state.

 

That is not the case for EMBEDDED !

 *dmpogo wrote:*   

> 
> 
> BTW, AGP is forced by IOMMU  (even if you don't have AGP hardware on your system, IOMMU implementation requires AGP kernel infrastructure).
> 
> IOMMU in turn can only be disabled if 'configure standard features for small systems' is selected.

 

That is wrong too. IOMMU is not accessible from "make menuconfig". It's turned on by default and nothing

can turn it back off.

That is why my question arised about such strange options in the kernel config.

I haven't found any info about it on the net. No explanation why it was done in that way.

Nothing how change it back.

But I clearly  remember that in some older kernel versions there were no such things.

They started to came up quite recently.

----------

## dmpogo

 *lefsha wrote:*   

> 
> 
> That is not the case for EMBEDDED !

 

I noticed and even edited my post in a meantime  :Smile: 

I actually never saw that particular option being forced. In principle by itself it does not matter, since it just opens other options and that's all its role.

But I understand the desire to have clean config.

One way - go to the source and find Kconfig file where it resides and see if it can be forced (perhaps it is just Help what is not complete).

Well I don't see anything that can forces it

in init/Kconfig   it ijust that

menuconfig EMBEDDED

        bool "Configure standard kernel features (for small systems)"

        help

          This option allows certain base kernel options and settings

          to be disabled or tweaked. This is for specialized

          environments which can tolerate a "non-standard" kernel.

          Only use this if you really know what you are doing.

so it just sets the parameter EMBEDDED which is checked by other options. It does not have any 'depend' statements

If you do make menuconfig, how is the General Setup section looks like in regrad to this option ?

----------

## lefsha

 *dmpogo wrote:*   

>  *ToeiRei wrote:*   Feel free to disable it.
> 
> It is an option to strip down the kernel to the absolute minimum.
> 
> Rei 
> ...

 

Exactly. That is why I'd like to turn it off. Most of the users don't use embedded on desktop...

----------

## lefsha

 *dmpogo wrote:*   

>  *lefsha wrote:*   
> 
> That is not the case for EMBEDDED ! 
> 
> I noticed and even edited my post in a meantime 
> ...

 

That is wrong too. There are a number of options which are enabled only because  EMBEDDED is also enabled.

Even some debugging. Which I don't need on production machine.

 *dmpogo wrote:*   

> If you do make menuconfig, how is the General Setup section looks like in regrad to this option ?

 

```
--- Configure standard kernel features (for small systems)

-*-   Load all symbols for debugging/ksymoops
```

```
CONFIG_KALLSYMS:

Say Y here to let the kernel print out symbolic crash information and

symbolic stack backtraces. This increases the size of the kernel

somewhat, as all symbols have to be loaded into the kernel image.

Symbol: KALLSYMS [=y]

Prompt: Load all symbols for debugging/ksymoops

     Defined at init/Kconfig:786

     Depends on: EMBEDDED
```

----------

## dmpogo

 *lefsha wrote:*   

> 
> 
>  *dmpogo wrote:*   
> 
> BTW, AGP is forced by IOMMU  (even if you don't have AGP hardware on your system, IOMMU implementation requires AGP kernel infrastructure).
> ...

 

Sure, it can. It is turned off on all my machines

```

$ grep IOMMU .config

# CONFIG_GART_IOMMU is not set

# CONFIG_CALGARY_IOMMU is not set

# CONFIG_AMD_IOMMU is not set

CONFIG_IOMMU_HELPER=y

# CONFIG_IOMMU_API is not set

```

we read from the flag description

Symbol: GART_IOMMU [=n]                                                 

  │ Prompt: GART IOMMU support                                              

  │   Defined at arch/x86/Kconfig:582                                       

  │   Depends on: X86_64 && PCI && EMBEDDED                                 

  │   Location:                                                             

  │     -> Processor type and features                                      

  │   Selects: SWIOTLB && AGP         

and in arch/x86/Kconfig

```

config GART_IOMMU

        bool "GART IOMMU support" if EMBEDDED

          based hardware IOMMU and a software bounce buffer based IOMMU used

          device) unless CONFIG_IOMMU_DEBUG or iommu=force is specified

```

so if EMBEDDED is NOT set, this option is not given in menuconfig,  but if EMBEDDED is set, it is given and GART_IOMMU can be disabled.

----------

## lefsha

 *dmpogo wrote:*   

> 
> 
> so if EMBEDDED is NOT set, this option is not given in menuconfig,  but if EMBEDDED is set, it is given and GART_IOMMU can be disabled.

 

I don't see this option in my config! Where it's located?

My problem is that is not only can't be seen, but also enabled! And I can't do anything about it.

----------

## dmpogo

 *Quote:*   

> 
> 
> That is wrong too. There are a number of options which are enabled only because EMBEDDED is also enabled.
> 
> Even some debugging. Which I don't need on production machine.
> ...

 

You are mostly *) wrong here, EMBEDDED does not turn that options on. It SHOWS them. Without EMBEDDED these option are on, but hidden. EMBEDDED opens them up for configuration for people who needs that.   

*) of course if you had EMBEDDED on, played with some options that appeared, then switched it off, the options it hides return to their default state.Last edited by dmpogo on Fri Sep 11, 2009 3:22 pm; edited 1 time in total

----------

## lefsha

 *dmpogo wrote:*   

>  *Quote:*   
> 
> That is wrong too. There are a number of options which are enabled only because EMBEDDED is also enabled.
> 
> Even some debugging. Which I don't need on production machine.
> ...

 

But because of this option (IOMMU) I have AGP (stack) available and compiled into kernel.

I have no AGP.  I see no reason do that for all boxes in the world...

 *dmpogo wrote:*   

> 
> 
> *) I can vouch yet that there is no options that change state with EMBEDDED on, but all I know just sit in their default state and EMBEDDED make then editable

 

That is why I'm asking where is it located?

I have EMBEDDED enabled by default and should be able at least to see this option, right?

----------

## dmpogo

It is in the General Setup   (the first line of the first screen of menuconfig)

But let me repeat, with EMBEDDED set you can have leaner kernel that with unset.   unset EMBEDDED leaves many options in their default 'on' position, as for example GART_IOMMU.

BTW, on you hardware you may need GART_IOMMU, (and then you have to live with AGP) I can't tell

----------

## lefsha

Definitely not on the first line:

```
[*] Prompt for development and/or incomplete code/drivers
```

But OK. I see anyway that not possible to do anything about it.

Thank you.

Many questions to kernel developers remain ...

But we have no other kernel available besides linux.

I have to live with that.

I'm just wondering why the hell there is no explanation about this mess.

No single word.

----------

## dmpogo

 *lefsha wrote:*   

> Definitely not on the first line:
> 
> ```
> [*] Prompt for development and/or incomplete code/drivers
> ```
> ...

 

Come on, I said General Setup is on the first line, not first line in General Setup.

In General setup your option is in the middle, just next after 'Optimize for Size'

----------

## dmpogo

 *lefsha wrote:*   

> 
> 
> Many questions to kernel developers remain ...
> 
> But we have no other kernel available besides linux.
> ...

 

Вы все-таки так не переживайте  :Smile: 

----------

## lefsha

 *dmpogo wrote:*   

> 
> 
> Come on, I said General Setup is on the first line, not first line in General Setup.
> 
> In General setup your option is in the middle, just next after 'Optimize for Size'

 

You didn't got it. I ment the option IOMMU...

That what you talking about is EMBEDDED. Of course I see it.

----------

## dmpogo

 *lefsha wrote:*   

>  *dmpogo wrote:*   
> 
> Come on, I said General Setup is on the first line, not first line in General Setup.
> 
> In General setup your option is in the middle, just next after 'Optimize for Size' 
> ...

 

When EMBEDDED is set, IOMMU option appears in Processor Type and Features, just after Processor Family.

It is called 'GART IOMMU Support'

----------

