[{"data":1,"prerenderedAt":330},["ShallowReactive",2],{"blog-en-/en/blog/yocto-embedded-linux":3},{"id":4,"title":5,"body":6,"description":316,"extension":317,"meta":318,"navigation":232,"path":326,"seo":327,"stem":328,"__hash__":329},"en_blog/en/blog/yocto-embedded-linux.md","Creating Custom Distributions with Yocto for Embedded Linux Systems",{"type":7,"value":8,"toc":306},"minimark",[9,14,18,22,25,30,59,63,66,173,177,180,196,200,203,286,290,293,296,302],[10,11,13],"h2",{"id":12},"introduction","Introduction",[15,16,17],"p",{},"When developing embedded Linux systems, creating a customized and optimized operating system distribution is critically important. Yocto Project is a powerful tool that has become the industry standard for this purpose.",[10,19,21],{"id":20},"what-is-yocto-project","What is Yocto Project?",[15,23,24],{},"Yocto Project is an open-source collaboration project used to create embedded Linux distributions. It is built on top of the BitBake build engine and OpenEmbedded layer architecture.",[26,27,29],"h3",{"id":28},"key-advantages","Key Advantages",[31,32,33,41,47,53],"ul",{},[34,35,36,40],"li",{},[37,38,39],"strong",{},"Customization",": Minimal or full-featured systems tailored to your needs",[34,42,43,46],{},[37,44,45],{},"Easy Maintenance",": Easy updates with layered architecture",[34,48,49,52],{},[37,50,51],{},"Wide Hardware Support",": Works on various architectures",[34,54,55,58],{},[37,56,57],{},"Community Support",": Active developer community",[10,60,62],{"id":61},"getting-started","Getting Started",[15,64,65],{},"To start developing with Yocto, you first need to install the required tools:",[67,68,73],"pre",{"className":69,"code":70,"language":71,"meta":72,"style":72},"language-bash shiki shiki-themes github-light github-dark","sudo apt-get install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool\n","bash","",[74,75,76],"code",{"__ignoreMap":72},[77,78,81,85,89,92,95,98,101,104,107,110,113,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170],"span",{"class":79,"line":80},"line",1,[77,82,84],{"class":83},"sScJk","sudo",[77,86,88],{"class":87},"sZZnC"," apt-get",[77,90,91],{"class":87}," install",[77,93,94],{"class":87}," gawk",[77,96,97],{"class":87}," wget",[77,99,100],{"class":87}," git",[77,102,103],{"class":87}," diffstat",[77,105,106],{"class":87}," unzip",[77,108,109],{"class":87}," texinfo",[77,111,112],{"class":87}," gcc",[77,114,115],{"class":87}," build-essential",[77,117,118],{"class":87}," chrpath",[77,120,121],{"class":87}," socat",[77,123,124],{"class":87}," cpio",[77,126,127],{"class":87}," python3",[77,129,130],{"class":87}," python3-pip",[77,132,133],{"class":87}," python3-pexpect",[77,135,136],{"class":87}," xz-utils",[77,138,139],{"class":87}," debianutils",[77,141,142],{"class":87}," iputils-ping",[77,144,145],{"class":87}," python3-git",[77,147,148],{"class":87}," python3-jinja2",[77,150,151],{"class":87}," libegl1-mesa",[77,153,154],{"class":87}," libsdl1.2-dev",[77,156,157],{"class":87}," pylint3",[77,159,160],{"class":87}," xterm",[77,162,163],{"class":87}," python3-subunit",[77,165,166],{"class":87}," mesa-common-dev",[77,168,169],{"class":87}," zstd",[77,171,172],{"class":87}," liblz4-tool\n",[10,174,176],{"id":175},"creating-layers","Creating Layers",[15,178,179],{},"To create your own layer:",[67,181,183],{"className":69,"code":182,"language":71,"meta":72,"style":72},"bitbake-layers create-layer meta-mycompany\n",[74,184,185],{"__ignoreMap":72},[77,186,187,190,193],{"class":79,"line":80},[77,188,189],{"class":83},"bitbake-layers",[77,191,192],{"class":87}," create-layer",[77,194,195],{"class":87}," meta-mycompany\n",[10,197,199],{"id":198},"recipe-writing","Recipe Writing",[15,201,202],{},"Basic structure of an application recipe:",[67,204,208],{"className":205,"code":206,"language":207,"meta":72,"style":72},"language-python shiki shiki-themes github-light github-dark","SUMMARY = \"My Custom Application\"\nLICENSE = \"MIT\"\nLIC_FILES_CHKSUM = \"file://LICENSE;md5=...\"\n\nSRC_URI = \"git://github.com/mycompany/myapp.git;protocol=https\"\nSRCREV = \"${AUTOREV}\"\n\ninherit cmake\n\ndo_install() {\n    install -d ${D}${bindir}\n    install -m 0755 myapp ${D}${bindir}\n}\n","python",[74,209,210,215,221,227,234,240,246,251,257,262,268,274,280],{"__ignoreMap":72},[77,211,212],{"class":79,"line":80},[77,213,214],{},"SUMMARY = \"My Custom Application\"\n",[77,216,218],{"class":79,"line":217},2,[77,219,220],{},"LICENSE = \"MIT\"\n",[77,222,224],{"class":79,"line":223},3,[77,225,226],{},"LIC_FILES_CHKSUM = \"file://LICENSE;md5=...\"\n",[77,228,230],{"class":79,"line":229},4,[77,231,233],{"emptyLinePlaceholder":232},true,"\n",[77,235,237],{"class":79,"line":236},5,[77,238,239],{},"SRC_URI = \"git://github.com/mycompany/myapp.git;protocol=https\"\n",[77,241,243],{"class":79,"line":242},6,[77,244,245],{},"SRCREV = \"${AUTOREV}\"\n",[77,247,249],{"class":79,"line":248},7,[77,250,233],{"emptyLinePlaceholder":232},[77,252,254],{"class":79,"line":253},8,[77,255,256],{},"inherit cmake\n",[77,258,260],{"class":79,"line":259},9,[77,261,233],{"emptyLinePlaceholder":232},[77,263,265],{"class":79,"line":264},10,[77,266,267],{},"do_install() {\n",[77,269,271],{"class":79,"line":270},11,[77,272,273],{},"    install -d ${D}${bindir}\n",[77,275,277],{"class":79,"line":276},12,[77,278,279],{},"    install -m 0755 myapp ${D}${bindir}\n",[77,281,283],{"class":79,"line":282},13,[77,284,285],{},"}\n",[10,287,289],{"id":288},"conclusion","Conclusion",[15,291,292],{},"Yocto Project offers flexibility and control in embedded Linux development. When used correctly, it allows you to create easy-to-maintain and optimized systems.",[294,295],"hr",{},[15,297,298],{},[299,300,301],"em",{},"At Amazeng, we provide consulting and development services for embedded Linux systems. Contact us for your needs.",[303,304,305],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":72,"searchDepth":217,"depth":217,"links":307},[308,309,312,313,314,315],{"id":12,"depth":217,"text":13},{"id":20,"depth":217,"text":21,"children":310},[311],{"id":28,"depth":223,"text":29},{"id":61,"depth":217,"text":62},{"id":175,"depth":217,"text":176},{"id":198,"depth":217,"text":199},{"id":288,"depth":217,"text":289},"Learn how to create custom distributions for embedded Linux systems using Yocto Project, layer management, and recipe writing.","md",{"date":319,"author":320,"readTime":253,"tags":321},"2024-07-15","Amazeng Technical Team",[322,323,324,325],"Yocto","Embedded Linux","Build Systems","IoT","/en/blog/yocto-embedded-linux",{"title":5,"description":316},"en/blog/yocto-embedded-linux","qk7SgVeRnX0KPKAwigrGnHCqXY9aF16ajSFLCNd5Axo",1778229659009]