am335x system upgrade rootfs using yocto make rootfs(十二)
1 Scope of Document
This document describes how to make am335x arago rootfs using ycoto project
2 Requiremen
2.1 Function Requirement
Make am335x arago rootfs
2.2 Performance Requirement
NA
3 Functional Description
3.1 Ycoto
3.1.1 Overview
If we look back at the last 15 years of the feld of embedded systems, we will see that
everything has changed radically. Embedded systems have become more and more powerful
and have gained new functionalities. Today, you can fnd "embedded" quad-core systems
with 1 GB of RAM and several GBs of storage, comparable to a few-years-old desktop
computer. Nowadays, it is not unusual that the requirements of an embedded system are low
consumption, graphic acceleration, multimedia capabilities, suffcient storage, and so on.
On the software side, if we look back again at those 15 years, we will notice that most of the
Linux-running embedded systems at that time were in-house developments built from the
ground up. Their main functionality was to boot the device and run the specifc application
(usually not graphical) the device was designed for. A typical system from those days
contained a minimal Linux kernel, a small C library (uclibc), BusyBox as the base user space,
and then the specifc application or set of applications.
As the hardware became more powerful and gained more functionalities, the requirements
of the software also increased. With embedded systems becoming powerful enough to
run distributions that were considered mostly for desktops (such as Debian or Ubuntu), it's
no longer as easy as building a minimal set of software packages (uclibc, BusyBox, and a
command-line application) anymore. You now have to choose between different windowing
systems (X11, Wayland, and so on) and different graphic libraries (Qt, GTK, and so on). Maybe
your hardware has dedicated units for video processing (VPU) or graphics processing (GPU)
and is running its own frmware, and so on.
All of this extra diffculty is what makes an embedded software engineer look for new tools
that ease their work and speed up the development. This is the context where different Linux
build systems began to appear.
The Yocto Project (YP) is a popular open-source collaboration project focused on embedded Linux developers. In early versions of YP it could be problematic to get it running on Arch Linux.
4 Procedure
4.1 Download cross compiler and Unpack
tar –Jvxf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
4.2 Install relate tools
sudo apt-get -f install git build-essential diffstat texinfo gawk chrpath
sudo apt-get install libstdc++6:i386 libncurses5:i386 libz1:i386 libc6:i386 libc6-dev-i386 g++-multilib
4.3 Fetch am335x yocto project
git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk
4.4 Configure
cd tisdk
./oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-05.00.00.15-config.txt
4.5 Compiler
cd build
. config/setenv
$ TOOLCHAIN_PATH=/home/anosi/work/arago/tisdk/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf MACHINE=am335x-evm bitbake core-image-minimal
5 Follow-up
$ TOOLCHAIN_PATH=/home/anosi/work/arago/tisdk/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf MACHINE=am335x-evm bitbake core-image-minimal
Loading cache: 100% |#########################################################################################################################################################################################################| Time: 0:00:01
Loaded 4043 entries from dependency cache.
Parsing recipes: 100% |#######################################################################################################################################################################################################| Time: 0:00:15
Parsing of 3137 .bb files complete (3134 cached, 3 parsed). 4046 targets, 484 skipped, 0 masked, 0 errors.
WARNING: No recipes available for:
/home/anosi/work/arago/tisdk/tisdk/sources/meta-arago/meta-arago-distro/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.8.3.bbappend
/home/anosi/work/arago/tisdk/tisdk/sources/meta-processor-sdk/recipes-devtools/python/python3-native_3.5.2.bbappend
/home/anosi/work/arago/tisdk/tisdk/sources/meta-processor-sdk/recipes-graphics/wayland/weston_1.11.0.bbappend
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.36.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-18.04"
TARGET_SYS = "arm-linux-gnueabi"
MACHINE = "am335x-evm"
DISTRO = "arago"
DISTRO_VERSION = "2018.04"
TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard"
TARGET_FPU = "hard"
meta-processor-sdk = "HEAD:264dc66c689e0e4212c43358382986ee470619d4"
meta-ros = "HEAD:e2566402ab108a19634354a934788109422cf409"
meta-arago-distro
meta-arago-extras = "HEAD:d54e9d6c1d461dbf3189e691088d328bf4c4fb19"
meta-browser = "HEAD:26d50665e2f7223c5f4ad7481a8d2431e7cb55fb"
meta-qt5 = "HEAD:682ad61c071a9710e9f9d8a32ab1b5f3c14953d1"
meta-networking
meta-python
meta-oe
meta-gnome
meta-multimedia = "HEAD:352531015014d1957d6444d114f4451e241c4d23"
meta-ti = "HEAD:8555084679dc5c668e5fb60a16425ca32b10ff21"
meta-linaro-toolchain
meta-optee = "HEAD:75dfb67bbb14a70cd47afda9726e2e1c76731885"
meta = "HEAD:931a52e8698f684ccbb26ddec18764ad9d9a3e8f"
Initialising tasks: 100% |####################################################################################################################################################################################################| Time: 0:00:06
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
$<50>Currently 1 running tasks (513 of 1778) 28% |###################################################### $<50>No currently running tasks (1777 of 1778) 99% |########################################################################################################################################################################################$<50>NOTE: Tasks Summary: Attempted 1778 tasks of which 1683 didn't need to be rerun and all succeeded.
Summary: There was 1 WARNING message shown.
Rootfs path:
build/arago-tmp-external-linaro-toolchain/work/am335x_evm-linux-gnueabi/core-image-minimal