This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Boot up time reduction and reducing kernel

I am using Am37x EVM board, Linux 2.6.37 and psp 4.02. The boot up is taking 45s. I am trying to reduce the kernel by changing .config but then the boot up process shows

 pvrsrvkm: disagrees about version of symbol module_layout

Then my driver module cannot be install anymore. Could any expert tell me how to safely uncheck .config to reduce boot up time. I am using menuconfig. Thanks.

 

Frank

  • No expert here. I believe you have to rebuild "pvrsrvkm" against your changed kernel. That might cause a cascade of rebuilds. Likely you will need to make the kernel modules and install them on your file system.

  • Hi Norman,

    Thanks for the quick reply. I am new to Linux. How to rebuild pvrsrvkm? I just build kernel uImage by single make command. Also do you have any suggestions on how to reduce kernel image and booting time?

    Frank

  • I don't know what is "pvrsrvkm". I checked the TI Wiki. Seems to be build instructions here:

    http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide

    Not sure how much Linux background you have. Ignore stuff you already now.

    The Linux consists of kernel and loadable modules. The kernel includes builtin modules and the end result is a zImage or uImage file. That file is loaded into memory by a bootloader. The loadable modules are individual files end in ".ko". These loadable modules exist on the filesystem in "/lib/modules" in a subdirectory named after the kernel version, eg 2.6.37-rc4. Use the command "uname -a" to display the current kernel version.

    The modules in the kernel source usually have an option between builtin or loadable. Can't remember. Something about selecting m or * in the menuconfig.

    Modules within the kernel source are built and installed with additional make targets, eg.
      make uImage ARCH=arm CROSS_COMPILE=your_cross_compiler
      make modules modules_install INSTALL_MOD_PATH=path_to_target_fs ARCH=arm CROSS_COMPILE==your_cross_compiler
    Accessing the target's file system from the host can be a bit tricky. Some use NFS. Some use SD Card. Or TFTP an archive to the target. The purpose is to populate the "/lib/module" directory.

    Loadable modules can exist outside the kernel source. I think "pvrsrvkm" is one of those. The final result should be a "pvrsrvkm.ko" file. The install location for the ".ko" seems to vary. Sometimes in "/lib/modules". Sometimes in elsewhere. Kernel modules you write yourself can just be your user directory.

    There quite a few posts on this forum and on the net about speeding up Linux boot. Never tried strategies yet. Can't say which ones to try. Removing unused drivers is certainly a start.

    EDIT: Spelling.

  • Hi Norman,

    Thank you for the detail explaination and the useful link which I don't know before. Let me try accordingly. Wish you a happy new year!

    Frank

  • Frank,

    We can help you out with boot time. 

    We've done boot time optimization on different TI platforms and has achieved very good boot time numbers as good as 2.6 secs on Linux with applications. We could boot linux kernel with bootloader and mount the filesystem in about 700ms on DM36x. If you are interested please get in touch with us.

    -Renjith

    www.pathpartnertech.com