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.

How to Configure / Build Linux using DVSDK 4

Other Parts Discussed in Thread: OMAPL138, OMAP-L138

I'm sure this is a simple question for those in the know but I'm new to configuring / building linux kernels. I have the OMAPL-138 experimenter kit and DVSDK 4. I am able to build linux from the $DVSDK directory by entering "make linux". This builds a default configuration of linux which I am able to boot from. In my attempt to reconfigure the kernel I do the following:

  • from $DVSDK/psp/linux-2.6xxxxx      make menuconfig

I make the changes I want (just removing the bootup logo for now). I look at the .config file and it has been modified as expected.

  • from $DVSDK I modify the Makefile to NOT use the default config file by commenting out the following line at the top:  DEFAULT_LINUXKERNEL_CONFIG=da850_omapl138_defconfig

My thought is that the new .config that was just created would be used instead of the da850_omapl138_defconfig file.

  • from $DVSDK   make linux  

This then executes scripts/kconfig/conf -s arch/arm/Kconfig which displays the following:

 

*

* Restart config....

* System Type

*

MMU-based Paged Memory Management Support (MMU) [Y/n/?] y

ARM system type

  1. Agilent AAEC-2000 based (ARCH_AAEC2000) (NEW)

  2. ARM Ltd. Integrator family (ARCH_INTEGRATOR) (NEW)

  3. ARM Ltd. RealView family (ARCH_REALVIEW) (NEW)

> 4. ARM Ltd. Versatile family (ARCH_VERSATILE) (NEW)

  5. Atmel AT91 (ARCH_AT91) (NEW)

  6. Cirrus Logic CLPS711x/EP721x-based (ARCH_CLPS711X) (NEW)

.....
I am then prompted for a gazillion questions.  This doesn't seem correct to me. Should I be prompted for all these question? Am I following the correct procedure here? I know there has got to be a simple answer here so if someone can outline EXACTLY what the procedure is for configuring a non-default configuration and building within the context of the DVSDK 4 I would be most grateful.
Regards,
    Scott

 

  • Why not save yourself some grief and just save your personal configuration as a new default with a new name and put that in the Makefile?

    John A

  • John,   Thanks for your response. I tried your suggestion and I still get prompted for the gazillion questions when the make file executes: scripts/kconfig/config -s arch/arm/Kconfig.  

    I'll ask again: Should I be prompted for all these questions?  Am I following the correct procedure here to config / build?

    Other people must be doing this. If someone could just post how they do it then maybe I will be able to determine what I am doing wrong OR maybe I am supposed to be prompted for all the questions and I just have to wade through answering them - this seems unlikely to me but that's why I'm asking for help, because I just don't know.

     

    -Scott

  • No, you should not be getting questions.  This line is supposed to get the configration file specified and use that configuration.

    DEFAULT_LINUXKERNEL_CONFIG=xxx

    Have you put it back the way it was?

    John A

  • When I use the default configuration i.e. DEFAULT_LINUXKERNEL_CONFIG=da850_omapl138_defconfig then I do not get the questions. So now I have put it back the way it was, but I don't have the configuration I want. 

    -Scott

     

     

     

     

  • Create your own configuration file, put in the same directory as the one that you don't want with a new name.  Then set the DEFAULT_LINUXKERNEL_CONFIG to point to your new config.  I use xconfig rather than menuconfig.

    John A

  • John - This is exactly what I did in response to your first suggestion, but I tried it again with the same results - I get prompted for the all the questions.

    Here is exactly what I am doing:

    1. $DVSDK/psp/linux2.6xxxx>  make menuconfig
    2. copy new .config to  $DVSDK/psp/linux2.6xxxx/arch/arm/configs/smh_config
    3. modify  $DVSDK/psp/linux2.6xxxx/Makefile to point to newly created config file  $DVSDK/psp/linux2.6xxxx/arch/arm/configs/smh_config i.e.  DEFAULT_LINUXKERNEL_CONFIG=smh_config
    4. $DVSDK/psp/linux2.6xxxx> make linux      (UPDATE: this was actually executed from $DVSDK>  make linux)

    Here is the starting of the output from the make command. Maybe there is something here that will provide a clue as to why I get prompted for the questions. Am I possibly missing a step  - make oldconfig, or some other intermediate step I am not aware of?

     

    smh@LNX1:~/omap/ti-dvsdk_omapl138_evm_4_00_00_22$ make linux

    make -C /home/smh/Omap-L138/ti-dvsdk_omasmh@LNX1:~/omap/ti-dvsdk_omapl138_evm_4_00_00_22$ make linux

    make -C /home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- smh_config

    make -C /home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2Let me try a different approach here...6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- smh_config  

    make[1]: Entering directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    make[2]: Nothing to be done for `smh_config'.

    make[1]: Leaving directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    make -C /home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- uImage

    make[1]: Entering directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    scripts/kconfig/conf -s arch/arm/Kconfig

    *

    * Restart config...

    *

    *

    * System Type

    *

    MMU-based Paged Memory Management Support (MMU) [Y/n/?] y

    ARM system type

      1. Agilent AAEC-2000 based (ARCH_AAEC2000) (NEW)

      2. ARM Ltd. Integrator family (ARCH_INTEGRATOR) (NEW)

      3. ARM Ltd. RealView family (ARCH_REALVIEW) (NEW)

    > 4. ARM Ltd. Versatile family (ARCH_VERSATILE) (NEW)

      5. Atmel AT91 (ARCH_AT91) (NEW)

    pl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- smh_config

    make -C /home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- smh_config  

    make[1]: Entering directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    make[2]: Nothing to be done for `smh_config'.

    make[1]: Leaving directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    make -C /home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13 ARCH=arm CROSS_COMPILE=/home/smh/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi- uImage

    make[1]: Entering directory `/home/smh/Omap-L138/ti-dvsdk_omapl138_evm_4_00_00_22/psp/linux-2.6.33-rc4-psp03.20.00.13'

    scripts/kconfig/conf -s arch/arm/Kconfig

    *

    * Restart config...

    *

    *

    * System Type

    *

    MMU-based Paged Memory Management Support (MMU) [Y/n/?] y

    ARM system type

      1. Agilent AAEC-2000 based (ARCH_AAEC2000) (NEW)

      2. ARM Ltd. Integrator family (ARCH_INTEGRATOR) (NEW)

      3. ARM Ltd. RealView family (ARCH_REALVIEW) (NEW)

    > 4. ARM Ltd. Versatile family (ARCH_VERSATILE) (NEW)

      5. Atmel AT91 (ARCH_AT91) (NEW)

     

    ......  Bunch more questions not listed.....

     

    -Scott

     

     

  • Execute Make linux from the $DVSDK directory, not the kernel directory.  Although if you make it from the linux kernel directory it should just use .config.  So maybe there is an error in your .config file.

    John A

  • John Anderson said:

    Execute Make linux from the $DVSDK directory, not the kernel directory.  Although if you make it from the linux kernel directory it should just use .config.  So maybe there is an error in your .config file.

    John A

    Oops. I actually did execute "make linux" from the $DVSDK directory. I'll go correct that post.

    Let me try a different approach here..

    When I execute "make linux" from $DVSDK, using the default configuration provided by TI, a .config is created in the linux directory. Then when I run "make menuconfig" from the linux directory the ONLY thing I change is the bootup logo (for now). I am not answering / modifying anything else. I am assuming that "make menuconfig" acts on the previously created .config file. This seems to be true based on the fact that once I modify the .config via "make menuconfig"  and then do "make menuconfig"  again I do see the changes that I previously entered. i..e the bootup logo changes are still there.  Am I supposed to enter all the configuration info when I do "make menuconfig"?  That doesn't seem reasonable based on what I just described.

    Arrgh... this should be so simple. 

     

     

     

  • Hello,

    make sure you have run

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  menuconfig

    NOT "make menuconfig".

    Thanks

    Brijesh

  • I did the same thing as you, except I used "make xconfig" from the kernel directory and directly saved my new configuration into the config directory from xconfig.  It does seem that you have a problem that's not normal.

    edit: ahh, I may have exported CROSS_COMPILE before I did the make xconfig.

    John A

  • Brijesh Singh said:

    Hello,

    make sure you have run

    make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-  menuconfig

    NOT "make menuconfig".

    Thanks

    Brijesh

    This does seem to work, however after doing this and I go back up to $DVSDK  and execute "make linux" the .config is once again rewritten to the default configuration and I lose my changes. 

    My question:

    After executing "make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-" to build the desired .config file,  what make command should I then execute (I'm assuming from $DVSDK) to build my kernel while preserving the changes I just made to the .config file?

    Regards,

    Scott

     

  • If you look at the Makefile in the $DVSDK directory, the target "linux" actually runs the default config again.  This is why executing "make linux" overrides your custom configuration.

    I would suggest going into the $LINUXKERNEL_INSTALL_DIR and performing the "make ... uImage" directly.

  • smh123 said:

    This does seem to work, however after doing this and I go back up to $DVSDK  and execute "make linux" the .config is once again rewritten to the default configuration and I lose my changes. 

    My question:

    After executing "make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-" to build the desired .config file,  what make command should I then execute (I'm assuming from $DVSDK) to build my kernel while preserving the changes I just made to the .config file?

    Regards,

    Scott

     

    This was discussed in previous posts in this thread.

    smh123 said:

    Here is exactly what I am doing:

    1. $DVSDK/psp/linux2.6xxxx>  make menuconfig
    2. copy new .config to  $DVSDK/psp/linux2.6xxxx/arch/arm/configs/smh_config
    3. modify  $DVSDK/psp/linux2.6xxxx/Makefile to point to newly created config file  $DVSDK/psp/linux2.6xxxx/arch/arm/configs/smh_config i.e.  DEFAULT_LINUXKERNEL_CONFIG=smh_config
    4. $DVSDK/psp/linux2.6xxxx> make linux      (UPDATE: this was actually executed from $DVSDK>  make linux)

    You posted this above.  It should be using "your" configuration that you put in the .../arch/arm/configs" directory.  When you perform step 4, it should copy smh_config to .config and build that configuration.

     

     

  • BrandonAzbell said:

    I would suggest going into the $LINUXKERNEL_INSTALL_DIR and performing the "make ... uImage" directly.

    Brandon,

    Thanks.  You suggestion is what worked. 

    It would be nice if the documentation for the $DVSDK was updated with this information. This is basic stuff, but it would help those of us who are new to configuring / building kernels. Thanks again.

    Regards,

    Scott