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

Eric Schwarz eas at sw-optimization.com
Fri Dec 1 08:30:41 PST 2017


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



More information about the yocto mailing list