introduction
In hac articulorum serie, inspicere volo systema aedificandi constructum distributionis et experientiam meam communicare in ea customiendo. Experientia practica erit in parvo OS creando cum instrumento graphico ac minima functione.
Primum omnium ratio aedificandi et distribuendi confundere non debes. Buildroot systema ex statuto fasciculorum quae ei offeruntur potest aedificare. Buildroot of makefiles aedificatum et ideo magnas consuetudines facultates habet. Repone involucrum cum alia versione, sarcinam tuam adde, regulas muta ad sarcinam aedificandas, ratio fasciculi customize omnibus fasciculis insertis? buildroot can haec omnia.
In Russia constructio adhibetur, sed, ut mihi videtur, notitiae linguae Russicae-linguae parum incipientibus sunt.
Propositum operis est ornamentum distributionis colligere cum viva download, interfaciei et navigatoris glaciem. Scopum suggestum virtualbox est.
Quare Γ¦dificΓ‘tis distributionem tuam? Saepe limitata functionality cum limitibus facultatibus necessaria est. Etiam saepius in automatione firmware creare debes. Accommodare ad distributionem generalem, fasciculis superfluis purgando et in firmware convertendo plus laboris intensivus est quam novam distributionem construere. Gentoo usus etiam limites suos habet.
Ratio Buildroot validissima est, sed nihil pro vobis faciet. Hoc solum efficere potest et processus conventus automate.
Systema alterna aedificandi (yocto, ratio aedificandi aperta et alia) non considerantur aut comparantur.
Ubi ad eam et quomodo incipit
Project website -
Buildroot operates defconfigs for the target board of build. Defconfig fasciculus configurationis est qui tantum optiones reponit quae valores default non habent. Ipse est qui colligitur et quomodo decernit. Hoc in casu, separatim configurare potes ficos de occupatus capsula, linux-kernel, uglibc, u-tabulus et discalceatus praedones, sed omnes tabulae scopo ligatae erunt.
Post fasciculum tabularum receptarum vel e git exquisitae, promptum ad usum constructum accipimus. Plura legere potes de structura directorii manuali, Dicam tibi de maximis:
Board - directorium cum lima specifica ad singulas tabulas. Haec scripta esse possunt ad formandas imagines systematis (iso, sdcart, cpio et aliis), directorium deauratum, nucleus config, etc.
Configs β ipsa defconfig tabulae. Configuratio defconfig tabula incompleta est. Parametris tantum recondit qui ab default occasus differunt
dl - directory with downloaded source codes/ files for assembly
output / scopum - systema fasciculi collecti inde OS. Postmodum imagines ex eo creantur ad demptionem / institutionem
output / exercitum - exercitus utilitas ad ecclesiam
output / constructum - convenerunt packages
Ecclesia per KConfig configuratur. Eadem ratio Linux nucleum aedificandi adhibetur. Index regulae maxime adhibitae (in buildroot directorium exequi);
- fac menuconfig - constructum configuratione vocant. Etiam graphice interface uti potes (nconfig fac, fac xconfig, fac gconfig)
- fac linux-menuconfig - appellant figuram nuclei.
- mundare - constructum eventus emundare (reposita omnia in output)
- make β systema edificandi. Hoc non coeundi iam processuum convenerunt.
- fac defconfig_name - commutandum configurationem ad specifica defconfig
- fac album-defconfigs - ostende indicem defconfigs
- fontem fac - tantum fasciculi institutionem depone, sine aedificio.
- auxilium facere - list possibile imperium
Magna notas ac utile tips
Buildroot not sarcinas aedificatas iam aedificatas! Unde locus oriri potest ubi perfecta congregatio requiritur.
Te potest aedificare separatum sarcina cum imperio Facies packagename, aedificetur. Exempli gratia, Linux nucleum reficere potes:
make linux-rebuild
Buildroot statum aliquem sarcina per partum files in output .stamp addit / constructum / Directory $ packagename:
Unde potes radice-fs et imagines reficere sine fasciculis reaedificandis;
rm output/build/host-gcc-final-*/.stamp_host_installed;rm -rf output/target;find output/ -name ".stamp_target_installed" |xargs rm -rf ; make
Utilis Variabiles
buildroot habet paro of variables ut facile configuratione
- $ TOPDIR - buildroot Directory
- $ BASEDIR - REFERO Directory
- $HOST_DIR, $STAGING_DIR, $TARGET_DIR - exercitus fs, choragi fs, scopum fs presul aedificant.
- $BUILD_DIR - directorium cum pacto et constructum packages
visualization
buildroot of visualization plumam habet. Potes aedificare tabulam dependentiam, tempus graphi aedificare, et graphi sarcinarum magnitudinum in systemate finali. Eventus in forma imaginum pdf (ex syn, png eligere potes) in directorio output/graphio.
Exempla visualisationis mandata:
make graph-depends
aedificare dependentia lignomake <pkg>-graph-depends
aedificare dependentiam in ligno specifica sarcinaBR2_GRAPH_OUT=png make graph-build
insidiamini constructum tempus cum PNG outputmake graph-size
insidias mole packet
Utile scriptor
Est subdirectory in buildroot Directory Orcorum cum utilibus scriptis. Exempli gratia, scriptum est, quod rectitudinem descriptionum sarcinae impedit. Hoc utile erit cum fasciculis propriis additis (hoc postea faciam). Tabella utilia/readme.txt descriptionem harum scriptorum continet.
Faciamus stirpe distribution
Praestat meminisse omnes operationes pro usuario iusto, non radice exerceri.
Omnia mandata in buildroot efficiuntur. Sarcina constructio inclusa iam copia configurationum pro multis tabulis communibus et virtualisationi includit.
Inspice tabulam configurationum:
Vertas ad qemu_x86_64_defconfig config
make qemu_x86_64_defconfig
Et incipimus ecclesiam
make
Aedificium perficit feliciter, eventus specta:
Buildroot imagines compilavit quas in Qemu currere potes et cognoscere se operari.
qemu-system-x86_64 -kernel output/images/bzImage -hda output/images/rootfs.ext2 -append "root=/dev/sda rw" -s -S
Effectus est ratio currens in qemu:
Configuratione partum tabula tua
Addens Tabularia Tabularia
Inspice tabulam configurationum:
In indice videmus pc_x86_64_efi_defconfig. Nostram tabulam describendo e configuratione creabimus;
cp configs/pc_x86_64_bios_defconfig configs/my_x86_board_defconfig
Tabulam indicis statim creabimus ut scripta nostra, rootfs-delinearia et alia necessaria documenta reponant:
mkdir board/my_x86_board
Vertas huic defconfig:
make my_x86_board_defconfig
Ita nunc constructum config (repositum in .config in radice directorii aedificatoris) respondet x86-64 legato (bios) machinae scopo tabernus.
Sit exemplum lineae nuclei figuratio (postea utilis);
cp board/pc/linux.config board/my_x86_board/
Profecta constructum parametri per KConfig
In setup lets 'satus:
make menuconfig
KConfig fenestra aperta erit. Configurari potest cum interface graphicali (nconfig fac, xconfig fac, gconfig fac);
Primum sectionem Target Optiones ingredimur. Hic eligere potes scopum architecturae ad quod aedificandum erit faciendum.
Optiones aedificandas - variae sunt hic occasus construendi. Determinare directoria potes cum codicibus fontium, numerus stamina fabricandi, specula ad fontem codes et alia uncinis extrahe. Abeamus occasus ad defaltam.
Toolchain β instrumenta ipsa fabricandi hic configurantur. Plura de eo lege.
Toolchain type - genus toolchain usus est. Hoc instrumentum potest esse in aedificatione vel extraneo constructum (indicem nominare potes cum uno vel domicilio iam constructo ad deprimendum). Additae sunt optiones diversis architecturis. Exempli gratia, pro brachio simpliciter eligere potes versionem Linaro instrumenti externi.
C bibliotheca - selectio bibliothecae C: Operatio totius systematis in hoc pendet. De more, glibc adhibetur, qui omnem functionem possibilem sustinet. Sed potest esse nimis magna pro immersa ratione, ita uglibe vel musl saepe eligitur. Nos glibc eligemus (hoc postea requiretur ut systemd utatur).
Kernel Headers and Custom Kernel Headers series β aequare debet versioni nuclei quae in systemate coadunato erit. Ad capitis capitis nucleos, etiam viam ad tarball vel git repositorium exprimere potes.
GCC COMPILER VERSIONS - compilator versionem ad usum eligere ad aedificationem
Admitte subsidium C++ - selectis aedificare subsidiis pro C++ bibliothecarum in systemate. Hoc nobis in futurum utile erit.
Additional gcc options β you can set additional compiler options. Nunc non opus est.
Systema configuratione permittit tibi ut parametros futuros systematis creati ponas;
Pleraque puncta ex titulo patent. Eamus ad sequentia puncta:
Via ad usores tabulas - mensa cum usoribus creandis (
Exemplum fasciculi. Usor usoris creabitur cum admin tessera, automatice gid/uid, /bin/sh putamen, coetus default user, coetus membrum radix, commento Foo usor
[alexey@alexey-pc buildroot ]$ cat board/my_x86_board/users.txt
user -1 user -1 =admin /home/user /bin/sh root Foo user
Radix filesystem obduces directoriis - directorium obductum super clypeum collectum-fs. Addit novas tabulas ac reponit entibus.
Consuetudo scriptorum currere antequam filesystem imagines creant - Scriptores exsecuti sunt statim antequam filesystem in imaginibus complicatis. Abeamus nunc vacuum scriptionem.
Eamus ad sectionem Kernel
Kernel occasus hic positi sunt. Ipsum nucleum per conformatum facit linux-menuconfig.
Versionem nuclei varie constituere potes: elige ex oblatis, versionem manualem ingredi, repositorium specificare vel tarball paratum.
Configuratio nuclei - iter ad nucleum config. Potes eligere defaltam configurationem pro architecturae electae vel defocnfig ex Linux. Linux fons defconfigum pro diversis systematibus scopum continet. Vos can reperio ille vos postulo
Pars fasciculorum target te permittit eligere quae fasciculi in systemate aedificato instituentur. Nunc non mutatum relinquamus. Fasciculos nostros huic indice postea addemus.
Filesystem imagines - index imaginum systematis fasciculi qui colligentur. Add an iso imaginem
Bootloaders - lectio bootloaders ad colligendum. Eligite isolinix
Vestibulum Systemd
Systemd una ex columnis Linux fit, cum nucleo et glibc. Ergo ad singula item occasum eius movi.
Conformatus per faciunt menuconfig, tunc Target fasciculi β Ratio instrumentorum β systemd. Hic specificare potes quae officia systematica instituantur et incipiant cum ratio incipit.
Salvo configuratione ratio
Hanc config per KConfig servamus.
Salvum fac defconfig nostrum;
make savedefconfig
Linux Kernel configurationis
Configuratio nuclei Linux invocatur cum hoc mandato:
make linux-menuconfig
Addamus subsidium Virtualbox video card
Adde Virtualbox Hospes integrationis auxilio
Servare et exire. MAGNUS: configuratione salvus erit in output/aedificare/linux-$version/config, sed non in tabula/my_x86_board/linux.config
Ideo necesse est ut manually config effingo ad locum repositionis:
cp output/build/linux-4.19.25/.config board/my_x86_board/linux.config
Post quam integram congregationem totius systematis faciemus. constructum quod iam aedificatum non reaedificat, manually sarcinas reficere debet. Ut ne nervis quidem ac nervis, facilior est parva ratio plane reficere);
make clean;make
Peracta aedificatione, VirtualBox (in versionibus 5.2 et 6.0 probata) patuissent e CD parametri systematis:
Cursor a contione iso:
Index materiae usus
- Buildroot manual
Source: www.habr.com