<?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=Ruschigo</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=Ruschigo"/>
	<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Ruschigo"/>
	<updated>2026-09-02T23:03:50Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Instalando_um_sistema_32_bits&amp;diff=551</id>
		<title>Instalando um sistema 32 bits</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Instalando_um_sistema_32_bits&amp;diff=551"/>
		<updated>2022-01-18T13:59:01Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: editando Link do repositório de imagens&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Para instalar um novo sistema na sua placa Labrador você vai precisar de:&lt;br /&gt;
* Labrador Coreboard + Baseboard&lt;br /&gt;
* Imagem do sistema em formato .img&lt;br /&gt;
* Cartão microSD de pelo menos 8Gb&lt;br /&gt;
* Conversor Serial-TTL (não obrigatório)&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:recovery.png|thumb|400px|Botão Recovery]]&lt;br /&gt;
&lt;br /&gt;
*Verifique o modelo da Labrador Coreboard, caso a versão seja LABRADOR CORE V2.x siga as instruções de Labrador 32 bits, caso seja LABRADOR CORE V3.x siga as instruções contidas em [[Instalando um sistema 64 bits]].&lt;br /&gt;
&lt;br /&gt;
= Gravando uma nova imagem =&lt;br /&gt;
&lt;br /&gt;
Apesar de a Labrador já vir com o Debian instalado na memória interna, você pode gravar uma nova imagem, feita por você mesmo, ou baixada do site Caninos Loucos. A Labrador suporta boot a partir da memória interna e a partir de um SD Card, e as seções a seguir ensinam como gravar uma imagem em cada uma dessas mídias. A imagem atual disponibilizada pela Caninos Loucos está em: [http://downloads.caninosloucos.org/labrador_32_bits/ Labrador 32 bits].&lt;br /&gt;
&lt;br /&gt;
== Gravando no SD Card ==&lt;br /&gt;
&lt;br /&gt;
Tendo uma imagem compatível com a Labrador (ver http://downloads.caninosloucos.org/), siga os passos abaixo para gravá-la em um SD Card, de acordo com o sistema operacional do seu computador.&lt;br /&gt;
&lt;br /&gt;
=== Usando Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Passo 1&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;Insira um cartão MicroSD no seu computador. O cartão deve ser maior que a imagem que você deseja gravar (geralmente 8 GB ou maior).&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Passo 2&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;Execute no terminal o seguinte comando: &amp;lt;pre&amp;gt; $ sudo dd if=&amp;lt;caminho/pra/imagem&amp;gt;.img of=/dev/&amp;lt;nome do device&amp;gt; status=progress bs=4M conv=fsync &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Onde &amp;lt;code&amp;gt;&amp;amp;lt;image&amp;amp;gt;&amp;lt;/code&amp;gt; deve ser substituído pelo nome da imagem, e &amp;lt;code&amp;gt;&amp;amp;lt;device&amp;amp;gt;&amp;lt;/code&amp;gt; pelo nome do seu SD Card (algo como sda, ou sdb).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Importante: Se você não sabe qual o &amp;lt;code&amp;gt;&amp;amp;lt;nome do device&amp;amp;gt;&amp;lt;/code&amp;gt; correto, peça ajuda! Um erro neste comando pode formatar o seu computador.&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usando Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Passo 1&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;Insira um cartão MicroSD no seu computador. O cartão deve ser maior que a imagem que você deseja gravar (geralmente 8 GB ou maior).&amp;lt;/p&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Passo 2&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;Formate o cartão MicroSD. Recomenda-se que seja utilizado um software de formatação adequado, neste tutorial estamos usando o SDFormatter v4.0, disponível [https://www.sdcard.org/downloads/formatter_4/ neste website]. Execute o software como administrador e clique no botão “Opção”. Na nova janela aberta, selecione a opção “RÁPIDA” em “FORMAT TYPE” e “ON” em “FORMAT SIZE ADJUSTMENT” e pressione “OK” para voltar à tela anterior. Selecione o Drive equivalente ao seu cartão SD e clique em “Formatar” para iniciar o processo.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Importante: Se você não sabe qual o Drive correto, peça ajuda! Um erro neste comando pode formatar o seu computador.&#039;&#039;&#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:win1.png|frame|none|alt=| Tela inicial do SDFormatter.]]&lt;br /&gt;
&lt;br /&gt;
[[File:win2.png|frame|none|alt=| Tela com as opções do SDFormatter.]]&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;Passo 3&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;p&amp;gt;Para gravar a imagem no cartão SD, recomenda-se o uso de uma ferramenta de gravação. Neste tutorial, estamos usando o Win32DiskImager, encontrado [https://sourceforge.net/projects/win32diskimager/files/latest/download neste link]. Execute o programa como administrador, selecione o arquivo de imagem (descompactado) e clique no botão Write para iniciar o processo de gravação. Quando a barra de carregamento termina, o processo é concluído.&amp;lt;/p&amp;gt;&lt;br /&gt;
[[File:win3.png|frame|none|alt=| Tela do Win32DiskImager (botão para selecionar o caminho em vermelho).]]&lt;br /&gt;
&amp;lt;/dd&amp;gt;&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gravando na memória interna ==&lt;br /&gt;
&lt;br /&gt;
1. Caso tenha o conversor serial-ttl, conecte ele na labrador de acordo com as instruções em [https://wiki.caninosloucos.org.br/index.php/Labrador/Debug Debug]. &lt;br /&gt;
&lt;br /&gt;
2. Remova a labrador da fonte de alimentação, insira o cartão SD na Labrador, mantenha o botão de recuperação da Coreboard (no canto superior esquerdo da Coreboard, próximo à etiqueta de número de série) pressionado, conecte a fonte de alimentação, espere próximo de dois segundos e solte o botão de recuperação.&lt;br /&gt;
&lt;br /&gt;
===Com o conversor serial-tty=== &lt;br /&gt;
3.1 Caso veja a seguinte mensagem &#039;Booting Proccess Aborted&#039; na saída de debug, retire novamente a labrador da fonte, faça o passo anterior novamente, mas mantendo por menos tempo o botão de recuperação pressionado. &lt;br /&gt;
&lt;br /&gt;
[[Arquivo:labrador32_flash_aborted.png|600px|Falha ao realizar boot]]&lt;br /&gt;
&lt;br /&gt;
3.2 O processo de flash começará automaticamente e deve levar cerca de 90 minutos. Para verificar o progresso use o Debug pela serial.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:labrador32_flash_finished.png|400px|Instalação completa]]&lt;br /&gt;
&lt;br /&gt;
3.3 Após o fim do boot basta retirar o cartão SD e ligar a placa normalmente.&lt;br /&gt;
&lt;br /&gt;
===Sem o conversor serial-tty(Em edição, não utilizar)===&lt;br /&gt;
&lt;br /&gt;
1. Ao ligar a placa, entre no &#039;&#039;lxterminal&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
1.1 Em &#039;&#039;/media/caninos&#039;&#039;, se existir, copie todo conteúdo do diretório &#039;&#039;&#039;BOOT2&#039;&#039;&#039; para o diretório &#039;&#039;&#039;BOOT1&#039;&#039;&#039;. &lt;br /&gt;
 $ cp -r /media/caninos/BOOT2/* /media/caninos/BOOT1/&lt;br /&gt;
Caso não exista, copie o conteúdo de &#039;&#039;&#039;BOOT1&#039;&#039;&#039; para &#039;&#039;&#039;BOOT&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
2. Aguarde o processo ser finalizado, remova o cartão SD e reinicie a Labrador.&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=550</id>
		<title>Display TFT SPI na Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=550"/>
		<updated>2021-09-02T12:49:12Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: adicionando a configuração do framebuffer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Em alguns casos utilizar uma tela TFT SPI pode ser uma boa escolha ao invés de uma tela HDMI, seja por custo ou qualquer outro fator, a intenção deste tópico é descrever como conectar e ligar essas telas a Labrador.&lt;br /&gt;
&lt;br /&gt;
* Nos exemplos é usado uma tela 3.5&amp;quot; touch screen;&lt;br /&gt;
**Driver da tela: ILI9486&lt;br /&gt;
**Driver do touch: XPT2046&lt;br /&gt;
&lt;br /&gt;
== Preparando o Kernel da Labrador para o display==&lt;br /&gt;
&lt;br /&gt;
1 - Habilitar o SPI na Labrador, siga o procedimento descrito na nossa WIKI, [[https://wiki.caninosloucos.org/index.php/SPI SPI]].&lt;br /&gt;
&lt;br /&gt;
2 - Verifique se os drivers de sua tela estão habilitados no Kernel da labrador.&lt;br /&gt;
* No repositório onde contem o seu [https://github.com/caninos-loucos/labrador-linux Kernel Labrador] com SPI já habilitado, execute o comando make com o parâmetro menuconfig;&lt;br /&gt;
&amp;lt;pre&amp;gt;$make menuconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do seu touchscreen em;&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: Habilitando o driver touch do XPT2046=TSC2046/ADS7846&lt;br /&gt;
Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; &lt;br /&gt;
  | |    &amp;lt;M&amp;gt;   ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens    │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   AD7877 based touchscreens                                  │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   Analog Devices AD7879-1/AD7889-1 touchscreen interface     │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support I2C bus connection                               │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support SPI bus connection                               | |&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do display&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: habilitando o driver da tela ILI9486&lt;br /&gt;
Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; &lt;br /&gt;
&amp;lt;M&amp;gt;   FB driver for the ILI9486 LCD Controller&amp;lt;/pre&amp;gt;&lt;br /&gt;
*salve o arquivo .config com o nome caninos.config&lt;br /&gt;
&amp;lt;pre&amp;gt;faça um backup do arquivo linux/arch/arm/configs/caninos_labrador_defconfig&lt;br /&gt;
$mv linux/arch/arm/configs/caninos_labrador_defconfig linux/arch/arm/configs/caninos_labrador_defconfig_backup  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;copie o seu arquivo caninos.config no lugar do caninos_labrador_defconfig &lt;br /&gt;
$cp build/caninos.config linux/arch/arm/configs/caninos_labrador_defconfig  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3 - Configurar a device-tree do Kernel&lt;br /&gt;
*abra a device-tree da labrador com um editor de texto da sua preferência;&lt;br /&gt;
&amp;lt;pre&amp;gt;gedit linux/arch/arm/boot/caninos-labrador.dts&amp;lt;/pre&amp;gt;&lt;br /&gt;
*configure a device-tree de acordo com as características da sua tela touch screen, dentro do nó spi0.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Exemplo: adicionando as configurações do display ILI9486 e o touchscreen XPT2046&lt;br /&gt;
        spi0: spi@b0200000 {&lt;br /&gt;
		#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
		#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
		compatible = &amp;quot;caninos,caninos-spi&amp;quot;;&lt;br /&gt;
		reg = &amp;lt;0xb0200000 0x4000&amp;gt;;&lt;br /&gt;
		interrupts = &amp;lt; 0 19 0x4 &amp;gt;;&lt;br /&gt;
		pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
		pinctrl-0 = &amp;lt;&amp;amp;spi0_state_default&amp;gt;;&lt;br /&gt;
		status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		displayPi35@0{//LCD DISPLAY DRIVER&lt;br /&gt;
			compatible = &amp;quot;ilitek,ili9486&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;0&amp;gt;;&lt;br /&gt;
			fps = &amp;lt;30&amp;gt;;&lt;br /&gt;
			bgr;&lt;br /&gt;
			buswidth = &amp;lt;8&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;20000000&amp;gt;;&lt;br /&gt;
		        dc-gpios = &amp;lt;&amp;amp;gpio 70 0&amp;gt;; //GPIOC6&lt;br /&gt;
		        reset-gpios = &amp;lt;&amp;amp;gpio 69 0&amp;gt;; //GPIOC5&lt;br /&gt;
			led-gpios = &amp;lt;&amp;amp;gpio 68 1&amp;gt;; //Pin 11 Header DIsplay =&amp;gt; GPIOC0&lt;br /&gt;
		        //rotation = &amp;lt;270&amp;gt;;&lt;br /&gt;
			init = &amp;lt;0x10000b0 0x00&lt;br /&gt;
		        0x1000011&lt;br /&gt;
			0x20000FF&lt;br /&gt;
			0x100003A 0x55&lt;br /&gt;
			0x1000036 0x28&lt;br /&gt;
			0x10000C2 0x44&lt;br /&gt;
			0x10000C5 0x00 0x00 0x00 0x00&lt;br /&gt;
			0x10000E0 0x0F 0x1F 0x1C 0x0C 0x0F 0x08 0x48 0x98 0x37 0x0A 0x13 0x04 0x11 0x0D 0x00&lt;br /&gt;
			0x10000E1 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x10000E2 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x1000011 &lt;br /&gt;
			0X1000029&amp;gt;;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		tsc2046@1 {//TOUCH SCREEN DEVICE&lt;br /&gt;
			compatible = &amp;quot;ti,tsc2046&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;1&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
			interrupt-parent = &amp;lt;&amp;amp;gpio 64&amp;gt;; //GPIOC0&lt;br /&gt;
			interrupts = &amp;lt;3 17&amp;gt;; //Ainda nao entendi isso&lt;br /&gt;
			pendown-gpio = &amp;lt;&amp;amp;gpio 64 0&amp;gt;;&lt;br /&gt;
			ti,x-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,x-max = /bits/ 16 &amp;lt;480&amp;gt;;&lt;br /&gt;
			ti,y-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,y-max = /bits/ 16 &amp;lt;320&amp;gt;;&lt;br /&gt;
			ti,x-plate-ohms = /bits/ 16 &amp;lt;100&amp;gt;;&lt;br /&gt;
			ti,pressure-max = /bits/ 16 &amp;lt;255&amp;gt;;&lt;br /&gt;
			wakeup-source;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	    };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4 - Compile o e atualize o Kernel de sua labrador&lt;br /&gt;
&amp;lt;pre&amp;gt;$make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5 - Reinicie a Labrador&lt;br /&gt;
&lt;br /&gt;
6 - Confira se os módulos do Kernel foram todos carregados corretamente com lsmod, caso tenha problemas investigue o carregamento do driver com o comando dmesg&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$lsmod&lt;br /&gt;
$sudo dmesg&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Configurando o Debian 10 ==&lt;br /&gt;
&lt;br /&gt;
para conseguir configurar o X para enviar os quadros ao display SPI, é necessário reconfigurar o framebuffer de saída.&lt;br /&gt;
&lt;br /&gt;
para isso instale;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install xserver-xorg-video-fbdev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Crie o arquivo: /usr/share/X11/xorg.conf.d/99-fbdev.conf&lt;br /&gt;
&lt;br /&gt;
Altere o arquivo com um editor de texto, e insira o seguinte conteúdo ao arquivo;&lt;br /&gt;
&amp;lt;pre&amp;gt;Section &amp;quot;Device&amp;quot;  &lt;br /&gt;
  Identifier &amp;quot;myfb&amp;quot;&lt;br /&gt;
  Driver &amp;quot;fbdev&amp;quot;&lt;br /&gt;
  Option &amp;quot;fbdev&amp;quot; &amp;quot;/dev/fb2&amp;quot;&lt;br /&gt;
EndSection&amp;lt;/pre&amp;gt;&lt;br /&gt;
***O campo Option deve ser preenchido com o framebuffer padrão desejado, para consultar qual é framebuffer da tela procure no comando dmesg o log que mostra modulo do driver do seu display, o padrão da Labrador é HDMI(/dev/fb0), caso não tenha outros framebuffers adicionados, o framebuffer padrão do modulo SPI deve ser /dev/fb2.&lt;br /&gt;
&lt;br /&gt;
outra alternativa é utilizar o seguinte comando;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Tela SPI:&lt;br /&gt;
$FRAMEBUFFER=/dev/fb2 startx&lt;br /&gt;
Tela HDMI:&lt;br /&gt;
$FRAMEBUFFER=/dev/fb0 startx&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
para mais informações sobre framebuffer, consulte diretamente no [https://github.com/notro/fbtft/wiki/Framebuffer-use Notro];&lt;br /&gt;
&lt;br /&gt;
== Conecte os sinais do display na Labrador ==&lt;br /&gt;
&lt;br /&gt;
Observe o display 3.5inch Rpi Display por exemplo pode ser conectado diretamente ao barramento de GPIOs da Labrador, consulte a seção Mapeamento SPI, dentro de [https://wiki.caninosloucos.org/index.php/SPI SPI]&lt;br /&gt;
&lt;br /&gt;
==Iniciar o display sem alterar a device-tree==&lt;br /&gt;
&lt;br /&gt;
Para Kernel com versão menor que 5.4(utilize o comando &amp;quot;$uname -a) é possivél invocar o driver do display sem alterar o Device-Tree do Linux, o que precisa ser recompilada e atualizar na labrador, então pode-se usar outra ferramenta do Notro, o [https://github.com/notro/fbtft/wiki/fbtft_device fbtft_device].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: Invocando o display 3.5inch RPI DISPLAY na Labrador 32bits&lt;br /&gt;
fbtft_device name=piscreen speed=32000000 cs=0 mode=SPI_MODE_0 rotate=90 fps=30 gpios=reset:69,dc:70,cs:87,led:68&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=549</id>
		<title>Display TFT SPI na Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=549"/>
		<updated>2021-09-01T21:02:04Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Em alguns casos utilizar uma tela TFT SPI pode ser uma boa escolha ao invés de uma tela HDMI, seja por custo ou qualquer outro fator, a intenção deste tópico é descrever como conectar e ligar essas telas a Labrador.&lt;br /&gt;
&lt;br /&gt;
* Nos exemplos é usado uma tela 3.5&amp;quot; touch screen;&lt;br /&gt;
**Driver da tela: ILI9486&lt;br /&gt;
**Driver do touch: XPT2046&lt;br /&gt;
&lt;br /&gt;
== Preparando o Kernel da Labrador para o display==&lt;br /&gt;
&lt;br /&gt;
1 - Habilitar o SPI na Labrador, siga o procedimento descrito na nossa WIKI, [[https://wiki.caninosloucos.org/index.php/SPI SPI]].&lt;br /&gt;
&lt;br /&gt;
2 - Verifique se os drivers de sua tela estão habilitados no Kernel da labrador.&lt;br /&gt;
* No repositório onde contem o seu [https://github.com/caninos-loucos/labrador-linux Kernel Labrador] com SPI já habilitado, execute o comando make com o parâmetro menuconfig;&lt;br /&gt;
&amp;lt;pre&amp;gt;$make menuconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do seu touchscreen em;&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: Habilitando o driver touch do XPT2046=TSC2046/ADS7846&lt;br /&gt;
Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; &lt;br /&gt;
  | |    &amp;lt;M&amp;gt;   ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens    │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   AD7877 based touchscreens                                  │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   Analog Devices AD7879-1/AD7889-1 touchscreen interface     │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support I2C bus connection                               │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support SPI bus connection                               | |&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do display&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: habilitando o driver da tela ILI9486&lt;br /&gt;
Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; &lt;br /&gt;
&amp;lt;M&amp;gt;   FB driver for the ILI9486 LCD Controller&amp;lt;/pre&amp;gt;&lt;br /&gt;
*salve o arquivo .config com o nome caninos.config&lt;br /&gt;
&amp;lt;pre&amp;gt;faça um backup do arquivo linux/arch/arm/configs/caninos_labrador_defconfig&lt;br /&gt;
$mv linux/arch/arm/configs/caninos_labrador_defconfig linux/arch/arm/configs/caninos_labrador_defconfig_backup  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;copie o seu arquivo caninos.config no lugar do caninos_labrador_defconfig &lt;br /&gt;
$cp build/caninos.config linux/arch/arm/configs/caninos_labrador_defconfig  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3 - Configurar a device-tree do Kernel&lt;br /&gt;
*abra a device-tree da labrador com um editor de texto da sua preferência;&lt;br /&gt;
&amp;lt;pre&amp;gt;gedit linux/arch/arm/boot/caninos-labrador.dts&amp;lt;/pre&amp;gt;&lt;br /&gt;
*configure a device-tree de acordo com as características da sua tela touch screen, dentro do nó spi0.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Exemplo: adicionando as configurações do display ILI9486 e o touchscreen XPT2046&lt;br /&gt;
        spi0: spi@b0200000 {&lt;br /&gt;
		#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
		#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
		compatible = &amp;quot;caninos,caninos-spi&amp;quot;;&lt;br /&gt;
		reg = &amp;lt;0xb0200000 0x4000&amp;gt;;&lt;br /&gt;
		interrupts = &amp;lt; 0 19 0x4 &amp;gt;;&lt;br /&gt;
		pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
		pinctrl-0 = &amp;lt;&amp;amp;spi0_state_default&amp;gt;;&lt;br /&gt;
		status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		displayPi35@0{//LCD DISPLAY DRIVER&lt;br /&gt;
			compatible = &amp;quot;ilitek,ili9486&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;0&amp;gt;;&lt;br /&gt;
			fps = &amp;lt;30&amp;gt;;&lt;br /&gt;
			bgr;&lt;br /&gt;
			buswidth = &amp;lt;8&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;20000000&amp;gt;;&lt;br /&gt;
		        dc-gpios = &amp;lt;&amp;amp;gpio 70 0&amp;gt;; //GPIOC6&lt;br /&gt;
		        reset-gpios = &amp;lt;&amp;amp;gpio 69 0&amp;gt;; //GPIOC5&lt;br /&gt;
			led-gpios = &amp;lt;&amp;amp;gpio 68 1&amp;gt;; //Pin 11 Header DIsplay =&amp;gt; GPIOC0&lt;br /&gt;
		        //rotation = &amp;lt;270&amp;gt;;&lt;br /&gt;
			init = &amp;lt;0x10000b0 0x00&lt;br /&gt;
		        0x1000011&lt;br /&gt;
			0x20000FF&lt;br /&gt;
			0x100003A 0x55&lt;br /&gt;
			0x1000036 0x28&lt;br /&gt;
			0x10000C2 0x44&lt;br /&gt;
			0x10000C5 0x00 0x00 0x00 0x00&lt;br /&gt;
			0x10000E0 0x0F 0x1F 0x1C 0x0C 0x0F 0x08 0x48 0x98 0x37 0x0A 0x13 0x04 0x11 0x0D 0x00&lt;br /&gt;
			0x10000E1 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x10000E2 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x1000011 &lt;br /&gt;
			0X1000029&amp;gt;;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		tsc2046@1 {//TOUCH SCREEN DEVICE&lt;br /&gt;
			compatible = &amp;quot;ti,tsc2046&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;1&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
			interrupt-parent = &amp;lt;&amp;amp;gpio 64&amp;gt;; //GPIOC0&lt;br /&gt;
			interrupts = &amp;lt;3 17&amp;gt;; //Ainda nao entendi isso&lt;br /&gt;
			pendown-gpio = &amp;lt;&amp;amp;gpio 64 0&amp;gt;;&lt;br /&gt;
			ti,x-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,x-max = /bits/ 16 &amp;lt;480&amp;gt;;&lt;br /&gt;
			ti,y-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,y-max = /bits/ 16 &amp;lt;320&amp;gt;;&lt;br /&gt;
			ti,x-plate-ohms = /bits/ 16 &amp;lt;100&amp;gt;;&lt;br /&gt;
			ti,pressure-max = /bits/ 16 &amp;lt;255&amp;gt;;&lt;br /&gt;
			wakeup-source;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	    };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4 - Compile o e atualize o Kernel de sua labrador&lt;br /&gt;
&amp;lt;pre&amp;gt;$make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5 - Reinicie a Labrador&lt;br /&gt;
&lt;br /&gt;
6 - Confira se os módulos do Kernel foram todos carregados corretamente com lsmod, caso tenha problemas investigue o carregamento do driver com o comando dmesg&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$lsmod&lt;br /&gt;
$sudo dmesg&lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Configurando o Debian 10 ==&lt;br /&gt;
&lt;br /&gt;
para conseguir configurar o X para enviar a tela ao display SPI, é necessário reconfigurar o framebuffer de saída.&lt;br /&gt;
&lt;br /&gt;
para isso instale;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install xserver-xorg-video-fbdev&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Crie o arquivo: /usr/share/X11/xorg.conf.d/99-fbdev.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/notro/fbtft-spindle/wiki/FBTFT-image#fbcp---framebuffer-copy &lt;br /&gt;
&lt;br /&gt;
== Conecte os sinais do display na Labrador ==&lt;br /&gt;
&lt;br /&gt;
Observe o display 3.5inch Rpi Display por exemplo pode ser conectado diretamente ao barramento de GPIOs da Labrador, observe a figura a seguir como exemplo.&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=548</id>
		<title>Display TFT SPI na Labrador</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Display_TFT_SPI_na_Labrador&amp;diff=548"/>
		<updated>2021-09-01T20:24:23Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: Primeira versão&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Em alguns casos utilizar uma tela TFT SPI pode ser uma boa escolha ao invés de uma tela HDMI, seja por custo ou qualquer outro fator, a intenção deste tópico é descrever como conectar e ligar essas telas a Labrador.&lt;br /&gt;
&lt;br /&gt;
* Nos exemplos é usado uma tela 3.5&amp;quot; touch screen;&lt;br /&gt;
**Driver da tela: ILI9486&lt;br /&gt;
**Driver do touch: XPT2046&lt;br /&gt;
&lt;br /&gt;
== Preparando o Kernel da Labrador para o display==&lt;br /&gt;
&lt;br /&gt;
1 - Habilitar o SPI na Labrador, siga o procedimento descrito na nossa WIKI, [[https://wiki.caninosloucos.org/index.php/SPI SPI]].&lt;br /&gt;
&lt;br /&gt;
2 - Verifique se os drivers de sua tela estão habilitados no Kernel da labrador.&lt;br /&gt;
* No repositório onde contem o seu [https://github.com/caninos-loucos/labrador-linux Kernel Labrador] com SPI já habilitado, execute o comando make com o parâmetro menuconfig;&lt;br /&gt;
&amp;lt;pre&amp;gt;$make menuconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do seu touchscreen em;&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: Habilitando o driver touch do XPT2046=TSC2046/ADS7846&lt;br /&gt;
Device Drivers -&amp;gt; Input devices support -&amp;gt; Touchscreens --&amp;gt; &lt;br /&gt;
  | |    &amp;lt;M&amp;gt;   ADS7846/TSC2046/AD7873 and AD(S)7843 based touchscreens    │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   AD7877 based touchscreens                                  │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;   Analog Devices AD7879-1/AD7889-1 touchscreen interface     │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support I2C bus connection                               │ │  &lt;br /&gt;
  │ │    &amp;lt;M&amp;gt;     support SPI bus connection                               | |&amp;lt;/pre&amp;gt;&lt;br /&gt;
*habilite o driver do display&lt;br /&gt;
&amp;lt;pre&amp;gt;Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; /*Seu dispositivo*/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Exemplo: habilitando o driver da tela ILI9486&lt;br /&gt;
Device Drivers -&amp;gt; Staging drivers-&amp;gt; Support for small TFT LCD display modules --&amp;gt; &lt;br /&gt;
&amp;lt;M&amp;gt;   FB driver for the ILI9486 LCD Controller&amp;lt;/pre&amp;gt;&lt;br /&gt;
*salve o arquivo .config com o nome caninos.config&lt;br /&gt;
&amp;lt;pre&amp;gt;faça um backup do arquivo linux/arch/arm/configs/caninos_labrador_defconfig&lt;br /&gt;
$mv linux/arch/arm/configs/caninos_labrador_defconfig linux/arch/arm/configs/caninos_labrador_defconfig_backup  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;copie o seu arquivo caninos.config no lugar do caninos_labrador_defconfig &lt;br /&gt;
$cp build/caninos.config linux/arch/arm/configs/caninos_labrador_defconfig  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3 - Configurar a device-tree do Kernel&lt;br /&gt;
*abra a device-tree da labrador com um editor de texto da sua preferência;&lt;br /&gt;
&amp;lt;pre&amp;gt;gedit linux/arch/arm/boot/caninos-labrador.dts&amp;lt;/pre&amp;gt;&lt;br /&gt;
*configure a device-tree de acordo com as características da sua tela touch screen, dentro do nó spi0.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Exemplo: adicionando as configurações do display ILI9486 e o touchscreen XPT2046&lt;br /&gt;
        spi0: spi@b0200000 {&lt;br /&gt;
		#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
		#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
		compatible = &amp;quot;caninos,caninos-spi&amp;quot;;&lt;br /&gt;
		reg = &amp;lt;0xb0200000 0x4000&amp;gt;;&lt;br /&gt;
		interrupts = &amp;lt; 0 19 0x4 &amp;gt;;&lt;br /&gt;
		pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
		pinctrl-0 = &amp;lt;&amp;amp;spi0_state_default&amp;gt;;&lt;br /&gt;
		status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		displayPi35@0{//LCD DISPLAY DRIVER&lt;br /&gt;
			compatible = &amp;quot;ilitek,ili9486&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;0&amp;gt;;&lt;br /&gt;
			fps = &amp;lt;30&amp;gt;;&lt;br /&gt;
			bgr;&lt;br /&gt;
			buswidth = &amp;lt;8&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;20000000&amp;gt;;&lt;br /&gt;
		        dc-gpios = &amp;lt;&amp;amp;gpio 70 0&amp;gt;; //GPIOC6&lt;br /&gt;
		        reset-gpios = &amp;lt;&amp;amp;gpio 69 0&amp;gt;; //GPIOC5&lt;br /&gt;
			led-gpios = &amp;lt;&amp;amp;gpio 68 1&amp;gt;; //Pin 11 Header DIsplay =&amp;gt; GPIOC0&lt;br /&gt;
		        //rotation = &amp;lt;270&amp;gt;;&lt;br /&gt;
			init = &amp;lt;0x10000b0 0x00&lt;br /&gt;
		        0x1000011&lt;br /&gt;
			0x20000FF&lt;br /&gt;
			0x100003A 0x55&lt;br /&gt;
			0x1000036 0x28&lt;br /&gt;
			0x10000C2 0x44&lt;br /&gt;
			0x10000C5 0x00 0x00 0x00 0x00&lt;br /&gt;
			0x10000E0 0x0F 0x1F 0x1C 0x0C 0x0F 0x08 0x48 0x98 0x37 0x0A 0x13 0x04 0x11 0x0D 0x00&lt;br /&gt;
			0x10000E1 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x10000E2 0x0F 0x32 0x2E 0x0B 0x0D 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00&lt;br /&gt;
			0x1000011 &lt;br /&gt;
			0X1000029&amp;gt;;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		tsc2046@1 {//TOUCH SCREEN DEVICE&lt;br /&gt;
			compatible = &amp;quot;ti,tsc2046&amp;quot;;&lt;br /&gt;
			reg = &amp;lt;1&amp;gt;;&lt;br /&gt;
			spi-max-frequency = &amp;lt;1000000&amp;gt;;&lt;br /&gt;
			interrupt-parent = &amp;lt;&amp;amp;gpio 64&amp;gt;; //GPIOC0&lt;br /&gt;
			interrupts = &amp;lt;3 17&amp;gt;; //Ainda nao entendi isso&lt;br /&gt;
			pendown-gpio = &amp;lt;&amp;amp;gpio 64 0&amp;gt;;&lt;br /&gt;
			ti,x-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,x-max = /bits/ 16 &amp;lt;480&amp;gt;;&lt;br /&gt;
			ti,y-min = /bits/ 16 &amp;lt;0&amp;gt;;&lt;br /&gt;
			ti,y-max = /bits/ 16 &amp;lt;320&amp;gt;;&lt;br /&gt;
			ti,x-plate-ohms = /bits/ 16 &amp;lt;100&amp;gt;;&lt;br /&gt;
			ti,pressure-max = /bits/ 16 &amp;lt;255&amp;gt;;&lt;br /&gt;
			wakeup-source;&lt;br /&gt;
			status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
		};&lt;br /&gt;
	    };&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4 - Compile o e atualize o Kernel de sua labrador&lt;br /&gt;
&amp;lt;pre&amp;gt;$make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conecte os sinais do display na Labrador ==&lt;br /&gt;
&lt;br /&gt;
Observe o display 3.5inch Rpi Display por exemplo pode ser conectado diretamente ao barramento de GPIOs da Labrador.&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=SPI&amp;diff=547</id>
		<title>SPI</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=SPI&amp;diff=547"/>
		<updated>2021-08-31T22:22:44Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: Inserindo página sobre SPI na labrador&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Labrador SPI =&lt;br /&gt;
O processador da Labrador conta com diferentes hardwares dedicados para comunicação, um desses hardwares permite o uso de transferência por SPI em altas velocidades de até 60Mps.&lt;br /&gt;
No entanto esse hardware fica disponível através do barramento de GPIO por multiplexação, desta forma o padrão é desabilitado devido maior uso do GPIOS.&lt;br /&gt;
&lt;br /&gt;
= Mapeamento SPI =&lt;br /&gt;
&lt;br /&gt;
Observe a que o SPI fica disponível nos pinos 19(SPI0_MOSI), 21(SPI0_MISO), 23(SPI0_SCLK), 24(SPI0_SS).&lt;br /&gt;
&lt;br /&gt;
[[File:40pinh.png|image|800px|caption Mapeamento do header de 40 pinos.]]&lt;br /&gt;
&lt;br /&gt;
= Habilitar SPI =&lt;br /&gt;
&lt;br /&gt;
Para ativar o SPI é necessário alterar a device-tree do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Crie uma pasta para clonar o kernel da labrador;&lt;br /&gt;
$mkdir $HOME/kernel_labrador/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Entre na pasta&lt;br /&gt;
cd $HOME/kernel_labrador/&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Labrador 32bits&lt;br /&gt;
&amp;lt;pre&amp;gt;$git clone https://github.com/caninos-loucos/labrador-linux&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Labrador 64bits &lt;br /&gt;
&amp;lt;pre&amp;gt;$git clone https://github.com/caninos-loucos/linux-labrador64.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;abra a device-tree com um editor de texto de sua preferência&lt;br /&gt;
$gedit linux/arch/arm/boot/dts/caninos_labrador.dts&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
procure por;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
spi0: spi@b0200000 {&lt;br /&gt;
		#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
		#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
		compatible = &amp;quot;caninos,caninos-spi&amp;quot;;&lt;br /&gt;
		reg = &amp;lt;0xb0200000 0x4000&amp;gt;;&lt;br /&gt;
		interrupts = &amp;lt; 0 19 0x4 &amp;gt;;&lt;br /&gt;
		pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;
		pinctrl-0 = &amp;lt;&amp;amp;spi0_state_default&amp;gt;;&lt;br /&gt;
		status = &amp;quot;disabled&amp;quot;;&lt;br /&gt;
	    };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ative o SPI0, altere o parâmetro status, troque &amp;quot;disabled&amp;quot; por &amp;quot;okay&amp;quot;&lt;br /&gt;
*status = &amp;quot;disabled&amp;quot;;&lt;br /&gt;
por&lt;br /&gt;
*status = &amp;quot;okay&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;compile o kernel novamente, isso pode ser demorado, pois depende do processamento do seu computador.&lt;br /&gt;
$make&amp;lt;/pre&amp;gt;&lt;br /&gt;
***Observação: se tiver dificuldades em compilar o kernel, consulter o Readme.md na raiz do repositório do kernel.&lt;br /&gt;
&lt;br /&gt;
Quando acabar o processo, o kernel com o SPI0 habilitado estará disponível na pasta output/&lt;br /&gt;
***Observação: veja como trocar o kernel da labrador neste [https://wiki.caninosloucos.org/index.php/Kernel link].&lt;br /&gt;
&lt;br /&gt;
Uma vez substituido uImage, kernel.dtb e a pasta /lib/modules pelos compilados&lt;br /&gt;
&lt;br /&gt;
reinicie a Labrador&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;utilize o comando lsmod para verificar se o driver foi adicionado&lt;br /&gt;
$lsmod&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;também pode verificar pelo comando dmesg&lt;br /&gt;
$sudo dmesg&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
deverá ver algo como;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538818] bus: &#039;platform&#039;: add driver caninos_spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538947] bus: &#039;platform&#039;: driver_probe_device: matched device b0200000.spi with driver caninos_spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.538966] bus: &#039;platform&#039;: really_probe: probing driver caninos_spi0 with device b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539042] pinctrl core: add 2 pinctrl maps&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539127] caninos-labrador-pinctrl soc:pinctrl@b01b0040: found group selector 34 for mfp1_2_0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539141] caninos-labrador-pinctrl soc:pinctrl@b01b0040: found group selector 33 for mfp1_4_3&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539152] caninos_spi0 b0200000.spi: no init pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539167] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 87 (P_SPI0_SS) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539177] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 88 (P_SPI0_MISO) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539196] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 86 (P_SPI0_SCLK) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539203] caninos-labrador-pinctrl soc:pinctrl@b01b0040: request pin 89 (P_SPI0_MOSI) for b0200000.spi&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539215] caninos_spi0 b0200000.spi: no sleep pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539222] caninos_spi0 b0200000.spi: no idle pinctrl state&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.539271] devices_kset: Moving b0200000.spi to end of list&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552479] device: &#039;spi0&#039;: device_add&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552784] PM: Adding info for No Bus:spi0&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552906] caninos_spi0 b0200000.spi: controller is unqueued, this is deprecated&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.552925] driver: &#039;caninos_spi0&#039;: driver_bound: bound to device &#039;b0200000.spi&#039;&lt;br /&gt;
Feb 14 08:12:02 debian-armhf kernel: [    8.553044] bus: &#039;platform&#039;: really_probe: bound device b0200000.spi to driver caninos_spi0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Debug&amp;diff=471</id>
		<title>Debug</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Debug&amp;diff=471"/>
		<updated>2020-07-24T14:24:31Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Interface de Debug ==&lt;br /&gt;
&lt;br /&gt;
A Labrador possui uma interface para debug, essa interface consiste em uma saída serial que utiliza o tradicional protocolo TTL. Essa interface pode ser utilizada para realizar comunicação com o sistema, sendo enviadas por ela os logs e alertas do sistema.&lt;br /&gt;
&lt;br /&gt;
== Conexão com o Debug ==&lt;br /&gt;
&lt;br /&gt;
Para conectar ao debug da serial é necessário observar o modelo da base-board, pois a disposição dos pinos de debug nas placas são alterados. &lt;br /&gt;
&lt;br /&gt;
Para versões Labrador Base-M v1.0a, a disposição dos pinos GND, RX e TX são os da figura abaixo;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:labrador-base-1.0a_debug.png]]&lt;br /&gt;
&lt;br /&gt;
Para versões Labrador Base-M v2.x, a disposição dos pinos GND, RX e TX são os da figura abaixo;&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:labrador-base-2.0_debug.png]]&lt;br /&gt;
&lt;br /&gt;
*Conecte então o pino RX da Labrador no pino TX do destino, e o pino TX da Labrador no pino RX do destino e também conecte o GND da labrador no GND do destino. Usualmente o destino é um conversor USB-SERIAL(TTL).&lt;br /&gt;
&lt;br /&gt;
*Configure o destino para operar em uma taxa de 115200bps.&lt;br /&gt;
&lt;br /&gt;
*Programas como PUTTY e SCREEN podem ser utilizados para auxiliar na comunicação.&lt;br /&gt;
&lt;br /&gt;
== Desativando o Debug [Silent Boot] (Em edição) ==&lt;br /&gt;
&lt;br /&gt;
Algumas vezes pode ser útil desativar o console pela serial, isso torna a UART3 (UART de debug) livre para propósitos gerais como a UART0, mas isso torna o boot difícil para debug. Para realizar essa alteração é necessário a troca do bootloader e quando houver necessidade o u-boot, como mostrado nos passos a frente.&lt;br /&gt;
&lt;br /&gt;
1 - Download do Bootloader: Faça o download do bootloader com console desativado;&lt;br /&gt;
&lt;br /&gt;
*Para Labradores Coreboard 2.x: silent_bootloader-32bits.&lt;br /&gt;
*Para Labradores Coreboard 3.x: silent_bootloader-64bits.&lt;br /&gt;
&lt;br /&gt;
2 - Troca do Bootloader: use o comando dd para a troca do bootloader;&lt;br /&gt;
&lt;br /&gt;
 - $sudo dd if=/*diretório-do-bootloader*/silent-bootloader.bin of=/dev/*device*/ conv=notrunc seek=1 bs=512&lt;br /&gt;
 - onde /*diretório-do-bootloader*/ deve ser substituído pelo endereço do diretório onde se encontra o binário do bootloader adquirido no passo anterior.&lt;br /&gt;
 - onde /*device*/ deve ser substituído pelo endereço do dispositivo onde se quer trocar o bootloader, se estiver na Labrador o endereço da memória interna será /dev/mmcblk2.&lt;br /&gt;
&lt;br /&gt;
3 - Download do Uboot(Somente necessário em arquitetura 32 bits, Coreboards 2.x);&lt;br /&gt;
&lt;br /&gt;
*Faça o download do uboot com console desativado.(silent_uboot-32bits)&lt;br /&gt;
&lt;br /&gt;
4 - Troca do Uboot(Somente necessário em arquitetura 32 bits, Coreboards 2.x)&lt;br /&gt;
&lt;br /&gt;
 - $sudo dd if=/*diretório-do-uboot*/silent-u-boot-dtb.img of=/dev/*device*/ conv=notrunc seek=66 bs=512&lt;br /&gt;
 - onde /*diretório-do-uboot*/ deve ser substituído pelo endereço do diretório onde se encontra o binário do uboot adquirido no passo anterior.&lt;br /&gt;
 - onde /*device*/ deve ser substituído pelo endereço do dispositivo onde se quer trocar o uboot, se estiver na Labrador o endereço da memória interna será /dev/mmcblk2.&lt;br /&gt;
&lt;br /&gt;
5 - Use o comando sync&lt;br /&gt;
&lt;br /&gt;
 - $sudo sync&lt;br /&gt;
&lt;br /&gt;
6 - Use o comando reboot&lt;br /&gt;
&lt;br /&gt;
 - $sudo reboot&lt;br /&gt;
&lt;br /&gt;
A Labrador deve agora estar com a serial de Debug desativada, para conferir pode-se utilizar um dispositivo ttl-usb e monitorar em um outro pc durante o boot da Labrador.&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador-base-2.0_debug.png&amp;diff=134</id>
		<title>Arquivo:Labrador-base-2.0 debug.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador-base-2.0_debug.png&amp;diff=134"/>
		<updated>2019-12-20T16:10:03Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador-base-1.0a_debug.png&amp;diff=133</id>
		<title>Arquivo:Labrador-base-1.0a debug.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador-base-1.0a_debug.png&amp;diff=133"/>
		<updated>2019-12-20T16:09:42Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_aborted1.png&amp;diff=128</id>
		<title>Arquivo:Labrador32 flash aborted1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_aborted1.png&amp;diff=128"/>
		<updated>2019-12-20T14:21:44Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_finished.png&amp;diff=127</id>
		<title>Arquivo:Labrador32 flash finished.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_finished.png&amp;diff=127"/>
		<updated>2019-12-20T14:14:14Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
	<entry>
		<id>https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_aborted.png&amp;diff=126</id>
		<title>Arquivo:Labrador32 flash aborted.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.canisinc.com.br/index.php?title=Arquivo:Labrador32_flash_aborted.png&amp;diff=126"/>
		<updated>2019-12-20T14:13:35Z</updated>

		<summary type="html">&lt;p&gt;Ruschigo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Ruschigo</name></author>
	</entry>
</feed>