<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt">
	<id>https://tecporto.pt/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cl%C3%A1udia</id>
	<title>TecPorto - Contribuições do utilizador [pt]</title>
	<link rel="self" type="application/atom+xml" href="https://tecporto.pt/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cl%C3%A1udia"/>
	<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php/Especial:Contribui%C3%A7%C3%B5es/Cl%C3%A1udia"/>
	<updated>2026-05-05T18:03:52Z</updated>
	<subtitle>Contribuições do utilizador</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=354</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=354"/>
		<updated>2018-09-14T23:31:13Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* General/uncategorized */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Antes de começar, tenha em consideração que todos ou practicamente todos os tutoriais aqui são trabalhos em curso e poderão ainda não ter sido revistos e corrigidos. Muitos poderão necessitar de revisão linguística, outros necessitarão de correcções técnicas. Agradecemos que nos comunique, através dos contactos disponíveis [http://tecporto.pt/page/h.page.contacts aqui], quaisquer erros que encontre nestas páginas.&lt;br /&gt;
&lt;br /&gt;
As páginas que ainda não tenham sido consideradas completas estarão marcadas com a sigla WIP (Work In Progress).&lt;br /&gt;
&lt;br /&gt;
Todos os tutoriais aqui apresentados são baseados em informação obtida em primeira mão através das nossas próprias experiências ou através do teste prático de documentação encontrada.&lt;br /&gt;
&lt;br /&gt;
Se tiver sugestões de tutoriais que gostasse de ver aqui publicados, por favor informe-nos através da página de contactos mencionada acima.&lt;br /&gt;
&lt;br /&gt;
= Projectos [PT] =&lt;br /&gt;
* [[TWF]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Workshops [PT] =&lt;br /&gt;
* [[Introdução ao Arduino]] (WIP)&lt;br /&gt;
* [[Boas práticas de programação]] (WIP)&lt;br /&gt;
* [[Introdução à elaboração de Planos de Negócios]] (WIP)&lt;br /&gt;
* [[Práticas básicas de Segurança Informática]] (WIP)&lt;br /&gt;
* [[Introdução ao sistema operativo Linux]] (WIP)&lt;br /&gt;
* [[Introdução à utilização de iptables]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Legislação =&lt;br /&gt;
&lt;br /&gt;
* [[Combate ao terrorismo e branqueamento de capitais]] (WIP)&lt;br /&gt;
* [[Portuguese Consumer and Warranty Law]] (WIP)&lt;br /&gt;
* [[Regulamento Geral de Protecção de Dados]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Tutoriais =&lt;br /&gt;
== General/uncategorized ==&lt;br /&gt;
* [[Segurança no PHP]] (WIP)&lt;br /&gt;
* [[Regras e boas práticas de webdesign]] (WIP)&lt;br /&gt;
* [[How to make money with Facebook]]&lt;br /&gt;
* [[Pacotes necessários para a utilização de LaTeX em Ubuntu]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
&lt;br /&gt;
== BASH ==&lt;br /&gt;
* [[Location independent includes]]&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
* [[Adicionar dispositivo Bluetooth em Linux]] (WIP)&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
* [[Ping device]]&lt;br /&gt;
* [[Programação com BlueZ]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== C e C++ ==&lt;br /&gt;
* [[Alignment and packing]] (WIP)&lt;br /&gt;
* [[C++ From Scratch]] (WIP)&lt;br /&gt;
* [[Exemplo simples de criação de Sockets]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Cryptography ==&lt;br /&gt;
* [[Using LibreSSL]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
* [[FGLRX on legacy graphics cards]]&lt;br /&gt;
&lt;br /&gt;
== EFI/UEFI ==&lt;br /&gt;
* [[Booting the Linux Kernel without a bootloader]]&lt;br /&gt;
* [[Removing an entry from the UEFI boot list (Linux)]]&lt;br /&gt;
&lt;br /&gt;
== Gestão de Projectos ==&lt;br /&gt;
&lt;br /&gt;
* [[Subversion vs Git]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Redmine ===&lt;br /&gt;
* [[Redmine + LDAP]] (WIP)&lt;br /&gt;
* [[Redmine no Gentoo]] (WIP)&lt;br /&gt;
* [[Redmine no Ubuntu]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
* [[Combinar vários repositórios SVN num só]] (WIP)&lt;br /&gt;
* [[Configurar permissões em repositório Subversion]] (WIP)&lt;br /&gt;
* [[Criar um repositório SVN]] (WIP)&lt;br /&gt;
* [[Recriar repositório SVN perdido]] (WIP)&lt;br /&gt;
* [[Subversion + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Gnome ==&lt;br /&gt;
* [[Fixing multi-monitor workspaces on Gnome 3.x]]&lt;br /&gt;
* [[Estilizar GDM]] (WIP)&lt;br /&gt;
* [[Ubuntu 18.04 com Gnome 3 básico]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Internet ==&lt;br /&gt;
* [[Desempenho no Firefox]] (WIP)&lt;br /&gt;
* [[Normalização de temas escuros no Firefox]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Javascript ==&lt;br /&gt;
* [[Adding an &amp;quot;onenter&amp;quot; event to an input element]]&lt;br /&gt;
* [[Validação de campos em Javascript]]&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
* [[Caixa de pesquisa rápida no Synaptic]]&lt;br /&gt;
* [[Compilação do Kernel]] (WIP)&lt;br /&gt;
* [[Corrigir bloqueio do Guake ao fechar aba]] (WIP)&lt;br /&gt;
* [[Criação de RAID em Linux]] (WIP)&lt;br /&gt;
* [[Criação de uma distribuição minimalista]] (WIP)&lt;br /&gt;
* [[Gentoo Portage Tricks]] (WIP)&lt;br /&gt;
* [[LibreSSL no Gentoo]] (WIP)&lt;br /&gt;
* [[NTFS completo em Linux]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Media Wiki ==&lt;br /&gt;
* [[Disable registration]]&lt;br /&gt;
&lt;br /&gt;
== MySQL ==&lt;br /&gt;
* [[Importing CSV file]]&lt;br /&gt;
&lt;br /&gt;
== Redes e Administração de Sistemas ==&lt;br /&gt;
* [[Activar Jumbo Frames em Linux]] (WIP)&lt;br /&gt;
* [[Aprovisionamento remoto de workstations]] (WIP)&lt;br /&gt;
* [[Captura de Pacotes]] (WIP)&lt;br /&gt;
* [[Corrigir falta de rede após saída de suspensão]] (WIP)&lt;br /&gt;
* [[Gestão de energia]] (WIP)&lt;br /&gt;
* [[Montar partilhas via SSH]] (WIP)&lt;br /&gt;
* [[Redes]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
* [[Apache em Gentoo]] (WIP)&lt;br /&gt;
* [[Configurar PHP no Apache]] (WIP)&lt;br /&gt;
* [[Virtualhosts por directório]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Autenticação ===&lt;br /&gt;
* [[LDAP]] (WIP)&lt;br /&gt;
* [[MariaDB + LDAP]] (WIP)&lt;br /&gt;
* [[PAM + LDAP]] (WIP)&lt;br /&gt;
* [[Removing a key from the Known Hosts file]] (WIP)&lt;br /&gt;
* [[SUDO + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
* [[Melhorar o desempenho do Samba]] (WIP)&lt;br /&gt;
* [[Samba + LDAP]] (WIP)&lt;br /&gt;
* [[Samba como PDC Active Directory]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== VPN ===&lt;br /&gt;
&lt;br /&gt;
* [[Criar uma VPN site-to-site com TINC]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Suporte de Hardware =&lt;br /&gt;
&lt;br /&gt;
* [[Lenovo Thinkpad]]&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Ubuntu&amp;diff=352</id>
		<title>Pacotes necessários para a utilização de LaTeX em Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Ubuntu&amp;diff=352"/>
		<updated>2018-09-14T23:30:41Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: Cláudia moveu Pacotes necessários para a utilização de LaTeX em Linux para Pacotes necessários para a utilização de LaTeX em Ubuntu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= No Synaptic =&lt;br /&gt;
&lt;br /&gt;
* texlive-latex-base&lt;br /&gt;
* texlive-latex-extra&lt;br /&gt;
* fonts-mathjax&lt;br /&gt;
* fonts-mathjax-extras&lt;br /&gt;
* libjs-mathjax&lt;br /&gt;
* preview-latex-style&lt;br /&gt;
* python-sagetex&lt;br /&gt;
* sagetex&lt;br /&gt;
* textlive-latex-recommended&lt;br /&gt;
* tipas&lt;br /&gt;
* textlive-base&lt;br /&gt;
* textlive-extra-utils&lt;br /&gt;
* textlive-binaries&lt;br /&gt;
* textlive-font-utils&lt;br /&gt;
* textlive-fonts-recommended&lt;br /&gt;
* textlive-lang-portuguese&lt;br /&gt;
* textlive-pictures&lt;br /&gt;
* textlive-plain-generic&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Linux&amp;diff=353</id>
		<title>Pacotes necessários para a utilização de LaTeX em Linux</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Linux&amp;diff=353"/>
		<updated>2018-09-14T23:30:41Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: Cláudia moveu Pacotes necessários para a utilização de LaTeX em Linux para Pacotes necessários para a utilização de LaTeX em Ubuntu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECIONAMENTO [[Pacotes necessários para a utilização de LaTeX em Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Ubuntu&amp;diff=351</id>
		<title>Pacotes necessários para a utilização de LaTeX em Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Pacotes_necess%C3%A1rios_para_a_utiliza%C3%A7%C3%A3o_de_LaTeX_em_Ubuntu&amp;diff=351"/>
		<updated>2018-09-14T23:29:05Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: Criou a página com &amp;quot;= No Synaptic =  * texlive-latex-base * texlive-latex-extra * fonts-mathjax * fonts-mathjax-extras * libjs-mathjax * preview-latex-style * python-sagetex * sagetex * textliv...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= No Synaptic =&lt;br /&gt;
&lt;br /&gt;
* texlive-latex-base&lt;br /&gt;
* texlive-latex-extra&lt;br /&gt;
* fonts-mathjax&lt;br /&gt;
* fonts-mathjax-extras&lt;br /&gt;
* libjs-mathjax&lt;br /&gt;
* preview-latex-style&lt;br /&gt;
* python-sagetex&lt;br /&gt;
* sagetex&lt;br /&gt;
* textlive-latex-recommended&lt;br /&gt;
* tipas&lt;br /&gt;
* textlive-base&lt;br /&gt;
* textlive-extra-utils&lt;br /&gt;
* textlive-binaries&lt;br /&gt;
* textlive-font-utils&lt;br /&gt;
* textlive-fonts-recommended&lt;br /&gt;
* textlive-lang-portuguese&lt;br /&gt;
* textlive-pictures&lt;br /&gt;
* textlive-plain-generic&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=350</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=350"/>
		<updated>2018-09-14T23:01:38Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Antes de começar, tenha em consideração que todos ou practicamente todos os tutoriais aqui são trabalhos em curso e poderão ainda não ter sido revistos e corrigidos. Muitos poderão necessitar de revisão linguística, outros necessitarão de correcções técnicas. Agradecemos que nos comunique, através dos contactos disponíveis [http://tecporto.pt/page/h.page.contacts aqui], quaisquer erros que encontre nestas páginas.&lt;br /&gt;
&lt;br /&gt;
As páginas que ainda não tenham sido consideradas completas estarão marcadas com a sigla WIP (Work In Progress).&lt;br /&gt;
&lt;br /&gt;
Todos os tutoriais aqui apresentados são baseados em informação obtida em primeira mão através das nossas próprias experiências ou através do teste prático de documentação encontrada.&lt;br /&gt;
&lt;br /&gt;
Se tiver sugestões de tutoriais que gostasse de ver aqui publicados, por favor informe-nos através da página de contactos mencionada acima.&lt;br /&gt;
&lt;br /&gt;
= Projectos [PT] =&lt;br /&gt;
* [[TWF]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Workshops [PT] =&lt;br /&gt;
* [[Introdução ao Arduino]] (WIP)&lt;br /&gt;
* [[Boas práticas de programação]] (WIP)&lt;br /&gt;
* [[Introdução à elaboração de Planos de Negócios]] (WIP)&lt;br /&gt;
* [[Práticas básicas de Segurança Informática]] (WIP)&lt;br /&gt;
* [[Introdução ao sistema operativo Linux]] (WIP)&lt;br /&gt;
* [[Introdução à utilização de iptables]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Legislação =&lt;br /&gt;
&lt;br /&gt;
* [[Combate ao terrorismo e branqueamento de capitais]] (WIP)&lt;br /&gt;
* [[Portuguese Consumer and Warranty Law]] (WIP)&lt;br /&gt;
* [[Regulamento Geral de Protecção de Dados]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Tutoriais =&lt;br /&gt;
== General/uncategorized ==&lt;br /&gt;
* [[Segurança no PHP]] (WIP)&lt;br /&gt;
* [[Regras e boas práticas de webdesign]] (WIP)&lt;br /&gt;
* [[How to make money with Facebook]]&lt;br /&gt;
* [[Pacotes necessários para a utilização de LaTeX em Linux]]&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
&lt;br /&gt;
== BASH ==&lt;br /&gt;
* [[Location independent includes]]&lt;br /&gt;
&lt;br /&gt;
== Bluetooth ==&lt;br /&gt;
* [[Adicionar dispositivo Bluetooth em Linux]] (WIP)&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
* [[Ping device]]&lt;br /&gt;
* [[Programação com BlueZ]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== C e C++ ==&lt;br /&gt;
* [[Alignment and packing]] (WIP)&lt;br /&gt;
* [[C++ From Scratch]] (WIP)&lt;br /&gt;
* [[Exemplo simples de criação de Sockets]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Cryptography ==&lt;br /&gt;
* [[Using LibreSSL]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Drivers ==&lt;br /&gt;
* [[FGLRX on legacy graphics cards]]&lt;br /&gt;
&lt;br /&gt;
== EFI/UEFI ==&lt;br /&gt;
* [[Booting the Linux Kernel without a bootloader]]&lt;br /&gt;
* [[Removing an entry from the UEFI boot list (Linux)]]&lt;br /&gt;
&lt;br /&gt;
== Gestão de Projectos ==&lt;br /&gt;
&lt;br /&gt;
* [[Subversion vs Git]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Redmine ===&lt;br /&gt;
* [[Redmine + LDAP]] (WIP)&lt;br /&gt;
* [[Redmine no Gentoo]] (WIP)&lt;br /&gt;
* [[Redmine no Ubuntu]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Subversion ===&lt;br /&gt;
* [[Combinar vários repositórios SVN num só]] (WIP)&lt;br /&gt;
* [[Configurar permissões em repositório Subversion]] (WIP)&lt;br /&gt;
* [[Criar um repositório SVN]] (WIP)&lt;br /&gt;
* [[Recriar repositório SVN perdido]] (WIP)&lt;br /&gt;
* [[Subversion + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Gnome ==&lt;br /&gt;
* [[Fixing multi-monitor workspaces on Gnome 3.x]]&lt;br /&gt;
* [[Estilizar GDM]] (WIP)&lt;br /&gt;
* [[Ubuntu 18.04 com Gnome 3 básico]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Internet ==&lt;br /&gt;
* [[Desempenho no Firefox]] (WIP)&lt;br /&gt;
* [[Normalização de temas escuros no Firefox]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Javascript ==&lt;br /&gt;
* [[Adding an &amp;quot;onenter&amp;quot; event to an input element]]&lt;br /&gt;
* [[Validação de campos em Javascript]]&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
* [[Caixa de pesquisa rápida no Synaptic]]&lt;br /&gt;
* [[Compilação do Kernel]] (WIP)&lt;br /&gt;
* [[Corrigir bloqueio do Guake ao fechar aba]] (WIP)&lt;br /&gt;
* [[Criação de RAID em Linux]] (WIP)&lt;br /&gt;
* [[Criação de uma distribuição minimalista]] (WIP)&lt;br /&gt;
* [[Gentoo Portage Tricks]] (WIP)&lt;br /&gt;
* [[LibreSSL no Gentoo]] (WIP)&lt;br /&gt;
* [[NTFS completo em Linux]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Media Wiki ==&lt;br /&gt;
* [[Disable registration]]&lt;br /&gt;
&lt;br /&gt;
== MySQL ==&lt;br /&gt;
* [[Importing CSV file]]&lt;br /&gt;
&lt;br /&gt;
== Redes e Administração de Sistemas ==&lt;br /&gt;
* [[Activar Jumbo Frames em Linux]] (WIP)&lt;br /&gt;
* [[Aprovisionamento remoto de workstations]] (WIP)&lt;br /&gt;
* [[Captura de Pacotes]] (WIP)&lt;br /&gt;
* [[Corrigir falta de rede após saída de suspensão]] (WIP)&lt;br /&gt;
* [[Gestão de energia]] (WIP)&lt;br /&gt;
* [[Montar partilhas via SSH]] (WIP)&lt;br /&gt;
* [[Redes]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
* [[Apache em Gentoo]] (WIP)&lt;br /&gt;
* [[Configurar PHP no Apache]] (WIP)&lt;br /&gt;
* [[Virtualhosts por directório]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Autenticação ===&lt;br /&gt;
* [[LDAP]] (WIP)&lt;br /&gt;
* [[MariaDB + LDAP]] (WIP)&lt;br /&gt;
* [[PAM + LDAP]] (WIP)&lt;br /&gt;
* [[Removing a key from the Known Hosts file]] (WIP)&lt;br /&gt;
* [[SUDO + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Samba ===&lt;br /&gt;
* [[Melhorar o desempenho do Samba]] (WIP)&lt;br /&gt;
* [[Samba + LDAP]] (WIP)&lt;br /&gt;
* [[Samba como PDC Active Directory]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== VPN ===&lt;br /&gt;
&lt;br /&gt;
* [[Criar uma VPN site-to-site com TINC]] (WIP)&lt;br /&gt;
&lt;br /&gt;
= Suporte de Hardware =&lt;br /&gt;
&lt;br /&gt;
* [[Lenovo Thinkpad]]&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=345</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=345"/>
		<updated>2018-08-29T17:39:54Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico/Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico/Vanilla =&lt;br /&gt;
Antes de compilar o novo kernel, é necessário instalar as seguintes dependências:&lt;br /&gt;
&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
*libssl-dev&lt;br /&gt;
&lt;br /&gt;
De seguida:&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=344</id>
		<title>Exemplo simples de criação de Sockets</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=344"/>
		<updated>2018-08-12T15:27:40Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Código Servidor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uma socket é uma extremidade de um canal de transmissão entre dois processos através de uma rede de computadores.&lt;br /&gt;
&lt;br /&gt;
Representa a ligação com outro ponto da rede e através da mesma pode-se realizar transferência de dados.&lt;br /&gt;
&lt;br /&gt;
Exemplo do uso de sockets:&lt;br /&gt;
*Firefox a transferir uma página de um servidor;&lt;br /&gt;
*Ligação SSH de uma máquina para outra;&lt;br /&gt;
*Ligação FTP para gerir ficheiros.&lt;br /&gt;
&lt;br /&gt;
As sockets funcionam como caixas (“tomadas”), que ligam um determinado programa a outro programa;&lt;br /&gt;
&lt;br /&gt;
Em sockets TCP existe um cliente e um servidor.&lt;br /&gt;
&lt;br /&gt;
Uma comunicação pode ser feita de forma síncrona ou assíncrona &lt;br /&gt;
&lt;br /&gt;
A forma síncrona resulta no bloqueio do programa enquanto espera pela recepção ou pelo envio de dados.&lt;br /&gt;
&lt;br /&gt;
A forma assíncrona devolve os dados disponíveis no momento em que a função de recepção de dados é chamada e sai imediatamente se não houver ainda dados disponíveis.&lt;br /&gt;
&lt;br /&gt;
=Tipos=&lt;br /&gt;
*UDP - Datagramas&lt;br /&gt;
*TCP – Stream Oriented&lt;br /&gt;
*Unix - Comunicação Local entre processos&lt;br /&gt;
*SCTP – Stream Control Transmission Protocol&lt;br /&gt;
*RAW – sem protocolo definido (só leva cabeçalho IP)&lt;br /&gt;
*Entre outros…&lt;br /&gt;
&lt;br /&gt;
==Tipo UDP==&lt;br /&gt;
*Sem garantia de entrega;&lt;br /&gt;
*Sem garantia de ordem;&lt;br /&gt;
*Sem estabelecimento de ligação;&lt;br /&gt;
*Garantia da consistência do pacote;&lt;br /&gt;
*O pacote tem limites definidos quanto à mensagem;&lt;br /&gt;
*Não sofre fragmentação ao chegar ao destino.&lt;br /&gt;
&lt;br /&gt;
==Tipo TCP==&lt;br /&gt;
*Fluxo continuo de dados, bidireccional, com garantia de entrega;&lt;br /&gt;
*Dados chegam sempre na mesma ordem em que foram enviados e chegam sempre correctamente;&lt;br /&gt;
*Se não chegarem correctamente os dados são reenviados;&lt;br /&gt;
*Os dados podem ser fragmentados.&lt;br /&gt;
&lt;br /&gt;
=Cliente-Servidor=&lt;br /&gt;
É o cliente que faz os pedidos de ligação;&lt;br /&gt;
&lt;br /&gt;
O servidor está sempre à escuta e decide se e quando aceita um pedido de ligação de um cliente.&lt;br /&gt;
&lt;br /&gt;
Um cliente normalmente comunica com um servidor de cada vez, por outro lado, um servidor pode receber ligações de vários clientes.&lt;br /&gt;
&lt;br /&gt;
==Código Cliente==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  //PT: criação da socket&lt;br /&gt;
  int link = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
   //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network short (coloca a porta na ordem de rede). Porta do servidor a ser ligada.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network long (coloca o endereço na ordem de rede). 127&amp;lt;&amp;lt;24 | 1 = 127.0.0.1!!&lt;br /&gt;
  address.sin_addr.s_addr = htonl(127&amp;lt;&amp;lt;24 | 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: estabelecer ligação ao servidor&lt;br /&gt;
  connect(link, (struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  for(int i = 1; i &amp;lt; p_argc; ++i)&lt;br /&gt;
  {&lt;br /&gt;
    send(link, p_argv[i], strlen(p_argv[i]), 0);&lt;br /&gt;
    send(link, &amp;quot; &amp;quot;, 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Código Servidor==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
  //PT: criação da socket  &lt;br /&gt;
  int escuta = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
  //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: Host to network short (coloca a porta na ordem de rede).&lt;br /&gt;
  //PT: Escutar na porta 1100.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: Host to network long (coloca o endereço na ordem de rede).&lt;br /&gt;
  //PT: Qualquer IP da máquina.&lt;br /&gt;
  address.sin_addr.s_addr = htonl(INADDR_ANY);&lt;br /&gt;
&lt;br /&gt;
  //PT: Ligação da porta, ao endereço e à socket criada.&lt;br /&gt;
  bind(escuta, (const struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  //PT: Colocar a socket à escuta&lt;br /&gt;
  listen(escuta, 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: Estruturas para receber a info do cliente.&lt;br /&gt;
  struct sockaddr_in addclient;&lt;br /&gt;
  socklen_t addclientlen = 0;&lt;br /&gt;
&lt;br /&gt;
  //PT: Colocar a aceitar sockets&lt;br /&gt;
  int sockclient = 0;&lt;br /&gt;
  sockclient = accept(escuta, (struct sockaddr *) &amp;amp;addclient, &amp;amp;addclientlen);&lt;br /&gt;
&lt;br /&gt;
  //PT: Mensagem de sucesso na recepção de uma ligação&lt;br /&gt;
  if(0 &amp;lt; sockclient)&lt;br /&gt;
    printf(&amp;quot;Ligação bem estabelecida.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  char * buffer = new char[1500];&lt;br /&gt;
  int numreceived = 0;&lt;br /&gt;
  int totalreceived = 0;&lt;br /&gt;
&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
    numreceived = recv(sockclient, &amp;amp;buffer[totalreceived], (1499 - totalreceived), 0);&lt;br /&gt;
    if(0 &amp;gt;= numreceived)&lt;br /&gt;
      break;&lt;br /&gt;
    totalreceived += numreceived;&lt;br /&gt;
  }&lt;br /&gt;
  buffer[totalreceived] = 0;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;%s\n&amp;quot;, buffer);&lt;br /&gt;
  delete [] buffer;   &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=343</id>
		<title>Exemplo simples de criação de Sockets</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=343"/>
		<updated>2018-08-12T15:25:20Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uma socket é uma extremidade de um canal de transmissão entre dois processos através de uma rede de computadores.&lt;br /&gt;
&lt;br /&gt;
Representa a ligação com outro ponto da rede e através da mesma pode-se realizar transferência de dados.&lt;br /&gt;
&lt;br /&gt;
Exemplo do uso de sockets:&lt;br /&gt;
*Firefox a transferir uma página de um servidor;&lt;br /&gt;
*Ligação SSH de uma máquina para outra;&lt;br /&gt;
*Ligação FTP para gerir ficheiros.&lt;br /&gt;
&lt;br /&gt;
As sockets funcionam como caixas (“tomadas”), que ligam um determinado programa a outro programa;&lt;br /&gt;
&lt;br /&gt;
Em sockets TCP existe um cliente e um servidor.&lt;br /&gt;
&lt;br /&gt;
Uma comunicação pode ser feita de forma síncrona ou assíncrona &lt;br /&gt;
&lt;br /&gt;
A forma síncrona resulta no bloqueio do programa enquanto espera pela recepção ou pelo envio de dados.&lt;br /&gt;
&lt;br /&gt;
A forma assíncrona devolve os dados disponíveis no momento em que a função de recepção de dados é chamada e sai imediatamente se não houver ainda dados disponíveis.&lt;br /&gt;
&lt;br /&gt;
=Tipos=&lt;br /&gt;
*UDP - Datagramas&lt;br /&gt;
*TCP – Stream Oriented&lt;br /&gt;
*Unix - Comunicação Local entre processos&lt;br /&gt;
*SCTP – Stream Control Transmission Protocol&lt;br /&gt;
*RAW – sem protocolo definido (só leva cabeçalho IP)&lt;br /&gt;
*Entre outros…&lt;br /&gt;
&lt;br /&gt;
==Tipo UDP==&lt;br /&gt;
*Sem garantia de entrega;&lt;br /&gt;
*Sem garantia de ordem;&lt;br /&gt;
*Sem estabelecimento de ligação;&lt;br /&gt;
*Garantia da consistência do pacote;&lt;br /&gt;
*O pacote tem limites definidos quanto à mensagem;&lt;br /&gt;
*Não sofre fragmentação ao chegar ao destino.&lt;br /&gt;
&lt;br /&gt;
==Tipo TCP==&lt;br /&gt;
*Fluxo continuo de dados, bidireccional, com garantia de entrega;&lt;br /&gt;
*Dados chegam sempre na mesma ordem em que foram enviados e chegam sempre correctamente;&lt;br /&gt;
*Se não chegarem correctamente os dados são reenviados;&lt;br /&gt;
*Os dados podem ser fragmentados.&lt;br /&gt;
&lt;br /&gt;
=Cliente-Servidor=&lt;br /&gt;
É o cliente que faz os pedidos de ligação;&lt;br /&gt;
&lt;br /&gt;
O servidor está sempre à escuta e decide se e quando aceita um pedido de ligação de um cliente.&lt;br /&gt;
&lt;br /&gt;
Um cliente normalmente comunica com um servidor de cada vez, por outro lado, um servidor pode receber ligações de vários clientes.&lt;br /&gt;
&lt;br /&gt;
==Código Cliente==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  //PT: criação da socket&lt;br /&gt;
  int link = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
   //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network short (coloca a porta na ordem de rede). Porta do servidor a ser ligada.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network long (coloca o endereço na ordem de rede). 127&amp;lt;&amp;lt;24 | 1 = 127.0.0.1!!&lt;br /&gt;
  address.sin_addr.s_addr = htonl(127&amp;lt;&amp;lt;24 | 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: estabelecer ligação ao servidor&lt;br /&gt;
  connect(link, (struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  for(int i = 1; i &amp;lt; p_argc; ++i)&lt;br /&gt;
  {&lt;br /&gt;
    send(link, p_argv[i], strlen(p_argv[i]), 0);&lt;br /&gt;
    send(link, &amp;quot; &amp;quot;, 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Código Servidor==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
  //PT: criação da socket  &lt;br /&gt;
  int escuta = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
  //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: Host to network short (coloca a porta na ordem de rede).&lt;br /&gt;
  //PT: Escutar na porta 1100.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: Host to network long (coloca a porta na ordem de rede).&lt;br /&gt;
  //PT: Qualquer IP da máquina.&lt;br /&gt;
  address.sin_addr.s_addr = htonl(INADDR_ANY);&lt;br /&gt;
&lt;br /&gt;
  //PT: Ligação da porta, ao endereço e à socket criada.&lt;br /&gt;
  bind(escuta, (const struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  //PT: Colocar a socket à escuta&lt;br /&gt;
  listen(escuta, 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: Estruturas para receber a info do cliente.&lt;br /&gt;
  struct sockaddr_in addclient;&lt;br /&gt;
  socklen_t addclientlen = 0;&lt;br /&gt;
&lt;br /&gt;
  //PT: Colocar a aceitar sockets&lt;br /&gt;
  int sockclient = 0;&lt;br /&gt;
  sockclient = accept(escuta, (struct sockaddr *) &amp;amp;addclient, &amp;amp;addclientlen);&lt;br /&gt;
&lt;br /&gt;
  //PT: Mensagem de sucesso na recepção de uma ligação&lt;br /&gt;
  if(0 &amp;lt; sockclient)&lt;br /&gt;
    printf(&amp;quot;Ligação bem estabelecida.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  char * buffer = new char[1500];&lt;br /&gt;
  int numreceived = 0;&lt;br /&gt;
  int totalreceived = 0;&lt;br /&gt;
&lt;br /&gt;
  while(1)&lt;br /&gt;
  {&lt;br /&gt;
    numreceived = recv(sockclient, &amp;amp;buffer[totalreceived], (1499 - totalreceived), 0);&lt;br /&gt;
    if(0 &amp;gt;= numreceived)&lt;br /&gt;
      break;&lt;br /&gt;
    totalreceived += numreceived;&lt;br /&gt;
  }&lt;br /&gt;
  buffer[totalreceived] = 0;&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;%s\n&amp;quot;, buffer);&lt;br /&gt;
  delete [] buffer;   &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=342</id>
		<title>Exemplo simples de criação de Sockets</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=342"/>
		<updated>2018-08-12T15:23:52Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uma socket é uma extremidade de um canal de transmissão entre dois processos através de uma rede de computadores.&lt;br /&gt;
&lt;br /&gt;
Representa a ligação com outro ponto da rede e através da mesma pode-se realizar transferência de dados.&lt;br /&gt;
&lt;br /&gt;
Exemplo do uso de sockets:&lt;br /&gt;
*Firefox a transferir uma página de um servidor;&lt;br /&gt;
*Ligação SSH de uma máquina para outra;&lt;br /&gt;
*Ligação FTP para gerir ficheiros.&lt;br /&gt;
&lt;br /&gt;
As sockets funcionam como caixas (“tomadas”), que ligam um determinado programa a outro programa;&lt;br /&gt;
&lt;br /&gt;
Em sockets TCP existe um cliente e um servidor.&lt;br /&gt;
&lt;br /&gt;
Uma comunicação pode ser feita de forma síncrona ou assíncrona &lt;br /&gt;
&lt;br /&gt;
A forma síncrona resulta no bloqueio do programa enquanto espera pela recepção ou pelo envio de dados.&lt;br /&gt;
&lt;br /&gt;
A forma assíncrona devolve os dados disponíveis no momento em que a função de recepção de dados é chamada e sai imediatamente se não houver ainda dados disponíveis.&lt;br /&gt;
&lt;br /&gt;
=Tipos=&lt;br /&gt;
*UDP - Datagramas&lt;br /&gt;
*TCP – Stream Oriented&lt;br /&gt;
*Unix - Comunicação Local entre processos&lt;br /&gt;
*SCTP – Stream Control Transmission Protocol&lt;br /&gt;
*RAW – sem protocolo definido (só leva cabeçalho IP)&lt;br /&gt;
*Entre outros…&lt;br /&gt;
&lt;br /&gt;
==Tipo UDP==&lt;br /&gt;
*Sem garantia de entrega;&lt;br /&gt;
*Sem garantia de ordem;&lt;br /&gt;
*Sem estabelecimento de ligação;&lt;br /&gt;
*Garantia da consistência do pacote;&lt;br /&gt;
*O pacote tem limites definidos quanto à mensagem;&lt;br /&gt;
*Não sofre fragmentação ao chegar ao destino.&lt;br /&gt;
&lt;br /&gt;
==Tipo TCP==&lt;br /&gt;
*Fluxo continuo de dados, bidireccional, com garantia de entrega;&lt;br /&gt;
*Dados chegam sempre na mesma ordem em que foram enviados e chegam sempre correctamente;&lt;br /&gt;
*Se não chegarem correctamente os dados são reenviados;&lt;br /&gt;
*Os dados podem ser fragmentados.&lt;br /&gt;
&lt;br /&gt;
=Cliente-Servidor=&lt;br /&gt;
É o cliente que faz os pedidos de ligação;&lt;br /&gt;
&lt;br /&gt;
O servidor está sempre à escuta e decide se e quando aceita um pedido de ligação de um cliente.&lt;br /&gt;
&lt;br /&gt;
Um cliente normalmente comunica com um servidor de cada vez, por outro lado, um servidor pode receber ligações de vários clientes.&lt;br /&gt;
&lt;br /&gt;
==Código Cliente==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  //PT: criação da socket&lt;br /&gt;
  int link = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
   //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network short (coloca a porta na ordem de rede). Porta do servidor a ser ligada.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network long (coloca a porta na ordem de rede). 127&amp;lt;&amp;lt;24 | 1 = 127.0.0.1!!&lt;br /&gt;
  address.sin_addr.s_addr = htonl(127&amp;lt;&amp;lt;24 | 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: estabelecer ligação ao servidor&lt;br /&gt;
  connect(link, (struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  for(int i = 1; i &amp;lt; p_argc; ++i)&lt;br /&gt;
  {&lt;br /&gt;
    send(link, p_argv[i], strlen(p_argv[i]), 0);&lt;br /&gt;
    send(link, &amp;quot; &amp;quot;, 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=341</id>
		<title>Exemplo simples de criação de Sockets</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Exemplo_simples_de_cria%C3%A7%C3%A3o_de_Sockets&amp;diff=341"/>
		<updated>2018-08-12T15:20:02Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: Criou a página com &amp;quot;Uma socket é uma extremidade de um canal de transmissão entre dois processos através de uma rede de computadores.  Representa a ligação com outro ponto da rede e atrav...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Uma socket é uma extremidade de um canal de transmissão entre dois processos através de uma rede de computadores.&lt;br /&gt;
&lt;br /&gt;
Representa a ligação com outro ponto da rede e através da mesma pode-se realizar transferência de dados.&lt;br /&gt;
&lt;br /&gt;
Exemplo do uso de sockets:&lt;br /&gt;
*Firefox a transferir uma página de um servidor;&lt;br /&gt;
*Ligação SSH de uma máquina para outra;&lt;br /&gt;
*Ligação FTP para gerir ficheiros.&lt;br /&gt;
&lt;br /&gt;
As sockets funcionam como caixas (“tomadas”), que ligam um determinado programa a outro programa;&lt;br /&gt;
&lt;br /&gt;
Em sockets TCP existe um cliente e um servidor.&lt;br /&gt;
&lt;br /&gt;
Uma comunicação pode ser feita de forma síncrona ou assíncrona &lt;br /&gt;
&lt;br /&gt;
A forma síncrona resulta no bloqueio do programa enquanto espera pela recepção ou pelo envio de dados.&lt;br /&gt;
&lt;br /&gt;
A forma assíncrona devolve os dados disponíveis no momento em que a função de recepção de dados é chamada e sai imediatamente se não houver ainda dados disponíveis.&lt;br /&gt;
&lt;br /&gt;
=Tipos=&lt;br /&gt;
*UDP - Datagramas&lt;br /&gt;
*TCP – Stream Oriented&lt;br /&gt;
*Unix - Comunicação Local entre processos&lt;br /&gt;
*SCTP – Stream Control Transmission Protocol&lt;br /&gt;
*RAW – sem protocolo definido (só leva cabeçalho IP)&lt;br /&gt;
*Entre outros…&lt;br /&gt;
&lt;br /&gt;
==Tipo UDP==&lt;br /&gt;
*Sem garantia de entrega;&lt;br /&gt;
*Sem garantia de ordem;&lt;br /&gt;
*Sem estabelecimento de ligação;&lt;br /&gt;
*Garantia da consistência do pacote;&lt;br /&gt;
*O pacote tem limites definidos quanto à mensagem;&lt;br /&gt;
*Não sofre fragmentação ao chegar ao destino.&lt;br /&gt;
&lt;br /&gt;
==Tipo TCP==&lt;br /&gt;
*Fluxo continuo de dados, bidireccional, com garantia de entrega;&lt;br /&gt;
*Dados chegam sempre na mesma ordem em que foram enviados e chegam sempre correctamente;&lt;br /&gt;
*Se não chegarem correctamente os dados são reenviados;&lt;br /&gt;
*Os dados podem ser fragmentados.&lt;br /&gt;
&lt;br /&gt;
=Cliente-Servidor=&lt;br /&gt;
É o cliente que faz os pedidos de ligação;&lt;br /&gt;
&lt;br /&gt;
O servidor está sempre à escuta e decide se e quando aceita um pedido de ligação de um cliente.&lt;br /&gt;
&lt;br /&gt;
Um cliente normalmente comunica com um servidor de cada vez, por outro lado, um servidor pode receber ligações de vários clientes.&lt;br /&gt;
&lt;br /&gt;
==Código Cliente==&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdio&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main (int p_argc, char** p_argv)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
  //PT: criação da socket&lt;br /&gt;
  int link = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);&lt;br /&gt;
&lt;br /&gt;
   //PT: criação do endereço&lt;br /&gt;
  struct sockaddr_in address;&lt;br /&gt;
&lt;br /&gt;
  //PT: preenchimento do endereço&lt;br /&gt;
  //PT: indicar a utilização do IPv4&lt;br /&gt;
  address.sin_family = AF_INET;&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network short (coloca a porta na ordem de rede). Porta do servidor a ser ligada.&lt;br /&gt;
  address.sin_port = htons(1100);&lt;br /&gt;
  &lt;br /&gt;
  //PT: host to network long (coloca a porta na ordem de rede). 127&amp;lt;&amp;lt;24 | 1 = 127.0.0.1!!&lt;br /&gt;
  address.sin_addr.s_addr = htonl(127&amp;lt;&amp;lt;24 | 1);&lt;br /&gt;
&lt;br /&gt;
  //PT: estabelecer ligação ao servidor&lt;br /&gt;
  connect(link, (struct sockaddr *) &amp;amp;address, sizeof(address));&lt;br /&gt;
&lt;br /&gt;
  for(int i = 1; i &amp;lt; p_argc; ++i)&lt;br /&gt;
  {&lt;br /&gt;
    send(link, p_argv[i], strlen(p_argv[i]), 0);&lt;br /&gt;
    send(link, &amp;quot; &amp;quot;, 1, 0);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=340</id>
		<title>Página principal</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=P%C3%A1gina_principal&amp;diff=340"/>
		<updated>2018-08-09T14:12:50Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* C e C++ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Antes de começar, tenha em consideração que todos ou practicamente todos os tutoriais aqui são trabalhos em curso e poderão ainda não ter sido revistos e corrigidos. Muitos poderão necessitar de revisão linguística, outros necessitarão de correcções técnicas. Agradecemos que nos comunique, através dos contactos disponíveis [http://tecporto.pt/page/h.page.contacts aqui], quaisquer erros que encontre nestas páginas.&lt;br /&gt;
&lt;br /&gt;
As páginas que ainda não tenham sido consideradas completas estarão marcadas com a sigla WIP (Work In Progress).&lt;br /&gt;
&lt;br /&gt;
Todos os tutoriais aqui apresentados são baseados em informação obtida em primeira mão através das nossas próprias experiências ou através do teste prático de documentação encontrada.&lt;br /&gt;
&lt;br /&gt;
Se tiver sugestões de tutoriais que gostasse de ver aqui publicados, por favor informe-nos através da página de contactos mencionada acima.&lt;br /&gt;
&lt;br /&gt;
= Documentação =&lt;br /&gt;
== Projectos [PT] ==&lt;br /&gt;
* [[TWF]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Workshops [PT] ==&lt;br /&gt;
* [[Introdução ao Arduino]] (WIP)&lt;br /&gt;
* [[Boas práticas de programação]] (WIP)&lt;br /&gt;
* [[Introdução à elaboração de Planos de Negócios]] (WIP)&lt;br /&gt;
* [[Práticas básicas de Segurança Informática]] (WIP)&lt;br /&gt;
* [[Introdução ao sistema operativo Linux]] (WIP)&lt;br /&gt;
* [[Introdução à utilização de iptables]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Legislação ==&lt;br /&gt;
&lt;br /&gt;
* [[Combate ao terrorismo e branqueamento de capitais]] (WIP)&lt;br /&gt;
* [[Portuguese Consumer and Warranty Law]] (WIP)&lt;br /&gt;
* [[Regulamento Geral de Protecção de Dados]] (WIP)&lt;br /&gt;
&lt;br /&gt;
== Tutoriais ==&lt;br /&gt;
=== General/uncategorized ===&lt;br /&gt;
* [[Segurança no PHP]] (WIP)&lt;br /&gt;
* [[Regras e boas práticas de webdesign]] (WIP)&lt;br /&gt;
* [[How to make money with Facebook]]&lt;br /&gt;
&lt;br /&gt;
=== Arduino ===&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
&lt;br /&gt;
=== BASH ===&lt;br /&gt;
* [[Location independent includes]]&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
* [[Adicionar dispositivo Bluetooth em Linux]] (WIP)&lt;br /&gt;
* [[Connecting a Firefly module to a Linux workstation]]&lt;br /&gt;
* [[Ping device]]&lt;br /&gt;
* [[Programação com BlueZ]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== C e C++ ===&lt;br /&gt;
* [[Alignment and packing]] (WIP)&lt;br /&gt;
* [[C++ From Scratch]] (WIP)&lt;br /&gt;
* [[Exemplo simples de criação de Sockets]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Cryptography ===&lt;br /&gt;
* [[Using LibreSSL]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Drivers ===&lt;br /&gt;
* [[FGLRX on legacy graphics cards]]&lt;br /&gt;
&lt;br /&gt;
=== EFI/UEFI ===&lt;br /&gt;
* [[Booting the Linux Kernel without a bootloader]]&lt;br /&gt;
* [[Removing an entry from the UEFI boot list (Linux)]]&lt;br /&gt;
&lt;br /&gt;
=== Gestão de Projectos ===&lt;br /&gt;
&lt;br /&gt;
* [[Subversion vs Git]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== Redmine ====&lt;br /&gt;
* [[Redmine + LDAP]] (WIP)&lt;br /&gt;
* [[Redmine no Gentoo]] (WIP)&lt;br /&gt;
* [[Redmine no Ubuntu]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== Subversion ====&lt;br /&gt;
* [[Combinar vários repositórios SVN num só]] (WIP)&lt;br /&gt;
* [[Configurar permissões em repositório Subversion]] (WIP)&lt;br /&gt;
* [[Criar um repositório SVN]] (WIP)&lt;br /&gt;
* [[Recriar repositório SVN perdido]] (WIP)&lt;br /&gt;
* [[Subversion + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Gnome ===&lt;br /&gt;
* [[Fixing multi-monitor workspaces on Gnome 3.x]]&lt;br /&gt;
* [[Estilizar GDM]] (WIP)&lt;br /&gt;
* [[Ubuntu 18.04 com Gnome 3 básico]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Internet ===&lt;br /&gt;
* [[Desempenho no Firefox]] (WIP)&lt;br /&gt;
* [[Normalização de temas escuros no Firefox]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Javascript ===&lt;br /&gt;
* [[Adding an &amp;quot;onenter&amp;quot; event to an input element]]&lt;br /&gt;
* [[Validação de campos em Javascript]]&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* [[Caixa de pesquisa rápida no Synaptic]]&lt;br /&gt;
* [[Compilação do Kernel]] (WIP)&lt;br /&gt;
* [[Corrigir bloqueio do Guake ao fechar aba]] (WIP)&lt;br /&gt;
* [[Criação de RAID em Linux]] (WIP)&lt;br /&gt;
* [[Criação de uma distribuição minimalista]] (WIP)&lt;br /&gt;
* [[Gentoo Portage Tricks]] (WIP)&lt;br /&gt;
* [[LibreSSL no Gentoo]] (WIP)&lt;br /&gt;
* [[NTFS completo em Linux]] (WIP)&lt;br /&gt;
&lt;br /&gt;
=== Media Wiki ===&lt;br /&gt;
* [[Disable registration]]&lt;br /&gt;
&lt;br /&gt;
=== MySQL ===&lt;br /&gt;
* [[Importing CSV file]]&lt;br /&gt;
&lt;br /&gt;
=== Redes e Administração de Sistemas ===&lt;br /&gt;
* [[Activar Jumbo Frames em Linux]] (WIP)&lt;br /&gt;
* [[Aprovisionamento remoto de workstations]] (WIP)&lt;br /&gt;
* [[Captura de Pacotes]] (WIP)&lt;br /&gt;
* [[Corrigir falta de rede após saída de suspensão]] (WIP)&lt;br /&gt;
* [[Gestão de energia]] (WIP)&lt;br /&gt;
* [[Montar partilhas via SSH]] (WIP)&lt;br /&gt;
* [[Redes]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== Apache ====&lt;br /&gt;
* [[Apache em Gentoo]] (WIP)&lt;br /&gt;
* [[Configurar PHP no Apache]] (WIP)&lt;br /&gt;
* [[Virtualhosts por directório]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== Autenticação ====&lt;br /&gt;
* [[LDAP]] (WIP)&lt;br /&gt;
* [[MariaDB + LDAP]] (WIP)&lt;br /&gt;
* [[PAM + LDAP]] (WIP)&lt;br /&gt;
* [[Removing a key from the Known Hosts file]] (WIP)&lt;br /&gt;
* [[SUDO + LDAP]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== Samba ====&lt;br /&gt;
* [[Melhorar o desempenho do Samba]] (WIP)&lt;br /&gt;
* [[Samba + LDAP]] (WIP)&lt;br /&gt;
* [[Samba como PDC Active Directory]] (WIP)&lt;br /&gt;
&lt;br /&gt;
==== VPN ====&lt;br /&gt;
&lt;br /&gt;
* [[Criar uma VPN site-to-site com TINC]] (WIP)&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=339</id>
		<title>Criação de uma distribuição minimalista</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=339"/>
		<updated>2018-08-07T16:45:54Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fazer o download dos pacotes base =&lt;br /&gt;
&lt;br /&gt;
* [http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
* [http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
= Instalação de pacotes adicionais =&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
= Pré-configuração =&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compilação do Kernel =&lt;br /&gt;
&lt;br /&gt;
[[Compilação_do_Kernel]]&lt;br /&gt;
&lt;br /&gt;
= Compilação do BusyBox =&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
= Preparação da máquina de teste =&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Criação da estrutura de directórios e arquivos==&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modificação do Grub ==&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=338</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=338"/>
		<updated>2018-08-07T16:45:09Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico/Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico/Vanilla =&lt;br /&gt;
Antes de compilar o novo kernel, é necessário instalar as seguintes dependências:&lt;br /&gt;
&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
De seguida:&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=337</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=337"/>
		<updated>2018-08-07T16:44:55Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico/Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico/Vanilla =&lt;br /&gt;
Antes de compilar o novo kernel, é necessário instalar as seguintes dependências:&lt;br /&gt;
&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=336</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=336"/>
		<updated>2018-08-07T16:43:19Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico/Vanilla =&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=335</id>
		<title>Criação de uma distribuição minimalista</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=335"/>
		<updated>2018-08-07T16:42:36Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fazer o download dos pacotes base =&lt;br /&gt;
&lt;br /&gt;
* [http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
* [http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
= Instalação de pacotes adicionais =&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
= Pré-configuração =&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compilação do Kernel =&lt;br /&gt;
&lt;br /&gt;
[[Compilação_do_Kernel]]&lt;br /&gt;
&lt;br /&gt;
= Compilação do BusyBox =&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=332</id>
		<title>Criação de uma distribuição minimalista</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=332"/>
		<updated>2018-08-07T16:37:48Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Fazer o download do Kernel e do BusyBox =&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
= Instalação de pacotes adicionais =&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
= Pré-configuração =&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Compilação do Kernel =&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Compilação do BusyBox =&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=331</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=331"/>
		<updated>2018-08-07T16:35:17Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=330</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=330"/>
		<updated>2018-08-07T16:34:54Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=329</id>
		<title>Criação de uma distribuição minimalista</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Cria%C3%A7%C3%A3o_de_uma_distribui%C3%A7%C3%A3o_minimalista&amp;diff=329"/>
		<updated>2018-08-07T16:33:53Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: Criou a página com &amp;quot;= Genérico / Vanilla =  == Fazer o download do kernel e do BusyBox == [http://www.kernel.org Kernel Vanilla]  [http://www.busybox.net BusyBox]  == Instalação de pacotes a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=327</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=327"/>
		<updated>2018-08-07T16:31:24Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Preparação da máquina de teste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=326</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=326"/>
		<updated>2018-08-07T16:31:00Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make mrproper&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ls -l &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 update-grub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=325</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=325"/>
		<updated>2018-08-07T16:25:46Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Modificação do Grub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=324</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=324"/>
		<updated>2018-08-07T16:25:17Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Modificação do Grub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=323</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=323"/>
		<updated>2018-08-07T16:24:48Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Modificação do Grub */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
 Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reiniciar e testar!&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=322</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=322"/>
		<updated>2018-08-07T16:24:19Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Preparação da máquina de teste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Criação da estrutura de directórios e arquivos===&lt;br /&gt;
Dentro da partição do MyDistro e em root:&lt;br /&gt;
*Modificar dono e grupo dos arquivos anteriormente copiados&lt;br /&gt;
 chown root:root busybox bzImage&lt;br /&gt;
&lt;br /&gt;
*Criação dos directórios&lt;br /&gt;
 mkdir sbin bin dev&lt;br /&gt;
&lt;br /&gt;
*Criação de links simbólicos&lt;br /&gt;
 ln -s busybox init&lt;br /&gt;
 ln -s /busybox sbin/init&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam os dispositivos&lt;br /&gt;
 mknod -m 600 console c 5 1&lt;br /&gt;
 mknod -m 666 null c 1 3&lt;br /&gt;
 mknod -m 620 tty1 c 4 1&lt;br /&gt;
 mknod -m 620 tty2 c 4 2&lt;br /&gt;
 mknod -m 660 sda b 8 0&lt;br /&gt;
 mknod -m 660 sda1 b 8 1&lt;br /&gt;
 mknod -m 660 sda2 b 8 2&lt;br /&gt;
&lt;br /&gt;
*Criação dos arquivos que representam as consolas&lt;br /&gt;
 cd bin&lt;br /&gt;
  ln -s ../busybox sh&lt;br /&gt;
  ln -s ../busybox bash&lt;br /&gt;
&lt;br /&gt;
*Verificar se o BusyBox está OK&lt;br /&gt;
 chroot /MyDistro /busybox&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modificação do Grub ===&lt;br /&gt;
 Entrar no ficheiro default do grub nano /etc/grub.d/40_custom e colocar no final do ficheiro:&lt;br /&gt;
 menuentry &amp;quot;MyDistro&amp;quot; {&lt;br /&gt;
     set root='hd0,msdos2' &lt;br /&gt;
     search --set=root --hint-bios=hd0,msdos2&lt;br /&gt;
     linux /bzImage root=/dev/sda2&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
No final, gravar o ficheiro e executar o comando:&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=321</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=321"/>
		<updated>2018-08-07T16:10:22Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Preparação da máquina de teste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
Antes de passar os ficheiros, deverá verificar se a partição onde vão ficar os novos ficheiros do kernel está montada.&lt;br /&gt;
 mount | grep &amp;quot;MyDistro&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
Umas das formas utilizadas para passar os ficheiros foi via ssh. E necessário instalar o pacote ssh na máquina virtual (sudo apt install ssh) e na máquina real, basta aceder a uma pasta e ligar a um servidor remoto (sftp://&amp;lt;ip_máquina_virtual&amp;gt;/&amp;lt;pasta&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=320</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=320"/>
		<updated>2018-08-07T16:06:15Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
== Preparação da máquina de teste ==&lt;br /&gt;
O teste do novo kernel pode ser feita na máquina local. Contudo, neste tutorial foi utilizada uma máquina virtual, com 10GB de disco e duas partições, e uma distribuição linux instalada.&lt;br /&gt;
&lt;br /&gt;
*8GB para o sistema base &lt;br /&gt;
*2GB para /MyDistro em jfs (ou o sistema de ficheiros que desejar)&lt;br /&gt;
&lt;br /&gt;
Após a instalação da máquina é necessário executar os comandos de update e upgrade:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deverá, de seguida, passar os ficheiros do kernel, o bzImage, e o do Busybox, busybox, para a partição /MyDistro da máquina virtual.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=319</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=319"/>
		<updated>2018-08-07T16:01:51Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do BusyBox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do novo BusyBox&lt;br /&gt;
 ls -l &lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro busybox.&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=318</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=318"/>
		<updated>2018-08-07T16:00:50Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do BusyBox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
* Verificar o tamanho do ficheiro&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=317</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=317"/>
		<updated>2018-08-07T15:58:37Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o BusyBox&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=316</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=316"/>
		<updated>2018-08-07T15:58:09Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do BusyBox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
*Compilar o busybox&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=315</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=315"/>
		<updated>2018-08-07T15:51:59Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do BusyBox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Importante: Adicionar no menu Settings -&amp;gt; Build Options -&amp;gt; Build static binary (no shared libs)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=314</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=314"/>
		<updated>2018-08-07T12:18:10Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
&lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=313</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=313"/>
		<updated>2018-08-06T18:56:40Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do BusyBox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
Entrar no directório BusyBox previamente descompactado&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do BusyBox&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=312</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=312"/>
		<updated>2018-08-06T18:38:23Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB.&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=311</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=311"/>
		<updated>2018-08-06T18:38:04Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
*Verificar tamanho do novo Kernel&lt;br /&gt;
&lt;br /&gt;
 ls -l arch/x86/boot&lt;br /&gt;
&lt;br /&gt;
Verificar o tamanho do ficheiro bzImage. &lt;br /&gt;
Nota: O Kernel original, depois de compilado, tinha +/- 8,4MB. Em algumas experiências, foi possível reduzir o tamanho do Kernel para +/- 5,7MB. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compilação do BusyBox ==&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=310</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=310"/>
		<updated>2018-08-06T18:34:32Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de núcleos que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=309</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=309"/>
		<updated>2018-08-06T18:34:04Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de cores que o processador possui) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=308</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=308"/>
		<updated>2018-08-06T18:33:49Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de cores que o processador possui) &lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=307</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=307"/>
		<updated>2018-08-06T18:33:32Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de cores que o processador possui) &lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
&lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=306</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=306"/>
		<updated>2018-08-06T18:33:07Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
&lt;br /&gt;
ou&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de cores que o processador possui) &lt;br /&gt;
&lt;br /&gt;
ou &lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=305</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=305"/>
		<updated>2018-08-06T18:32:48Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
Nota: Este comando ao ser executado depois de se fazer alguma modificação no kernel, vai apagar tudo o que foi modificado, voltando a colocar o estado inicial.&lt;br /&gt;
&lt;br /&gt;
*Entrar no menu de configuração do Kernel.&lt;br /&gt;
 make menuconfig&lt;br /&gt;
&lt;br /&gt;
Nota: Neste passo, cada um deve retirar o que achar desnecessário para o kernel que está a construir, ou adicionar. No final, será criado um ficheiro .config com todas as modificações.&lt;br /&gt;
&lt;br /&gt;
*Compilar o novo Kernel.&lt;br /&gt;
 make &lt;br /&gt;
ou&lt;br /&gt;
 make -j4 (em que o 4 corresponde ao número de cores que o processador possui) &lt;br /&gt;
ou &lt;br /&gt;
 time make -j4 (onde o time vai permitir contabilizar o tempo que demora a executar o comando)&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=304</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=304"/>
		<updated>2018-08-06T18:28:02Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Instalação de pacotes adicionais */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=303</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=303"/>
		<updated>2018-08-06T18:27:54Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Instalação de pacotes adicionais ==&lt;br /&gt;
*build-essential&lt;br /&gt;
*libncurses-dev&lt;br /&gt;
*bison&lt;br /&gt;
*flex&lt;br /&gt;
*libelf-dev&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=302</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=302"/>
		<updated>2018-08-06T18:26:10Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Compilação do Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=301</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=301"/>
		<updated>2018-08-06T18:25:55Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Pré-configuração */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=300</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=300"/>
		<updated>2018-08-06T18:25:43Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Pré-configuração */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
  mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
  mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
  mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
  cd MyDistro&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
  tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
  tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=299</id>
		<title>Compilação do Kernel</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Compila%C3%A7%C3%A3o_do_Kernel&amp;diff=299"/>
		<updated>2018-08-06T18:22:33Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Genérico / Vanilla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Genérico / Vanilla =&lt;br /&gt;
&lt;br /&gt;
== Fazer o download do kernel e do BusyBox ==&lt;br /&gt;
[http://www.kernel.org Kernel Vanilla]&lt;br /&gt;
&lt;br /&gt;
[http://www.busybox.net BusyBox]&lt;br /&gt;
&lt;br /&gt;
== Pré-configuração ==&lt;br /&gt;
*Criação de um directório de trabalho&lt;br /&gt;
 mkdir MyDistro&lt;br /&gt;
&lt;br /&gt;
*Mover os downloads efectuados para o directório anteriormente criado&lt;br /&gt;
 mv Transferências/linux-4.17.12.tar.xz MyDistro/&lt;br /&gt;
 mv Transferências/busybox-1.29.2.tar.bz2 MyDistro/&lt;br /&gt;
 cd MyDistro&lt;br /&gt;
&lt;br /&gt;
*Descompactar os downloads&lt;br /&gt;
 tar -jxf busybox-1.29.2.tar.bz2&lt;br /&gt;
 tar -Jxf linux-4.17.12.tar.xz&lt;br /&gt;
&lt;br /&gt;
== Compilação do Kernel ==&lt;br /&gt;
*Entrar no directório descompactado do Kernel&lt;br /&gt;
 cd MyDistro/linux-4.17.12&lt;br /&gt;
&lt;br /&gt;
*Limpar a pasta do código fonte de todas as configurações e objectos já construídos.&lt;br /&gt;
 make mrproper&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Gentoo =&lt;br /&gt;
&lt;br /&gt;
= Ubuntu =&lt;br /&gt;
&lt;br /&gt;
= CentOS =&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
	<entry>
		<id>https://tecporto.pt/wiki/index.php?title=Introdu%C3%A7%C3%A3o_%C3%A0_utiliza%C3%A7%C3%A3o_de_iptables&amp;diff=201</id>
		<title>Introdução à utilização de iptables</title>
		<link rel="alternate" type="text/html" href="https://tecporto.pt/wiki/index.php?title=Introdu%C3%A7%C3%A3o_%C3%A0_utiliza%C3%A7%C3%A3o_de_iptables&amp;diff=201"/>
		<updated>2018-06-07T16:12:49Z</updated>

		<summary type="html">&lt;p&gt;Cláudia: /* Regras */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Vantagens e desvantagens =&lt;br /&gt;
&lt;br /&gt;
* Grande estabilidade, confiabilidade e escalável.&lt;br /&gt;
* Económicas tanto monetariamente como  em termos de recursos computacionais.&lt;br /&gt;
* Mais eficazes.&lt;br /&gt;
* Maior liberdade de configuração.&lt;br /&gt;
&lt;br /&gt;
* Necessário vasto conhecimento do funcionamento interno do Linux.&lt;br /&gt;
* Não é uma solução rápida de implementar.&lt;br /&gt;
* Não possui grandes ferramentas gráficas nativas de configuração (excepto de terceiros).&lt;br /&gt;
* Configurações perdidas após reiniciar o sistema.&lt;br /&gt;
&lt;br /&gt;
= Exemplos = &lt;br /&gt;
 iptables -A INPUT -p tcp -s 192.168.219.0/255.255.255.0 -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Todas as configurações de regras da firewall são aplicadas através do comando “iptables”.&lt;br /&gt;
&lt;br /&gt;
Em seguida vem uma condição, indicada pela opção &amp;quot;-A&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
As opções “INPUT -p tcp -s 192.168.219.0/255.255.255.0&amp;quot;, aplicam-se a qualquer pacote de entrada (INPUT), utilizando o protocolo TCP (-p tcp), proveniente dos computadores da rede local (192.168.200.0/255.255.255.0).&lt;br /&gt;
&lt;br /&gt;
O &amp;quot;-j ACCEPT&amp;quot; indica que ação deve ser tomada e, neste caso, diz que estes pacotes devem ser aceites.&lt;br /&gt;
&lt;br /&gt;
= Criação de um cenário prático =&lt;br /&gt;
&lt;br /&gt;
* Instalar e configurar máquina virtual com  o ubuntu server:&lt;br /&gt;
** Actualizar a máquina virtual (apt-get update &amp;amp;&amp;amp; apt-get upgrade)&lt;br /&gt;
** Activar utilizador root (sudo passwd root)&lt;br /&gt;
&lt;br /&gt;
* Instalar o seguintes serviços:&lt;br /&gt;
** Apache&lt;br /&gt;
*** apt-get install lamp-server^&lt;br /&gt;
** SSH&lt;br /&gt;
*** apt-get install ssh&lt;br /&gt;
** FTP&lt;br /&gt;
*** apt-get install vsftpd&lt;br /&gt;
&lt;br /&gt;
== Instalação de serviços para testes ==&lt;br /&gt;
&lt;br /&gt;
===Configuração de uma página===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
cp index.html index_old.html&lt;br /&gt;
nano index.html&lt;br /&gt;
 &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
       Escrever texto aqui….&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
 &amp;lt;/html&amp;gt;&lt;br /&gt;
service apache2 restart (se necessário)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Aceder ao IP da máquina no browser&lt;br /&gt;
&lt;br /&gt;
===Configuração do vsftpd===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp    /etc/vsftpd.conf    /etc/vsftpd_back.conf &lt;br /&gt;
adduser teste&lt;br /&gt;
mkdir /home/teste/ftp&lt;br /&gt;
chown nobody:nogroup /home/teste/ftp&lt;br /&gt;
chmod a-w /home/teste/ftp (as permissões atribuídas são 555)&lt;br /&gt;
ls –la /home/teste/ftp&lt;br /&gt;
touch /home/teste/ftp/test.txt&lt;br /&gt;
echo “teste de acesso” &amp;gt; /home/teste/ftp/test.txt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;nano /etc/vsftpd.conf (ou vi)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Descomentar a linha write_enable=YES&lt;br /&gt;
Descomentar a linha chroot_local_user=YES&lt;br /&gt;
Adicionar as linhas no fim do ficheiro&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  user_sub_token=$USER&lt;br /&gt;
  local_root=/home/$USER/ftp&lt;br /&gt;
  pasv_min_port=40000&lt;br /&gt;
  pasv_max_port=50000&lt;br /&gt;
  userlist_enable=YES&lt;br /&gt;
  userlist_file=/etc/vsftpd.userlist&lt;br /&gt;
  userlist_deny=NO&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 touch /etc/vsftpd.userlist&lt;br /&gt;
 echo “teste” &amp;gt; /etc/vsftpd.userlist&lt;br /&gt;
 service vsftpd restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ftp –p &amp;lt;ip do servidor&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
  Efectuar o login&lt;br /&gt;
  ls &lt;br /&gt;
  quit&lt;br /&gt;
&lt;br /&gt;
=== Portos utilizados pelos serviços===&lt;br /&gt;
* HTTP – 80&lt;br /&gt;
* SSH – 22&lt;br /&gt;
* FTP – 20 e 21&lt;br /&gt;
&lt;br /&gt;
== Regras ==&lt;br /&gt;
Limpar todas as regras&lt;br /&gt;
 &lt;br /&gt;
 iptables –F INPUT&lt;br /&gt;
 iptables –F OUTPUT&lt;br /&gt;
 iptables –F FORWARD&lt;br /&gt;
&lt;br /&gt;
Bloquear pacotes mal formados&lt;br /&gt;
&lt;br /&gt;
 iptables -A INPUT -m state --state INVALID -j DROP&lt;br /&gt;
 &lt;br /&gt;
Permitir ligações para o endereço de loopback&lt;br /&gt;
 &lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Bloquear uma ligação FTP a um IP especifico&lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_A_BLOQUEAR&amp;gt; --dport 21 –j REJECT&lt;br /&gt;
&lt;br /&gt;
Abrir as portas para o servidor FTP&lt;br /&gt;
 &lt;br /&gt;
 iptables –A INPUT –p tcp –m multiport --dport 80, 20, 21, 40000, 50000 –j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Permitir uma ligação SSH a um IP especifico&lt;br /&gt;
 &lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_A_PERMITIR&amp;gt; --dport 22 –j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Rejeitar as portas para o serviço SSH&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp --dport 22 –j REJECT&lt;br /&gt;
&lt;br /&gt;
Bloquear network flood na porta 80&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp --dport 80 –m limit --limit 100/minute --limit-burst 200 –j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Bloquear o acesso ssh de uma máquina em especifica &lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_A_BLOQUEAR&amp;gt; --dport ssh –j DROP&lt;br /&gt;
&lt;br /&gt;
Permitir o acesso a um IP à página web&lt;br /&gt;
 &lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_A_PERMITIR&amp;gt; --dport 80 –j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Bloquear a toda a rede o acesso à página web&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_REDE&amp;gt; --dport 80 –j DROP&lt;br /&gt;
&lt;br /&gt;
Permitir o ping request de uma máquina especifica&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –s &amp;lt;IP_MAQUINA&amp;gt; –p icmp --icmp-type echo-request –j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Bloquear ping request&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p icmp --icmp-type echo-request –j DROP&lt;br /&gt;
&lt;br /&gt;
Bloquear o acesso telnet&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp –s &amp;lt;IP_A_BLOQUEAR&amp;gt; --dport telnet –j REJECT&lt;br /&gt;
&lt;br /&gt;
Permitir a rede local&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –p tcp –syn –s &amp;lt;IP_REDE_LOCAL&amp;gt; -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
Protecção contra MAC Spoofing&lt;br /&gt;
&lt;br /&gt;
 iptables –A INPUT –s &amp;lt;IP_MAQUINA&amp;gt; -m mac --mac-source &amp;lt;MAC_MAQUINA&amp;gt; –j ACCPET&lt;/div&gt;</summary>
		<author><name>Cláudia</name></author>
		
	</entry>
</feed>