Build the bootable images with QNX IFS

This section describes the detailed steps to build the QNX SBL container sbl_os for the SCB100 board.

Note:
This sbl_os build is supported only for the Linux OS.
  1. Create a working directory, for example, $HOME/bsp/SCB100 and set the SCB100_ROOT_DIR environment variable to point to it.
    $ mkdir -p $HOME/bsp/SCB100
    $ export SCB100_ROOT_DIR=$HOME/bsp/SCB100
                    
    Note:
    This working directory can be created anywhere.
  2. Change directory to the working directory SCB100_ROOT_DIR and extract all third party packages downloaded in the previous section. For example:
    $ cd $SCB100_ROOT_DIR
    $ unzip $HOME/Downloads/815611_FuSa\ SW_Component\ for\ QNX\ OS_0.5.1.zip
    $ unzip $HOME/Downloads/slimbootloader-master.zip
    $ unrar x -r $HOME/Downloads/SCB100_priv_key.rar
                    
    Note:
    Assume all third party packages above were downloaded to the $HOME/Downloads directory.
  3. Extract the the fusa-sdk.zip and hello-fusa.zip sub-packages that are included in the Intel 815611 packages. For example:
    $ unzip fusa-sdk.zip
    $ unzip hello-fusa.zip
    $ chmod -R +w hello-fusa
                    
    Note:
    Make sure that the hello-fusa is a writable directory.
  4. Create a BSP directory, for example, bsp_x86_64 and extract the QNX generic x86_64 BSP that you had downloaded from the QSC in the previous section to this directory. For example:
    $ mkdir bsp_x86_64
    $ unzip -d bsp_x86_64 /home/qnx/qnx800/bsp/BSP_x86_64_be-800_SVN1019295_JBN337.zip
    $ ls
    '815611_FuSa Software Components for QNX OS_Getting_Started_Guide 0.5.1.pdf'
    '815611_FuSa Software Components for QNX OS_Release_Notes 0.5.1.pdf'
     bsp_x86_64
     fusa-sdk
     fusa-sdk.zip
     hello-fusa
     hello-fusa.zip
     SCB100_priv_key
     slimbootloader-master
                    
    Note:
    Assume /home/qnx is your $HOME directory and /home/qnx/qnx800 is your QNX SDP install directory. The generic x86_64 BSP you had downloaded from the QSC in the previous section should be in the /home/qnx/qnx800/bsp directory.
  5. Change directory to the hello-fusa/sbl_os_Makefile directory. For example:
    $ cd hello-fusa/sbl_os_Makefile
                    
  6. Open the make file sbl_os.mk and update these three parameters to match your environment. For example:
    • line 04: BSP_DIR=/home/qnx/bsp/SCB100/bsp_x86_64
    • line 20: SBL_TOP_DIR=/home/qnx/bsp/SCB100/slimbootloader-master
    • line 24: SBL_OS_SIGNING_KEY=/home/qnx/bsp/SCB100/SCB100_priv_key/OS1_TestKey_Pub_RSA3072_priv.pem
  7. Replace the build file scb100.build by using QNX x86_64 BSP build file $SCB100_ROOT_DIR/bsp_x86_64/images/generic-uefi/x86_64-generic-uefi.build. For example:
    $ mv scb100.build scb100.build.bak
    $ cp $SCB100_ROOT_DIR/bsp_x86_64/images/generic-uefi/x86_64-generic-uefi.build scb100.build
                    
  8. Modify the virtual attribute from uefi to multiboot in the new build file scb100.build. For example, change line 10 in scb100.build as below:
    From:
    [virtual=x86_64,uefi +compress] boot = {
    To:
    [virtual=x86_64,multiboot +compress] boot = {
                    
  9. Setup the QNX environment and build QNX SBL container sbl_os. For example:
    $ source /home/qnx/qnx800/qnxsdp-env.sh
    QNX_HOST=/home/qnx/qnx800/host/linux/x86_64
    QNX_TARGET=/home/qnx/qnx800/target/qnx
    MAKEFLAGS=-I/home/qnx/qnx800/target/qnx/usr/include
    $
    $ make -f sbl_os.mk sbl_os
                    

You now have a QNX SBL Container sbl_os that can boot on the SCB100 board.

Page updated: