Files
pf-linux-port/docs/en
lgcosta cc67531602 Screencasts v2: real shell sessions, MiniMax narration (EN/PT), lab diagram
O problema da primeira serie era a sensacao de 'quadro a quadro': a captura
era a saida de um script despejada em blocos.  Agora cada video e uma sessao
shell de verdade.

- record.py: abre um pty, faz SSH no firewall e digita os comandos tecla a
  tecla (~34 c/s, com jitter).  O tty remoto ecoa, o kernel responde ao vivo;
  a captura e asciicast v2 com timestamps.  'bash --noediting' evita que o
  editor de linha redesenhe o comando e o tty o repita (a linha aparecia
  duplicada).
- record.py --pace: segura a tela enquanto a voz fala - cada batida dura o
  trecho de audio que a acompanha, de modo que uma unica captura serve as
  duas versoes de idioma.
- record.py --ensure-pf: garante pf.ko carregado antes de gravar.  Sem isso
  uma fase que roda 'rmmod' (ativacao) pode derrubar o /dev/pf de outra
  gravacao concorrentes - foi exatamente o que quebrou a fase de roteamento
  na primeira tentativa.
- make_audio.py: geracao da narracao pelo MiniMax TTS, uma voz feminina por
  idioma (English_ConfidentWoman / Portuguese_ConfidentWoman), um arquivo
  por segmento.  A API devolve o audio em hexadecimal, nao base64.
- render_video.py: reproduz a captura por um emulador de terminal e escreve
  os frames direto no ffmpeg como RGB bruto (um PNG por frame era uma ordem
  de grandeza mais lento).  Desenha o diagrama de rede do lab por cima do
  terminal nas fases de roteamento e balanceamento, destacando o caminho em
  discussao, e queima a legenda da narracao.
- assemble.py: mixa os segmentos de audio na linha do tempo.
- join.py: emenda as fases com crossfade sobre um cartao de capitulo e
  sincroniza o audio na mesma linha do tempo.
- build-all.sh: roda o pipeline inteiro.

Arte de fundo e audio vem do MiniMax; a geracao de video do MiniMax nao esta
habilitada nesta conta (erro 2068 em todos os modelos), entao as transicoes
sao renderizadas localmente com ffmpeg.

16 videos: 7 fases + filme completo, em ingles e portugues, com legenda
queimada.
2026-11-12 10:57:29 -03:00
..

PF-on-Linux documentation (English)

Documentação em português: docs/pt-BR/README.md.

This is the user documentation set for the port of the OpenBSD 8.0 PF packet filter to Linux 7.3.4 — the real PF engine (pf.c, pf_norm.c, pf_table.c, pf_lb.c, …) running as the out-of-tree module pf.ko, driven by the real OpenBSD pfctl over the /dev/pf ioctl ABI.

Index

Doc What it covers
guide.md One-page architecture: components, data path, control plane, milestones
install.md Apply/build/install recipe (kernel, module, tools)
build.md Build pipeline in detail: fetch → vendorize → kernel → module → pfctl
vm-lab.md The libvirt validation lab: topology, recreate/run, what each gate proves
feature-matrix.md Per-feature status: VERIFIED-in-VM / COMPILES-untested / PENDING-Mx
pf-guide.md Daily use: what works today in /etc/pf.conf, what to avoid until M3/M4
patches.md Linux core patch set (currently empty) + rules and template for future 000N-*.patch
caveats.md Known divergences from OpenBSD behavior and current limitations

Sources of truth

The docs describe the code as it exists in this tree. When in doubt, the authoritative references are:

  • docs/superpowers/specs/2026-11-11-pf-linux-port-design.md — design
  • docs/superpowers/plans/2026-11-11-pf-linux-port.md — milestone plan (tasks T1–T19)
  • docs/porting-notes.md — staging log + M1 deviation record (the truth about compat-layer divergences)

Feature-status vocabulary used across these docs:

  • VERIFIED-in-VM — exercised end-to-end in the libvirt lab (see vm-lab.md).
  • COMPILES-untested — the code is built into pf.ko but no gate has proven the behavior yet.
  • PENDING-Mx — lands (or lands fully) in milestone Mx; current observable behavior is documented.