Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GENTOO: Kernel config will be overridden automatically before building #2

Closed
kitakar5525 opened this issue Nov 21, 2019 · 5 comments
Closed
Labels
cros_sdk question Further information is requested

Comments

@kitakar5525
Copy link
Owner

kitakar5525 commented Nov 21, 2019

When building using cros_workon_make, kernel config may be overridden by someone:

$ FEATURES="noclean" cros_workon_make --board=${BOARD} chromeos-kernel-4_19 --install
[...]
13:38:51 >>> Configuring source in /mnt/host/source/src/third_party/kernel/v4.19 ...
 * Using kernel config: chromiumos-x86_64
 *    - enabling Enable ACPI AC config
 *    - disabling framebuffer console config
 *    - enabling Support running virtual machines with KVM config
 *    - enabling CDC MBIM driver config
 *    - enabling TPM support config
 *    - enabling Transparent Hugepage Support config
 *    - enabling Virtual USB support config
 *    - enabling Virtual Video Test Driver config
 *    - enabling 802.1Q VLAN config
 *    - disabling VT console config
make -j48 O=/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19 LD=/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0/ld 'CC=x86_64-cros-linux-gnu-clang -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' 'CXX=x86_64-cros-linux-gnu-clang++ -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' HOSTCC=x86_64-pc-linux-gnu-clang HOSTCXX=x86_64-pc-linux-gnu-clang++ olddefconfig 
make[1]: Entering directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
  GEN     ./Makefile
scripts/kconfig/conf  --olddefconfig Kconfig
.config:794:warning: override: reassigning to symbol FRAMEBUFFER_CONSOLE
.config:803:warning: override: reassigning to symbol KVM
.config:808:warning: override: reassigning to symbol KVM_INTEL
.config:810:warning: override: reassigning to symbol VSOCKETS
.config:811:warning: override: reassigning to symbol VHOST_VSOCK
.config:819:warning: override: reassigning to symbol TCG_TPM
.config:820:warning: override: reassigning to symbol TCG_TIS
#
# configuration written to .config
#
make[1]: Leaving directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
13:38:54 >>> Source configured.
[...]
@kitakar5525 kitakar5525 added the question Further information is requested label Nov 21, 2019
@kitakar5525 kitakar5525 changed the title Who overwrite the kernel config? Kernel config will be overridden automatically before building Nov 25, 2019
@kitakar5525
Copy link
Owner Author

I'm not familiar with Gentoo, but at least it seems that we can see used USE flags:

# after building chromeos-kernel-4_19 with the following command:
# FEATURES="noclean" cros_workon_make --board=${BOARD} chromeos-kernel-4_19 --install

$ cat /build/amd64-generic/tmp/portage/sys-kernel/chromeos-kernel-4_19-9999/build-info/USE
abi_x86_64 acpi_ac amd64 board_use_amd64-generic clang dt_compression elibc_glibc fit_compression_kernel_lz4 kernel_linux kvm_host mbim tpm transparent_hugepage usbip userland_GNU vivid vlan

We can override the USE flag at least at build time like this:

$ USE="${USE} -tpm" FEATURES="noclean" cros_workon_make --board=${BOARD} chromeos-kernel-4_19 --install
[...]
13:43:31 >>> Configuring source in /mnt/host/source/src/third_party/kernel/v4.19 ...
 * Using kernel config: chromiumos-x86_64
 *    - enabling Enable ACPI AC config
 *    - disabling framebuffer console config
 *    - enabling Support running virtual machines with KVM config
 *    - enabling CDC MBIM driver config
 *    - enabling Transparent Hugepage Support config
 *    - enabling Virtual USB support config
 *    - enabling Virtual Video Test Driver config
 *    - enabling 802.1Q VLAN config
 *    - disabling VT console config
make -j48 O=/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19 LD=/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0/ld 'CC=x86_64-cros-linux-gnu-clang -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' 'CXX=x86_64-cros-linux-gnu-clang++ -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' HOSTCC=x86_64-pc-linux-gnu-clang HOSTCXX=x86_64-pc-linux-gnu-clang++ olddefconfig 
make[1]: Entering directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
  GEN     ./Makefile
scripts/kconfig/conf  --olddefconfig Kconfig
.config:794:warning: override: reassigning to symbol FRAMEBUFFER_CONSOLE
.config:803:warning: override: reassigning to symbol KVM
.config:808:warning: override: reassigning to symbol KVM_INTEL
.config:810:warning: override: reassigning to symbol VSOCKETS
.config:811:warning: override: reassigning to symbol VHOST_VSOCK
#
# configuration written to .config
#
make[1]: Leaving directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
13:43:34 >>> Source configured.
[...]

@kitakar5525
Copy link
Owner Author

Now, my question is:

  • I think there is a config files for default USE flags, which I can't find yet.

@kitakar5525
Copy link
Owner Author

Found a list of USE flags:

$ cat /home/ubuntu/chromiumos/src/third_party/chromiumos-overlay/eclass/cros-kernel2.eclass

or see this link:
https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/cros-kernel2.eclass#124

Especially, we may be interested in these flags:

  • kvm_host
  • tpm
  • fbconsole
  • vtconsole

@kitakar5525
Copy link
Owner Author

kitakar5525 commented Nov 30, 2019

# _config_disable fragments are optional and will be appended to kernel config
# if use flag is not set.
https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/eclass/cros-kernel2.eclass#117

So, we need to specify fbconsole and vtconsole explicitly to avoid getting automatically disabled those corresponding kernel configs.

$ USE="${USE} -tpm fbconsole vtconsole" FEATURES="noclean" cros_workon_make --board=${BOARD} chromeos-kernel-4_19 --install
[...]
15:58:25 >>> Configuring source in /mnt/host/source/src/third_party/kernel/v4.19 ...
 * Using kernel config: chromiumos-x86_64
 *    - enabling Enable ACPI AC config
 *    - enabling framebuffer console config
 *    - enabling Support running virtual machines with KVM config
 *    - enabling CDC MBIM driver config
 *    - enabling Transparent Hugepage Support config
 *    - enabling Virtual USB support config
 *    - enabling Virtual Video Test Driver config
 *    - enabling 802.1Q VLAN config
 *    - enabling VT console config
make -j48 O=/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19 LD=/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0/ld 'CC=x86_64-cros-linux-gnu-clang -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' 'CXX=x86_64-cros-linux-gnu-clang++ -B/usr/x86_64-pc-linux-gnu/x86_64-cros-linux-gnu/binutils-bin/2.27.0' HOSTCC=x86_64-pc-linux-gnu-clang HOSTCXX=x86_64-pc-linux-gnu-clang++ olddefconfig 
make[1]: Entering directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
  GEN     ./Makefile
scripts/kconfig/conf  --olddefconfig Kconfig
.config:794:warning: override: reassigning to symbol FRAMEBUFFER_CONSOLE
.config:803:warning: override: reassigning to symbol KVM
.config:808:warning: override: reassigning to symbol KVM_INTEL
.config:810:warning: override: reassigning to symbol VSOCKETS
.config:811:warning: override: reassigning to symbol VHOST_VSOCK
#
# configuration written to .config
#
make[1]: Leaving directory '/build/amd64-generic/var/cache/portage/sys-kernel/chromeos-kernel-4_19'
15:58:28 >>> Source configured.
[...]

@kitakar5525 kitakar5525 changed the title Kernel config will be overridden automatically before building GENTOO: Kernel config will be overridden automatically before building Jan 6, 2020
@kitakar5525
Copy link
Owner Author

Closing this issue because I don't use cros_sdk anymore. May be reopened when someone is interested in cros_sdk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cros_sdk question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant