{"id":98045,"date":"2020-10-23T20:42:30","date_gmt":"2020-10-23T18:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6"},"modified":"2020-11-18T00:58:48","modified_gmt":"2020-11-17T22:58:48","slug":"zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6","title":{"rendered":"Uruchamiamy GNU\/Linux na p\u0142ycie ARM od podstaw (na przyk\u0142adzie Kali i iMX.6)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>tl;dr<\/b>: tworz\u0119 obraz Kali Linux dla komputera ARM w programie <code>debootstrap<\/code>, <code>linux <\/code>i <code>u-boot<\/code>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524532\/\"><img decoding=\"async\" alt=\"Uruchamiamy GNU\/Linux na p\u0142ycie ARM od podstaw (na przyk\u0142adzie Kali i iMX.6)\" src=\"\/wp-content\/uploads\/2020\/10\/70004672904f13dea41352c0f9aeb80b.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Je\u015bli kupi\u0142e\u015b jaki\u015b mniej popularny komputer jednop\u0142ytkowy, mog\u0142e\u015b napotka\u0107 na brak obrazu ulubionego dystrybucji. Podobna sytuacja mia\u0142a miejsce z <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/490196\/\">planowanym Flipper One<\/a><\/noindex>. Kali Linux dla IMX6 po prostu nie ma (przygotowuj\u0119), wi\u0119c musz\u0119 go zbudowa\u0107 samodzielnie.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Proces uruchamiania jest do\u015b\u0107 prosty:<\/b><\/p>\n<ol>\n<li>Inicjalizuje si\u0119 sprz\u0119t.<\/li>\n<li>Z pewnego obszaru pami\u0119ci urz\u0105dzenia (karta SD\/eMMC\/etc) odczytywany i wykonywany jest bootloader.<\/li>\n<li>Bootloader znajduje j\u0105dro systemu operacyjnego i \u0142aduje je do pewnego obszaru pami\u0119ci i wykonuje.<\/li>\n<li>J\u0105dro \u0142aduje reszt\u0119 systemu operacyjnego.<\/li>\n<\/ol>\n<p>\nDo moich cel\u00f3w wystarczy taki poziom szczeg\u00f3\u0142owo\u015bci, wi\u0119cej mo\u017cesz przeczyta\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/338806\/\">w innym artykule<\/a><\/noindex>. Wspomniane wcze\u015bniej \u201epewne\u201d obszary r\u00f3\u017cni\u0105 si\u0119 mi\u0119dzy p\u0142ytami, co stwarza pewne trudno\u015bci przy instalacji. \u0141adowanie serwerowych platform ARM <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.arm.com\/documentation\/den0044\/12\/\">pr\u00f3buje si\u0119 standaryzowa\u0107<\/a><\/noindex> dzi\u0119ki UEFI, ale na razie nie jest to dost\u0119pne dla wszystkich, wi\u0119c b\u0119dziesz musia\u0142 zbiera\u0107 wszystko osobno.<\/p>\n<h3>Budowanie systemu plik\u00f3w root<\/h3>\n<p>\nNa pocz\u0105tku nale\u017cy przygotowa\u0107 partycje. U-Boot obs\u0142uguje r\u00f3\u017cne systemy plik\u00f3w, wybra\u0142em FAT32 dla <code>\/boot<\/code> i ext3 dla korzenia, to standardowy podzia\u0142 obraz\u00f3w dla Kali pod ARM. Skorzystam z GNU Parted, ale mo\u017cna to zrobi\u0107 w bardziej znany spos\u00f3b za pomoc\u0105 <code>fdisk<\/code>. Potrzebne b\u0119d\u0105 r\u00f3wnie\u017c <code>dosfstools<\/code> i <code>e2fsprogs<\/code> do tworzenia system\u00f3w plik\u00f3w: <code>apt install parted dosfstools e2fsprogs<\/code>.<\/p>\n<p><b>Partycjonujemy kart\u0119 SD:<\/b><\/p>\n<ol>\n<li>Oznaczamy kart\u0119 SD jako u\u017cywaj\u0105c\u0105 partycjonowania MBR: <code>parted -s \/dev\/mmcblk0 mklabel msdos<\/code><\/li>\n<li>Tworzymy partycj\u0119 pod <code>\/boot<\/code> o rozmiarze 128 megabajt\u00f3w: <code>parted -s \/dev\/mmcblk0 mkpart primary fat32 1MiB 128MiB<\/code>. Pierwszy pomini\u0119ty megabajt musi by\u0107 zostawiony na sam\u0105 struktur\u0119 podzia\u0142u i bootloader.<\/li>\n<li>Tworzymy system plik\u00f3w root na pozosta\u0142\u0105 pojemno\u015b\u0107: <code>parted -s \/dev\/mmcblk0 mkpart primary ext4 128MiB 100%<\/code><\/li>\n<li>Je\u015bli przypadkiem nie utworzy\u0142y si\u0119 lub nie zmieni\u0142y pliki partycji, nale\u017cy wykona\u0107 `partprobe`, wtedy tabela partycji b\u0119dzie przeczytana na nowo.<\/li>\n<li>Tworzymy system plik\u00f3w partycji rozruchowej z etykiet\u0105 <code>BOOT<\/code>: <code>mkfs.vfat -n BOOT -F 32 -v \/dev\/mmcblk0p1<\/code><\/li>\n<li>Tworzymy system plik\u00f3w root z etykiet\u0105 <code>ROOTFS<\/code>: <code>mkfs.ext3 -L ROOTFS \/dev\/mmcblk0p2<\/code><\/li>\n<\/ol>\n<p>\n\u015awietnie, teraz mo\u017cna go wype\u0142nia\u0107. Dodatkowo b\u0119dzie potrzebna <code>debootstrap<\/code>, narz\u0119dzie do tworzenia system\u00f3w plik\u00f3w dla system\u00f3w operacyjnych opartych na Debianie: <code>apt install debootstrap<\/code>.<\/p>\n<p><b>Tworzymy system plik\u00f3w:<\/b><\/p>\n<ol>\n<li>Montujemy partycj\u0119 w <code>\/mnt\/<\/code> (u\u017cyj wygodniejszego dla siebie punktu montowania): <code>mount \/dev\/mmcblk0p2 \/mnt<\/code><\/li>\n<li>Wype\u0142niamy system plik\u00f3w: <code>debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling \/mnt\/ http:\/\/http.kali.org\/kali<\/code>. Parametr <code>--include<\/code> okre\u015bla dodatkowe pakiety do zainstalowania, wskaza\u0142em statycznie skompilowany emulator QEMU. Umo\u017cliwia on wykonywanie <code>chroot<\/code> w \u015brodowisku ARM. Znaczenie pozosta\u0142ych opcji mo\u017cna zobaczy\u0107 w <code>man debootstrap<\/code>. Nie zapomnij, \u017ce nie ka\u017cda p\u0142yta ARM obs\u0142uguje architektur\u0119 <code>armhf<\/code>.<\/li>\n<li>Z powodu r\u00f3\u017cnic w architekturze <code>debootstrap<\/code> wykonywane jest w dw\u00f3ch etapach, drugi wykonuje si\u0119 tak: <code>chroot \/mnt\/ \/debootstrap\/debootstrap --second-stage<\/code><\/li>\n<li>Teraz musimy przej\u015b\u0107 do chroot: <code>chroot \/mnt \/bin\/bash<\/code><\/li>\n<li>Wype\u0142niamy <code>\/etc\/hosts<\/code> i <code>\/etc\/hostname<\/code> docelowy FS. Wype\u0142nij analogicznie do zawarto\u015bci na swoim lokalnym komputerze, nie zapomnij tylko zmieni\u0107 nazw\u0119 hosta.<\/li>\n<li>Mo\u017cna skonfigurowa\u0107 reszt\u0119. Szczeg\u00f3lnie instaluj\u0119 <code>locales<\/code> (klucze repozytori\u00f3w), przestawiam lokalizacje i stref\u0119 czasow\u0105 (<code>dpkg-reconfigure locales tzdata<\/code>). Nie zapomnij ustawi\u0107 has\u0142a komend\u0105 <code>passwd<\/code>.<\/li>\n<li>Ustawiamy has\u0142o dla <code>root<\/code> poleceniem <code>passwd<\/code>.<\/li>\n<li>Przygotowanie obrazu ko\u0144czy si\u0119 na wype\u0142nieniu <code>\/etc\/fstab<\/code> wci\u0105\u017c <code>\/mnt\/<\/code>. <\/li>\n<\/ol>\n<p>\nB\u0119d\u0119 \u0142adowa\u0107 zgodnie z wcze\u015bniej utworzonymi etykietami, dlatego zawarto\u015b\u0107 b\u0119dzie nast\u0119puj\u0105ca:<\/p>\n<blockquote><p> LABEL=ROOTFS \/ auto errors=remount-ro 0 1<br \/>\n LABEL=BOOT \/boot auto defaults 0 0<\/p><\/blockquote>\n<p>\nNa koniec, mo\u017cna zamontowa\u0107 partycj\u0119 rozruchow\u0105, b\u0119dzie nam potrzebna dla j\u0105dra: `mount \/dev\/mmcblk0p1 \/mnt\/boot\/`<\/p>\n<h3>Budowanie Linuxa<\/h3>\n<p>\nAby zbudowa\u0107 j\u0105dro (a potem boot loader) na Debian Testing, nale\u017cy zainstalowa\u0107 standardowy zestaw GCC, GNU Make oraz nag\u0142\u00f3wki GNU C Library dla docelowej architektury (u mnie <code>armhf<\/code>), a tak\u017ce nag\u0142\u00f3wki OpenSSL, kalkulator konsolowy <code>bc<\/code>, <code>bison<\/code> i <code>flex<\/code>: <code>apt install crossbuild-essential-armhf bison flex libssl-dev bc<\/code>. Poniewa\u017c boot loader domy\u015blnie szuka pliku <code>zImage<\/code> na systemie plik\u00f3w partycji rozruchowej, czas podzieli\u0107 pendrive'a.<\/p>\n<ol>\n<li>Klonowanie j\u0105dra zajmuje za d\u0142ugo, dlatego po prostu je pobior\u0119: <code>wget https:\/\/cdn.kernel.org\/pub\/linux\/kernel\/v5.x\/linux-5.9.1.tar.xz<\/code>. Rozpakujemy i przejd\u017amy do katalogu ze \u017ar\u00f3d\u0142ami: <code>tar -xf linux-5.9.1.tar.xz &amp;&amp; cd linux-5.9.1<\/code><\/li>\n<li>Konfigurujemy przed kompilacj\u0105: <code>make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig<\/code>. Konfiguracja znajduje si\u0119 w katalogu <code>arch\/arm\/configs\/<\/code>. Je\u015bli go nie ma, mo\u017cna spr\u00f3bowa\u0107 znale\u017a\u0107 i pobra\u0107 gotowy i poda\u0107 nazw\u0119 pliku w tym katalogu jako parametr <code>KBUILD_DEFCONFIG<\/code>. W ostateczno\u015bci od razu przejd\u017a do nast\u0119pnego punktu.<\/li>\n<li>Opcjonalnie mo\u017cna dopracowa\u0107 ustawienia: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig<\/code><\/li>\n<li>I cross-kompilujemy obraz: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-<\/code><\/li>\n<li>Teraz mo\u017cna skopiowa\u0107 plik z j\u0105drem: <code>cp arch\/arm\/boot\/zImage \/mnt\/boot\/<\/code><\/li>\n<li>I pliki z DeviceTree (opis dost\u0119pnego sprz\u0119tu na p\u0142ycie): <code>cp arch\/arm\/boot\/dts\/*.dtb \/mnt\/boot\/<\/code><\/li>\n<li>I zainstalowa\u0107 zbudowane modu\u0142y jako osobne pliki: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=\/mnt\/ modules_install<\/code><\/li>\n<\/ol>\n<p>\nJ\u0105dro jest gotowe. Mo\u017cna wszystko odmontowa\u0107: <code>umount \/mnt\/boot\/ \/mnt\/<\/code><\/p>\n<h2>Das U-Boot<\/h2>\n<p>\nPoniewa\u017c bootloader jest interaktywny, do sprawdzenia jego dzia\u0142ania wystarczy sama p\u0142yta, urz\u0105dzenie pami\u0119ci i opcjonalnie urz\u0105dzenie USB-to-UART. Mo\u017cna pozostawi\u0107 j\u0105dro i OS na p\u00f3\u017aniej.<\/p>\n<p>Absolutna wi\u0119kszo\u015b\u0107 producent\u00f3w oferuje u\u017cycie Das U-Boot do pocz\u0105tkowego uruchamiania. Pe\u0142ne wsparcie zazwyczaj zapewniane jest w w\u0142asnym forku, ale nie zapominaj\u0105 te\u017c o kontribucjach do upstream. W moim przypadku p\u0142yta jest wspierana w <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.denx.de\/u-boot\/u-boot\">mainstreamie<\/a><\/noindex>, wi\u0119c <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Freescale\/u-boot-fslc\">forka<\/a><\/noindex> zignorowa\u0142em.<\/p>\n<p>Budujemy sam bootloader:<\/p>\n<ol>\n<li>Klonujemy stabiln\u0105 ga\u0142\u0105\u017a repozytorium: <code>git clone https:\/\/gitlab.denx.de\/u-boot\/u-boot.git -b v2020.10<\/code><\/li>\n<li>Przechodzimy do samego katalogu: <code>cd u-boot<\/code><\/li>\n<li>Przygotowujemy konfiguracj\u0119 budowy: <code>make mx6ull_14x14_evk_defconfig<\/code>. Dzia\u0142a to tylko, je\u015bli konfiguracja istnieje w samym Das U-Boot, w przeciwnym razie musisz znale\u017a\u0107 konfiguracj\u0119 producenta i umie\u015bci\u0107 j\u0105 w g\u0142\u00f3wnym katalogu repozytorium w pliku <code>.config<\/code>, lub zbudowa\u0107 w inny spos\u00f3b zalecany przez producenta.<\/li>\n<li>Budujemy sam obraz bootloadera za pomoc\u0105 cross-kompilatora <code>armhf<\/code>: <code>make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx<\/code><\/li>\n<\/ol>\n<p>\nW rezultacie otrzymujemy plik <code>u-boot.imx<\/code>, to gotowy obraz, kt\u00f3ry mo\u017cna zapisa\u0107 na pendrive. Zapisujemy na karcie SD, pomijaj\u0105c pierwsze 1024 bajty. Dlaczego wybra\u0142em target <code>u-boot.imx<\/code>? \u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u043b \u0438\u043c\u0435\u043d\u043d\u043e 1024 \u0431\u0430\u0439\u0442\u0430? \u0422\u0430\u043a \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.denx.de\/u-boot\/u-boot\/-\/blob\/master\/doc\/imx\/mkimage\/imximage.txt\">dokumentacji<\/a><\/noindex>. Dla innych p\u0142yt proces budowy obrazu i zapisu mo\u017ce nieco si\u0119 r\u00f3\u017cni\u0107.<\/p>\n<p>Gotowe, mo\u017cna uruchomi\u0107. Bootloader powinien zg\u0142osi\u0107 swoj\u0105 wersj\u0119, pewne informacje o p\u0142ycie i spr\u00f3bowa\u0107 znale\u017a\u0107 obraz j\u0105dra na partycji. W przypadku niepowodzenia spr\u00f3buje uruchomi\u0107 si\u0119 przez sie\u0107. Og\u00f3lnie wyj\u015bcie jest do\u015b\u0107 szczeg\u00f3\u0142owe, mo\u017cna znale\u017a\u0107 b\u0142\u0105d w przypadku problemu.<\/p>\n<h2>Zamiast zako\u0144czenia<\/h2>\n<p>\nA wiedzia\u0142e\u015b, \u017ce czo\u0142o delfina nie jest kostne? To dos\u0142ownie trzecie oko, t\u0142uszczowa soczewka do echolokacji!<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=morq&amp;utm_content=portiruem_gnu_linux_na_arm_platu_na_primere_kali_i_imx_6#order\"><img decoding=\"async\" alt=\"Uruchamiamy GNU\/Linux na p\u0142ycie ARM od podstaw (na przyk\u0142adzie Kali i iMX.6)\" src=\"\/wp-content\/uploads\/2020\/10\/6945c769380a0cba78c5407e02ef478e.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub\/news\/read\/123?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=morq&amp;utm_content=portiruem_gnu_linux_na_arm_platu_na_primere_kali_i_imx_6\"><img decoding=\"async\" alt=\"Uruchamiamy GNU\/Linux na p\u0142ycie ARM od podstaw (na przyk\u0142adzie Kali i iMX.6)\" src=\"\/wp-content\/uploads\/2020\/10\/5ad9d0e14ed4724eed8b14007bae6167.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524532\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>tl;dr: \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043e\u0431\u0440\u0430\u0437 Kali Linux \u0434\u043b\u044f ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 debootstrap, linux \u0438 u-boot. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043a\u0443\u043f\u0430\u043b\u0438 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0431\u0443\u0434\u044c \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0439 \u043e\u0434\u043d\u043e\u043f\u043b\u0430\u0442\u043d\u0438\u043a, \u0442\u043e \u043c\u043e\u0433\u043b\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u043b\u044e\u0431\u0438\u043c\u043e\u0433\u043e \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430. \u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c\u044b\u043c Flipper One. Kali Linux \u043f\u043e\u0434 IMX6 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0442\u0443 (\u044f \u0433\u043e\u0442\u043e\u0432\u043b\u044e), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":98046,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-98045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"tl;dr: \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043e\u0431\u0440\u0430\u0437 Kali Linux \u0434\u043b\u044f ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 debootstrap, linux \u0438 u-boot.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0417\u0430\u0432\u043e\u0434\u0438\u043c GNU\/Linux \u043d\u0430 ARM-\u043f\u043b\u0430\u0442\u0435 \u0441 \u043d\u0443\u043b\u044f (\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Kali \u0438 iMX.6) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"tl;dr: \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043e\u0431\u0440\u0430\u0437 Kali Linux \u0434\u043b\u044f ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 debootstrap, linux \u0438 u-boot.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-23T18:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-11-17T22:58:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rozpoczynam GNU\/Linux na p\u0142ycie ARM od zera (na przyk\u0142adzie Kali i iMX.6) | ProHoster","description":"tl;dr: buduj\u0119 obraz Kali Linux dla komputera ARM w programie debootstrap, linux i u-boot.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0417\u0430\u0432\u043e\u0434\u0438\u043c GNU\/Linux \u043d\u0430 ARM-\u043f\u043b\u0430\u0442\u0435 \u0441 \u043d\u0443\u043b\u044f (\u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 Kali \u0438 iMX.6) | ProHoster","og:description":"tl;dr: \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u043e\u0431\u0440\u0430\u0437 Kali Linux \u0434\u043b\u044f ARM-\u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 debootstrap, linux \u0438 u-boot.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-23T18:42:30+00:00","article:modified_time":"2020-11-17T22:58:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"98045","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:07:16","updated":"2026-08-11 12:50:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/98045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=98045"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/98045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/98046"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=98045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=98045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=98045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}