ጂኤንዩ/ሊኑክስን በARM ሰሌዳ ላይ ከባዶ ጀምሮ (ካሊ እና iMX.6ን እንደ ምሳሌ በመጠቀም)

tl; ድበፕሮግራሙ ውስጥ ለኤአርኤም ኮምፒውተር የ Kali Linux ምስል እየገነባሁ ነው። debootstrap, linux и u-boot.

ጂኤንዩ/ሊኑክስን በARM ሰሌዳ ላይ ከባዶ ጀምሮ (ካሊ እና iMX.6ን እንደ ምሳሌ በመጠቀም)

በጣም ተወዳጅ ያልሆኑ ነጠላ ከፋይ ከገዙ፣ ለእሱ የሚወዱት ማከፋፈያ ኪት ምስል እጥረት ሊያጋጥሙዎት ይችላሉ። በጣም ተመሳሳይ ነገር ተከስቷል። የታቀደ ፍሊፐር አንድ. በቀላሉ ካሊ ሊኑክስ ለአይኤምኤክስ6 የለም (እያዘጋጀሁ ነው)፣ ስለዚህ እኔ ራሴ መሰብሰብ አለብኝ።

የማውረድ ሂደቱ በጣም ቀላል ነው-

  1. ሃርድዌር ተጀምሯል።
  2. ከአንዳንድ ቦታዎች በማከማቻ መሳሪያው (ኤስዲ ካርድ/ኢኤምኤምሲ/ወዘተ) ቡት ጫኚው ይነበባል እና ይፈጸማል።
  3. ጫኚው የስርዓተ ክወናውን ከርነል ፈልጎ ወደ አንዳንድ የማህደረ ትውስታ ቦታ ጭኖ ያስፈጽማል።
  4. ኮርነሉ የተቀረውን ስርዓተ ክወና ይጭናል.

ለተግባሬ, ይህ የዝርዝር ደረጃ በቂ ነው, ዝርዝሮቹን ማንበብ ይችላሉ በሌላ መጣጥፍ. ከላይ የተጠቀሱት "አንዳንድ" ቦታዎች ከቦርድ ወደ ቦርድ ይለያያሉ, ይህም አንዳንድ የመጫን ችግሮች ይፈጥራል. የአገልጋይ ARM መድረኮችን በመጫን ላይ ደረጃውን የጠበቀ ለማድረግ መሞከር UEFI ን በመጠቀም ግን ለሁሉም ሰው እስካልተገኘ ድረስ ሁሉንም ነገር ለየብቻ መሰብሰብ ይኖርብዎታል።

የስር ፋይል ስርዓት መገንባት

በመጀመሪያ ክፍሎችን ማዘጋጀት ያስፈልግዎታል. Das U-Boot የተለያዩ የፋይል ስርዓቶችን ይደግፋል, FAT32 ን መርጫለሁ /boot እና ext3 ለስር፣ ይህ በARM ስር ለ Kali መደበኛ ምስል ምልክት ነው። እኔ GNU Partedን እጠቀማለሁ፣ ግን ያው የበለጠ የተለመደ እንዲሆን ማድረግ ትችላለህ fdisk. እንዲሁም ያስፈልግዎታል dosfstools и e2fsprogs የፋይል ስርዓት ለመፍጠር; apt install parted dosfstools e2fsprogs.

የኤስዲ ካርዱን መከፋፈል;

  1. የኤስዲ ካርዱን እንደ MBR ክፍልፍልን ምልክት ያድርጉበት፡- parted -s /dev/mmcblk0 mklabel msdos
  2. ለ ክፍል ፍጠር /boot ለ 128 ሜጋባይት; parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB. የመጀመሪያው ያመለጠ ሜጋባይት ለራሱ እና ለቡት ጫኚው መተው አለበት።
  3. ለቀሪው አቅም ስር FS ይፍጠሩ፡ parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. በድንገት የክፋይ ፋይሎችን ካልፈጠሩ ወይም ካልቀየሩ፣ `partprobe`ን መፈጸም ያስፈልግዎታል፣ ከዚያ የክፍል ሰንጠረዡ እንደገና ይነበባል።
  5. የተሰየመ የማስነሻ ክፍልፋይ ፋይል ስርዓት ይፍጠሩ BOOT: mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. ከመለያ ጋር ስርወ ፋይል ስርዓት ይፍጠሩ ROOTFS: mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

በጣም ጥሩ, አሁን መሙላት ይችላሉ. ይህ በተጨማሪ ያስፈልገዋል debootstrapበዴቢያን በሚመስሉ ኦፕሬቲንግ ሲስተሞች ላይ root FSን ለመፍጠር መገልገያ፡- apt install debootstrap.

FS እንሰበስባለን:

  1. ክፋዩን ወደ ላይ ይጫኑት። /mnt/ (ለራስህ የበለጠ ምቹ የሆነ የመጫኛ ነጥብ ተጠቀም) mount /dev/mmcblk0p2 /mnt
  2. በእውነቱ የፋይል ስርዓቱን እንሞላለን- debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling /mnt/ http://http.kali.org/kali. መለኪያ --include በተጨማሪም አንዳንድ ፓኬጆችን ለመጫን ይጠቅሳል፣ በስታቲስቲክስ የተሰራ QEMU emulator ገለጽኩ። እንዲፈጽሙ ይፈቅድልዎታል chroot ወደ ARM አካባቢ. የሌሎቹ አማራጮች ትርጉም በ ውስጥ ይገኛል። man debootstrap. እያንዳንዱ የ ARM ቦርድ አርክቴክቸርን እንደማይደግፍ አትዘንጉ armhf.
  3. በሥነ ሕንፃ ውስጥ ባለው ልዩነት ምክንያት debootstrap በሁለት ደረጃዎች ይከናወናል, ሁለተኛው እንደሚከተለው ይከናወናል. chroot /mnt/ /debootstrap/debootstrap --second-stage
  4. አሁን ማሽከርከር ያስፈልግዎታል: chroot /mnt /bin/bash
  5. እኛ እንሞላለን /etc/hosts и /etc/hostname ኢላማ FS. በአከባቢዎ ኮምፒውተር ላይ ካለው ይዘት ጋር ተመሳሳይ ይሙሉ፣ የአስተናጋጁን ስም ብቻ መተካትዎን ያስታውሱ።
  6. ሁሉንም ነገር ማበጀት ይችላሉ. በተለይም እኔ እጭነዋለሁ locales (የማከማቻ ቁልፎች) ፣ አከባቢዎችን እና የሰዓት ሰቅ እንደገና ማዋቀር (dpkg-reconfigure locales tzdata). የይለፍ ቃሉን ከትእዛዙ ጋር ማቀናበርን አይርሱ passwd.
  7. የይለፍ ቃል ያዘጋጁ ለ root ቡድን passwd.
  8. ለእኔ የምስሉ ዝግጅት በመሙላት ይጠናቀቃል /etc/fstab ውስጥ /mnt/.

ቀደም ሲል በተፈጠሩት መለያዎች መሰረት እሰቅላለሁ፣ ስለዚህ ይዘቱ እንደዚህ ይሆናል፡-

LABEL=ROOTFS/ auto errors=remount-ro 0 1
LABEL=BOOT/boot auto defaults 0 0

በመጨረሻም የቡት ክፋይን መጫን ትችላላችሁ፣ ለከርነል እንፈልጋለን፡ `mount /dev/mmcblk0p1 /mnt/boot/`

ሊኑክስን መገንባት

በዴቢያን ሙከራ ላይ ከርነል (ከዚያም ቡት ጫኚውን) ለመገንባት መደበኛውን የጂሲሲ፣ የጂኤንዩ ሜክ እና የጂኤንዩ ሲ ላይብረሪ አርዕስት ፋይሎችን ለታለመው አርክቴክቸር መጫን አለቦት (አለኝ) armhf), እንዲሁም OpenSSL ራስጌዎች, የኮንሶል ማስያ bc, bison и flex: apt install crossbuild-essential-armhf bison flex libssl-dev bc. ነባሪ ጫኚው ፋይል ስለሚፈልግ zImage በቡት ክፋይ የፋይል ስርዓት ላይ, ፍላሽ አንፃፉን ለመስበር ጊዜው አሁን ነው.

  1. ከርነሉን መዝጋት በጣም ረጅም ነው፣ ስለዚህ እኔ ብቻ እወርዳለሁ፡- 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
  2. ከማጠናቀርዎ በፊት ያዋቅሩት፡- make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig. ውቅሩ በማውጫው ውስጥ ነው። arch/arm/configs/. ምንም ከሌለ, ዝግጁ የሆነን ለማግኘት እና ለማውረድ መሞከር እና በዚህ ማውጫ ውስጥ የፋይሉን ስም ወደ መለኪያው ማስተላለፍ ይችላሉ. KBUILD_DEFCONFIG. በአስጊ ሁኔታ ውስጥ, ወዲያውኑ ወደ ቀጣዩ አንቀጽ ይቀጥሉ.
  3. እንደ አማራጭ ቅንብሮቹን ማስተካከል ይችላሉ- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. እና ምስሉን አቋርጥ፦ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. አሁን የከርነል ፋይሉን መቅዳት ይችላሉ፡- cp arch/arm/boot/zImage /mnt/boot/
  6. እና ከ DeviceTree ፋይሎች (በቦርዱ ላይ የሚገኝ የሃርድዌር መግለጫ) cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. እና እንደ የተለየ ፋይሎች የተሰበሰቡትን ሞጁሎች ይጫኑ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

ከርነሉ ዝግጁ ነው። ሁሉንም ነገር መንቀል ይችላሉ፡- umount /mnt/boot/ /mnt/

ዳስ ዩ ቡት

ቡት ጫኚው በይነተገናኝ ስለሆነ ቦርዱ ራሱ፣ የማከማቻ መሳሪያ እና አማራጭ የዩኤስቢ-ወደ-UART መሳሪያ ስራውን ለመፈተሽ በቂ ናቸው። ማለትም፣ ከርነል እና ስርዓተ ክወናውን በኋላ ለሌላ ጊዜ ማስተላለፍ ይችላሉ።

አብዛኛዎቹ አምራቾች Das U-Bootን ለዋና ቡት መጠቀምን ይጠቁማሉ። ሙሉ ድጋፍ ብዙውን ጊዜ የሚቀርበው በራሱ ሹካ ውስጥ ነው፣ ነገር ግን ወደ ላይኛው ዥረት ውስጥ ማበርከትዎን አይርሱ። በእኔ ሁኔታ, ቦርዱ ውስጥ ይደገፋል ዋና መስመርስለዚህ ሹካ ችላ አልኩት።

ማስነሻውን ራሱ እንሰበስባለን-

  1. የማጠራቀሚያውን የተረጋጋ ቅርንጫፍ ይዝጉ; git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. ወደ ማውጫው ራሱ እንሂድ፡- cd u-boot
  3. የግንባታ ውቅር በማዘጋጀት ላይ; make mx6ull_14x14_evk_defconfig. ይህ የሚሠራው ውቅሩ በራሱ በ Das U-Boot ውስጥ ከሆነ ብቻ ነው, አለበለዚያ የአምራችውን ውቅረት ማግኘት እና በፋይሉ ውስጥ ባለው የማከማቻ ስር ውስጥ ማስቀመጥ ያስፈልግዎታል. .config, ወይም በአምራቹ በሚመከር በሌላ መንገድ ተሰብስቧል.
  4. የቡት ጫኚውን ምስል በራሱ በመስቀል-ማጠናቀቂያ እንሰበስባለን armhf: make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

በውጤቱም, ፋይሉን እናገኛለን u-boot.imx, ይህ ወደ ዩኤስቢ ፍላሽ አንፃፊ ሊፃፍ የሚችል ዝግጁ የሆነ ምስል ነው. የመጀመሪያውን 1024 ባይት እየዘለልን ወደ ኤስዲ ካርድ እንጽፋለን። ለምን ኢላማን መረጥኩ። u-boot.imx? ለምን በትክክል 1024 ባይት አመለጡ? ውስጥ ለማድረግ ያሰቡት ይህ ነው። ሰነድ. ለሌሎች ቦርዶች, የምስሉ ግንባታ እና የማቃጠል ሂደት ትንሽ የተለየ ሊሆን ይችላል.

ተከናውኗል፣ ማውረድ ይችላሉ። ቡት ጫኚው የራሱን ስሪት, ስለ ቦርዱ አንዳንድ መረጃዎችን ሪፖርት ማድረግ እና በክፋዩ ላይ ያለውን የከርነል ምስል ለማግኘት መሞከር አለበት. ካልተሳካ በአውታረ መረቡ ላይ ለማስነሳት ይሞክራል። በአጠቃላይ ውጤቱ በጣም ዝርዝር ነው, በችግር ጊዜ ስህተትን ማግኘት ይችላሉ.

ከዚህ ይልቅ አንድ መደምደሚያ

የዶልፊን ግንባር አጥንት እንዳልሆነ ያውቃሉ? እሱ በጥሬው ሶስተኛው አይን ነው፣ ለድምፅ ማሚቶ የሚሆን የሰባ መነፅር!

ጂኤንዩ/ሊኑክስን በARM ሰሌዳ ላይ ከባዶ ጀምሮ (ካሊ እና iMX.6ን እንደ ምሳሌ በመጠቀም)

ጂኤንዩ/ሊኑክስን በARM ሰሌዳ ላይ ከባዶ ጀምሮ (ካሊ እና iMX.6ን እንደ ምሳሌ በመጠቀም)

ምንጭ: hab.com