[yocto] Yocto SDK: how to deploy application with step "make install" to target?

Jerry Lian jerry.lian at gmail.com
Fri Dec 1 08:56:54 PST 2017


OK, that is what confused me: I DID try "make modules_install" on host!

So according to what you said, the right procedure is:
* do          "make install"                on host, then copy to target:
* don't do "make modules_install" on host, but make a package first, then
copy to target and install.
* right?

* then how to make a package?
* how do I know which are "relevant other files"?

sorry for my newbie questions, thanks!





On Fri, Dec 1, 2017 at 11:30 AM, Eric Schwarz <eas at sw-optimization.com>
wrote:

> Am 01.12.2017 16:58, schrieb Jerry Lian:
>
> Thanks Eric again.
>> * So you mean "copy -Rfa" can match folder-by-folder, so long as the
>> folder-tree are the same?
>> (if yes, that is super great!!!)
>>
>
> Yes.
>
> * I check that "make install" copy files to one folder, so that is easy
>> for deployment!
>>
>> Another question:
>> * My application actually has another step: "make modules_install"
>> (surely step "make modules" also)
>> * But I got error (see below):
>> what could be wrong with "SSL error"? isn't build already passed
>> successfully?
>>
>
> You are doing the 'make modules_install' on the target or where else? You
> need to build the modules within the Yocto environment and may create a
> package e.g. *.deb you may install later on the target or copy the modules
> by hand including relevant other files needed. Obviously the system tries
> to recompile the kernel modules. That's what 'make modules_install' does.
>
>
>
>> ------------------------------------------------------------
>> ----------------------------------------
>> jerry at yct:~/ecat-33b922$ make modules_install
>> make -C "/usr/src/linux-headers-4.10.0-28-generic"
>> M="/home/jerry/ecat-33b922" \
>> INSTALL_MOD_DIR="ethercat" modules_install
>> make[1]: Entering directory '/usr/src/linux-headers-4.10.0-28-generic'
>> mkdir: cannot create directory '/lib/modules/4.10.0-28-generic/ethercat':
>> Permission denied
>> Makefile:1536: recipe for target '_emodinst_' failed
>> make[1]: *** [_emodinst_] Error 1
>> make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-28-generic'
>> Makefile:934: recipe for target 'modules_install' failed
>> make: *** [modules_install] Error 2
>>
>> jerry at yct:~/ecat-33b922$ sudo make modules_install
>> make -C "/usr/src/linux-headers-4.10.0-28-generic"
>> M="/home/jerry/ecat-33b922" \
>> INSTALL_MOD_DIR="ethercat" modules_install
>> make[1]: Entering directory '/usr/src/linux-headers-4.10.0-28-generic'
>> INSTALL /home/jerry/ecat-33b922/devices/ec_generic.ko
>> At main.c:158:
>> - SSL error:02001002:system library:fopen:No such file or directory:
>> bss_file.c:175
>> - SSL error:2006D080:BIO routines:BIO_new_file:no such file:
>> bss_file.c:178
>> sign-file: certs/signing_key.pem: No such file or directory
>> INSTALL /home/jerry/ecat-33b922/examples/mini/ec_mini.ko
>> At main.c:158:
>> - SSL error:02001002:system library:fopen:No such file or directory:
>> bss_file.c:175
>> - SSL error:2006D080:BIO routines:BIO_new_file:no such file:
>> bss_file.c:178
>> sign-file: certs/signing_key.pem: No such file or directory
>> INSTALL /home/jerry/ecat-33b922/master/ec_master.ko
>> At main.c:158:
>> - SSL error:02001002:system library:fopen:No such file or directory:
>> bss_file.c:175
>> - SSL error:2006D080:BIO routines:BIO_new_file:no such file:
>> bss_file.c:178
>> sign-file: certs/signing_key.pem: No such file or directory
>> DEPMOD  4.10.0-28-generic
>> make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-28-generic'
>>
>> jerry at yct:~/ecat-33b922$
>> ------------------------------------------------------------
>> -------------------------------------------
>>
>> Thanks!
>>
>> On Fri, Dec 1, 2017 at 10:37 AM, Eric Schwarz <eas at sw-optimization.com>
>> wrote:
>> Am 01.12.2017 16:15, schrieb Jerry Lian:
>>
>> Thanks Eric for your explanation!
>> * (I know I can build the app within yocto build, but sometimes I prefer
>> the SDK method outside yocto build.)
>>
>> * So just copy manually? I thought there are some tricks  that I don't
>> know.
>>
>> Acutally that's how we are doing it ...
>>
>> Now I have follow-up question:
>> * It seems that "make install" will copy different files to different
>> folders
>> * Can I do like these:?
>> --- make
>> --- copy (via scp)
>> --- make install
>> * Or it needs to be:
>> --- make
>> --- make install Install the cross-compiled stuff on your local disc e.g.
>> into a "transfer" directory. Then copy it to the target.
>> On the target 'cp -Rfa <transfer-dir>/* /' should do it if the basic
>> directory structure fits to your rootFS.
>>
>> --- copy (via scp) -----then how do I know: what files to go which folder?
>> --- can you explain:
>> "... you may supply a custom install prefix directory to configure." ---
>> how?
>>
>> There is IMHO no standardized variable available. Just look into the
>> configure script how the variable is named and if it is actually available
>> at all.
>>
>> Thanks!
>>
>> On Fri, Dec 1, 2017 at 9:34 AM, Eric Schwarz <eas at sw-optimization.com>
>> wrote:
>> Am 01.12.2017 15:16, schrieb Eric Schwarz:
>>
>> Hi Jerry,
>>
>> Am 01.12.2017 15:07, schrieb Jerry Lian:
>>
>> I am new to embedded linux, and some concepts confuse me:
>> * I have downloaded an Autotools-based application to run on my board.
>> * If I boot the board with original image/original SDK, I normally
>> build/install it with steps:
>> ----- ./bootstrap
>> ----- ./configure
>> ----- make
>> ----- make install
>> You may build your app within yocto build process so your application is
>> contained in your rootFS directly.
>>
>> * Now if I boot the board with yocto image without SDK, how can I deploy
>> the application?
>> ---- (surely I do "bitbake -c populate_sdk some-image", and source the
>> environment!)
>>
>> ----- ./bootstrap (Yocto SDK on host)
>> ----- ./configure (Yocto SDK on host)
>> ----- make         (Yocto SDK on host)
>> ----- make install (???)
>> If you build it w/ the SDK outside of the yocto build process just
>> install it to a local directory and copy all the stuff w/ e.g. scp onto
>> your boards rootFS.  ... you may supply a custom install prefix directory
>> to configure.
>>
>> * How to do "make install"? (I want to install it on target, but how?)
>>
>> Thanks!
>> Cheers
>> Eric
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20171201/12ba068b/attachment.html>


More information about the yocto mailing list