Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

پېژندنه

د مقالو پدې لړۍ کې ، زه غواړم د جوړونې توزیع جوړونې سیسټم وګورم او د دې په دودیز کولو کې زما تجربه شریکه کړم. د ګرافیکي انٹرفیس او لږترلږه فعالیت سره د کوچني OS رامینځته کولو کې به عملي تجربه وي.

له هرڅه دمخه ، تاسو باید د جوړونې سیسټم او توزیع ګډوډ نه کړئ. Buildroot کولی شي د کڅوړو سیټ څخه سیسټم رامینځته کړي چې ورته وړاندیز کیږي. بلډروټ په میک فایلونو کې جوړ شوی او له همدې امله د دودیز کولو خورا لوی ظرفیتونه لري. یو بسته د بلې نسخې سره بدله کړئ، خپل کڅوړه اضافه کړئ، د بسته بندۍ لپاره قواعد بدل کړئ، د ټولو کڅوړو نصبولو وروسته د فایل سیسټم دودیز کړئ؟ buildroot دا ټول کولی شي.

په روسیه کې، بلډروټ کارول کیږي، مګر زما په اند د پیل کونکو لپاره د روسی ژبې لږ معلومات شتون لري.

د کار هدف د ژوندی ډاونلوډ ، icewm انٹرفیس او براوزر سره د توزیع کټ راټولول دي. د هدف پلیټ فارم مجازی بکس دی.

ولې خپل ویش جوړ کړئ؟ ډیری وختونه د محدودو سرچینو سره محدود فعالیت ته اړتیا لیدل کیږي. حتی ډیر ځله په اتوماتیک کې تاسو اړتیا لرئ فرم ویئر رامینځته کړئ. د غیر ضروري کڅوړو پاکولو او په فرم ویئر بدلولو سره د عمومي هدف توزیع تطابق کول د نوي توزیع رامینځته کولو په پرتله خورا ډیر کار دی. د جینټو کارول هم خپل محدودیتونه لري.

د بلډروټ سیسټم خورا پیاوړی دی، مګر دا به ستاسو لپاره هیڅ ونه کړي. دا یوازې کولی شي د مجلس پروسې فعال او اتومات کړي.

د بدیل جوړونې سیسټمونه (یوکټو، د پرانیستې جوړونې سیسټم او نور) په پام کې نه نیول کیږي یا پرتله کیږي.

چیرته یې ترلاسه کړئ او څنګه یې پیل کړئ

د پروژې ویب پاڼه - buildroot.org. دلته تاسو کولی شئ اوسنی نسخه ډاونلوډ کړئ او لارښود ولولئ. هلته تاسو کولی شئ له ټولنې سره اړیکه ونیسئ، د بګ تعقیبونکی، د بریښنالیک لیستونه او د IRC چینل شتون لري.

Buildroot د جوړونې هدف بورډ لپاره defconfigs چلوي. Defconfig د ترتیب کولو فایل دی چې یوازې هغه اختیارونه ذخیره کوي چې ډیفالټ ارزښتونه نلري. دا هغه څوک دی چې ټاکي چې څه به راټول شي او څنګه. په دې حالت کې، تاسو کولی شئ په جلا توګه د busybox، linux-kernel، uglibc، u-boot او barebox بوټلوډرونو ترتیبونه تنظیم کړئ، مګر دا ټول به د هدف بورډ سره وتړل شي.
د ډاونلوډ شوي آرشیف خلاصولو یا د ګیټ څخه کلون کولو وروسته ، موږ د کارونې لپاره چمتو بلډروټ ترلاسه کوو. تاسو کولی شئ په لارښود کې د لارښود جوړښت په اړه نور ولولئ؛ زه به تاسو ته د خورا مهم په اړه ووایم:

بورډ - د هر بورډ لپاره ځانګړي فایلونو سره لارښود. دا د سیسټم عکسونو جوړولو لپاره سکریپټونه کیدی شي (iso، sdcart، cpio او نور)، د پوښښ ډایرکټر، د کرنل ترتیب، او نور.
شکلونه - د بورډ ریښتیني defconfig. Defconfig د بورډ نامکمل تشکیل دی. دا یوازې پیرامیټونه ذخیره کوي چې د ډیفالټ ترتیباتو څخه توپیر لري
dl - د راټولولو لپاره د ډاونلوډ شوي سرچینې کوډونو / فایلونو سره لارښود
محصول/هدف - د پایلې OS راټول شوي فایل سیسټم. وروسته له هغې څخه عکسونه د ډاونلوډ / نصبولو لپاره رامینځته کیږي
output/host - د مجلس لپاره د کوربه اسانتیاوې
تولید/جوړول - راټول شوي کڅوړې

مجلس د KConfig له لارې تنظیم شوی. ورته سیسټم د لینکس کرنل جوړولو لپاره کارول کیږي. د ډیری عام کارول شوي کمانډونو لیست (په بلډروټ لارښود کې اجرا کول):

  • menuconfig جوړ کړئ - د جوړونې ترتیب ته زنګ ووهئ. تاسو کولی شئ ګرافیکي انٹرفیس هم وکاروئ (nconfig جوړ کړئ، xconfig جوړ کړئ، gconfig جوړ کړئ)
  • linux-menuconfig جوړ کړئ - د کرنل ترتیب ته زنګ ووهئ.
  • پاک کړئ - د جوړونې پایلې پاک کړئ (هر څه چې په محصول کې زیرمه شوي)
  • جوړ کړئ - یو سیسټم جوړ کړئ. دا دمخه راټول شوي پروسې بیا نه راټولوي.
  • defconfig_name جوړ کړئ - ترتیب یو ځانګړي defconfig ته واړوئ
  • لیست - defconfigs جوړ کړئ - د defconfigs لیست ښکاره کړئ
  • سرچینه جوړ کړئ - پرته له جوړولو پرته د نصب کولو فایلونه ډاونلوډ کړئ.
  • مرسته وکړئ - ممکنه حکمونه لیست کړئ

مهم یادښتونه او ګټورې لارښوونې

بلډروټ هغه کڅوړې نه جوړوي چې دمخه جوړ شوي وي! له همدې امله، یو حالت رامینځته کیدی شي چیرې چې بشپړ بیا راټولولو ته اړتیا وي.

تاسو کولی شئ د کمانډ سره جلا کڅوړه بیا جوړه کړئ د بستې نوم جوړ کړئ - بیا جوړ کړئ. د مثال په توګه، تاسو کولی شئ د لینکس کرنل بیا جوړ کړئ:

make linux-rebuild

Buildroot د محصول/build/$packagename لارښود کې د سټمپ فایلونو په جوړولو سره د هرې کڅوړې حالت ذخیره کوي:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

له همدې امله، تاسو کولی شئ د کڅوړو بیا رغولو پرته روټ-fs او انځورونه بیا جوړ کړئ:

rm output/build/host-gcc-final-*/.stamp_host_installed;rm -rf output/target;find output/ -name ".stamp_target_installed" |xargs rm -rf ; make

ګټور تغیرات

buildroot د اسانه ترتیب لپاره د متغیرونو سیټ لري

  • $TOPDIR - buildroot Directory
  • $BASEDIR - OUTPUT لارښود
  • $HOST_DIR, $STAGING_DIR, $TARGET_DIR — کوربه fs, staging fs, هدف fs جوړ لارښود.
  • $BUILD_DIR - ډایرکټر د نه بسته شوي او جوړ شوي کڅوړو سره

لید

buildroot د لید لید ځانګړتیا لري تاسو کولی شئ په وروستي سیسټم کې د انحصار ډیاګرام ، د جوړیدو وخت ګراف او د بسته اندازې ګراف جوړ کړئ. پایلې د pdf فایلونو په شکل کې دي (تاسو کولی شئ له svn، png څخه غوره کړئ) د محصول/ګراف لارښود کې.

د لیدلو امرونو بیلګې:

  • make graph-depends د انحصار ونې جوړول
  • make <pkg>-graph-depends د یو ځانګړي کڅوړې لپاره د انحصار ونې رامینځته کړئ
  • BR2_GRAPH_OUT=png make graph-build د PNG محصول سره د پلاټ جوړولو وخت
  • make graph-size د پلاټ د بسته اندازه

ګټور سکریپټونه

د buildroot لارښود کې فرعي لارښود شتون لري استعمالونه د ګټورو سکریپټونو سره. د مثال په توګه، یو سکریپټ شتون لري چې د بسته بندي توضیحاتو سموالی ګوري. دا ممکن ګټور وي کله چې ستاسو خپل کڅوړې اضافه کړئ (زه به وروسته دا کار وکړم). د utils/readme.txt فایل د دې سکریپټونو توضیحات لري.

راځئ چې د سټاک ویش جوړ کړو

دا مهمه ده چې په یاد ولرئ چې ټول عملیات د منظم کارونکي په استازیتوب ترسره کیږي، نه د ریښې.
ټول حکمونه په بلډروټ کې اجرا کیږي. د بلډروټ کڅوړه کې دمخه د ډیری عام بورډونو او مجازی کولو لپاره د تشکیلاتو سیټ شامل دی.

راځئ چې د تشکیلاتو لیست وګورو:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د qemu_x86_64_defconfig ترتیب ته لاړ شئ

make qemu_x86_64_defconfig

او موږ مجلس پیل کوو

make

جوړښت په بریالیتوب سره بشپړ شو، پایلې وګورئ:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

Buildroot هغه عکسونه تالیف کړي چې تاسو یې په Qemu کې چلولی شئ او تصدیق کړئ چې دوی کار کوي.

qemu-system-x86_64 -kernel output/images/bzImage -hda    output/images/rootfs.ext2 -append "root=/dev/sda rw" -s -S

پایله یو سیسټم دی چې په qemu کې روان دی:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د خپل بورډ ترتیب کول

د بورډ فایلونو اضافه کول

راځئ چې د تشکیلاتو لیست وګورو:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

په لیست کې موږ ګورو pc_x86_64_efi_defconfig. موږ به د دې ترتیب څخه کاپي کولو سره خپل بورډ جوړ کړو:

cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig

راځئ چې سمدلاسه د بورډ لارښود جوړ کړو چې زموږ سکریپټونه، روټ ایفس-اوورلي او نور اړین فایلونه ذخیره کړي:

mkdir board/my_x86_board

دې defconfig ته واړوئ:

make my_x86_board_defconfig

په دې توګه، اوس د جوړونې ترتیب (د buildroot لارښود په روټ کې په .config کې زیرمه شوی) د x86-64 میراث (bios) بوټ هدف ماشین سره مطابقت لري.

راځئ چې د لینکس کرنل ترتیب کاپي کړو (وروسته ګټور):

cp board/pc/linux.config board/my_x86_board/

د KConfig له لارې د جوړونې پیرامیټونه تنظیم کول

راځئ چې تنظیم پیل کړو:

make menuconfig 

د KConfig کړکۍ به پرانیزي. دا ممکنه ده چې د ګرافیکي انٹرفیس سره تنظیم کړئ (nconfig جوړ کړئ، xconfig جوړ کړئ، gconfig جوړ کړئ):

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

موږ لومړی برخه د هدف انتخابونو ته ننوځو. دلته تاسو کولی شئ د هدف جوړښت وټاکئ د کوم لپاره چې جوړونه به ترسره شي.

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د جوړولو اختیارونه - دلته د جوړونې مختلف تنظیمات شتون لري. تاسو کولی شئ د سرچینې کوډونو سره لارښودونه مشخص کړئ ، د جوړو تارونو شمیر ، د سرچینې کوډونو ډاونلوډ کولو لپاره عکسونه او نور ترتیبات. راځئ چې ترتیبات په ډیفالټ کې پریږدو.

Toolchain - د جوړولو وسیلې پخپله دلته تنظیم شوي. د هغه په ​​اړه نور ولولئ.

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د اوزار چین ډول - د کارول شوي اوزار چین ډول. دا کیدای شي د وسیلې چین وي چې په بلډروټ یا یو بهرني کې جوړ شوی وي (تاسو کولی شئ لارښود د دمخه جوړ شوي یو یا د ډاونلوډ کولو لپاره یو آر ایل سره مشخص کړئ). د مختلف معمارۍ لپاره اضافي اختیارونه شتون لري. د مثال په توګه ، د بازو لپاره تاسو کولی شئ په ساده ډول د بهرني وسیلې چین لینکارو نسخه غوره کړئ.

C کتابتون - د C کتابتون انتخاب. د ټول سیسټم عملیات پدې پورې اړه لري. عموما، glibc کارول کیږي، کوم چې د ټولو ممکنه فعالیت ملاتړ کوي. مګر دا ممکن د سرایت شوي سیسټم لپاره خورا لوی وي، نو ډیری وختونه uglibc یا musl غوره کیږي. موږ به glibc غوره کړو (دا به وروسته د سیسټمډ کارولو لپاره اړین وي).

د کرنل سرلیکونه او د ګمرک کرنل سرلیک لړۍ - باید د کرنل نسخه سره سمون ولري چې په راټول شوي سیسټم کې به وي. د کرنل سرلیکونو لپاره، تاسو کولی شئ د ټاربال یا ګیټ ذخیره کولو لاره هم مشخص کړئ.

د GCC کمپیلر نسخه - د جوړولو لپاره د کارولو لپاره د کمپیلر نسخه غوره کړئ
د C++ ملاتړ فعال کړئ - په سیسټم کې د C++ کتابتونونو لپاره د ملاتړ سره د جوړولو لپاره غوره کړئ. دا به په راتلونکي کې زموږ لپاره ګټور وي.

د Gcc اضافي اختیارونه - تاسو کولی شئ اضافي کمپیلر اختیارونه تنظیم کړئ. موږ د اوس لپاره ورته اړتیا نلرو.

د سیسټم ترتیب تاسو ته اجازه درکوي د رامینځته شوي سیسټم راتلونکي پیرامیټونه تنظیم کړئ:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د سرلیک څخه ډیری ټکي روښانه دي. راځئ چې لاندې ټکو ته پام وکړو:
د کاروونکو میزونو ته لاره - د کاروونکو سره میز چې جوړ شي (https://buildroot.org/downloads/manual/manual.html#makeuser-syntax).

د مثال فایل. د کارونکي کارونکي به د پاسورډ اډمین سره رامینځته شي ، په اتوماتيک ډول gid/uid ، /bin/sh شیل ، ډیفالټ ګروپ کارونکي ، د ګروپ غړي روټ ، تبصره فو یو کارن

[alexey@alexey-pc buildroot ]$ cat board/my_x86_board/users.txt 
user -1 user -1 =admin /home/user /bin/sh root Foo user

د روټ فایل سیسټم پوښښ لارښودونه - لارښود د راټول شوي هدف-fs په سر کې پوښل شوی. نوي فایلونه اضافه کوي او موجوده فایلونه بدلوي.

د فایل سیسټم عکسونو رامینځته کولو دمخه د چلولو لپاره دودیز سکریپټونه - سکریپټونه په عکسونو کې د فایل سیسټم فولډ کولو دمخه سمدلاسه اجرا کیږي. راځئ چې سکریپټ د اوس لپاره خالي پریږدو.

راځئ چې د کرنل برخې ته لاړ شو

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د کرنل ترتیبات دلته تنظیم شوي دي. کرنل پخپله د make linux-menuconfig له لارې تنظیم شوی.
تاسو کولی شئ د کرنل نسخه په بیلابیلو لارو تنظیم کړئ: له وړاندیز شوي څخه غوره کړئ ، نسخه په لاسي ډول دننه کړئ ، ذخیره یا چمتو شوي ټربال مشخص کړئ.

د کرنل ترتیب - د کرنل ترتیب ته لاره. تاسو کولی شئ د لینکس څخه د ټاکل شوي جوړښت یا defocnfig لپاره ډیفالټ ترتیب وټاکئ. د لینکس سرچینه د مختلف هدف سیسټمونو لپاره د defconfigs سیټ لري. تاسو کولی شئ هغه یو ومومئ چې تاسو ورته اړتیا لرئ دلته مستقیم سرچینو ته په کتلو سره. د مثال په توګه، د بیګل هډوکي تور بورډ لپاره تاسو کولی شئ ترتیب غوره کړئ.

د هدف بسته بندۍ برخه تاسو ته اجازه درکوي غوره کړئ چې کوم کڅوړې به په سیسټم کې نصب شي. راځئ چې دا د اوس لپاره بدله پریږدو. موږ به وروسته پدې لیست کې زموږ کڅوړې اضافه کړو.
د فایل سیسټم عکسونه - د فایل سیسټم عکسونو لیست چې راټولیږي. د iso انځور اضافه کړئ

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

بوټلوډر - د راټولولو لپاره د بوټلوډرونو انتخاب. راځئ چې isolinix غوره کړو

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د سیسټم ترتیب کول

Systemd د کرنل او glibc سره یوځای د لینکس یو له ستنو څخه جوړیږي. له همدې امله، ما د دې ترتیب جلا توکي ته لیږدول.

د make menuconfig له لارې ترتیب شوی، بیا د هدف کڅوړې → سیسټم اوزار → سیسټم. دلته تاسو کولی شئ مشخص کړئ چې کوم سیسټم شوي خدمات به نصب او پیل شي کله چې سیسټم پیل شي.

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د سیسټم ترتیب خوندي کول

موږ دا تشکیل د KConfig له لارې خوندي کوو.

بیا زموږ defconfig خوندي کړئ:

make savedefconfig

د لینکس کرنل ترتیب

د لینکس کرنل ترتیب د لاندې کمانډ سره غوښتنه کیږي:

make linux-menuconfig

راځئ چې د Virtualbox ویډیو کارت لپاره ملاتړ اضافه کړو

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

راځئ چې د Virtualbox میلمانه ادغام ملاتړ اضافه کړو

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

خوندي او وتل. مهم: ترتیب به په output/build/linux-$version/config کې خوندي شي، مګر په board/my_x86_board/linux.config کې نه

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

له همدې امله ، تاسو اړتیا لرئ په لاسي ډول ترتیب د ذخیره کولو ځای ته کاپي کړئ:

cp output/build/linux-4.19.25/.config board/my_x86_board/linux.config

له هغې وروسته به موږ د ټول سیسټم بشپړ بیا یوځای کول ترسره کړو. buildroot هغه څه نه رغوي چې دمخه جوړ شوي وي ، تاسو باید په لاسي ډول د بیارغونې لپاره کڅوړې مشخص کړئ. د دې لپاره چې وخت او اعصاب ضایع نشي، دا په بشپړ ډول د کوچني سیسټم بیا رغول اسانه دي):

make clean;make

د جوړیدو په بشپړیدو سره، VirtualBox (په 5.2 او 6.0 نسخو کې ازمول شوی) د سي ډي څخه بوټ کول پیل کړئ. د سیسټم پیرامیټونه:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د راټول شوي iso څخه پیل کړئ:

Buildroot - لومړۍ برخه. عمومي معلومات، د لږترلږه سیسټم راټولول، د مینو له لارې ترتیب کول

د کارول شویو موادو لیست

  1. د جوړولو لارښود

سرچینه: www.habr.com

Add a comment