lkml.org 
[lkml]   [2021]   [Jan]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: Generate the config file for kernel compilation non-interactively in script.
    On Fri, Jan 1, 2021 at 2:32 PM Randy Dunlap <rdunlap@infradead.org> wrote:
    >
    > On 12/31/20 8:51 PM, Hongyi Zhao wrote:
    > > Hi,
    > >
    > > I want to build the realtime Linux for ROS 2 according to the
    > > guidelines here:
    > > <https://index.ros.org/doc/ros2/Tutorials/Building-Realtime-rt_preempt-kernel-for-ROS-2/>.
    > >
    > > For this purpose, I must enable the rt_preempt relative options in the
    > > kernel withe the following method interactively:
    > >
    > > $ make menuconfig
    > >
    > > and set the following
    > >
    > > # Enable CONFIG_PREEMPT_RT
    > > -> General Setup
    > > -> Preemption Model (Fully Preemptible Kernel (Real-Time))
    > > (X) Fully Preemptible Kernel (Real-Time)
    > >
    > > # Enable CONFIG_HIGH_RES_TIMERS
    > > -> General setup
    > > -> Timers subsystem
    > > [*] High Resolution Timer Support
    > >
    > > # Enable CONFIG_NO_HZ_FULL
    > > -> General setup
    > > -> Timers subsystem
    > > -> Timer tick handling (Full dynticks system (tickless))
    > > (X) Full dynticks system (tickless)
    > >
    > > # Set CONFIG_HZ_1000 (note: this is no longer in the General Setup
    > > menu, go back twice)
    > > -> Processor type and features
    > > -> Timer frequency (1000 HZ)
    > > (X) 1000 HZ
    > >
    > > # Set CPU_FREQ_DEFAULT_GOV_PERFORMANCE [=y]
    > > -> Power management and ACPI options
    > > -> CPU Frequency scaling
    > > -> CPU Frequency scaling (CPU_FREQ [=y])
    > > -> Default CPUFreq governor (<choice> [=y])
    > > (X) performance
    > >
    > > But this is very inconvenient for doing the above job in script. Is
    > > there an alternative method to generate the above configurations for
    > > kernel compilation non-interactively in script.
    >
    > Hi,
    > You can use scripts/config in the kernel source tree.
    > Something like this (I don't have RT kernel sources):
    >
    >
    > scripts/config -e PREEMPT_RT
    > scripts/config -e HIGH_RES_TIMERS
    > scripts/config -e NO_HZ_FULL
    > scripts/config -e HZ_1000
    > scripts/config -e CPU_FREQ_DEFAULT_GOV_PERFORMANCE

    Wonderful. Thanks a lot for your instructions. I really have noticed
    this tool but failed to figure out the corresponding translation rules
    for the options used by menuconfig and this script.

    BTW, how do you figure out the above options/arguments corresponding
    to the ones I've mentioned previously?

    >
    > Note that if any of those have other Kconfig dependencies, those Kconfig
    > symbols will also have to be enabled for this to work.

    How to know whether an option has other Kconfig dependencies and find
    the corresponding symbols/arguments for feeding to scripts/config?

    > And then run 'make oldconfig' to update the kernel .config file.

    Thanks again.

    BR,
    --
    Assoc. Prof. Hongyi Zhao <hongyi.zhao@gmail.com>
    Theory and Simulation of Materials
    Hebei Polytechnic University of Science and Technology engineering
    NO. 552 North Gangtie Road, Xingtai, China

    \
     
     \ /
      Last update: 2021-01-01 10:57    [W:5.239 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site