Difference between revisions of "How to make a yocto rootfs for MIPS CI20"
Line 51: | Line 51: | ||
PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el" | PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el" | ||
EOF | EOF | ||
+ | |||
+ | === Creating a new layer === | ||
+ | |||
+ | Now you need to source the environment file: | ||
+ | |||
+ | source oe-init-build-env | ||
+ | |||
+ | That will create a build directory for you and "cd" automatically into it. | ||
+ | |||
+ | Now create the BSP layer issuing this command: | ||
+ | |||
+ | yocto-bsp create ci20 mips | ||
+ | |||
+ | It will ask some questions; just choose the default option for all of them. | ||
+ | |||
+ | Now we need to edit the "conf/local.conf" file to specify how we want our image to be built. Modify the value of the target machine and set it to "ci20": | ||
+ | |||
+ | MACHINE = "ci20" | ||
=== Adding the CI20 machine === | === Adding the CI20 machine === | ||
− | Create the " | + | Create the "conf/machine/ci20.conf" file: |
− | cat > | + | cat > conf/machine/ci20.conf << "EOF" |
#@TYPE: Machine | #@TYPE: Machine | ||
#@NAME: CI20 | #@NAME: CI20 | ||
Line 70: | Line 88: | ||
=== Building the rootfs === | === Building the rootfs === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Now create the image using this command: | Now create the image using this command: |
Revision as of 05:54, 15 September 2014
Setup the build environment
If the host system doesn't have git-1.7.5 or higher, tar-1.24 or higher and python-2.7.3 or higher, then your best choice is to use the buildtools tarball provided for that kind of situation. Download it from here:
http://downloads.yoctoproject.org/releases/yocto/yocto-1.6.1/buildtools/
Install the buildtools by running the .sh file (/opt/ could be a good place to install it) and then source the environment setup file:
chmod +x poky-eglibc-x86_64-buildtools-tarball-core2-64-buildtools-nativesdk-standalone-1.6.1.sh ./poky-eglibc-x86_64-buildtools-tarball-core2-64-buildtools-nativesdk-standalone-1.6.1.s source /opt/poky/1.6.1/environment-setup-x86_64-pokysdk-linux
Downloading YP Core - Daisy
Download the "YP Core - Daisy" tarball from here:
http://downloads.yoctoproject.org/releases/yocto/yocto-1.6.1/poky-daisy-11.0.1.tar.bz2
Building Yocto
Unpack the tarball and "cd" into the "poky-daisy-11.0.1" directory.
tar xf poky-daisy-11.0.1.tar.bz2 cd poky-daisy-11.0.1
Since in this example we are creating an image for the CI20, we need to build it for MIPS32r2 LittleEndian Hard-Float. We will need to specify a target machine, but unfortunately there isn't any target machine for the CI20 in YP Core - Daisy. In fact, there isn't support for MIPS32r2 either. We are going to change that.
Adding support for MIPS32r2
Create the "meta/conf/machine/include/tune-mips32r2.inc" to add support for MIPS32r2:
cat > meta/conf/machine/include/tune-mips32r2.inc << "EOF" DEFAULTTUNE ?= "mips32r2" require conf/machine/include/tune-mips32.inc TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations" TUNECONFLICTS[mips32r2] = "n64 n32" TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "mips32r2", " -march=mips32r2", "", d)}" AVAILTUNES += "mips32r2 mips32r2el" TUNE_FEATURES_tune-mips32r2 = "${TUNE_FEATURES_tune-mips} mips32r2" MIPSPKGSFX_VARIANT_tune-mips32r2 = "mips32r2" PACKAGE_EXTRA_ARCHS_tune-mips32r2 = "mips mips32 mips32r2" TUNE_FEATURES_tune-mips32r2el = "${TUNE_FEATURES_tune-mipsel} mips32r2" MIPSPKGSFX_VARIANT_tune-mips32r2el = "mips32r2el" PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el" EOF
Creating a new layer
Now you need to source the environment file:
source oe-init-build-env
That will create a build directory for you and "cd" automatically into it.
Now create the BSP layer issuing this command:
yocto-bsp create ci20 mips
It will ask some questions; just choose the default option for all of them.
Now we need to edit the "conf/local.conf" file to specify how we want our image to be built. Modify the value of the target machine and set it to "ci20":
MACHINE = "ci20"
Adding the CI20 machine
Create the "conf/machine/ci20.conf" file:
cat > conf/machine/ci20.conf << "EOF" #@TYPE: Machine #@NAME: CI20 #@DESCRIPTION: MIPS Creator CI20 require conf/machine/include/tune-mips32r2.inc DEFAULTTUNE = "mips32r2el" MACHINE_FEATURES = "serial" SERIAL_CONSOLE = "115200 ttyS4" IMAGE_FSTYPES ?= "tar.bz2" EOF
Building the rootfs
Now create the image using this command:
bitbake core-image-sato
When the build process finishes you will find your rootfs image in the "tmp/deploy/images/ci20/" directory.
tmp/deploy/images/ci20/core-image-sato-ci20-<creation-date>.rootfs.tar.bz2
|