<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.canisinc.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anacforcelli</id>
	<title>Caninos Loucos - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.canisinc.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Anacforcelli"/>
	<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Anacforcelli"/>
	<updated>2026-09-02T20:37:35Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=P%C3%A1gina_principal&amp;diff=785</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=P%C3%A1gina_principal&amp;diff=785"/>
		<updated>2026-03-10T17:19:37Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Bem-vindo à wiki do Programa [https://caninosloucos.org/pt/ Caninos Loucos]&amp;lt;/strong&amp;gt; &amp;lt;big&amp;gt;🐶&amp;lt;/big&amp;gt;&lt;br /&gt;
Nesta wiki você encontrará informações técnicas e tutoriais sobre como utilizar as plataformas desenvolvidas no programa, entre elas a Labrador e a Pulga!&lt;br /&gt;
&lt;br /&gt;
O Programa Caninos Loucos está em constante aprimoramento e esta Wiki recebe atualizações frequentes.&lt;br /&gt;
&lt;br /&gt;
Para acesso às atualizações de software, acompanhe o projeto Caninos Loucos no GitHub: https://github.com/caninos-loucos.&lt;br /&gt;
&lt;br /&gt;
Esperamos que esta Wiki possa resolver suas principais dúvidas e, caso reste alguma, entre em contato pelo [https://caninosloucos.org/pt/contact-pt/ formulário de contato] ou [https://forum.caninosloucos.org/ faça uma pergunta no fórum].&lt;br /&gt;
&lt;br /&gt;
Caso você esteja com uma placa Labrador e queira começar a utilizá-la, sugiro dar uma olhada no artigo [[Começando com a Labrador]].&lt;br /&gt;
&lt;br /&gt;
== Páginas ==&lt;br /&gt;
&lt;br /&gt;
Confira abaixo a lista das páginas disponíveis nesta Wiki:&lt;br /&gt;
&lt;br /&gt;
*Caninos Loucos&lt;br /&gt;
**[[Abertura do Programa]]&lt;br /&gt;
**[[Apresentação do Programa]]&lt;br /&gt;
**[[Como contribuir]]&lt;br /&gt;
**[[Lista de projetos]]&lt;br /&gt;
***[[Rover]]&lt;br /&gt;
***[[Thin Client]]&lt;br /&gt;
**[[Como criar uma página]]&lt;br /&gt;
*[[Caninos Educação]]&lt;br /&gt;
**[[Guia 0 - Sabendo o necessário]]&lt;br /&gt;
**[[Guia 1 - Preparando o Ambiente de Desenvolvimento]]&lt;br /&gt;
**[[Guia 2 - Programando um LED com a Labrador]]&lt;br /&gt;
**[[Guia 3 - Controlando um LED com um botão ]]&lt;br /&gt;
&amp;lt;!-- **[[Guia 4 - Controlando um LED por PWM]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- **[[Guia 5 - Enviando dados da Labrador para o Arduino com I2C]] --&amp;gt;&lt;br /&gt;
**[[Template|Template para guias]]&lt;br /&gt;
*Labrador&lt;br /&gt;
**[[Apresentação Geral e Especificações Técnicas]]&lt;br /&gt;
**[[Começando com a Labrador]]&lt;br /&gt;
**Sobre o Linux&lt;br /&gt;
***[[Linux - Aplicativos e funções úteis do Linux]]&lt;br /&gt;
***[[Linux - Gerenciador de arquivos]]&lt;br /&gt;
***[[Linux - Comando ls]]&lt;br /&gt;
**Configurações&lt;br /&gt;
***[[Instalando um sistema 32 bits]]&lt;br /&gt;
***[[Instalando um sistema 64 bits]]&lt;br /&gt;
***[[Labrador 32 bits - Criando uma imagem]]&lt;br /&gt;
***[[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
***Inteligência Artificial&lt;br /&gt;
****[[Visão Computacional]]&lt;br /&gt;
****[[Tensorflow]]&lt;br /&gt;
***[[Programação GPIO]]&lt;br /&gt;
***[[Sensores internos]]&lt;br /&gt;
***[[MAC de rede]]&lt;br /&gt;
***[[Bluetooth]]&lt;br /&gt;
***[[Kernel]]&lt;br /&gt;
***[[Debug]]&lt;br /&gt;
***[[Configurando o Wi-Fi na linha de comando]]&lt;br /&gt;
*[[Pulga]]&lt;br /&gt;
**[[Programando a Pulga usando RIOT]]&lt;br /&gt;
**[[Programando a Pulga usando Mbed Compiler]]&lt;br /&gt;
*[[Poodle Toy]]&lt;br /&gt;
== Quer colaborar com a Wiki? ==&lt;br /&gt;
&lt;br /&gt;
* Rápido e direto: leia o tutorial explicando [[como criar uma página]].&lt;br /&gt;
* Avançado: consulte o [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Manual de Usuário] para informações de como usar o software wiki.&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traduza o MediaWiki para seu idioma]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[en:Main page]]&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=784</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=784"/>
		<updated>2026-03-05T19:57:47Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader [https://github.com/caninos-loucos/mcuboot-puppy mcuboot] , que deve ser previamente gravado na memória da placa com um ESP32 ou um gravador de BIOS CH340A.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [https://github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr] . A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar no menu &amp;quot;Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1&amp;quot; e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção &amp;quot;Sketch-&amp;gt;Exportar Binário Compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=783</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=783"/>
		<updated>2026-03-05T19:56:57Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader [github.com/caninos-loucos/mcuboot-puppy mcuboot] , que deve ser previamente gravado na memória da placa com um ESP32 ou um gravador de BIOS CH340A.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr] . A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar no menu &amp;quot;Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1&amp;quot; e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção &amp;quot;Sketch-&amp;gt;Exportar Binário Compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=782</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=782"/>
		<updated>2026-03-05T19:55:01Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader [github.com/caninos-loucos/mcuboot-puppy mcuboot], que deve ser previamente gravado na memória da placa com um ESP32 ou um gravador de BIOS CH340A.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar no menu &amp;quot;Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1&amp;quot; e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção &amp;quot;Sketch-&amp;gt;Exportar Binário Compilado&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=781</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=781"/>
		<updated>2026-03-05T19:52:14Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader Mcuboot, que deve ser previamente gravado na memória da placa.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir arduino-puppy  &lt;br /&gt;
cd arduino-puppy  &lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr  &lt;br /&gt;
cd ArduinoCore-zephyr  &lt;br /&gt;
extra/boostrap.sh  &lt;br /&gt;
extra/build.sh poodle-toy-v1  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/Arduino  &lt;br /&gt;
mkdir -p hardware/arduino-git  &lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch-&amp;gt;Exportar Binário Compilado.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate  &lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin  &lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=780</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=780"/>
		<updated>2026-03-05T19:50:57Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader Mcuboot, que deve ser previamente gravado na memória da placa.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
mkdir arduino-puppy  &lt;br /&gt;
cd arduino-puppy  &lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr  &lt;br /&gt;
cd ArduinoCore-zephyr  &lt;br /&gt;
extra/boostrap.sh  &lt;br /&gt;
extra/build.sh poodle-toy-v1  &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
cd ~/Arduino  &lt;br /&gt;
mkdir -p hardware/arduino-git  &lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr  &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch-&amp;gt;Exportar Binário Compilado.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate  &lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin  &lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin  &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin  &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=779</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=779"/>
		<updated>2026-03-05T19:47:06Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader Mcuboot, que deve ser previamente gravado na memória da placa.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de &amp;lt;code&amp;gt;DIR&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com &amp;lt;code&amp;gt;sudo apt install arduino&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch-&amp;gt;Exportar Binário Compilado.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=778</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=778"/>
		<updated>2026-03-05T19:44:57Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: /* Programando */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é realizada por meio do bootloader Mcuboot, que deve ser previamente gravado na memória da placa.&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de ```DIR```&lt;br /&gt;
&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com ```sudo apt install arduino```.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch-&amp;gt;Exportar Binário Compilado.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=777</id>
		<title>Poodle Toy</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Poodle_Toy&amp;diff=777"/>
		<updated>2026-03-05T19:43:15Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: Criou página com &amp;#039;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.  == Programando ==  A programação do Poodle Toy é dada  === Método Manual===  Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser fei...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Poodle Toy é uma placa compativel em hardware e software com o Arduino Uno, criada para aplicações de educação e prototipagem.&lt;br /&gt;
&lt;br /&gt;
== Programando ==&lt;br /&gt;
&lt;br /&gt;
A programação do Poodle Toy é dada&lt;br /&gt;
&lt;br /&gt;
=== Método Manual===&lt;br /&gt;
&lt;br /&gt;
Para programar manualmente a Poodle Toy usando a plataforma Arduino, é necessário compilar o core manualmente a partir do código-fonte localizado no repositório [github.com/caninos-loucos/ArduinoCore-zephyr ArduinoCore-zephyr]. A compilação pode ser feita tanto no Linux quanto em MacOS, mas não foi testada em Windows. Faremos os seguintes comandos, a partir de uma pasta de sua escolha que denominaremos de ```DIR```&lt;br /&gt;
&lt;br /&gt;
mkdir arduino-puppy&lt;br /&gt;
cd arduino-puppy&lt;br /&gt;
git clone https://github.com/caninos-loucos/ArduinoCore-zephyr&lt;br /&gt;
cd ArduinoCore-zephyr&lt;br /&gt;
extra/boostrap.sh&lt;br /&gt;
extra/build.sh poodle-toy-v1&lt;br /&gt;
&lt;br /&gt;
Isto vai gerar tudo que a IDE do Arduino precisa para identificar e compilar um programa para a placa. Depois disso, é necessário instalar a Arduino IDE a partir do site ou do repositório. Para distrubuições baseadas em Debian, o pacote já está disponível pelo APT e pode ser instalado com ```sudo apt install arduino```.&lt;br /&gt;
&lt;br /&gt;
Com a IDE instalada, criaremos um link para ela poder utilizar o nosso core&lt;br /&gt;
&lt;br /&gt;
cd ~/Arduino&lt;br /&gt;
mkdir -p hardware/arduino-git&lt;br /&gt;
ln -s DIR/arduino-puppy/ArduinoCore-zephyr hardware/arduino-git/zephyr&lt;br /&gt;
&lt;br /&gt;
Depois disso, podemos fechar e abrir a IDE e buscar nas placas disponiveis no menu superior e selecionar a Arduino Zephyr Boards (in sketchbook) e selecionar em Ferramentas-&amp;gt;Placa-&amp;gt;Arduino Zephyr Boards (BETA)(in sketchbook)-&amp;gt;Poodle Toy V1 e compilar o sketch desejado. É necessário exportar os resultados da compilação usando a opção Sketch-&amp;gt;Exportar Binário Compilado.&lt;br /&gt;
&lt;br /&gt;
Depois de exportar o binário, rodaremos um script para transformar o binario em um formato que a Poodle Toy aceita.&lt;br /&gt;
&lt;br /&gt;
source [DIR]/arduino-puppy/ArduinoCore-zephyr/venv/bin/activate&lt;br /&gt;
python [DIR]/arduino-puppy/ArduinoCore-zephyr/extra/binary-concatenate.py -a 0x2e000 -s 0x40000 -v0.0.0 -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin --file1 [DIR]/arduino-puppy/ArduinoCore-zephyr/firmwares/zephyr-poodle --file2 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto].ino.elf-zsk.bin&lt;br /&gt;
imgtool -H 0x200 -L 0x1c010000 -S 0x40000 ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.bin -o ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&lt;br /&gt;
Por último, aperte o botão de reset na Poodle Toy. O LED vermelho se acenderá por 2 segundos. Enquanto o LED vermelho estiver aceso, entre o comando seguinte para gravá-la.&lt;br /&gt;
&lt;br /&gt;
mcumgr upload --conntype=serial --connstring=&amp;quot;/dev/ttyUSB0,baud=115200&amp;quot; ~/Arduino/[Nome do Projeto]/build/arduino-git.zephyr.poodle/[Nome do Projeto]-concatenate.signed.bin&lt;br /&gt;
&lt;br /&gt;
Após o upload ser concluído, aperte o botão de reset novamente e o programa vai se iniciar. Se não der certo, confira se os diretórios e arquivos estão corretos e tente novamente.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=769</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=769"/>
		<updated>2025-03-12T17:14:40Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requisitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
= Criando um sistema Bootável =&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Passos Opcionais ==&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
== Gravando o sistema num cartão SD ==&lt;br /&gt;
&lt;br /&gt;
Isso pode ser feito com o seguinte script, assumindo que neste caso o cartão SD é representado no sistema como /dev/mmcblk0. &#039;&#039;&#039;Atenção! Para evitar perda de dados, é necessário confirmar onde está seu cartão SD com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Geralmente estará em mmcblk0, mas pode ser sda, sdb ou outros dependendo do uso de adaptadores.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblk0 mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary fat32 1MB 32MB&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary ext4 33MB 100%&lt;br /&gt;
# parted -s /dev/mmcblk0 set 1 boot on&lt;br /&gt;
&lt;br /&gt;
# mkfs.ext4 -F -D SYSTEM /dev/mmcblk0p2&lt;br /&gt;
# mkfs.vfat -F -L BOOT /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O próximo passo é gravar o bootloader, que está contido no repositório do kernel. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=labrador-linux-6/boot32/u-boot-dtb.img of=/dev/mmcblk0 bs=512 seek=66&lt;br /&gt;
# dd if=labrador-linux-6/boot32/bootloader.bin of=/dev/mmcblk0 bs=512 seek=1&lt;br /&gt;
# sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
$ cp boot32/uEnv.txt [ponto de montagem da partição BOOT, ex. /run/media/usuario/BOOT]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição SYSTEM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem SYSTEM]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;br /&gt;
&lt;br /&gt;
= Atualizando uma imagem existente =&lt;br /&gt;
&lt;br /&gt;
É possível tamém atualizar imagens existentes para uma nova versão do debian a fim de não perder configurações. São necessários os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1. Atualizar o kernel, sendo recomendável ser a versão mais recente oferecida no [https://github.com/caninos-loucos Github], e executar os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso haja algum erro, certifique-se que o cartão SD contendo a imagem a ser atualizada está montado, usando o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Atualizar a instalação existente com:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Modificar o arquivo &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; para se referir à próxima versão do Debian: no caso do Debian 10 (buster), mudar para bullseye (Debian 11) e assim por diante. Não é recomendado pular versões, como ir diretamente do buster para o bookworm (Debian 12).&lt;br /&gt;
&lt;br /&gt;
4. Atualizar todos os pacotes para a próxima versão, com os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Caso esteja avançando duas versões ou mais (do Debian 10 para o 12, por exemplo), repita o processo para a próxima versão.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_64_bits_-_Criando_uma_imagem&amp;diff=768</id>
		<title>Labrador 64 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_64_bits_-_Criando_uma_imagem&amp;diff=768"/>
		<updated>2025-03-12T17:13:00Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como obter o bootloader atualizado da Labrador 64-bits, compilar um novo Kernel Linux, montar uma distribuição Linux para sua placa e escrever seu sistema num cartão SD e na memória da placa. Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 32 bits acesse a seguinte página: [[Labrador 32 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Dependências =&lt;br /&gt;
Para montar seu próprio sistema compatível com a Labrador serão necessários:&lt;br /&gt;
&lt;br /&gt;
* Um arquivo bootloader.bin&lt;br /&gt;
* Os arquivos de Kernel para o seu sistema&lt;br /&gt;
* Um arquivo config.json&lt;br /&gt;
* Um sistema de arquivos rootfs arm64 do sistema operacional que deseja instalar.&lt;br /&gt;
&lt;br /&gt;
Os três primeiros podem ser encontrados no [http://github.com/caninos-loucos/labrador-linux-6 Github], o sistema de arquivos pode ser encontrado no site de diversas distribuições diferentes de Linux. Você também pode utilizar o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap] para gerar seu próprio sistema Debian. Recomendamos o uso de sistemas de arquivo [https://pt.wikipedia.org/wiki/Ext4 ext4] mas outros sistemas ext funcionarão também.&lt;br /&gt;
&lt;br /&gt;
= Criando sua imagem =&lt;br /&gt;
&lt;br /&gt;
== Compilando o Kernel ==&lt;br /&gt;
Após baixar os últimos arquivos de Kernel do Github o Kernel Linux deve ser compilado conforme as instruções do arquivo README.md. Basta rodar o comando make na pasta linux-source. Qualquer dependência de pacotes do sistema será alertada pelo compilador. Outras dúvidas gerais podem ser encontradas no mesmo arquivo readme.&lt;br /&gt;
Os arquivos de saída dessa compilação estarão contidos no arquivo &amp;lt;code&amp;gt;release/labrador-kernel6-arm64-v01.tar.gz&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Vários arquivos de devicetree (&amp;lt;code&amp;gt;.dtb&amp;lt;/code&amp;gt;) a serem usados de acordo com a placa base. Por padrão, o sistema usa a &amp;lt;code&amp;gt;v3psci.dtb&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Um binário de kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Os módulos do kernel &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Criando um sistema bootável ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM64. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=arm64 --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após este processo o sistema estará pronto para ser usado na Labrador, no entanto, ainda temos que criar um arquivo de configuração com as instruções de boot para a Labrador. Essas configurações serão feitas num arquivo config.json na pasta &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;. Uma versão deste arquivo já está presente no GitHub em &amp;lt;code&amp;gt;boot/config.json&amp;lt;/code&amp;gt; do repositório, com o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
   &amp;quot;model&amp;quot;:&amp;quot;Caninos Labrador K7&amp;quot;,&lt;br /&gt;
   &amp;quot;compatible&amp;quot;:&amp;quot;caninos,k7&amp;quot;,&lt;br /&gt;
   &amp;quot;bootloader&amp;quot;:{&lt;br /&gt;
      &amp;quot;major-version&amp;quot;:2,&lt;br /&gt;
      &amp;quot;minor-version&amp;quot;:0,&lt;br /&gt;
      &amp;quot;prioritize-sdcard&amp;quot;:true,&lt;br /&gt;
      &amp;quot;graphics-enabled&amp;quot;:true,&lt;br /&gt;
      &amp;quot;logo-enabled&amp;quot;:true,&lt;br /&gt;
      &amp;quot;cpu-core-clock&amp;quot;:1104,&lt;br /&gt;
      &amp;quot;common-bootargs&amp;quot;:&amp;quot;loglevel=0 selinux=0 earlycon console=ttyS3,115200 console=tty0 no_console_suspend&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;display&amp;quot;:{&lt;br /&gt;
      &amp;quot;source&amp;quot;:&amp;quot;hdmi&amp;quot;,&lt;br /&gt;
      &amp;quot;width&amp;quot;:1920,&lt;br /&gt;
      &amp;quot;height&amp;quot;:1080,&lt;br /&gt;
      &amp;quot;refresh-rate&amp;quot;:60&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;sdcard&amp;quot;:{&lt;br /&gt;
      &amp;quot;kernel-filename&amp;quot;:&amp;quot;Image&amp;quot;,&lt;br /&gt;
      &amp;quot;kernel-address&amp;quot;:&amp;quot;0x400000&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-filename&amp;quot;:&amp;quot;v3psci.dtb&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-address&amp;quot;:&amp;quot;0x200000&amp;quot;,&lt;br /&gt;
      &amp;quot;initrd-filename&amp;quot;:null,&lt;br /&gt;
      &amp;quot;initrd-address&amp;quot;:null,&lt;br /&gt;
      &amp;quot;append-bootargs&amp;quot;:&amp;quot;root=/dev/mmcblk0p1 rw rootwait&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;emmc&amp;quot;:{&lt;br /&gt;
      &amp;quot;kernel-filename&amp;quot;:&amp;quot;Image&amp;quot;,&lt;br /&gt;
      &amp;quot;kernel-address&amp;quot;:&amp;quot;0x400000&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-filename&amp;quot;:&amp;quot;v3psci.dtb&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-address&amp;quot;:&amp;quot;0x200000&amp;quot;,&lt;br /&gt;
      &amp;quot;initrd-filename&amp;quot;:null,&lt;br /&gt;
      &amp;quot;initrd-address&amp;quot;:null,&lt;br /&gt;
      &amp;quot;append-bootargs&amp;quot;:&amp;quot;root=/dev/mmcblk2p1 rw rootwait&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
== Salvando o sistema num cartão SD ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar um cartão SD no boot da labrador, o cartão deve ser formatado com os seguintes parâmetros:&lt;br /&gt;
* Partição MBR (EFI não funcionará)&lt;br /&gt;
* A primeira partição precisa ter offset de 1MB&lt;br /&gt;
* Sistema de arquivo EXT4&lt;br /&gt;
&lt;br /&gt;
Isso pode ser feito com o seguinte script, assumiondo que neste caso o cartão SD é representado no sistema como /dev/mmcblk0. &#039;&#039;&#039;Atenção! Para evitar perda de dados, é necessário confirmar onde está seu cartão SD com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Geralmente estará em mmcblk0, mas pode ser sda, sdb ou outros dependendo do uso de adaptadores.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblk0 mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary ext4 1 100%&lt;br /&gt;
# parted -s /dev/mmcblk0 set 1 boot on&lt;br /&gt;
# mkfs.ext4 -F -D linux64 /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos copiar o arquivo &amp;lt;code&amp;gt;bootloader.bin&amp;lt;/code&amp;gt; contido no repositório do kernel para o início do cartão SD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo dd if=labrador-linux-6/boot/bootloader.bin of=/dev/mmcblk0 conv=notrunc seek=1 bs=512&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install&lt;br /&gt;
$ cp boot/config.json.txt [ponto de montagem do siistema]/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;br /&gt;
&lt;br /&gt;
= Atualizando uma imagem existente =&lt;br /&gt;
&lt;br /&gt;
É possível tamém atualizar imagens existentes para uma nova versão do debian a fim de não perder configurações. São necessários os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1. Atualizar o kernel, sendo recomendável ser a versão mais recente oferecida no [https://github.com/caninos-loucos Github], e executar os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso haja algum erro, certifique-se que o cartão SD contendo a imagem a ser atualizada está montado, usando o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Atualizar a instalação existente com:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Modificar o arquivo &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; para se referir à próxima versão do Debian: no caso do Debian 10 (buster), mudar para bullseye (Debian 11) e assim por diante. Não é recomendado pular versões, como ir diretamente do buster para o bookworm (Debian 12).&lt;br /&gt;
&lt;br /&gt;
4. Atualizar todos os pacotes para a próxima versão, com os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Caso esteja avançando duas versões ou mais (do Debian 10 para o 12, por exemplo), repita o processo para a próxima versão.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=767</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=767"/>
		<updated>2025-03-12T16:56:10Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requisitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Criando um sistema Bootável ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
= Gravando o sistema num cartão SD =&lt;br /&gt;
&lt;br /&gt;
Isso pode ser feito com o seguinte script, assumindo que neste caso o cartão SD é representado no sistema como /dev/mmcblk0. &#039;&#039;&#039;Atenção! Para evitar perda de dados, é necessário confirmar onde está seu cartão SD com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Geralmente estará em mmcblk0, mas pode ser sda, sdb ou outros dependendo do uso de adaptadores.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblk0 mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary fat32 1MB 32MB&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary ext4 33MB 100%&lt;br /&gt;
# parted -s /dev/mmcblk0 set 1 boot on&lt;br /&gt;
&lt;br /&gt;
# mkfs.ext4 -F -D SYSTEM /dev/mmcblk0p2&lt;br /&gt;
# mkfs.vfat -F -L BOOT /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O próximo passo é gravar o bootloader, que está contido no repositório do kernel. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=labrador-linux-6/boot32/u-boot-dtb.img of=/dev/mmcblk0 bs=512 seek=66&lt;br /&gt;
# dd if=labrador-linux-6/boot32/bootloader.bin of=/dev/mmcblk0 bs=512 seek=1&lt;br /&gt;
# sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
$ cp boot32/uEnv.txt [ponto de montagem da partição BOOT, ex. /run/media/usuario/BOOT]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição SYSTEM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem SYSTEM]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;br /&gt;
&lt;br /&gt;
== Atualizando uma imagem existente ==&lt;br /&gt;
&lt;br /&gt;
É possível tamém atualizar imagens existentes para uma nova versão do debian a fim de não perder configurações. São necessários os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1. Atualizar o kernel, sendo recomendável ser a versão mais recente oferecida no [https://github.com/caninos-loucos Github], e executar os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso haja algum erro, certifique-se que o cartão SD contendo a imagem a ser atualizada está montado, usando o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Atualizar a instalação existente com:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Modificar o arquivo &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; para se referir à próxima versão do Debian: no caso do Debian 10 (buster), mudar para bullseye (Debian 11) e assim por diante. Não é recomendado pular versões, como ir diretamente do buster para o bookworm (Debian 12).&lt;br /&gt;
&lt;br /&gt;
4. Atualizar todos os pacotes para a próxima versão, com os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Caso esteja avançando duas versões ou mais (do Debian 10 para o 12, por exemplo), repita o processo para a próxima versão.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_64_bits_-_Criando_uma_imagem&amp;diff=766</id>
		<title>Labrador 64 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_64_bits_-_Criando_uma_imagem&amp;diff=766"/>
		<updated>2025-03-12T16:56:05Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como obter o bootloader atualizado da Labrador 64-bits, compilar um novo Kernel Linux, montar uma distribuição Linux para sua placa e escrever seu sistema num cartão SD e na memória da placa. Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 32 bits acesse a seguinte página: [[Labrador 32 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Dependências =&lt;br /&gt;
Para montar seu próprio sistema compatível com a Labrador serão necessários:&lt;br /&gt;
&lt;br /&gt;
* Um arquivo bootloader.bin&lt;br /&gt;
* Os arquivos de Kernel para o seu sistema&lt;br /&gt;
* Um arquivo config.json&lt;br /&gt;
* Um sistema de arquivos rootfs arm64 do sistema operacional que deseja instalar.&lt;br /&gt;
&lt;br /&gt;
Os três primeiros podem ser encontrados no [http://github.com/caninos-loucos/labrador-linux-6 Github], o sistema de arquivos pode ser encontrado no site de diversas distribuições diferentes de Linux. Você também pode utilizar o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap] para gerar seu próprio sistema Debian. Recomendamos o uso de sistemas de arquivo [https://pt.wikipedia.org/wiki/Ext4 ext4] mas outros sistemas ext funcionarão também.&lt;br /&gt;
&lt;br /&gt;
= Criando sua imagem =&lt;br /&gt;
&lt;br /&gt;
== Compilando o Kernel ==&lt;br /&gt;
Após baixar os últimos arquivos de Kernel do Github o Kernel Linux deve ser compilado conforme as instruções do arquivo README.md. Basta rodar o comando make na pasta linux-source. Qualquer dependência de pacotes do sistema será alertada pelo compilador. Outras dúvidas gerais podem ser encontradas no mesmo arquivo readme.&lt;br /&gt;
Os arquivos de saída dessa compilação estarão contidos no arquivo &amp;lt;code&amp;gt;release/labrador-kernel6-arm64-v01.tar.gz&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* Vários arquivos de devicetree (&amp;lt;code&amp;gt;.dtb&amp;lt;/code&amp;gt;) a serem usados de acordo com a placa base. Por padrão, o sistema usa a &amp;lt;code&amp;gt;v3psci.dtb&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Um binário de kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Os módulos do kernel &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Criando um sistema bootável ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM64. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=arm64 --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
Após este processo o sistema estará pronto para ser usado na Labrador, no entanto, ainda temos que criar um arquivo de configuração com as instruções de boot para a Labrador. Essas configurações serão feitas num arquivo config.json na pasta &amp;lt;code&amp;gt;/boot&amp;lt;/code&amp;gt;. Uma versão deste arquivo já está presente no GitHub em &amp;lt;code&amp;gt;boot/config.json&amp;lt;/code&amp;gt; do repositório, com o seguinte conteúdo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;{&lt;br /&gt;
   &amp;quot;model&amp;quot;:&amp;quot;Caninos Labrador K7&amp;quot;,&lt;br /&gt;
   &amp;quot;compatible&amp;quot;:&amp;quot;caninos,k7&amp;quot;,&lt;br /&gt;
   &amp;quot;bootloader&amp;quot;:{&lt;br /&gt;
      &amp;quot;major-version&amp;quot;:2,&lt;br /&gt;
      &amp;quot;minor-version&amp;quot;:0,&lt;br /&gt;
      &amp;quot;prioritize-sdcard&amp;quot;:true,&lt;br /&gt;
      &amp;quot;graphics-enabled&amp;quot;:true,&lt;br /&gt;
      &amp;quot;logo-enabled&amp;quot;:true,&lt;br /&gt;
      &amp;quot;cpu-core-clock&amp;quot;:1104,&lt;br /&gt;
      &amp;quot;common-bootargs&amp;quot;:&amp;quot;loglevel=0 selinux=0 earlycon console=ttyS3,115200 console=tty0 no_console_suspend&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;display&amp;quot;:{&lt;br /&gt;
      &amp;quot;source&amp;quot;:&amp;quot;hdmi&amp;quot;,&lt;br /&gt;
      &amp;quot;width&amp;quot;:1920,&lt;br /&gt;
      &amp;quot;height&amp;quot;:1080,&lt;br /&gt;
      &amp;quot;refresh-rate&amp;quot;:60&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;sdcard&amp;quot;:{&lt;br /&gt;
      &amp;quot;kernel-filename&amp;quot;:&amp;quot;Image&amp;quot;,&lt;br /&gt;
      &amp;quot;kernel-address&amp;quot;:&amp;quot;0x400000&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-filename&amp;quot;:&amp;quot;v3psci.dtb&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-address&amp;quot;:&amp;quot;0x200000&amp;quot;,&lt;br /&gt;
      &amp;quot;initrd-filename&amp;quot;:null,&lt;br /&gt;
      &amp;quot;initrd-address&amp;quot;:null,&lt;br /&gt;
      &amp;quot;append-bootargs&amp;quot;:&amp;quot;root=/dev/mmcblk0p1 rw rootwait&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;emmc&amp;quot;:{&lt;br /&gt;
      &amp;quot;kernel-filename&amp;quot;:&amp;quot;Image&amp;quot;,&lt;br /&gt;
      &amp;quot;kernel-address&amp;quot;:&amp;quot;0x400000&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-filename&amp;quot;:&amp;quot;v3psci.dtb&amp;quot;,&lt;br /&gt;
      &amp;quot;dtc-address&amp;quot;:&amp;quot;0x200000&amp;quot;,&lt;br /&gt;
      &amp;quot;initrd-filename&amp;quot;:null,&lt;br /&gt;
      &amp;quot;initrd-address&amp;quot;:null,&lt;br /&gt;
      &amp;quot;append-bootargs&amp;quot;:&amp;quot;root=/dev/mmcblk2p1 rw rootwait&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Salvando o sistema num cartão SD ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar um cartão SD no boot da labrador, o cartão deve ser formatado com os seguintes parâmetros:&lt;br /&gt;
* Partição MBR (EFI não funcionará)&lt;br /&gt;
* A primeira partição precisa ter offset de 1MB&lt;br /&gt;
* Sistema de arquivo EXT4&lt;br /&gt;
&lt;br /&gt;
Isso pode ser feito com o seguinte script, assumiondo que neste caso o cartão SD é representado no sistema como /dev/mmcblk0. &#039;&#039;&#039;Atenção! Para evitar perda de dados, é necessário confirmar onde está seu cartão SD com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Geralmente estará em mmcblk0, mas pode ser sda, sdb ou outros dependendo do uso de adaptadores.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblk0 mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblk0 mkpart primary ext4 1 100%&lt;br /&gt;
# parted -s /dev/mmcblk0 set 1 boot on&lt;br /&gt;
# mkfs.ext4 -F -D linux64 /dev/mmcblk0p1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos copiar o arquivo &amp;lt;code&amp;gt;bootloader.bin&amp;lt;/code&amp;gt; contido no repositório do kernel para o início do cartão SD.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo dd if=labrador-linux-6/boot/bootloader.bin of=/dev/mmcblk0 conv=notrunc seek=1 bs=512&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install&lt;br /&gt;
$ cp boot/config.json.txt [ponto de montagem do siistema]/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;br /&gt;
&lt;br /&gt;
== Atualizando uma imagem existente ==&lt;br /&gt;
&lt;br /&gt;
É possível tamém atualizar imagens existentes para uma nova versão do debian a fim de não perder configurações. São necessários os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1. Atualizar o kernel, sendo recomendável ser a versão mais recente oferecida no [https://github.com/caninos-loucos Github], e executar os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso haja algum erro, certifique-se que o cartão SD contendo a imagem a ser atualizada está montado, usando o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Atualizar a instalação existente com:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Modificar o arquivo &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; para se referir à próxima versão do Debian: no caso do Debian 10 (buster), mudar para bullseye (Debian 11) e assim por diante. Não é recomendado pular versões, como ir diretamente do buster para o bookworm (Debian 12).&lt;br /&gt;
&lt;br /&gt;
4. Atualizar todos os pacotes para a próxima versão, com os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Caso esteja avançando duas versões ou mais (do Debian 10 para o 12, por exemplo), repita o processo para a próxima versão.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=765</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=765"/>
		<updated>2025-03-10T19:52:54Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: adicionar atualizar imagem existente&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requisitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Distro ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
= Gravando o sistema num cartão SD =&lt;br /&gt;
&lt;br /&gt;
O cartão SD deve conter uma tabela de partições padronizada, que pode ser feita com os seguintes comandos:&lt;br /&gt;
&lt;br /&gt;
Obs.: Você deve substituir mmcblkX pelo descritor correto para o seu caso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblkX mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblkX mkpart primary fat32 1MB 32MB&lt;br /&gt;
# parted -s /dev/mmcblkX mkpart primary ext4 33MB 100%&lt;br /&gt;
# parted -s /dev/mmcblkX set 1 boot on&lt;br /&gt;
&lt;br /&gt;
# mkfs.ext4 -F -D SYSTEM /dev/mmcblkXp2&lt;br /&gt;
# mkfs.vfat -F -L BOOT /dev/mmcblkXp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O próximo passo é gravar o bootloader, que está contido no repositório do kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=labrador-linux-6/boot32/u-boot-dtb.img of=/dev/mmcblkX bs=512 seek=66&lt;br /&gt;
# dd if=labrador-linux-6/boot32/bootloader.bin of=/dev/mmcblkX bs=512 seek=1&lt;br /&gt;
# sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
$ cp boot32/uEnv.txt [ponto de montagem da partição BOOT, ex. /run/media/usuario/BOOT]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição SYSTEM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem SYSTEM]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;br /&gt;
&lt;br /&gt;
== Atualizando uma imagem existente ==&lt;br /&gt;
&lt;br /&gt;
É possível tamém atualizar imagens existentes para uma nova versão do debian a fim de não perder configurações. São necessários os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
1. Atualizar o kernel, sendo recomendável ser a versão mais recente oferecida no [https://github.com/caninos-loucos Github], e executar os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Caso haja algum erro, certifique-se que o cartão SD contendo a imagem a ser atualizada está montado, usando o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
2. Atualizar a instalação existente com:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Modificar o arquivo &amp;lt;code&amp;gt;/etc/apt/sources.list&amp;lt;/code&amp;gt; para se referir à próxima versão do Debian: no caso do Debian 10 (buster), mudar para bullseye (Debian 11) e assim por diante. Não é recomendado pular versões, como ir diretamente do buster para o bookworm (Debian 12).&lt;br /&gt;
&lt;br /&gt;
4. Atualizar todos os pacotes para a próxima versão, com os seguintes comandos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt full-upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Caso esteja avançando duas versões ou mais (do Debian 10 para o 12, por exemplo), repita o processo para a próxima versão.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=764</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=764"/>
		<updated>2025-03-07T20:48:35Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requisitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Distro ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
= Gravando o sistema num cartão SD =&lt;br /&gt;
&lt;br /&gt;
O cartão SD deve conter uma tabela de partições padronizada, que pode ser feita com os seguintes comandos:&lt;br /&gt;
&lt;br /&gt;
Obs.: Você deve substituir mmcblkX pelo descritor correto para o seu caso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted -s /dev/mmcblkX mklabel msdos&lt;br /&gt;
# parted -s /dev/mmcblkX mkpart primary fat32 1MB 32MB&lt;br /&gt;
# parted -s /dev/mmcblkX mkpart primary ext4 33MB 100%&lt;br /&gt;
# parted -s /dev/mmcblkX set 1 boot on&lt;br /&gt;
&lt;br /&gt;
# mkfs.ext4 -F -D SYSTEM /dev/mmcblkXp2&lt;br /&gt;
# mkfs.vfat -F -L BOOT /dev/mmcblkXp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
O próximo passo é gravar o bootloader, que está contido no repositório do kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# dd if=labrador-linux-6/boot32/u-boot-dtb.img of=/dev/mmcblkX bs=512 seek=66&lt;br /&gt;
# dd if=labrador-linux-6/boot32/bootloader.bin of=/dev/mmcblkX bs=512 seek=1&lt;br /&gt;
# sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Retire o cartão SD e insira novamente para montar as partições automaticamente. Com o comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; é possível ver o diretório em que as partições do cartão SD estão montadas.&lt;br /&gt;
&lt;br /&gt;
Com isso, podemos instalar o sistema com o script de make do repositório do kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git clone https://github.com/caninos-loucos/labrador-linux-6&lt;br /&gt;
$ cd labrador-linux-6&lt;br /&gt;
$ make install32&lt;br /&gt;
$ cp boot32/uEnv.txt [ponto de montagem da partição BOOT, ex. /run/media/usuario/BOOT]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, finalmente, podemos gravar o rootfs na partição SYSTEM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp -rp rootfs/* [Ponto de montagem SYSTEM]&lt;br /&gt;
$ sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
E assim, o sistema estará pronto.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=763</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=763"/>
		<updated>2025-03-07T20:00:40Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: /* Sistema de Arquivos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requesitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Distro ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer sistema compatível com a arquitetura ARM. Nesse procedimento descreveremos o processo para criação de um sistema Debian usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
É necessário instalar também o emulador QEMU caso a imagem esteja sendo criada em uma máquina de arquitetura não ARM, como x86. Este pacote pode ser instalado no Debian pelo comando &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt install qemu-user-static&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Escolha um diretório para criação do sistema. É recomendável que seja feito diretamente em um cartão SD, mas é possível também criar em uma pasta local e apenas copiar o sistema para o cartão.&lt;br /&gt;
&lt;br /&gt;
Neste exemplo usaremos uma pasta &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; no diretório /home do seu usuário para criar um sistema Debian 12 (bookworm), mas a versão pode ser alterada se necessário.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign --components=main,contrib,non-free-firmware bookworm /home/[usuário]/rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim que o sistema tiver concluído o primeiro estágio de instalação, entraremos no sistema e realizaremos o segundo estágio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com o segundo estágio completo, alteraremos a lista de pacotes para ficarem o mais completa possível.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-updates contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://ftp.debian.org/debian/ bookworm-backports contrib main non-free non-free-firmware&lt;br /&gt;
&lt;br /&gt;
deb https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
deb-src https://security.debian.org/debian-security/ bookworm-security contrib main non-free non-free-firmware&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso feito, atualize o apt e instale outras dependências.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt update&lt;br /&gt;
# apt upgrade&lt;br /&gt;
# apt install sudo firmware-realtek systemd-timesyncd locales&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para o sudo funcionar corretamente, devemos alterar o hostname da máquina&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior à primeir a linha do arquivo &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nano /etc/hosts&lt;br /&gt;
127.0.0.1       localhost labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Com isso já feito, pode-se criar um usuário comum e adicioná-lo a todos os grupos necessários. Neste exemplo, criamos um usuário &#039;caninos&#039; pertencente ao grupo sudo e criamos uma senha. É *altamente recomendado* criar uma senha para o root também.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m -G sudo -s /bin/bash caninos&lt;br /&gt;
# passwd caninos&lt;br /&gt;
# passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assim, podemos limpar o cache do apt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot, apenas escrever ou teclar Ctrl + D.&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando a máquina:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passos Opcionais ===&lt;br /&gt;
&lt;br /&gt;
1. Ethernet&lt;br /&gt;
&lt;br /&gt;
Para configurar o Ethernet é necessário alterar o arquivo &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; para&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto end0&lt;br /&gt;
iface end0 inet dhcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e usar o comando &amp;lt;code&amp;gt;ifup end0&amp;lt;/code&amp;gt; para ligá-la da primeira vez.&lt;br /&gt;
&lt;br /&gt;
= Gravando o sistema num cartão SD =&lt;br /&gt;
&#039;&#039;&#039;i) Criar a tabela de partições&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obs.: Você deve substituir mmcblkX pelo descritor correto para o seu caso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted /dev/mmcblkX&lt;br /&gt;
Welcome to GNU Parted! Type &#039;help&#039; to view a list of commands.&lt;br /&gt;
(parted) mklabel gpt&lt;br /&gt;
(parted) unit s&lt;br /&gt;
(parted) mkpart primary 16384 114687                                      &lt;br /&gt;
(parted) mkpart primary 114688 -1                                         &lt;br /&gt;
Warning: You requested a partition from 114688s to AAAs (sectors 114688..AAA).&lt;br /&gt;
The closest location we can manage is 114688s to BBBs (sectors 114688..BBB).&lt;br /&gt;
Is this still acceptable to you?&lt;br /&gt;
Yes/No? yes                                                               &lt;br /&gt;
(parted) print                                                            &lt;br /&gt;
Model:  (file)&lt;br /&gt;
Disk /dev/mmcblkX: DDDs&lt;br /&gt;
Sector size (logical/physical): 512B/512B&lt;br /&gt;
Partition Table: gpt&lt;br /&gt;
Disk Flags: &lt;br /&gt;
&lt;br /&gt;
Number  Start    End      Size     File system  Name     Flags&lt;br /&gt;
 1      16384s   114687s  98304s                primary&lt;br /&gt;
 2      114688s  BBBs     CCCs                  primary&lt;br /&gt;
&lt;br /&gt;
(parted) q&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ii) Gravar o bootloader&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;# dd if=/path/to/u-boot-dtb.img of=/dev/mmcblkX bs=512 seek=66 status=progress&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iii) Formatar as partições&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkfs.vfat /dev/mmcblkXp1&lt;br /&gt;
# mkfs.ext4 /dev/mmcblkXp2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iv) Gravar o kernel na partição 1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount /dev/mmcblkXp1 /mnt&lt;br /&gt;
# cp /path/to/kernel.dtb /mnt&lt;br /&gt;
# cp /path/to/uImage /mnt&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /mnt/uEnv.txt&lt;br /&gt;
uenvcmd=setenv ramdisk_addr_r -; setenv os_type linux;&lt;br /&gt;
bootargs=clk_ignore_unused selinux=0 scandelay root=/dev/mmcblk0p2 rw console=ttyS3 rootfstype=ext4 console=tty0 loglevel=6 rootwait&lt;br /&gt;
EOT&lt;br /&gt;
# sync&lt;br /&gt;
# umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;v) Gravar o rootfs na partição 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount /dev/mmcblk0p2 /mnt&lt;br /&gt;
# cp -rp /path/to/rootfs/* /mnt&lt;br /&gt;
# cp -r /path/to/lib/modules /mnt/lib&lt;br /&gt;
# sync&lt;br /&gt;
# umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=762</id>
		<title>Labrador 32 bits - Criando uma imagem</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Labrador_32_bits_-_Criando_uma_imagem&amp;diff=762"/>
		<updated>2025-03-07T19:02:42Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: /* Kernel Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nesta página você encontrará instruções de como criar uma imagem mínima para Labrador 32 bits. Se você deseja usar uma imagem mínima pronta, clique [https://wiki.caninosloucos.org.br/index.php/Labrador_32_bits_imagem_mínima aqui].&lt;br /&gt;
&lt;br /&gt;
O processo para criar uma imagem compreende compilar o bootloader, o Kernel Linux e gerar um sistema de arquivos de uma distribuição GNU/Linux &#039;&#039;Debian-like&#039;&#039;. Compreende também os passos para escrever essa imagem em um cartão SD.&lt;br /&gt;
&lt;br /&gt;
Para encontrar a versão mais atualizada dos softwares aqui citados, acesse nosso [http://github.com/caninos-loucos/ Github].&lt;br /&gt;
&lt;br /&gt;
Para a versão 64 bits acesse a seguinte página: [[Labrador 64 bits - Criando uma imagem]]&lt;br /&gt;
&lt;br /&gt;
= Pré-requesitos =&lt;br /&gt;
&lt;br /&gt;
== Bootloader ==&lt;br /&gt;
O primeiro passo é obter o bootloader. É possível usar um binário pré-compilado ou compilá-lo a partir do código-fonte, seguindo as instruções da página do [https://github.com/caninos-loucos/labrador-uboot-32 github/labrador-uboot-32].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &#039;&#039;u-boot-dtb.img&#039;&#039; ou &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Obs.: Se você quer ter a UART3 (/dev/ttyS3) ativada para console de debug, que é o recomendado para a maior parte dos casos, use o &#039;&#039;u-boot-dtb.img&#039;&#039;. Caso você tenha intenção de usar o UART3 para alguma outra finalidade, use o &#039;&#039;u-boot-dtb-no-UART3-console.img&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Kernel Linux ==&lt;br /&gt;
Para obter o kernel com a versão 6, acesse [https://github.com/caninos-loucos/labrador-linux-6 github/labrador-linux-6]. Há outras versões do kernel no git da caninos-loucos, mas a mais moderna é recomendada. Novamente aqui você tem a opção de usar binários pré-compilados ou compilá-los a partir do código-fonte, conforme as instruções do arquivo README.md.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Obs.: Se você está fazendo compilação cruzada do kernel, é possível usar o arm-linux-gnueabihf-gcc disponível no repositório do bootloader. Nesse caso adicione o caminho para o compilador ao PATH. Por exemplo, se você fez o clone do u-boot em $HOME:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ export PATH=$PATH:$HOME/labrador-uboot-32/toolchain/arm-linux-gnueabihf/bin&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ao final desse processo você terá um arquivo &amp;lt;code&amp;gt;labrador-kernel6-armhf-v*.tar.gz&amp;lt;/code&amp;gt; com os arquivos:&lt;br /&gt;
* &amp;lt;code&amp;gt;kernel.dtb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;uImage&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lib/modules/6.1.76&amp;lt;/code&amp;gt; (pode ser diferente caso esteja usando outra versão do kernel)&lt;br /&gt;
&lt;br /&gt;
== Sistema de Arquivos ==&lt;br /&gt;
&lt;br /&gt;
Você pode usar qualquer rootfs compatível com a arquitetura arm. Nesse procedimento descreveremos o processo para criação de um rootfs usando o [https://wiki.debian.org/pt_BR/Debootstrap debootstrap].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;i) debootstrap primeiro estágio&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para gerar um sistema base Debian Buster:&lt;br /&gt;
&amp;lt;pre&amp;gt;# debootstrap --arch=armhf --foreign buster rootfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ii) debootstrap segundo estágio&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/bin/qemu-arm-static rootfs/usr/bin&lt;br /&gt;
# cp /etc/resolv.conf rootfs/etc&lt;br /&gt;
# chroot rootfs&lt;br /&gt;
# export LANG=C&lt;br /&gt;
# /debootstrap/debootstrap --second-stage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iii) configurando o repositório de pacotes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /etc/apt/sources.list&lt;br /&gt;
deb http://ftp.br.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
deb-src http://ftp.br.debian.org/debian/ buster main contrib non-free&lt;br /&gt;
&lt;br /&gt;
deb http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free&lt;br /&gt;
&lt;br /&gt;
# buster-updates, previously known as &#039;volatile&#039;&lt;br /&gt;
deb http://ftp.br.debian.org/debian/ buster-updates main contrib non-free&lt;br /&gt;
deb-src http://ftp.br.debian.org/debian/ buster-updates main contrib non-free&lt;br /&gt;
EOT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iv) instalando pacotes adicionais&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get update&lt;br /&gt;
# apt-get upgrade&lt;br /&gt;
# apt-get install sudo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;v) definindo o hostname&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;# echo labrador &amp;gt; /etc/hostname&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vi) adiocionar o hostname ao hosts&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Você deve adicionar o nome definido no passo anterior (&#039;&#039;hostname&#039;&#039;) ao arquivo /etc/hosts, da seguinte forma:&lt;br /&gt;
&lt;br /&gt;
127.0.1.1	labrador&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ao final seu arquivo /etc/hosts deve se parecer com esse:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/hosts&lt;br /&gt;
127.0.0.1       localhost&lt;br /&gt;
127.0.1.1       labrador&lt;br /&gt;
::1             localhost ip6-localhost ip6-loopback&lt;br /&gt;
ff02::1         ip6-allnodes&lt;br /&gt;
ff02::2         ip6-allrouters&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;vii) criar um usuário e adicioná-lo ao grupo sudo&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Criaremos um usuário chamado caninos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# useradd -m caninos&lt;br /&gt;
# usermod -aG sudo caninos&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Definiremos uma senha para esse usuário:&lt;br /&gt;
&amp;lt;pre&amp;gt;# passwd caninos&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;viii) demais ajustes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Você pode fazer outros ajustes aqui que julgar necessário. Os passos descritos até aqui são os mais essenciais para se ter uma versão mínima em modo texto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ix) finalizando&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get autoclean&lt;br /&gt;
# apt-get clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para sair do chroot:&lt;br /&gt;
&amp;lt;pre&amp;gt;# exit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Limpando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rm -f rootfs/root/.bash_history rootfs/usr/bin/qemu-arm-static&lt;br /&gt;
# cat /dev/null &amp;gt; rootfs/etc/resolv.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Gravando o sistema num cartão SD =&lt;br /&gt;
&#039;&#039;&#039;i) Criar a tabela de partições&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obs.: Você deve substituir mmcblkX pelo descritor correto para o seu caso.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# parted /dev/mmcblkX&lt;br /&gt;
Welcome to GNU Parted! Type &#039;help&#039; to view a list of commands.&lt;br /&gt;
(parted) mklabel gpt&lt;br /&gt;
(parted) unit s&lt;br /&gt;
(parted) mkpart primary 16384 114687                                      &lt;br /&gt;
(parted) mkpart primary 114688 -1                                         &lt;br /&gt;
Warning: You requested a partition from 114688s to AAAs (sectors 114688..AAA).&lt;br /&gt;
The closest location we can manage is 114688s to BBBs (sectors 114688..BBB).&lt;br /&gt;
Is this still acceptable to you?&lt;br /&gt;
Yes/No? yes                                                               &lt;br /&gt;
(parted) print                                                            &lt;br /&gt;
Model:  (file)&lt;br /&gt;
Disk /dev/mmcblkX: DDDs&lt;br /&gt;
Sector size (logical/physical): 512B/512B&lt;br /&gt;
Partition Table: gpt&lt;br /&gt;
Disk Flags: &lt;br /&gt;
&lt;br /&gt;
Number  Start    End      Size     File system  Name     Flags&lt;br /&gt;
 1      16384s   114687s  98304s                primary&lt;br /&gt;
 2      114688s  BBBs     CCCs                  primary&lt;br /&gt;
&lt;br /&gt;
(parted) q&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ii) Gravar o bootloader&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;# dd if=/path/to/u-boot-dtb.img of=/dev/mmcblkX bs=512 seek=66 status=progress&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iii) Formatar as partições&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkfs.vfat /dev/mmcblkXp1&lt;br /&gt;
# mkfs.ext4 /dev/mmcblkXp2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;iv) Gravar o kernel na partição 1&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount /dev/mmcblkXp1 /mnt&lt;br /&gt;
# cp /path/to/kernel.dtb /mnt&lt;br /&gt;
# cp /path/to/uImage /mnt&lt;br /&gt;
# cat &amp;lt;&amp;lt; EOT &amp;gt; /mnt/uEnv.txt&lt;br /&gt;
uenvcmd=setenv ramdisk_addr_r -; setenv os_type linux;&lt;br /&gt;
bootargs=clk_ignore_unused selinux=0 scandelay root=/dev/mmcblk0p2 rw console=ttyS3 rootfstype=ext4 console=tty0 loglevel=6 rootwait&lt;br /&gt;
EOT&lt;br /&gt;
# sync&lt;br /&gt;
# umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;v) Gravar o rootfs na partição 2&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mount /dev/mmcblk0p2 /mnt&lt;br /&gt;
# cp -rp /path/to/rootfs/* /mnt&lt;br /&gt;
# cp -r /path/to/lib/modules /mnt/lib&lt;br /&gt;
# sync&lt;br /&gt;
# umount /mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Apresenta%C3%A7%C3%A3o_Geral_e_Especifica%C3%A7%C3%B5es_T%C3%A9cnicas&amp;diff=623</id>
		<title>Apresentação Geral e Especificações Técnicas</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Apresenta%C3%A7%C3%A3o_Geral_e_Especifica%C3%A7%C3%B5es_T%C3%A9cnicas&amp;diff=623"/>
		<updated>2023-05-09T18:48:08Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: atualizar bugs resolvidos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Arquivo:Core_v2_base_v1.jpg|thumb|400px|Coreboard v2 e Baseboard v1]]&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Core_v3_base_v2.jpg|thumb|400px|Coreboard v3 e Baseboard v2]]&lt;br /&gt;
A placa Labrador é a primeira Single Board Computer da Caninos Loucos, aberta e com as funcionalidades de um computador. É capaz de rodar em um sistema operacional Linux, acessar a internet, reproduzir vídeos e executar programas de edição de texto. Esse conjunto possui proteção ESD, é compacta, resistente e serve para as mais diversas aplicações, desde projetos pessoais até aplicações profissionais.&lt;br /&gt;
&lt;br /&gt;
A Labrador é uma combinação de 2 placas: a coreboard, uma placa de tamanho reduzido e alta capacidade de processamento, e a baseboard, onde encontramos as diversas interfaces de comunicação.&lt;br /&gt;
&lt;br /&gt;
Estão disponíveis duas versões de coreboards para a Labrador: a Labrador Core v2 que possui um poderoso processador ARM de 32 bits e, para as aplicações que necessitam de ainda mais desempenho, a Labrador Core v3, possui um processador ARM de 64 bits com capacidade de processamento de IA com deep learning.&lt;br /&gt;
&lt;br /&gt;
Modelos da Labrador Baseboard podem desenvolvidos para diferentes aplicações. Estão disponíveis duas versões para o público maker. A Labrador Base M v1 foi uma primeira versão que disponibiliza uma ampla gama de interfaces, incluindo diferentes tipos de interfaces USB, de áudio e vídeo, cartão de expansão de memória, GPIOs, etc. A Labrador Base M v2 que traz uma série de melhorias mecânicas e amplia as possibilidades de comunicação sem fio incluindo o sistema LoRa/LoRaWAN e Bluetooth 5.0.&lt;br /&gt;
&lt;br /&gt;
A Labrador padroniza a interface entre coreboard e baseboard, permitindo a compatibilidade entre seus vários modelos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Especificações =&lt;br /&gt;
&lt;br /&gt;
== Labrador Core v2==&lt;br /&gt;
&lt;br /&gt;
[http://caninosloucos.org/downloads/caninos_loucos_datasheet_labradorV2_001.pdf Fazer o download do folder de especificações]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| CPU&lt;br /&gt;
| 32-bit quad-core ARM® Cortex™ 1,3GHz&amp;lt;br&amp;gt;A9R4 CPU (ARM v7 instruction set)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| GPU&lt;br /&gt;
| Imagination PowerVR SGX544.&amp;lt;br&amp;gt;Suporta: OpenGL-ES 1.1 e 2.0, OpenGL 1.2.1, OpenCL 1.1&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Memória&lt;br /&gt;
| 2 GB DDR3 SDRAM&amp;lt;br&amp;gt;16GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Sistema operacional&lt;br /&gt;
| Debian 10 Linux Kernel 4.14.13 32-bits&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| PMU&lt;br /&gt;
| ATC2306C - Gerenciamento de energia e subsistema de áudio&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Vídeo&lt;br /&gt;
| 1080p@60fps com suporte a codificação de vídeo (incluindo H264, H263, MPEG-4)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Interface de expansão&lt;br /&gt;
| Conector DDR3 SODIMM 204 pinos (macho)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Botão&lt;br /&gt;
| ADFU&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Dimensões&lt;br /&gt;
| 67.6 x 42.2 mm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Peso&lt;br /&gt;
| 13.6g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Labrador Core v3==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| CPU&lt;br /&gt;
| 64-bit quad-Core ARM Cortex A53 1,3GHz CPU (ARM v8 instruction set)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| GPU&lt;br /&gt;
| ARM Mali450 MP6 (4PP + 2GP).&amp;lt;br&amp;gt;Suporta: OpenGL-ES 1.1 e 2.0, OpenVG 1.1, EGL 1.5&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Memória&lt;br /&gt;
| 2 GB LPDDR3 SDRAM&amp;lt;br&amp;gt;16GB eMMC&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Sistema operacional&lt;br /&gt;
| Debian 10 Linux Kernel 4.19&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| PMU&lt;br /&gt;
| ATC2306C - Gerenciamento de energia e subsistema de áudio&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Vídeo&lt;br /&gt;
| 2160p@30fps ou 1080p@60fps com suporte a codificação de vídeo (incluindo H264, H263, MPEG-4)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Interface de expansão&lt;br /&gt;
| Conector DDR3 SODIMM 204 pinos (macho)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Botão&lt;br /&gt;
| ADFU&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Dimensões&lt;br /&gt;
| 67.6 x 31.0 mm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Peso&lt;br /&gt;
| 10.1g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Labrador Base M v1==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Armazenamento&lt;br /&gt;
| MicroSD Card Slot&amp;lt;br&amp;gt;SD/SDHC/SDXC&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Ethernet&lt;br /&gt;
| 10/100Mbps (RJ45)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Wireless&lt;br /&gt;
| Wi-Fi 802.11 b/g/n 2.4GHz&amp;lt;br&amp;gt;Bluetooth 4.0&amp;lt;br&amp;gt;1 x receptor infravermelho (38kHz)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| USB&lt;br /&gt;
| 2 x USB2.0 HOST (tipo A)&amp;lt;br&amp;gt;1 x USB3.0 OTG (micro-B)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Display&lt;br /&gt;
| 1 x HDMI 1.4 (tipo A), até 1920x1080@60Hz&amp;lt;br&amp;gt;1 x LVDS-DSI para LCDs, até 1920x1080@60Hz&amp;lt;br&amp;gt;1 x CVBS PAL/NTSC (PJ342 3,5mm)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Áudio&lt;br /&gt;
| Saída no HDMI&amp;lt;br&amp;gt;Saída analógica estéreo (PJ342 3,5mm)&amp;lt;br&amp;gt;I2S entrada/saída&amp;lt;br&amp;gt;Microfone embutido&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Câmera&lt;br /&gt;
| 1 x interface paralela de 8-bits&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| LED&lt;br /&gt;
| 1 x ligar/desligar (vermelho)&amp;lt;br&amp;gt;1 x programável (verde)&amp;lt;br&amp;gt;1 x programável (azul)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Botões&lt;br /&gt;
| 1x ligar/desligar&amp;lt;br&amp;gt;1x reiniciar&amp;lt;br&amp;gt;1x programável&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Alimentação&lt;br /&gt;
| 5~12V @ 3W&amp;lt;br&amp;gt;(diâmetro interno 2,1mm, externo de 5,5mm, centro positivo).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Expansão&lt;br /&gt;
| Conector SODIMM de 204 pinos (fêmea)&amp;lt;br&amp;gt;40-pin header: 28 GPIOs (compatível com Raspberry Pi / suporta UART, I2C, SPI, PWM e I2S)&amp;lt;br&amp;gt;ADC input&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Debug&lt;br /&gt;
| UART&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Dimensões&lt;br /&gt;
| 88 x 81,3 mm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Peso&lt;br /&gt;
| 52,6g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Labrador Base M v2==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Armazenamento&lt;br /&gt;
| MicroSD Card Slot&amp;lt;br&amp;gt;SD/SDHC/SDXC&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Ethernet&lt;br /&gt;
| 10/100Mbps (RJ45)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Wireless&lt;br /&gt;
| Wi-Fi 802.11 b/g/n 2.4GHz&amp;lt;br&amp;gt;Bluetooth LE 5.0&amp;lt;br&amp;gt;LoRaWAN™**&amp;lt;br&amp;gt;1 x receptor infravermelho (38kHz)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| USB&lt;br /&gt;
| 2 x USB2.0 HOST (tipo A)&amp;lt;br&amp;gt;1 x USB3.0 OTG (micro-B)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Display&lt;br /&gt;
| 1 x HDMI 1.4 (tipo A), até 1920x1080@60Hz&amp;lt;br&amp;gt;1 x LVDS-DSI para LCDs, até 1920x1080@60Hz&amp;lt;br&amp;gt;1 x CVBS PAL/NTSC (PJ342 3,5mm)**&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Áudio&lt;br /&gt;
| saída no HDMI&amp;lt;br&amp;gt;Saída analógica estéreo (PJ342 3,5mm)&amp;lt;br&amp;gt;I2S entrada/saída&amp;lt;br&amp;gt;Microfone embutido&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Câmera&lt;br /&gt;
| 1 x interface paralela de 8-bits&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| LED&lt;br /&gt;
| 1 x ligar/desligar (vermelho)&amp;lt;br&amp;gt;1 x programável (verde)&amp;lt;br&amp;gt;1 x programável (azul)&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Botões&lt;br /&gt;
| 1x ligar/desligar&amp;lt;br&amp;gt;1x reiniciar&amp;lt;br&amp;gt;1x programável&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Alimentação&lt;br /&gt;
| 5~12V @ 3W&amp;lt;br&amp;gt;(diâmetro interno 2,1mm, externo de 5,5mm, centro positivo).&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Expansão&lt;br /&gt;
| Conector SODIMM de 204 pinos (fêmea)&amp;lt;br&amp;gt;40-pin header: 28 GPIOs (compatível com Raspberry Pi / suporta UART, I2C, SPI**e PWM)&amp;lt;br&amp;gt;ADC input&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Debug&lt;br /&gt;
| UART&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Dimensões&lt;br /&gt;
| 92,7 x 88.0 mm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| Peso&lt;br /&gt;
| 59,4g&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;quot; ** Funcionalidade não disponível na Labrador Core v3.1 &amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Limitações das imagens de software disponíveis =&lt;br /&gt;
==Labrador 32 bits==&lt;br /&gt;
Atualmente a imagem do Debian 10, disponibilizada para a Labrador Core v2, de 32 bits, possui algumas limitações de suporte às funcionalidades da Baseboard. Estamos continuamente trabalhando para ampliar a disponibilidade e qualidade dos Drivers das plataformas e contamos com a comunidade para colaborar com estes aprimoramentos.&lt;br /&gt;
&lt;br /&gt;
As seguintes funcionalidades ainda não estão disponíveis no último release:&lt;br /&gt;
* GPU&lt;br /&gt;
* Áudio &lt;br /&gt;
* Câmera&lt;br /&gt;
* USB 3.0&lt;br /&gt;
* LoRa / LoRaWAN&lt;br /&gt;
* Temperatura da CPU&lt;br /&gt;
* Receptor Infravermelho&lt;br /&gt;
* Aceleração gráfica de encoding/decoding por hardware&lt;br /&gt;
&lt;br /&gt;
Além disso, existem os seguintes bugs conhecidos:&lt;br /&gt;
* Resolução de vídeo só alcança 1080p caso o cabo HDMI seja conectado após a Labrador ligar. Caso a placa seja ligada com o cabo HDMI já conectado, a resolução será 720p.&lt;br /&gt;
* A Labrador não funciona com todos os monitores. Foi observado até agora que monitores e TVs HDMI funcionam normalmente e a maioria dos adaptadores VGA também apresenta bom funcionamento. No entanto, ao usá-las com adaptadores DVI alguns monitores não funcionam corretamente.&lt;br /&gt;
&lt;br /&gt;
A imagem da Labrador 32 bits pode ser encontrada em: [http://downloads.caninosloucos.org.br/labrador_32_bits/ Labrador 32 bits]&lt;br /&gt;
&lt;br /&gt;
Caso você queira compilar sua própria versão, pode encontrar os arquivos em nosso [https://github.com/caninos-loucos/labrador-linux GitHub].&lt;br /&gt;
&lt;br /&gt;
==Labrador 64 bits==&lt;br /&gt;
&lt;br /&gt;
Atualmente a imagem do Debian 11, kernel Linux 4.19, disponibilizada para a Labrador Core v3, de 64 bits, possui algumas limitações de suporte às funcionalidades da Baseboard. Estamos continuamente trabalhando para ampliar a disponibilidade e qualidade dos Drivers das plataformas e contamos com a comunidade para colaborar com estes aprimoramentos.&lt;br /&gt;
&lt;br /&gt;
O driver aberto da GPU está sendo desenvolvido no projeto Lima, disponível em &amp;quot;https://gitlab.freedesktop.org/lima&amp;quot;, mas ainda não está finalizado. A imagem disponibilizada já possui todas as dependências resolvidas para a execução do Lima.&lt;br /&gt;
&lt;br /&gt;
As seguintes funcionalidades ainda não estão disponíveis no último release:&lt;br /&gt;
* Câmera&lt;br /&gt;
* USB 3.0&lt;br /&gt;
* Botão programável&lt;br /&gt;
* Receptor Infravermelho&lt;br /&gt;
&lt;br /&gt;
As seguintes funcionalidades não estão disponíveis no hardware da Labrador Core v3.1:&lt;br /&gt;
* CVBS&lt;br /&gt;
* LoRa / LoRaWAN&lt;br /&gt;
* SPI&lt;br /&gt;
&lt;br /&gt;
A imagem da Labrador 64 bits pode ser encontrada em: [http://downloads.caninosloucos.org.br/labrador_64_bits/ Labrador 64 bits].&lt;br /&gt;
&lt;br /&gt;
Caso você queira compilar sua própria versão, pode encontrar os arquivos em nosso [https://github.com/caninos-loucos/labrador-linux-64 GitHub].&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=616</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=616"/>
		<updated>2023-04-27T15:30:15Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: editar as imagens e blocos de código&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|frame|center|658px|Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.]]&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
    $ lsblk&lt;br /&gt;
&lt;br /&gt;
para descobrir o diretório do cartão SD&lt;br /&gt;
[[Arquivo:Lsblk.jpeg|frame|center|658px|Resultado do comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. O cartão SD está mapeado em &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;, mas em alguns casos pode estar em &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;, onde X pode ser 1, 2, 3...]]&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    $ cd output&lt;br /&gt;
    $ sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
    $ sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
    $ sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    $ cd output32&lt;br /&gt;
    $ sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
    $ sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
    $ sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema baseado em Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    $ sudo apt-get update&lt;br /&gt;
    $ sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
    $ sudo apt-get install bison flex libncurses-dev libssl-dev&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    $ git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
    $ make&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
    $ make all32&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
    $ make kernel&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
    $ make kernel32&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Cat_proc_version.png&amp;diff=615</id>
		<title>Arquivo:Cat proc version.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Cat_proc_version.png&amp;diff=615"/>
		<updated>2023-04-27T15:23:29Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: Anacforcelli carregada uma nova versão de Arquivo:Cat proc version.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Descrição do arquivo ==&lt;br /&gt;
Arquivo de versao do kernel&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=614</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=614"/>
		<updated>2023-04-27T15:08:31Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: adicionar frame&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir o diretório do cartão SD&lt;br /&gt;
[[Arquivo:Lsblk.jpeg|frame|658px|Resultado do comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. O cartão SD está mapeado em &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;, mas em alguns casos pode estar em &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;, onde X pode ser 1, 2, 3...]]&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema baseado em Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=613</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=613"/>
		<updated>2023-04-27T15:04:56Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: corrigir lsblk.jpeg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir o diretório do cartão SD&lt;br /&gt;
[[Arquivo:Lsblk.jpeg|none|658px|Resultado do comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. O cartão SD está mapeado em &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;, mas em alguns casos pode estar em &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;, onde X pode ser 1, 2, 3...]]&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema baseado em Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Lsblk.jpeg&amp;diff=612</id>
		<title>Arquivo:Lsblk.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Lsblk.jpeg&amp;diff=612"/>
		<updated>2023-04-27T15:03:09Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=611</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=611"/>
		<updated>2023-04-24T15:09:17Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir o diretório do cartão SD&lt;br /&gt;
[[Arquivo:lsblk.png|none|658px|Resultado do comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. O cartão SD está mapeado em &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;, mas em alguns casos pode estar em &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;, onde X pode ser 1, 2, 3...]]&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema baseado em Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=610</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=610"/>
		<updated>2023-04-24T15:07:39Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir o diretório do cartão SD&lt;br /&gt;
[[Arquivo:lsblk.png|none|658px|Resultado do comando &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. O cartão SD está mapeado em &amp;lt;code&amp;gt;/dev/mmcblk0&amp;lt;/code&amp;gt;, mas em alguns casos pode estar em &amp;lt;code&amp;gt;/dev/sdaX&amp;lt;/code&amp;gt;, onde X pode se 1, 2, 3...]]&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema baseado em Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=609</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=609"/>
		<updated>2023-04-24T14:31:12Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir onde está montado o cartão SD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=608</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=608"/>
		<updated>2023-04-24T14:29:46Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir onde está montado o cartão SD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=607</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=607"/>
		<updated>2023-04-20T00:19:53Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir onde está montado o cartão SD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel==&lt;br /&gt;
Para realizar a compilação em um sistema Debian, é necessário seguir os seguintes passos:&lt;br /&gt;
&#039;&#039;&#039;Instalar os pré-requisitos para a compilação&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get install build-essential binutils gcc-aarch64-linux-gnu make git&lt;br /&gt;
sudo apt-get install bison flex libncurses-dev libssl-dev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Clonar o [https://github.com/caninos-loucos/labrador-aarch64-linux-4 repositório da Caninos Loucos]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://www.github.com/caninos-loucos/labrador-aarch64-linux-4&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Compilar&#039;&#039;&#039;&lt;br /&gt;
Para os modelos de 64 bits, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
ou, para o modelo de 32 bits,&lt;br /&gt;
&amp;lt;pre&amp;gt;make all32&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Compilação incremental===&lt;br /&gt;
Para não ser necessário recompilar todos os arquivos de uma vez, e em vez disso compilar apenas os arquivos modificados, utilizar&lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas de 64 bits ou &lt;br /&gt;
&amp;lt;pre&amp;gt;make kernel32&amp;lt;/pre&amp;gt;&lt;br /&gt;
para sistemas 32 bits.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=606</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=606"/>
		<updated>2023-04-19T23:34:12Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir onde está montado o cartão SD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;br /&gt;
&lt;br /&gt;
==Compilando o Kernel&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=605</id>
		<title>Kernel</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Kernel&amp;diff=605"/>
		<updated>2023-04-19T20:13:35Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Um sistema operacional é um programa que permite a interação de um usuário com um computador além de gerenciar os seus recursos para realizar tarefas. Uma componente de um sistema operacional é o seu Kernel, componente de um sistema operacional que reúne funções como gerenciamento de memória e gerenciamento de processos. O primeiro esforço de implantar um sistema operacional para uso na labrador foi feito com o Kernel do Linux uma vez que apresenta o seu código fonte aberto e com diversas implementações de compatibilidade específica para diferentes arquiteturas de processadores e conjuntos de instruções. Dessa forma, é possível adapta-lo para apresentar compatibilidade com o sistema da Labrador.&lt;br /&gt;
&lt;br /&gt;
É possível verificar o código fonte do Kernel do Linux no [https://github.com/torvalds/linux github].&lt;br /&gt;
&lt;br /&gt;
Com isso, é possível utilizar sistemas operacionais baseados em Kernel de Linux, popularmente referido como distribuições. O termo distribuição remete a tempos incipientes da comunidade Linux em que as pessoas compartilhavam modificações feitas com adições de interfaces gráficas ou ferramentas auxiliares que complementavam as funções básicas do Kernel do Linux, assim constituindo a completude de um Sistema Operacional. Por essa natureza de compartilhamento, para a comunidade de usuários Linux, o termo distribuição acabou se tornando intercambiável com o termo Sistema Operacional.&lt;br /&gt;
&lt;br /&gt;
Dessa forma, é possível utilizar distribuições baseadas no Kernel do Linux como Ubuntu, Debian, Mint, etc na labrador com o Kernel compilado oferecido em seu github, assim como é possível que você mesmo o compile.&lt;br /&gt;
&lt;br /&gt;
== Versão Do Kernel ==&lt;br /&gt;
&lt;br /&gt;
Para verificar qual é a versão atual do Kernel, abra o Terminal (ctrl + alt + T) e digite:&lt;br /&gt;
&lt;br /&gt;
    $ cat /proc/version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:cat_proc_version.png|none|658px|Versão do Kernel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pode-se verificar que neste caso a versão do Kernel é a 4.14.13.&lt;br /&gt;
&lt;br /&gt;
== Atualização Do Kernel ==&lt;br /&gt;
  &lt;br /&gt;
Por diversas razões pode ser necessário trocar ou atualizar o Kernel, seja para suportar novos hardwares ou mesmo melhorar o desempenho com hardwares já suportados ou ainda prover novas funcionalidades a esses hardwares já suportados. É valido observar que este processo pode causar problemas ao seu sistema.&lt;br /&gt;
&lt;br /&gt;
É possível realizar a troca do Kernel de algumas maneiras, a mais simples é utilizando a versão já compilada para a Labrador, que pode ser encontrada no GitHub da [https://github.com/caninos-loucos/labrador-aarch64-linux-4 Caninos Loucos]. Procure os arquivos na pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Troca De Kernel Compilado===&lt;br /&gt;
&lt;br /&gt;
Para realizar a troca do Kernel em um sistema Debian siga os passos a seguir:&lt;br /&gt;
&lt;br /&gt;
#Baixar os arquivos da pasta &amp;lt;code&amp;gt;output&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;output32&amp;lt;/code&amp;gt;;&lt;br /&gt;
#Baixar o script &amp;lt;code&amp;gt;install.sh&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;install32.sh&amp;lt;/code&amp;gt; do repositório caso esteja usando um sistema baseado em Debian;&lt;br /&gt;
#Executar  o script correspondente ao modelo da sua Labrador;&lt;br /&gt;
&lt;br /&gt;
Caso você utilize uma distribuição diferente, execute os passos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;lsblk&amp;lt;/pre&amp;gt;&lt;br /&gt;
para descobrir onde está montado o cartão SD&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 64 bits (core 3.0+)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output&lt;br /&gt;
sudo cp Image [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp v3psci.dtb [ponto de montagem do cartão]/linux64/boot&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/linux64/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Labrador 32 bits (core 2.X)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd output32&lt;br /&gt;
sudo cp uImage [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp kernel.dtb [ponto de montagem do cartão]/BOOT&lt;br /&gt;
sudo cp -r lib/modules [ponto de montagem do cartão]/SYSTEM/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Após esse processo a Labrador já será inicializada com o Kernel desejado.&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Come%C3%A7ando_com_a_Labrador&amp;diff=604</id>
		<title>Começando com a Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Come%C3%A7ando_com_a_Labrador&amp;diff=604"/>
		<updated>2023-04-19T19:01:22Z</updated>

		<summary type="html">&lt;p&gt;Anacforcelli: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Este artigo busca esclarecer o básico para o uso básico das placas Labrador. Caso você já possua familiaridade com o sistema Debian e com a SBC, o login e senha padrão da placa ao sair da fábrica são:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;login: caninos&lt;br /&gt;
senha: caninos &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= O que vem na caixa =&lt;br /&gt;
&lt;br /&gt;
Neste capítulo vamos conhecer um pouco mais sobre o hardware e o software contido na caixa da Labrador.&lt;br /&gt;
&lt;br /&gt;
== Hardware e acessórios inclusos ==&lt;br /&gt;
&lt;br /&gt;
Ao abrir a caixa da Labrador, você irá encontrar uma Labrador dentro de um case de acrílico e uma fonte de alimentação. Note que a Labrador é composta de duas placas: a Core e a Base. A Tabela abaixo descreve e ilustra cada um dos componentes inclusos.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#c0c0c0;&amp;quot; | Item&lt;br /&gt;
! style=&amp;quot;background-color:#c0c0c0;&amp;quot; | Descrição&lt;br /&gt;
! style=&amp;quot;background-color:#c0c0c0; text-align: center&amp;quot; | Foto&lt;br /&gt;
|-&lt;br /&gt;
| Labrador Coreboard&lt;br /&gt;
| Núcleo da Labrador, contém Processador e Memória.&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [[Arquivo:CoreBoard-v2-front.png|300px]]&lt;br /&gt;
|-&lt;br /&gt;
| Labrador Baseboard&lt;br /&gt;
| Placa com periféricos, ex.: USB, HDMI, GPIO, conector de energia.&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [[Arquivo:Base-frente.png|300px]]&lt;br /&gt;
|-&lt;br /&gt;
| Case de acrílico com espaçadores de nylon e parafusos&lt;br /&gt;
| Item para proteção da placa.&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [[Arquivo:Case-labrador.jpeg|300px]]&lt;br /&gt;
|-&lt;br /&gt;
| Fonte de alimentação 12V @ 1A&lt;br /&gt;
| Fornece energia elétrica na tensão e corrente corretas.&lt;br /&gt;
| style=&amp;quot;text-align: center&amp;quot; | [[Arquivo:Fonte-labrador.jpg|200px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Ligando a Labrador =&lt;br /&gt;
&lt;br /&gt;
A principal maneira de usar a placa Labrador é conectando-a a um monitor HDMI e a um teclado e mouse USB, além da fonte de alimentação, para que possa ser usada como um dispositivo Linux comum. As próximas seções ensinam passo a passo como fazer isso.&lt;br /&gt;
&lt;br /&gt;
== Conectando teclado e mouse - USB ==&lt;br /&gt;
&lt;br /&gt;
Para poder interagir com a Labrador, basta conectar teclado e mouse às interfaces USB disponíveis. Em geral, você poderá usar qualquer teclado e mouse USB.&lt;br /&gt;
&lt;br /&gt;
== Conectando o monitor - HDMI ==&lt;br /&gt;
&lt;br /&gt;
A principal forma de visualizar a saída gráfica da Labrador é através de um monitor HDMI (High Definition Multimedia Interface). Você irá precisar de um cabo HDMI comum e de um monitor HDMI.&lt;br /&gt;
&lt;br /&gt;
Caso seu monitor não possua entrada HDMI, mas possua DVI, a Labrador também funciona com adaptadores HDMI-para-DVI. Também já foram testadas entradas analógicas, como o VGA, que funciona com adaptadores HDMI-VGA que façam internamente a conversão digital-analógica. &lt;br /&gt;
&lt;br /&gt;
== Conectando a fonte de alimentação ==&lt;br /&gt;
&lt;br /&gt;
O último passo relacionado à conexão de componentes físicos, antes de usar a placa, é conectar a fonte de alimentação. A fonte enviada na caixa aceita ambas as tensões 110V e 220V, e tem como saída 12V 1A de corrente contínua. Caso necessário, fontes alternativas com especificação equivalente podem ser usadas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Agora, com o mouse, teclado e monitor já conectados, coloque a fonte de alimentação na tomada e conecte-a à Labrador. Se tudo ocorreu bem, você deverá ver o logo do Caninos Loucos, seguido da tela de login.&lt;br /&gt;
&lt;br /&gt;
= Usando o Debian =&lt;br /&gt;
&lt;br /&gt;
O sistema operacional incluso na placa Labrador é o Debian, uma distribuição Linux utilizada no mundo todo. Para o leitor leigo no assunto, [http://www.devfuria.com.br/linux/como-iniciar-no-linux/ há vários tutoriais de Linux na internet], ensinando o básico de [https://sempreupdate.com.br/como-funciona-a-linha-de-comando-do-linux/ como mexer na linha de comando], e até mesmo [https://hacker-tools.github.io/lectures/ guias avançados para aproveitar o Linux ao máximo].&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
&lt;br /&gt;
Para começar, assumindo que você já ligou a placa e está na tela de login, o próximo passo é digitar &amp;quot;caninos&amp;quot; (sem as aspas), tanto para o usuário quanto para a senha, e clicar em &amp;quot;Login&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Acesso à Internet ==&lt;br /&gt;
&lt;br /&gt;
Apesar de a Labrador possuir muitas aplicações para uso offline, conectá-la à Internet nos permite acessar websites, instalar bibliotecas e manter o sistema atualizado. Há duas formas principais, usando cabo de rede (Ethernet) ou a conexão sem-fio (Wi-Fi).&lt;br /&gt;
&lt;br /&gt;
=== Ethernet ===&lt;br /&gt;
&lt;br /&gt;
Para acessar a Internet usando cabo de rede, basta conectar o seu cabo de internet à entrada RJ45. Ao fazer isso com a placa ligada, observe também que o ícone de rede, no lado inferior direito da tela, irá carregar, até apontar que a conexão foi realizada com sucesso.&lt;br /&gt;
&lt;br /&gt;
=== Wi-Fi ===&lt;br /&gt;
&lt;br /&gt;
Como a Labrador já tem Wi-Fi embutido, basta acessar o menu de redes, escolher a sua rede, digitar a senha, e habilitar a conexão. Se for necessário especificar o tipo de segurança da rede, provavelmente será a opção &amp;quot;WPA2 Personal&amp;quot;. Caso isso não funcione, peça ajuda à pessoa que realizou a configuração do seu roteador para descobrir os parâmetros corretos de configuração.&lt;br /&gt;
&lt;br /&gt;
=== Verifique a conexão ===&lt;br /&gt;
&lt;br /&gt;
Independente da forma como você se conectou à Internet, você agora pode testar a sua conexão. Uma forma simples de fazer isso é abrindo o Firefox e acessando o site http://caninosloucos.org. Já uma forma mais avançada é abrindo o terminal, digitando &amp;lt;code&amp;gt;ip address&amp;lt;/code&amp;gt; e verificando se você tem um endereço IP válido. É útil saber o endereço IP, pois permite que nos comuniquemos com a Labrador, seja em uma aplicação IoT, seja durante o desenvolvimento. Por exemplo podemos acessar o terminal da Labrador via SSH (Secure Shell), evitando assim a necessidade de mantê-la sempre conectada a um teclado, mouse e monitor.&lt;br /&gt;
&lt;br /&gt;
== Crie seus próprios programas ==&lt;br /&gt;
&lt;br /&gt;
A Labrador tem suporte para uma variedade de linguagens de programação, desde as mais baixo nível, como o C, até as mais alto nível e expressivas, como Python e NodeJS. Portanto deixe a sua criatividade florescer e crie seus próprios programas usando a Labrador. Ah, e não esqueça de compartilhar os seus projetos com a comunidade, no [https://forum.caninosloucos.org.br/ fórum Caninos Loucos]!&lt;br /&gt;
&lt;br /&gt;
=== Controlando um LED ===&lt;br /&gt;
&lt;br /&gt;
Se ao aprender programar imprimimos &amp;quot;Hello World&amp;quot; na tela, na programação de SBCs vamos além: vamos fazer controlar um LED (Light Emitting Diode). Este exemplo é interessante pois demonstra que nossos programas, além de controlarem caracteres na tela ou bytes na rede, também podem controlar componentes físicos.&lt;br /&gt;
&lt;br /&gt;
Para ligar os LEDs azul e verde da Labrador, abra o terminal e execute o seguinte comando:&lt;br /&gt;
&lt;br /&gt;
Na Labrador 32 bits:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo 63 &amp;gt; /sys/class/gpio/export&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo 44 &amp;gt; /sys/class/gpio/export&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo out &amp;gt; /sys/class/gpio/gpio63/direction&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo out &amp;gt; /sys/class/gpio/gpio44/direction&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo 1 &amp;gt; /sys/class/gpio/gpio63/value&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo 1 &amp;gt; /sys/class/gpio/gpio44/value&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Também é possível fazer os LEDs azul e verde da Labrador piscarem em um ritmo de batimento cardíaco (de acordo com a demanda de processamento da Labrador).&lt;br /&gt;
&lt;br /&gt;
Na Labrador 64 bits:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod 777 /sys/class/leds/led1/trigger&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod 777 /sys/class/leds/led2/trigger&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo heartbeat &amp;gt; /sys/class/leds/led1/trigger&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo heartbeat &amp;gt; /sys/class/leds/led2/trigger&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Programação GPIO ===&lt;br /&gt;
&lt;br /&gt;
Uma interface interessante da Labrador são os pinos GPIO (General Purpose Input/Output), que são basicamente fios nos quais você pode enviar e receber dados. Para aprender como usar esta interface, confira o artigo principal [[Programação GPIO]].&lt;br /&gt;
&lt;br /&gt;
=== UART ===&lt;br /&gt;
&lt;br /&gt;
Através dos pinos de GPIO é possível utilizar a comunicação serial UART na Labrador. Segue um pequeno exemplo de como acessar esse recurso:&lt;br /&gt;
&lt;br /&gt;
1. Conectar um adaptador tty-usb em um computador e a Labrador, através dos pinos 8 e 10 e um GND.&lt;br /&gt;
&lt;br /&gt;
2. Abrir um emulador de terminal no computador e definir o baud rate como 115200bps.&lt;br /&gt;
&lt;br /&gt;
3. No terminal da Labrador entrar com os seguintes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo stty -F /dev/ttyS0 115200&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo echo &amp;quot;Teste&amp;quot; &amp;gt; /dev/ttyS0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. No emulador de terminal do computador aparecerá a palavra “Teste”&lt;br /&gt;
&lt;br /&gt;
=== ADC ===&lt;br /&gt;
&lt;br /&gt;
A Labrador também possui ADC, que significa Analogic-Digital Converter (Conversor Analógico-Digital). A ideia é ler um valor analógico, entre 0v e 3v e converter para digital, representado por um valor de 10 bits (1024 valores possíveis).&lt;br /&gt;
&lt;br /&gt;
Para ler o valor do ADC, entre com o seguinte comando no terminal:&lt;br /&gt;
&amp;lt;pre&amp;gt;cat /sys/kernel/auxadc/adc0&amp;lt;/pre&amp;gt;&lt;br /&gt;
A primeira parte do resultado é o timestamp do sistema, enquanto a segunda parte é o resultado em si.&lt;br /&gt;
&lt;br /&gt;
=== PWM ===&lt;br /&gt;
&lt;br /&gt;
No pino 12 do header de 40 pinos da Labrador é possível encontrar o PWM. Um exemplo de utilização desse recurso pode ser encontrado abaixo. Utilizando o terminal, digite:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;echo 0 &amp;gt; /sys/class/pwm/pwmchip0/export&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selecione o período do sinal PWM (em nanosegundos):&lt;br /&gt;
&amp;lt;pre&amp;gt;echo 2000000000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/period&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selecione o duty cycle (em nanosegundos).&lt;br /&gt;
&amp;lt;pre&amp;gt;echo 1000000000 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/duty_cycle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ative (1) ou desative (0) o sinal PWM:&lt;br /&gt;
&amp;lt;pre&amp;gt;echo 1 &amp;gt; /sys/class/pwm/pwmchip0/pwm0/enable&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Com isso, a tensão no pino 12 variará entre 0v e 3v3 a cada 1 segundo.&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
&lt;br /&gt;
Também encontramos pinos I2C na Labrador. A conexão é feita através dos pinos 3 (dados) e 5 (clock) do header de 40 pinos. Uma maneira de testar essa conexão e descobrir o endereço do seu dispositivo I2C é mostrada abaixo. No terminal, entrar com os seguintes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install i2c-tools&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo i2cdetect -y 2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A saída terá o seguinte formato onde, no exemplo, o endereço do dispositivo i2c é 60 (hexadecimal):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:          -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --&lt;br /&gt;
70: -- -- -- -- -- -- -- --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Programas do Linux ==&lt;br /&gt;
&lt;br /&gt;
O ecossistema de pacotes do Linux, em especial para o Debian, é extremamente rico. Usando o gerenciador de pacotes [https://pt.wikipedia.org/wiki/Advanced_Packaging_Tool apt], bem como seu front-end [https://pt.wikipedia.org/wiki/Synaptic Synaptic], podemos encontrar a grande maioria dos pacotes já compilados para esta distribuição, tanto livres quanto não-livres.&lt;br /&gt;
&lt;br /&gt;
=== Editores de texto ===&lt;br /&gt;
&lt;br /&gt;
O editor de texto de linha de comando [https://pt.wikipedia.org/wiki/Vim Vim] vem instalado por padrão em sistemas Debian. Apesar disso, sua versão reduzida e menos complicada de usar, o [https://en.wikipedia.org/wiki/GNU_nano Nano] é mais confortável de usar para usuários menos experientes com o terminal.&lt;br /&gt;
&lt;br /&gt;
Para aqueles que preferem editores de texto com interface gráfica, o [https://pt.wikipedia.org/wiki/Gedit Gedit] e outros clones de Notepad são uma boa escolha para edições simples. Para edição de texto avançada, o [https://en.wikipedia.org/wiki/Atom_(text_editor) Atom] e o [https://pt.wikipedia.org/wiki/Visual_Studio_Code VSCode] executam, mas o processador sofre um pouco por causa da execução no Electron.&lt;br /&gt;
&lt;br /&gt;
=== Aplicativos de Escritório ===&lt;br /&gt;
&lt;br /&gt;
A Labrador pode ser usada como um pequeno e barato computador de escritório, suportando programas comuns como Firefox, [https://pt.wikipedia.org/wiki/LibreOffice LibreOffice], [https://pt.wikipedia.org/wiki/Mozilla_Thunderbird Thunderbird], bem como outros clientes de calendário e email livres. É possível rodar o Teams usando a opção de download do pacote no formato .deb presente [https://www.microsoft.com/en-us/microsoft-teams/download-app#desktopAppDownloadregion neste link]. Para instalá-lo basta clicar duas vezes no arquivo após baixar.&lt;br /&gt;
&lt;br /&gt;
=== Jogos e Emuladores ===&lt;br /&gt;
&lt;br /&gt;
Foram executados testes usando o emulador [https://pt.wikipedia.org/wiki/Dolphin_(emulador) Dolphin] para a emulação de jogos de GameCube e Wii. Mario Kart DD atinge 6-7 frames por segundo durante o jogo usando OpenGL e pré-compilação de shaders.&lt;br /&gt;
&lt;br /&gt;
Muitos emuladores costumam ter suporte limitado à arquitetura ARM, logo é recomendado cuidado.&lt;br /&gt;
&lt;br /&gt;
=== Servidor Web ===&lt;br /&gt;
&lt;br /&gt;
Nginx &lt;br /&gt;
Node.js&lt;br /&gt;
&lt;br /&gt;
=== Java ===&lt;br /&gt;
&lt;br /&gt;
Há suporte a Java, embora a versão 8 deva ser obtida por fora do APT, já que não está em seus repositórios.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Problemas Comuns ==&lt;br /&gt;
=== sudo apt-get update retorna &amp;quot;This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
Deve ser executado o comando seguinte para permitir a mudança de informações dos repositórios, como versões e atributos.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update --allow-releaseinfo-change&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anacforcelli</name></author>
	</entry>
</feed>