Você já tentou instalar Linux numa máquina que se recusa a colaborar?
Anos atrás eu ganhei um Toshiba Portégé M200. Para quem não conhece, é um Tablet PC de 2004, com uma tela absurda para a época (com suporte a touch usando uma caneta Wacom) e um design que ainda chama atenção. Mas ele tem um pequeno probleminha: não tem como dar boot por USB. Além disso, ele não tem drive de CD/DVD interno, e o boot via drive externo só funciona com um modelo específico da Toshiba que só da pra encontrar em sites de leilão japoneses.
Tirando boot por drive de disquete externo, e cartão SD (que também só suporta cartões antigos - sem ser SDHC ou mais novos, e é bem instável), a única porta de entrada que sobrou foi o PXE.
Instalando o Debian
Para não ter que ficar mexendo muito no meu PC principal (que roda Fedora, btw), nem bagunçar a rede de casa, conectei o Toshiba direto numa placa de rede USB ligada no meu PC. Criei uma sub-rede isolada (192.168.10.0/24) e configurei um IP estático (192.168.10.1) nessa interface secundária.
iPXE
O PXE nativo da BIOS de 2004 é… limitado. Ele é lento e só suporta TFTP. Para acelerar as coisas, usei uma técnica de chainloading: o dnsmasq entrega o iPXE via TFTP, e o iPXE assume o controle.
Mas qual é a vantagem? O iPXE consegue baixar o kernel e o instalador via HTTP, que é infinitamente mais rápido e confiável que o TFTP tradicional. Pra isso, subi um Nginx no Fedora para servir os arquivos do Debian 11.
Pentium M e PAE
Por quê Debian 11? Porque o 12 simplesmente cai num loop infinito na hora do boot. O culpado? O processador Pentium M 745.
Esse processador tem capacidade para rodar sistemas modernos (PAE), mas ele “mente” para o sistema operacional, escondendo essa instrução na BIOS. Os kernels modernos exigem PAE e, como não encontram, a máquina entra em pânico.
Sendo assim, voltei para o Debian 11 (32-bits) e usei o parâmetro forcepae diretamente no script de boot do iPXE que diz pro kernal “Eu sei que você acha que não tem PAE, mas tem #confia”.
Fedora como Roteador
O instalador do Debian é meio fresco - ele precisa validar os mirrors pra continuar a instalação. Como o Toshiba estava numa rede isolada, precisei rotear a internet no PC Fedora. Pra isso, ativei o IP Forwarding e configurei regras de NAT/Masquerade no Firewall para que o Toshiba pudesse acessar a internet.
A partir daí, a instalação seguiu tranquilamente como em qualquer outro computador.
Internet via WiFi
Depois de finalizada a instalação do Debian, queria conectar o Toshiba à internet sem precisar de um cabo de rede. Como a placa de WiFi interna é um fóssil (e não suporta os padrões de segurança atuais), usei um adaptador USB TP-Link TL-WN725N (que possui um chip Realtek RTL8188).
Para fazer com que esse adaptador funcionasse normalmente, segui alguns passos:
- Repositórios “Non-Free”: O Debian é purista. Como o driver da Realtek é código fechado, precisei adicionar
contrib non-freeao/etc/apt/sources.list. - Firmware e NetworkManager: Instalei o pacote
firmware-realteke onetwork-managerpara facilitar a vida. - Ajuste nas Interfaces: Limpei o arquivo
/etc/network/interfaces, deixando apenas o loopback (lo). Isso evita conflitos, permitindo que o NetworkManager assuma o hardware. - Habilitação do Gerenciamento: Ajustei o
/etc/NetworkManager/NetworkManager.confmudando paramanaged=true. - A Conexão: Após um reboot, usei o
nmtuipara selecionar a rede e autenticar (seguindo os passos da tela).
Window Maker
Com a internet funcionando, resolvi instalar um ambiente gráfico para quando cansar do terminal. Pra isso, escolhi o Window Maker, que é inspirado no NeXTSTEP (o pai do macOS), e é um dos gerenciadores de janelas mais nostálgicos que existem por aí.
Por enquanto, decidi não usar um gerenciador de login:
- Xorg e Window Maker: Instalei o servidor gráfico básico e o Window Maker (
apt install xorg wmaker). - Configurações: Configurei o arquivo
~/.xinitrcpara executar owmaker. - Startx: Pra carregar o Window Maker, basta digitar
startxno terminal.
Guia Rápido
- Menu Principal: Clique com o botão direito em qualquer lugar vazio.
- Mover Janelas: Segure
Alte arraste (salva vidas se a barra de título sumir). - Atalhos: O ícone no canto superior esquerdo é onde você arrasta seus apps favoritos para criar atalhos.
Conclusão
Depois disso tudo, agora é só curtir a máquina, que é surpreendentemente rápida com seus 22 anos e ainda com um HD mecânico.
Aí vem a questão: pra que tudo isso, sendo que eu tenho outras máquinas disponíveis?
Esses dias li um post da Veronica sobre um writerdeck que ela configurou, e me chamou a atenção. Não conhecia o conceito de writerdeck, mas acho que é exatamente o que eu preciso para conseguir focar e escrever mais, tanto aqui no blog quanto em outros contextos.
Como não tenho nenhum outro laptop mais moderno (tirando o meu de uso do dia a dia e os do trabalho), vou usar esse Toshiba para isso, e acredito que vai atender perfeitamente. Pretendo passar a maior parte do tempo no terminal, escrevendo usando o neovim ou algo do tipo.
Guia Técnico
Aqui estão os comandos que utilizei, de forma geral, para instalar o Debian corretamente.
1. Configuração do dnsmasq (Fedora)
No /etc/dnsmasq.conf:
port=0
interface=enp4s0 # Placa secundária
dhcp-range=192.168.10.10,192.168.10.50,255.255.255.0,1h
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,8.8.8.8,1.1.1.1
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-match=set:ipxe,175
dhcp-boot=tag:!ipxe,undionly.kpxe
dhcp-boot=tag:ipxe,http://192.168.10.1/boot.ipxe
2. Script do iPXE (boot.ipxe)
#!ipxe
set server_url http://192.168.10.1/debian11
kernel ${server_url}/linux initrd=initrd.gz forcepae -- text
initrd ${server_url}/initrd.gz
boot
3. Roteamento e NAT (Fedora)
sudo sysctl -w net.ipv4.ip_forward=1
# Substitua wlan0 pela sua placa com internet
sudo iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -I FORWARD -i enp4s0 -o wlan0 -j ACCEPT
4. Setup do Wi-Fi (No Toshiba/Debian)
# Instalar firmware e ferramentas
sudo apt update && sudo apt install firmware-realtek network-manager -y
# Ativar gerenciamento no NetworkManager.conf
# [ifupdown]
# managed=true
# Conectar via interface visual de terminal
sudo nmtui
5. Instalação do Window Maker
# Instalar Xorg e Window Maker
sudo apt install xorg wmaker wmaker-data menu -y
# Configurar inicialização manual (no seu usuário)
echo "exec wmaker" > ~/.xinitrc
# Iniciar interface gráfica
startx
6. SELinux e Permissões (Fedora)
sudo chcon -R -t httpd_sys_content_t /usr/share/nginx/html/debian11
sudo chcon -t httpd_sys_content_t /usr/share/nginx/html/boot.ipxe
7. Download dos Arquivos do Debian (Fedora Host)
Comandos para baixar os arquivos necessários para o netboot (i386):
# Criar o diretório no servidor Nginx
sudo mkdir -p /usr/share/nginx/html/debian11
cd /usr/share/nginx/html/debian11
# Baixar o Kernel e o Initrd do instalador
sudo wget http://ftp.debian.org/debian/dists/bullseye/main/installer-i386/current/images/netboot/debian-installer/i386/linux
sudo wget http://ftp.debian.org/debian/dists/bullseye/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
# Ajustar permissões e o contexto do SELinux
sudo chmod 755 /usr/share/nginx/html/debian11
sudo chmod 644 /usr/share/nginx/html/debian11/linux
sudo chmod 644 /usr/share/nginx/html/debian11/initrd.gz
sudo restorecon -Rv /usr/share/nginx/html/debian11