{"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\/pt\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6","title":{"rendered":"Instalando GNU\/Linux em uma placa ARM do zero (com o exemplo do Kali e iMX.6)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b>resumo<\/b>: estou criando uma imagem do Kali Linux para um computador ARM na ferramenta <code>debootstrap<\/code>, <code>Linux <\/code>e <code>u-boot<\/code>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/524532\/\"><img decoding=\"async\" alt=\"Instalando GNU\/Linux em uma placa ARM do zero (com o exemplo do Kali e iMX.6)\" src=\"\/wp-content\/uploads\/2020\/10\/70004672904f13dea41352c0f9aeb80b.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Se voc\u00ea comprou algum single-board computer menos conhecido, pode ter se deparado com a falta da imagem do seu distribuidor favorito. Aconteceu algo similar com <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/490196\/\">o planejado Flipper One<\/a><\/noindex>. N\u00e3o existe Kali Linux para IMX6 (estou preparando), ent\u00e3o eu tenho que compilar sozinho.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>O processo de inicializa\u00e7\u00e3o \u00e9 bastante simples:<\/b><\/p>\n<ol>\n<li>O hardware \u00e9 inicializado.<\/li>\n<li>Um carregador \u00e9 lido e executado a partir de uma \u00e1rea do dispositivo de armazenamento (cart\u00e3o SD \/ eMMC \/ etc).<\/li>\n<li>O carregador busca o kernel do sistema operacional e o carrega em uma \u00e1rea de mem\u00f3ria para execu\u00e7\u00e3o.<\/li>\n<li>O kernel carrega o restante do SO.<\/li>\n<\/ol>\n<p>\nEste n\u00edvel de detalhe \u00e9 suficiente para a minha tarefa, voc\u00ea pode ler mais detalhes <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/post\/338806\/\">em outro artigo<\/a><\/noindex>. As \"algumas\" \u00e1reas mencionadas acima variam de placa para placa, o que causa alguns desafios na instala\u00e7\u00e3o. O carregamento de plataformas ARM para servidores <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.arm.com\/documentation\/den0044\/12\/\">est\u00e1 sendo padronizado<\/a><\/noindex> por meio do UEFI, mas enquanto isso n\u00e3o estiver dispon\u00edvel para todos, ser\u00e1 necess\u00e1rio compilar tudo separadamente.<\/p>\n<h3>Compila\u00e7\u00e3o do sistema de arquivos raiz<\/h3>\n<p>\nPrimeiro, voc\u00ea precisa preparar as parti\u00e7\u00f5es. O U-Boot suporta diferentes sistemas de arquivos, eu escolhi FAT32 para <code>\/boot<\/code> e ext3 para a raiz, essa \u00e9 a parti\u00e7\u00e3o padr\u00e3o de imagens do Kali para ARM. Vou usar o GNU Parted, mas voc\u00ea pode fazer o mesmo de uma maneira mais familiar <code>fdisk<\/code>. Tamb\u00e9m ser\u00e3o necess\u00e1rios <code>dosfstools<\/code> e <code>e2fsprogs<\/code> para criar o sistema de arquivos: <code>apt install parted dosfstools e2fsprogs<\/code>.<\/p>\n<p><b>Particionamos o cart\u00e3o SD:<\/b><\/p>\n<ol>\n<li>Marcamos o cart\u00e3o SD para usar a parti\u00e7\u00e3o MBR: <code>parted -s \/dev\/mmcblk0 mklabel msdos<\/code><\/li>\n<li>Criamos uma parti\u00e7\u00e3o para <code>\/boot<\/code> de 128 megabytes: <code>parted -s \/dev\/mmcblk0 mkpart primary fat32 1MiB 128MiB<\/code>. O primeiro megabyte deve ser deixado para a parti\u00e7\u00e3o em si e para o carregador.<\/li>\n<li>Criamos o sistema de arquivos raiz com toda a capacidade restante: <code>parted -s \/dev\/mmcblk0 mkpart primary ext4 128MiB 100%<\/code><\/li>\n<li>Se por acaso os arquivos das parti\u00e7\u00f5es n\u00e3o foram criados ou n\u00e3o foram modificados, voc\u00ea deve executar `partprobe`, ent\u00e3o a tabela de parti\u00e7\u00f5es ser\u00e1 lida novamente.<\/li>\n<li>Criamos o sistema de arquivos da parti\u00e7\u00e3o de inicializa\u00e7\u00e3o com o r\u00f3tulo <code>BOOT<\/code>: <code>mkfs.vfat -n BOOT -F 32 -v \/dev\/mmcblk0p1<\/code><\/li>\n<li>Criamos o sistema de arquivos raiz com o r\u00f3tulo <code>ROOTFS<\/code>: <code>mkfs.ext3 -L ROOTFS \/dev\/mmcblk0p2<\/code><\/li>\n<\/ol>\n<p>\n\u00d3timo, agora podemos preench\u00ea-lo. Para isso, ser\u00e1 necess\u00e1ria a ferramenta adicional <code>debootstrap<\/code>, utilit\u00e1rio para criar sistemas de arquivos de sistemas operacionais baseados em Debian: <code>apt install debootstrap<\/code>.<\/p>\n<p><b>Compilamos o sistema de arquivos:<\/b><\/p>\n<ol>\n<li>Montamos a parti\u00e7\u00e3o em <code>\/mnt\/<\/code> (use um ponto de montagem mais conveniente para voc\u00ea): <code>mount \/dev\/mmcblk0p2 \/mnt<\/code><\/li>\n<li>Preenchemos o sistema de arquivos: <code>debootstrap --foreign --include=qemu-user-static --arch armhf kali-rolling \/mnt\/ http:\/\/http.kali.org\/kali<\/code>. Par\u00e2metro <code>--include<\/code> indica instalar pacotes adicionais, eu indiquei um emulador QEMU compilado estaticamente. Ele permite executar <code>chroot<\/code> no ambiente ARM. O significado das outras op\u00e7\u00f5es pode ser visto em <code>man debootstrap<\/code>. N\u00e3o se esque\u00e7a de que nem todo placa ARM suporta a arquitetura <code>armhf<\/code>.<\/li>\n<li>Devido \u00e0s diferen\u00e7as de arquitetura <code>debootstrap<\/code> \u00e9 executado em duas etapas, a segunda \u00e9 executada assim: <code>chroot \/mnt\/ \/debootstrap\/debootstrap --second-stage<\/code><\/li>\n<li>Agora precisamos fazer o chroot: <code>chroot \/mnt \/bin\/bash<\/code><\/li>\n<li>Preenchemos <code>\/etc\/hosts<\/code> e <code>\/etc\/hostname<\/code> o sistema de arquivos de destino. Preencha de forma semelhante ao conte\u00fado do seu computador local, mas n\u00e3o se esque\u00e7a de trocar o nome do host.<\/li>\n<li>Voc\u00ea pode ajustar mais coisas. Em particular, eu instalo <code>locales<\/code> (chaves do reposit\u00f3rio), reconfiguro os locais e o fuso hor\u00e1rio (<code>dpkg-reconfigure locales tzdata<\/code>). N\u00e3o se esque\u00e7a de definir uma senha com o comando <code>passwd<\/code>.<\/li>\n<li>Definimos a senha para <code>root<\/code> com o comando <code>passwd<\/code>.<\/li>\n<li>A prepara\u00e7\u00e3o da imagem para mim termina com o preenchimento <code>\/etc\/fstab<\/code> dentro <code>\/mnt\/<\/code>. <\/li>\n<\/ol>\n<p>\nEu vou carregar de acordo com as etiquetas criadas anteriormente, ent\u00e3o o conte\u00fado ser\u00e1 assim:<\/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>\nFinalmente, podemos montar a parti\u00e7\u00e3o de inicializa\u00e7\u00e3o, que precisamos para o kernel: `mount \/dev\/mmcblk0p1 \/mnt\/boot\/`<\/p>\n<h3>Compila\u00e7\u00e3o do Linux<\/h3>\n<p>\nPara compilar o kernel (e o carregador depois) no Debian Testing, \u00e9 necess\u00e1rio instalar o conjunto padr\u00e3o de GCC, GNU Make e os arquivos de cabe\u00e7alho da GNU C Library para a arquitetura de destino (eu tenho <code>armhf<\/code>), al\u00e9m dos cabe\u00e7alhos do OpenSSL, calculadora de console <code>bc<\/code>, <code>bison<\/code> e <code>flex<\/code>: <code>apt install crossbuild-essential-armhf bison flex libssl-dev bc<\/code>. Como o carregador por padr\u00e3o procura o arquivo <code>zImage<\/code> no sistema de arquivos da parti\u00e7\u00e3o de inicializa\u00e7\u00e3o, \u00e9 hora de formatar o pen drive.<\/p>\n<ol>\n<li>Clonar o kernel leva muito tempo, por isso vou baixar apenas: <code>wget https:\/\/cdn.kernel.org\/pub\/linux\/kernel\/v5.x\/linux-5.9.1.tar.xz<\/code>. Descompacte e v\u00e1 para o diret\u00f3rio com os fontes: <code>tar -xf linux-5.9.1.tar.xz &amp;&amp; cd linux-5.9.1<\/code><\/li>\n<li>Configuramos antes da compila\u00e7\u00e3o: <code>make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig<\/code>. A configura\u00e7\u00e3o est\u00e1 no diret\u00f3rio <code>arch\/arm\/configs\/<\/code>. Se n\u00e3o houver, voc\u00ea pode tentar encontrar e baixar um pronto e passar o nome do arquivo nesse diret\u00f3rio no par\u00e2metro <code>KBUILD_DEFCONFIG<\/code>. No pior caso, passe diretamente para o pr\u00f3ximo ponto.<\/li>\n<li>Opcionalmente, voc\u00ea pode ajustar as configura\u00e7\u00f5es: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig<\/code><\/li>\n<li>E compilamos a imagem: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-<\/code><\/li>\n<li>Agora podemos copiar o arquivo do kernel: <code>cp arch\/arm\/boot\/zImage \/mnt\/boot\/<\/code><\/li>\n<li>E arquivos com o DeviceTree (descri\u00e7\u00e3o do hardware presente na placa): <code>cp arch\/arm\/boot\/dts\/*.dtb \/mnt\/boot\/<\/code><\/li>\n<li>E instalar os m\u00f3dulos compilados como arquivos separados: <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=\/mnt\/ modules_install<\/code><\/li>\n<\/ol>\n<p>\nO n\u00facleo est\u00e1 pronto. Podemos desmontar tudo: <code>umount \/mnt\/boot\/ \/mnt\/<\/code><\/p>\n<h2>Das U-Boot<\/h2>\n<p>\nComo o carregador \u00e9 interativo, para verificar seu funcionamento, bastam a pr\u00f3pria placa, o dispositivo de armazenamento e, opcionalmente, um dispositivo USB-to-UART. Ou seja, voc\u00ea pode deixar o n\u00facleo e o SO para depois.<\/p>\n<p>A absoluta maioria dos fabricantes recomenda o uso do Das U-Boot para o inicializa\u00e7\u00e3o. O suporte completo geralmente \u00e9 fornecido em seu pr\u00f3prio fork, mas tamb\u00e9m n\u00e3o esquecem de contribuir para o upstream. No meu caso, a placa \u00e9 suportada no <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.denx.de\/u-boot\/u-boot\">mainline<\/a><\/noindex>, por isso <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Freescale\/u-boot-fslc\">fork<\/a><\/noindex> ignorei.<\/p>\n<p>Vamos compilar o carregador:<\/p>\n<ol>\n<li>Clonando o ramo est\u00e1vel do reposit\u00f3rio: <code>git clone https:\/\/gitlab.denx.de\/u-boot\/u-boot.git -b v2020.10<\/code><\/li>\n<li>Entramos na pr\u00f3pria diret\u00f3rio: <code>cd u-boot<\/code><\/li>\n<li>Preparamos a configura\u00e7\u00e3o da compila\u00e7\u00e3o: <code>make mx6ull_14x14_evk_defconfig<\/code>. Isso s\u00f3 funciona se a configura\u00e7\u00e3o estiver presente no pr\u00f3prio Das U-Boot, caso contr\u00e1rio, voc\u00ea precisar\u00e1 encontrar a configura\u00e7\u00e3o do fabricante e coloc\u00e1-la na raiz do reposit\u00f3rio no arquivo <code>.config<\/code>, ou compilar de outra forma recomendada pelo fabricante.<\/li>\n<li>Compilamos a imagem do carregador com o cross-compiler <code>armhf<\/code>: <code>make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx<\/code><\/li>\n<\/ol>\n<p>\nComo resultado, obtemos o arquivo <code>u-boot.imx<\/code>, esta \u00e9 a imagem pronta, que pode ser gravada em um pen drive. Gravamos no cart\u00e3o SD, pulando os primeiros 1024 bytes. Por que escolhi o 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\">documenta\u00e7\u00e3o<\/a><\/noindex>. Para outras placas, o processo de compila\u00e7\u00e3o da imagem e grava\u00e7\u00e3o pode diferir um pouco.<\/p>\n<p>Pronto, podemos inicializar. O carregador deve informar sua pr\u00f3pria vers\u00e3o, algumas informa\u00e7\u00f5es sobre a placa e tentar encontrar a imagem do n\u00facleo na parti\u00e7\u00e3o. Em caso de falha, tentar\u00e1 inicializar pela rede. No geral, a sa\u00edda \u00e9 bastante detalhada, permitindo encontrar o erro em caso de problema.<\/p>\n<h2>Em conclus\u00e3o<\/h2>\n<p>\nVoc\u00ea sabia que a testa do golfinho n\u00e3o \u00e9 \u00f3ssea? \u00c9 literalmente o terceiro olho, uma lente de gordura para ecolocaliza\u00e7\u00e3o!<\/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=\"Instalando GNU\/Linux em uma placa ARM do zero (com o exemplo do Kali e 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=\"Instalando GNU\/Linux em uma placa ARM do zero (com o exemplo do Kali e iMX.6)\" src=\"\/wp-content\/uploads\/2020\/10\/5ad9d0e14ed4724eed8b14007bae6167.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/zavodim-gnu-linux-na-arm-plate-s-nulya-na-primere-kali-i-imx-6\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Iniciando GNU\/Linux em uma placa ARM do zero (com o exemplo do Kali e iMX.6) | ProHoster","description":"tl;dr: estou compilando a imagem do Kali Linux para um computador ARM, com o programa debootstrap, linux e u-boot.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/98045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=98045"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/98045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/98046"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=98045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=98045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=98045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}