Building Linux on p2020rdb using Yocto

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Building Linux on p2020rdb using Yocto

1,495 Views
matt_tsai
Contributor I

Hi all,

I have an existing old hardware platform that bases on p2020rdb running Linux 2.6. Now I would like to update and customize the platform to run a more recent version of Linux using Yocto build system. I wonder if I can get some suggestions of how to start here. Any suggestions such as where to get the build software and how to build the images are appreciated.

Thank you in advance for your help!

Labels (1)
Tags (2)
0 Kudos
2 Replies

1,000 Views
Pavel
NXP Employee
NXP Employee

NXP offers SDK 1.9 Linux BSP for the P2020.

Use the following page:

https://www.nxp.com/products/processors-and-microcontrollers/power-architecture-processors/qoriq-pla...

 

Use PC Linux for SDK building. See the Section 3.2.2 of SDK 2.0-1703 documentation:

https://www.nxp.com/docs/en/supporting-information/QORIQ-SDK-2.0-IC-REV0.pdf

 

This SDK has been verified on following Linux distributions: Ubuntu 14.04, CentOS-7.1.1503,

Debian 8.2, Fedora 22 and OpenSUSE 13.2

 

1) Use Ubuntu 14. Do not use Ubuntu 16.

Usually the following command sequence is used for SDK installing under Ubuntu 14.04 64-bit:

  1. sudo apt-get install ubuntu-minimal ubuntu-standard patch vim-common sed wget subversion git-core coreutils libbonobo2-common unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat make gcc build-essential xz-utils g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm libncurses5-dev cvs tofrodos

 

  1. a) command: ls -l /bin/sh

                Message:  /bin/sh -> dash

  1. b) command: sudo dpkg-reconfigure dash

                Answer after password – No

                Message:

                Removing 'diversion of /bin/sh to /bin/sh.distrib by dash'

                Adding 'diversion of /bin/sh to /bin/sh.distrib by bash'

                Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'

                Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'

  1. c) command for checking: ls -l /bin/sh

                Message: /bin/sh -> bash

 

  1. mount SDK source .iso file
  2. cd <sdk-install-dir>.
  3. ./sources/meta-freescale/scripts/host-prepare.sh

Usually Linux recommends also run the following command: sudo usr/sbin/visudo

  1. Download and unpack the QorIQ Linux SDK v2.0-1703.bz2

Install SDK v2.0-1703

  1. bitbake fsl-image-minimal

 

 

There are also prebuilt images in this SDK. See the Section 3.2.2.


Have a great day,
Pavel Chubakov

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,000 Views
matt_tsai
Contributor I

I was able to build fsl-iamge-minimal using SDK 1.9. However, I encountered the following u-boot error when booting the target using ramdisk:

=> printenv
bootcmd=setenv bootargs root=/dev/$bdev rw rootdelay=30 console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm $loadaddr - $fdtaddr
ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs; tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr
bootdelay=10
baudrate=115200
bootfile=uImage
loadaddr=1000000
uboot=u-boot.bin
loadaddr=1000000
ramdiskaddr=2000000
ramdiskfile=rootfs.ext2.gz.uboot
fdtaddr=c00000
fdtfile=p2020rdb.dtb
othbootargs=ramdisk_size=700000 cache-sram-size=0x10000
...

=> run ramboot
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'rootfs.ext2.gz.uboot'.
Load address: 0x2000000
Loading: #################################################################
         #################################################################
         #################################################################
         ####################
done
Bytes transferred = 3151506 (301692 hex)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'uImage'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ################################
done
Bytes transferred = 4276118 (413f96 hex)
Speed: 1000, full duplex
Using eTSEC1 device
TFTP from server 192.168.0.1; our IP address is 192.168.0.100
Filename 'p2020rdb.dtb'.
Load address: 0xc00000
Loading: #
done
Bytes transferred = 13899 (364b hex)
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
   Image Name:   Linux-3.12.37-rt51+g43cecda
   Created:      2018-11-09  19:37:52 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    4276054 Bytes =  4.1 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
   Image Name:   fsl-image-minimal-p2020rdb-20181
   Created:      2018-11-09  19:46:04 UTC
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    3151442 Bytes =  3 MB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
   Booting using the fdt blob at 0xc00000
   Uncompressing Kernel Image ... Error: inflate() returned -5
GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover
NAND boot... skipping
transfering control

Please help explain what causes this error and provide the solution.

Thank you very much for the help.

0 Kudos