tl؛ dr: زه په برنامه کې د ARM کمپیوټر لپاره د کالي لینکس عکس جوړوم debootstrap
, linux
и u-boot
.
که تاسو یو څه خورا مشهور واحد تادیه کونکي وپیرئ ، تاسو ممکن د دې لپاره د خپلې خوښې توزیع کټ عکس نشتوالي سره مخ شئ. تقریبا ورته شی پیښ شوی
د ډاونلوډ پروسه خورا ساده ده:
- هارډویر پیل شوی.
- د ذخیره کولو وسیلې (SD کارت/eMMC/etc) له ځینې ساحې څخه بوټلوډر لوستل کیږي او اجرا کیږي.
- لوډر د عملیاتي سیسټم کرنل لټوي او د حافظې ځینې ساحې ته یې باروي او اجرا کوي.
- کرنل د OS پاتې برخه باروي.
زما د کار لپاره، د تفصیل دا کچه کافي ده، تاسو کولی شئ توضیحات ولولئ
د روټ فایل سیسټم جوړول
لومړی تاسو اړتیا لرئ چې برخې چمتو کړئ. داس یو بوټ د مختلف فایل سیسټمونو ملاتړ کوي، ما د دې لپاره FAT32 غوره کړ /boot
او ext3 د روټ لپاره، دا د ARM لاندې کالي لپاره معیاري عکس مارک اپ دی. زه به د GNU پارټډ وکاروم ، مګر تاسو کولی شئ ورته نور وپیژنئ fdisk
. تاسو به هم اړتیا ولرئ dosfstools
и e2fsprogs
د فایل سیسټم جوړولو لپاره: apt install parted dosfstools e2fsprogs
.
د SD کارت ویشل:
- د MBR ویشلو په کارولو سره SD کارت په نښه کړئ:
parted -s /dev/mmcblk0 mklabel msdos
- لپاره یوه برخه جوړه کړئ
/boot
د 128 میګابایټ لپاره:parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB
. لومړی ورک شوی میګابایټ باید پخپله د مارک اپ او بوټلوډر لپاره پریښودل شي. - د پاتې ظرفیت لپاره روټ FS جوړ کړئ:
parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
- که ناڅاپه تاسو د پارټشن فایلونه نه وي رامینځته کړي یا بدل کړي ، تاسو اړتیا لرئ د 'پارټ پروب' اجرا کړئ ، نو د برخې جدول به بیا لوستل شي.
- د بوټ پارشن فایل سیسټم لیبل جوړ کړئ
BOOT
:mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
- د لیبل سره د روټ فایل سیسټم جوړ کړئ
ROOTFS
:mkfs.ext3 -L ROOTFS /dev/mmcblk0p2
ښه، اوس تاسو کولی شئ دا ډک کړئ. دا به اضافي ته اړتیا ولري debootstrap
، د Debian په څیر عملیاتي سیسټمونو کې د روټ FS رامینځته کولو لپاره یو ګټورتیا: apt install debootstrap
.
موږ FS راټولوو:
- د برخې برخې ته نصب کړئ
/mnt/
(د ځان لپاره یو ډیر مناسب ماونټ ټکی وکاروئ):mount /dev/mmcblk0p2 /mnt
- په حقیقت کې موږ د فایل سیسټم ډکوو:
debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali
. پیرامیټر--include
د ځینې کڅوړو اضافي نصبولو لپاره مشخص کوي ، ما په ثابت ډول جوړ شوی QEMU ایمولیټر مشخص کړ. دا تاسو ته اجازه درکوي چې ترسره کړيchroot
د ARM چاپیریال ته. د نورو اختیارونو معنی په کې موندل کیدی شيman debootstrap
. مه هېروئ چې د ARM هر بورډ د معمارۍ ملاتړ نه کويarmhf
. - په معمارۍ کې د توپیر له امله
debootstrap
په دوو مرحلو کې ترسره کیږي، دویم په لاندې ډول ترسره کیږي:chroot /mnt/ /debootstrap/debootstrap --second-stage
- اوس تاسو ته اړتیا لرئ:
chroot /mnt /bin/bash
- موږ ډکوو
/etc/hosts
и/etc/hostname
هدف FS. ستاسو په محلي کمپیوټر کې د مینځپانګې په څیر ډک کړئ، یوازې د کوربه نوم بدلولو په یاد ولرئ. - تاسو کولی شئ نور هرڅه تنظیم کړئ. په ځانګړې توګه، زه نصب کوم
locales
(د ذخیره کولو کیلي)، د ځای او وخت زون بیا تنظیمول (dpkg-reconfigure locales tzdata
). د کمانډ سره پاسورډ تنظیم کول مه هیروئpasswd
. - لپاره پاسورډ تنظیم کړئ
root
ډلهpasswd
. - زما لپاره د عکس چمتو کول د ډکولو سره بشپړ شوي
/etc/fstab
دننه/mnt/
.
زه به د مخکې جوړ شوي ټاګونو سره سم اپلوډ کړم ، نو مینځپانګه به داسې وي:
LABEL=ROOTFS / اتومات تېروتنې = remount-ro 0 1
LABEL=BOOT/boot اوتومات ډیفالټ 0 0
په نهایت کې ، تاسو کولی شئ د بوټ برخې نصب کړئ ، موږ به دا د کرنل لپاره اړتیا ولرو: `mount /dev/mmcblk0p1 /mnt/boot/`
د لینکس جوړول
په دیبین ټیسټینګ کې د کرنل (او بیا بوټلوډر) جوړولو لپاره ، تاسو اړتیا لرئ د هدف معمارۍ لپاره د GCC ، GNU Make او GNU C کتابتون سرلیک فایلونو معیاري سیټ نصب کړئ (زه لرم armhf
)، همدارنګه د OpenSSL سرلیکونه، د کنسول کیلکولیټر bc
, bison
и flex
: apt install crossbuild-essential-armhf bison flex libssl-dev bc
. ځکه چې ډیفالټ لوډر د فایل په لټه کې دی zImage
د بوټ برخې فایل سیسټم کې، دا د فلش ډرایو ماتولو وخت دی.
- د کرنل کلون کول خورا اوږد دي، نو زه به یې ډاونلوډ کړم:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz
. خلاص کړئ او د سرچینې لارښود ته لاړ شئ:tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
- د تالیف کولو دمخه تنظیم کړئ:
make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig
. تشکیل په لارښود کې دیarch/arm/configs/
. که چیرې هیڅ نه وي، تاسو کولی شئ د چمتو شوي موندلو او ډاونلوډ کولو هڅه وکړئ او په دې لارښود کې د فایل نوم پیرامیټر ته انتقال کړئ.KBUILD_DEFCONFIG
. په سختو قضیو کې، سمدستي راتلونکي پراګراف ته لاړ شئ. - تاسو کولی شئ په اختیاري ډول تنظیمات ټیک کړئ:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- او انځور کراس تالیف کړئ:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
- اوس تاسو کولی شئ د کرنل فایل کاپي کړئ:
cp arch/arm/boot/zImage /mnt/boot/
- او د DeviceTree څخه فایلونه (د هارډویر توضیحات په بورډ کې شتون لري):
cp arch/arm/boot/dts/*.dtb /mnt/boot/
- او د جلا فایلونو په توګه راټول شوي ماډلونه نصب کړئ:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install
دانه چمتو ده. تاسو کولی شئ هرڅه غیر نصب کړئ: umount /mnt/boot/ /mnt/
داس یو بوټ
څرنګه چې بوټلوډر متقابل دی، پخپله بورډ، د ذخیره کولو وسیله، او یو اختیاري USB-to-UART وسیله د دې عملیات ازموینې لپاره کافي دي. دا دی، تاسو کولی شئ کرنل او OS د وروسته لپاره وځنډوئ.
ډیری جوړونکي وړاندیز کوي چې د لومړني بوټ لپاره داس یو بوټ وکاروئ. بشپړ ملاتړ معمولا په خپل فورک کې چمتو کیږي ، مګر په پورته جریان کې مرسته کول مه هیروئ. زما په قضیه کې، بورډ په کې ملاتړ کیږي
موږ بوټلوډر پخپله راټولوو:
- د ذخیره مستحکم څانګه کلون کړئ:
git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
- راځئ چې پخپله لارښود ته لاړ شو:
cd u-boot
- د جوړونې ترتیب چمتو کول:
make mx6ull_14x14_evk_defconfig
. دا یوازې هغه وخت کار کوي چې تشکیل پخپله داس U-Bot کې وي ، که نه نو تاسو اړتیا لرئ د جوړونکي تشکیل ومومئ او په فایل کې د ذخیره کولو ریښې کې یې واچوئ..config
، یا د جوړونکي لخوا وړاندیز شوي په بل ډول راټول شوي. - موږ د بوټلوډر عکس پخپله د کراس کمپیلر سره راټولوو
armhf
:make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx
د پایلې په توګه، موږ فایل ترلاسه کوو u-boot.imx
، دا یو چمتو شوی عکس دی چې په USB فلش ډرایو کې لیکل کیدی شي. موږ SD کارت ته لیکو ، لومړی 1024 بایټس پریږدو. ولې مې هدف وټاکه u-boot.imx
؟ ولې دقیقا 1024 بایټس له لاسه ورکړ؟ دا هغه څه دي چې دوی یې وړاندیز کوي
بشپړ شوی، تاسو کولی شئ ډاونلوډ کړئ. بوټلوډر باید خپل نسخه راپور کړي، د بورډ په اړه ځینې معلومات، او هڅه وکړي چې په ویش کې د کرنل انځور ومومي. که دا ناکام شي، دا به هڅه وکړي چې په شبکه کې بوټ وکړي. په عموم کې، محصول خورا مفصل دی، تاسو کولی شئ د ستونزې په صورت کې یوه تېروتنه ومومئ.
پر ځای د يو پایلې
ایا پوهیدئ چې دالفین تندی هډوکی نه وي؟ دا په حقیقت کې دریمه سترګه ده، د ایکولوکیشن لپاره غوړ لینز!
سرچینه: www.habr.com