Repository navigation
Expand file tree
/
Copy pathkernel.html
More file actions
691 lines (662 loc) · 31.2 KB
/
Copy pathkernel.html
File metadata and controls
691 lines (662 loc) · 31.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documentação e patches do Kernel Linux — KernelBase</title>
<meta name="description" content="Guia em português para contribuir com a documentação do Kernel Linux, com patches recentes da lista linux-doc e status do kernel. Projeto aberto mantido pela KernelBase.">
<meta property="og:title" content="Documentação e patches do Kernel Linux — KernelBase">
<meta property="og:description" content="Como contribuir com a documentação do Kernel Linux, em português.">
<meta property="og:url" content="https://kernelbase.com.br/kernel.html">
<meta property="og:type" content="website">
<meta name="theme-color" content="#090c12">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='20' fill='%23090c12'/%3E%3Ctext x='50' y='66' font-family='monospace' font-size='58' font-weight='700' fill='%23f5c445' text-anchor='middle'%3E%3E_%3C/text%3E%3C/svg%3E">
<link rel="stylesheet" href="css/style.css?v=20261002b">
</head>
<body>
<canvas id="bg-grid" aria-hidden="true"></canvas>
<div id="boot-screen"><div id="boot-lines"><span class="cursor"></span></div></div>
<header class="topbar">
<div class="topbar-inner">
<a class="brand" href="index.html">
<span>kernel<span class="dot">Base</span></span>
</a>
<nav class="tabs">
<a href="index.html" id="nav-home">Início</a>
<a href="#docs" data-tab="docs" id="nav-docs" class="active-tab">Documentação</a>
<a href="#patches" data-tab="patches" id="nav-patches">Patches</a>
</nav>
<div class="topbar-actions">
<a href="#contato" class="btn primary topbar-cta" data-wa="Olá! Vim pelo site da KernelBase.">Fale no WhatsApp</a>
<button class="icon-btn" id="sound-toggle-btn" title="Ativar sons da interface">🔈</button>
<div class="theme-menu">
<button class="icon-btn" id="theme-toggle-btn" title="Trocar tema">🎨</button>
<div class="theme-dropdown" id="theme-dropdown"></div>
</div>
<a class="icon-btn" href="https://github.com/Daniel-Pereira-Linux/kernel-docs-br" target="_blank" rel="noopener" title="Ver no GitHub">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
</div>
</div>
</header>
<main class="container">
<!-- ===================== INÍCIO (site da empresa) ===================== -->
<div id="home" class="tab-content">
<section class="home-hero">
<div class="home-hero-copy">
<span class="hero-badge">
<span class="pulse-dot"></span>
Automação de atendimento com IA
</span>
<h1 class="hero-title">Seu atendimento,<br><span class="grad">no automático.</span></h1>
<p class="hero-lede">A <strong>KernelBase Tecnologia</strong> cria assistentes com IA que atendem seus clientes no <strong>WhatsApp</strong>, no <strong>Instagram</strong> e no <strong>seu site</strong>, 24 horas por dia. Eles tiram dúvidas, agendam, registram pedidos e passam a conversa para a sua equipe quando precisa.</p>
<div class="cta-row">
<a href="#contato" class="btn primary btn-lg" data-wa="Olá! Quero automatizar o atendimento da minha empresa.">Quero automatizar meu atendimento →</a>
<a href="#como-funciona" class="btn btn-lg" data-scroll="como-funciona">Como funciona</a>
</div>
<ul class="hero-points">
<li>Responde em segundos, a qualquer hora</li>
<li>Integra com seus sistemas</li>
<li>Sua equipe assume quando quiser</li>
</ul>
</div>
<div class="chat" aria-label="Exemplo de conversa com um assistente de atendimento">
<div class="chat-bar">
<div class="chat-avatar mono">kB</div>
<div class="chat-who">
<strong>Assistente da sua empresa</strong>
<span id="chat-status">online</span>
</div>
<span class="chat-demo mono">demonstração</span>
</div>
<div class="chat-body" id="hero-chat"></div>
</div>
</section>
<section class="stats" aria-label="Diferenciais">
<div class="stat">
<div class="stat-value mono">24/7</div>
<div class="stat-label">atendimento sem pausa, inclusive à noite e no fim de semana</div>
</div>
<div class="stat">
<div class="stat-value mono">segundos</div>
<div class="stat-label">para a primeira resposta, sem fila de espera</div>
</div>
<div class="stat">
<div class="stat-value mono">3 canais</div>
<div class="stat-label">WhatsApp, Instagram e chat no site, num fluxo só</div>
</div>
<div class="stat">
<div class="stat-value mono">humano</div>
<div class="stat-label">no controle: a sua equipe assume a conversa quando quiser</div>
</div>
</section>
<!-- como funciona -->
<section class="home-section" id="como-funciona">
<div class="eyebrow">// automação de atendimento</div>
<h2 class="h2">Um assistente que conhece o seu negócio</h2>
<p class="section-sub">Nada de robô engessado com menu de opções. O assistente entende o que o cliente escreve, responde com base nas informações da sua empresa e executa tarefas de verdade.</p>
<div class="svc-grid">
<article class="svc-card reveal featured">
<div class="svc-icon">💬</div>
<h3>Todos os canais num só lugar</h3>
<p>WhatsApp, Instagram e chat no site atendidos pelo mesmo assistente, com o histórico de cada cliente organizado.</p>
<div class="tags"><span>WhatsApp</span><span>Instagram</span><span>site</span></div>
</article>
<article class="svc-card reveal">
<div class="svc-icon">📚</div>
<h3>Respostas com o seu conteúdo</h3>
<p>Treinado com seus preços, catálogo, políticas e perguntas frequentes. Ele responde o que a sua empresa responderia, e não inventa.</p>
<div class="tags"><span>FAQ</span><span>catálogo</span><span>políticas</span></div>
</article>
<article class="svc-card reveal">
<div class="svc-icon">📅</div>
<h3>Agendamentos e pedidos</h3>
<p>Marca horários, consulta disponibilidade, registra pedidos e envia confirmações, direto nos sistemas que você já usa.</p>
<div class="tags"><span>agenda</span><span>pedidos</span><span>lembretes</span></div>
</article>
<article class="svc-card reveal">
<div class="svc-icon">🎯</div>
<h3>Qualificação de clientes</h3>
<p>Faz as perguntas certas, identifica quem está pronto para comprar e entrega o contato qualificado para o seu time comercial ou CRM.</p>
<div class="tags"><span>leads</span><span>CRM</span><span>vendas</span></div>
</article>
<article class="svc-card reveal">
<div class="svc-icon">🙋</div>
<h3>Passagem para humano</h3>
<p>Quando o assunto pede uma pessoa, a conversa vai para a sua equipe com todo o contexto, sem o cliente repetir nada.</p>
<div class="tags"><span>handoff</span><span>contexto</span><span>equipe</span></div>
</article>
<article class="svc-card reveal">
<div class="svc-icon">📊</div>
<h3>Relatórios e melhoria contínua</h3>
<p>Veja o que os clientes mais perguntam, onde a conversa trava e o que pode ser automatizado a seguir. Ajustamos junto com você.</p>
<div class="tags"><span>métricas</span><span>ajustes</span><span>suporte</span></div>
</article>
</div>
</section>
<!-- para quem -->
<section class="home-section split" id="para-quem">
<div>
<div class="eyebrow">// para quem é</div>
<h2 class="h2">Para empresas que não podem deixar cliente esperando</h2>
<p class="section-sub">Se o seu time passa o dia respondendo as mesmas perguntas, ou se mensagens ficam sem resposta fora do horário comercial, a automação paga a conta.</p>
<ul class="checklist">
<li>Assistente configurado com a linguagem e o tom da sua marca</li>
<li>Integração com agenda, ERP, CRM e planilhas que você já usa</li>
<li>Dados tratados com cuidado e em conformidade com a LGPD</li>
<li>Infraestrutura Linux operada por quem entende do assunto</li>
</ul>
<div class="cta-row">
<a href="#contato" class="btn primary" data-wa="Olá! Quero automatizar o atendimento da minha empresa.">Conversar no WhatsApp →</a>
</div>
</div>
<div class="track">
<div class="track-step reveal">
<span class="track-code mono">clínicas e consultórios</span>
<strong>Agendamento, confirmação e lembrete de consultas</strong>
</div>
<div class="track-step reveal">
<span class="track-code mono">lojas e e-commerce</span>
<strong>Dúvidas sobre produtos, status de pedido e trocas</strong>
</div>
<div class="track-step reveal">
<span class="track-code mono">prestadores de serviço</span>
<strong>Orçamentos, qualificação e agendamento de visitas</strong>
</div>
<div class="track-step reveal">
<span class="track-code mono">provedores e suporte de TI</span>
<strong>Triagem de chamados, segunda via e diagnóstico inicial</strong>
</div>
</div>
</section>
<!-- processo -->
<section class="home-section" id="processo">
<div class="eyebrow">// como trabalhamos</div>
<h2 class="h2">Do primeiro contato ao assistente no ar</h2>
<div class="steps">
<div class="step reveal"><span class="step-n mono">01</span><h3>Diagnóstico</h3><p>Mapeamos como seus clientes chegam, o que perguntam e onde o atendimento trava hoje.</p></div>
<div class="step reveal"><span class="step-n mono">02</span><h3>Desenho dos fluxos</h3><p>Definimos o que o assistente resolve sozinho, o que vai para a equipe e com quais sistemas ele conversa.</p></div>
<div class="step reveal"><span class="step-n mono">03</span><h3>Implantação</h3><p>Configuramos canais, integrações e conteúdo, e testamos com conversas reais antes de ligar.</p></div>
<div class="step reveal"><span class="step-n mono">04</span><h3>Acompanhamento</h3><p>Monitoramos as conversas, ajustamos respostas e ampliamos a automação conforme o resultado.</p></div>
</div>
</section>
<!-- outros serviços -->
<section class="home-section" id="servicos">
<div class="eyebrow">// também fazemos</div>
<h2 class="h2">Engenharia e formação Linux</h2>
<p class="section-sub">A base técnica por trás das nossas automações também está disponível como serviço.</p>
<div class="mini-grid">
<article class="mini-card reveal">
<h3>🎓 Aulas LPIC-1 e LPIC-2</h3>
<p>Aulas particulares ao vivo, com plano de estudo sob medida para os exames 101/102 e 201/202.</p>
</article>
<article class="mini-card reveal">
<h3>🔎 Consultoria Linux</h3>
<p>Performance, troubleshooting de kernel e drivers, hardening e padronização de servidores.</p>
</article>
<article class="mini-card reveal">
<h3>🖥️ Metal as a Service</h3>
<p>Servidores físicos provisionados como nuvem: PXE, IPMI/Redfish e deploy de SO sob demanda.</p>
</article>
<article class="mini-card reveal">
<h3>⚙️ Automação com Ansible</h3>
<p>Playbooks e roles idempotentes para uma infraestrutura reproduzível e versionada no Git.</p>
</article>
</div>
</section>
<!-- open source -->
<section class="home-section" id="comunidade">
<div class="community">
<div>
<div class="eyebrow">// open source</div>
<h2 class="h2">Documentação aberta do Kernel Linux</h2>
<p class="section-sub">Mantemos, de graça e em português, o guia de como contribuir com a documentação do Kernel Linux, além do acompanhamento dos patches pt_BR. Daniel Pereira, fundador da KernelBase, é o mantenedor da tradução pt_BR do Kernel Linux.</p>
<div class="cta-row">
<a href="#docs" class="btn primary" data-tab="docs">Abrir a Documentação</a>
<a href="#patches" class="btn" data-tab="patches">Patches</a>
<a href="https://github.com/Daniel-Pereira-Linux/kernel-docs-br" class="btn" target="_blank" rel="noopener">GitHub ↗</a>
</div>
</div>
<pre class="community-code mono"><span class="c">$</span> git clone --branch docs-next \
git://git.lwn.net/linux.git
<span class="c">$</span> git commit -s
<span class="c">$</span> git send-email --to=linux-doc@vger.kernel.org
<span class="ok">Result: 250</span></pre>
</div>
</section>
<!-- contato -->
<section class="home-section" id="contato">
<div class="contact">
<div class="contact-copy">
<div class="eyebrow">// contato</div>
<h2 class="h2">Vamos colocar seu atendimento no automático?</h2>
<p class="section-sub">Conte como funciona o seu atendimento hoje. A gente responde com uma proposta de automação para o seu caso.</p>
<ul class="contact-list">
<li><span class="mono accent">whatsapp</span> <a href="#contato" data-wa="Olá! Vim pelo site da KernelBase.">(83) 93300-3583</a></li>
<li><span class="mono accent">email</span> <a id="contact-email-link" href="#"></a></li>
<li><span class="mono accent">site</span> kernelbase.com.br</li>
<li><span class="mono accent">atendimento</span> remoto, em todo o Brasil</li>
</ul>
</div>
<form class="contact-form" id="contact-form">
<label>Nome<input name="nome" required autocomplete="name"></label>
<label>Interesse
<select name="interesse" id="contact-interest">
<option>Automação de atendimento</option>
<option>Outras automações com IA</option>
<option>Aulas LPIC-1 / LPIC-2</option>
<option>Consultoria Linux</option>
<option>Metal as a Service</option>
<option>Automação com Ansible</option>
<option>Outro assunto</option>
</select>
</label>
<label>Mensagem<textarea name="mensagem" rows="4" required placeholder="Ex.: recebemos 200 mensagens por dia no WhatsApp, a maioria pedindo horário..."></textarea></label>
<button type="submit" class="btn primary btn-lg">Enviar pelo WhatsApp →</button>
<p class="form-note">Ao enviar, o WhatsApp abre com a sua mensagem pronta.</p>
</form>
</div>
</section>
</div>
<!-- ===================== DOCUMENTAÇÃO ===================== -->
<div id="docs" class="tab-content active">
<div class="section-title">Documentação</div>
<div class="section-lede">Passo a passo completo para contribuir com traduções de documentação para o Kernel Linux.</div>
<div class="banner-card open" id="kernel-banner">
<div class="banner-title" id="banner-title"><span class="pulse"></span>Carregando status do kernel...</div>
<div class="banner-desc" id="banner-desc">Buscando a versão mainline mais recente em kernel.org.</div>
<div class="releases-toggle" id="releases-toggle">▸ ver todas as versões (mainline, stable, longterm)</div>
<table class="releases-table" id="releases-table">
<thead><tr><th>Tipo</th><th>Versão</th><th>Data</th><th>Links</th></tr></thead>
<tbody id="releases-tbody"></tbody>
</table>
</div>
<div class="prose">
<h1>Pré-requisitos</h1>
<p>É preciso instalar algumas dependências para conseguir contribuir:</p>
<p>Debian:</p>
<pre><code class="language-bash">sudo apt update
sudo apt install \
git \
git-email \
perl \
make \
python3
sudo apt install \
python3-pip \
python3-venv
</code></pre>
<p>Fedora:</p>
<pre><code class="language-bash">sudo dnf install \
git \
git-email \
perl \
make \
python3
sudo dnf install \
python3-pip
</code></pre>
<p>Verifique:</p>
<pre><code class="language-bash">git --version
git send-email --help
perl --version
python3 --version
</code></pre>
<h2>Primeiro passo: preparar o ambiente</h2>
<p>Verificar instalação:</p>
<pre><code class="language-bash">git send-email --help
</code></pre>
<p>Configure a sua identidade:</p>
<pre><code class="language-bash">git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
</code></pre>
<p>Configurando SMTP:</p>
<pre><code class="language-bash">git config --global sendemail.smtpserver smtp.gmail.com
git config --global sendemail.smtpserverport 587
git config --global sendemail.smtpencryption tls
git config --global sendemail.smtpuser seuemail@gmail.com
</code></pre>
<p>Pode-se adicionar:</p>
<pre><code class="language-bash">git config --global sendemail.assume8bitEncoding UTF-8
</code></pre>
<p>Isso evitará que todas as vezes seja perguntado sobre o encoding em patches com acento, etc.</p>
<p>Verifique:</p>
<pre><code class="language-bash">cat ~/.gitconfig
</code></pre>
<p>Você deve ter algo assim:</p>
<pre><code class="language-bash">[user]
email = seuemail@gmail.com
name = seu nome
[sendemail]
smtpServer = smtp.gmail.com
smtpServerPort = 587
smtpEncryption = tls
smtpUser = seuemail@gmail.com
</code></pre>
<p>Essa parte é muito importante, pois é por meio do email que iremos enviar os nossos patches.</p>
<h3>Gerando senha de app (Gmail)</h3>
<p>Para autenticar no Gmail, uma opção simples é utilizar uma senha de app. Para gerá-la, a conta Google deve estar com a verificação em duas etapas ativada. OAuth2 também pode ser utilizado.</p>
<p><a href="https://support.google.com/mail/answer/185833?hl=pt-br" target="_blank" rel="noopener">support.google.com/mail/answer/185833</a></p>
<p>A senha de app será utilizada pelo <code>git send-email</code> na autenticação SMTP quando solicitada.</p>
<h3>Clonando</h3>
<p>Com a configuração acima realizada, podemos realizar o clone do kernel para começar a tradução:</p>
<pre><code class="language-bash">git clone \
--branch docs-next \
--single-branch \
git://git.lwn.net/linux.git \
linux-docs
</code></pre>
<p>O <code>--single-branch</code> limita o clone à branch <code>docs-next</code>, evitando buscar as demais branches do repositório.</p>
<pre><code class="language-bash">cd linux-docs/
</code></pre>
<pre><code class="language-bash">git switch -c nomeDaSuaBranch
</code></pre>
<p>Após criar sua branch de trabalho, edite apenas os arquivos necessários para a contribuição, por exemplo:</p>
<pre><code class="language-bash">Documentation/translations/pt_BR/process/index.rst
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
</code></pre>
<h3>Pós clone</h3>
<p>Crie um ambiente virtual Python na raiz do kernel (usado apenas para gerar a documentação em HTML com Sphinx):</p>
<pre><code class="language-bash">python3 -m venv .venv-sphinx
source .venv-sphinx/bin/activate
python -m pip install --upgrade pip
</code></pre>
<p>Instalar dependências faltantes:</p>
<pre><code class="language-bash">pip install -r Documentation/sphinx/requirements.txt
pip install ply
</code></pre>
<h3>Pós tradução</h3>
<p>Revise as alterações realizadas:</p>
<pre><code class="language-bash">git diff
</code></pre>
<p>Revise se há problemas como espaço em branco:</p>
<pre><code class="language-bash">git diff --check
</code></pre>
<p>O comando <code>git diff --check</code> não deve retornar nenhuma mensagem.</p>
<p>Adicione somente os arquivos modificados que fazem parte do patch:</p>
<pre><code class="language-bash">git add \
Documentation/translations/pt_BR/process/index.rst \
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
</code></pre>
<p>Evite usar <code>git add .</code></p>
<p>Revisar conteúdo em staging:</p>
<pre><code class="language-bash">git diff --cached
git diff --cached --check
</code></pre>
<p>Criar commit:</p>
<pre><code class="language-bash">git commit -s
</code></pre>
<p>Revisar:</p>
<pre><code class="language-bash">git show HEAD
git show --check HEAD
</code></pre>
<p>O summary deve ser curto e descritivo, com aproximadamente 70–75 caracteres no máximo. O corpo da mensagem deve ser quebrado em aproximadamente 75 colunas.</p>
<pre><code class="language-bash">docs: translations: pt_BR: translate volatile-considered-harmful.rst
Translate volatile-considered-harmful.rst into Brazilian Portuguese and
add it to the pt_BR process documentation index.
Assisted-by: LLM
Signed-off-by: Seu Nome <seu-email@example.com>
</code></pre>
<p>Essa primeira linha será o subject do email.</p>
<p>Para validar ou corrigir a mensagem:</p>
<pre><code class="language-bash">git commit --amend
</code></pre>
<p>Verificando:</p>
<pre><code class="language-bash">git log -1 --format=full
</code></pre>
<h4>Testando a documentação</h4>
<pre><code class="language-bash">make htmldocs
</code></pre>
<p><em>Opcionalmente:</em></p>
<pre><code class="language-bash">make pdfdocs
</code></pre>
<h4>Criando patch</h4>
<pre><code class="language-bash">rm -rf /tmp/volatile-patch
mkdir -p /tmp/volatile-patch
</code></pre>
<pre><code class="language-bash">git format-patch -1 HEAD -o /tmp/volatile-patch
</code></pre>
<p>Isso criaria algo assim:</p>
<pre><code class="language-bash">/tmp/volatile-patch/0001-docs-translations-pt_BR-translate-volatile-considere.patch
</code></pre>
<p>Lendo seu patch (antes de enviar):</p>
<pre><code class="language-bash">cat /tmp/volatile-patch/0001-*.patch
# ou
git format-patch -1 HEAD --stdout | less
</code></pre>
<p>Rode o script sobre o patch que será enviado:</p>
<pre><code class="language-bash">./scripts/checkpatch.pl --strict \
/tmp/volatile-patch/0001-*.patch
</code></pre>
<h3>Se preparando para envio do patch</h3>
<p>Descobrindo os destinatários:</p>
<pre><code class="language-bash">./scripts/get_maintainer.pl \
/tmp/volatile-patch/0001-*.patch
</code></pre>
<p>Exemplo:</p>
<pre><code>Daniel Pereira (maintainer:PORTUGUESE (BRAZILIAN) TRANSLATION)
Jonathan Corbet (maintainer:DOCUMENTATION)
Shuah Khan (reviewer:DOCUMENTATION)
Randy Dunlap (reviewer:DOCUMENTATION)
linux-doc@vger.kernel.org (open list)
linux-kernel@vger.kernel.org (open list)
</code></pre>
<p>O script pode retornar mais pessoas do que as que é preciso; para isso, priorize o envio para:<br>
1. mantenedor específico;<br>
2. mantenedores do subsistema;<br>
3. reviewers indicados;<br>
4. mailing lists relevantes.</p>
<p>Normalmente:<br>
— mantenedores diretamente responsáveis vão em <strong>To</strong>;<br>
— reviewers e demais interessados vão em <strong>Cc</strong>;<br>
— as mailing lists relevantes também devem ser incluídas.</p>
<p>Não envie para pessoas ou listas sem relação com o patch.</p>
<p>Testando o envio:</p>
<pre><code class="language-bash">git send-email \
--dry-run \
--confirm=always \
--to="Daniel Pereira <danielmaraboo@gmail.com>" \
--to="Jonathan Corbet <corbet@lwn.net>" \
--cc="Shuah Khan <skhan@linuxfoundation.org>" \
--cc="Randy Dunlap <rdunlap@infradead.org>" \
--cc="linux-doc@vger.kernel.org" \
--cc="linux-kernel@vger.kernel.org" \
--cc="Seu Nome <seu-email@example.com>" \
/tmp/volatile-patch/0001-*.patch
</code></pre>
<p>No dry-run nenhum email é enviado; o que esperamos com esse teste é um retorno <code>Result: OK</code>. Também confira:</p>
<pre><code class="language-bash">From:
To:
Cc:
Subject:
</code></pre>
<p>Pode aparecer:</p>
<pre><code class="language-bash">The following files are 8bit, but do not declare a Content-Transfer-Encoding.
Declare which 8bit encoding to use [default: UTF-8]?
</code></pre>
<p>Caso <code>sendemail.assume8bitEncoding</code> não esteja configurado, o Git pode solicitar o encoding ao encontrar caracteres não ASCII. Nesse caso, pressione <code>ENTER</code> para aceitar o padrão UTF-8.</p>
<h3>Envio real!!</h3>
<pre><code class="language-bash">git send-email \
--confirm=always \
--to="Daniel Pereira <danielmaraboo@gmail.com>" \
--to="Jonathan Corbet <corbet@lwn.net>" \
--cc="Shuah Khan <skhan@linuxfoundation.org>" \
--cc="Randy Dunlap <rdunlap@infradead.org>" \
--cc="linux-doc@vger.kernel.org" \
--cc="linux-kernel@vger.kernel.org" \
--cc="Seu Nome <seu-email@example.com>" \
/tmp/volatile-patch/0001-*.patch
</code></pre>
<p>Quando aparecer:</p>
<pre><code class="language-bash">Send this email? ([y]es|[n]o|[e]dit|[q]uit|[a]ll):
</code></pre>
<p>Confira:</p>
<pre><code class="language-bash">To
Cc
Subject
</code></pre>
<p>Estando correto: <code>y</code></p>
<p>Um envio bem-sucedido retorna: <code>Result: 250</code></p>
<h5>Detalhes</h5>
<ol>
<li>Salve o message-ID:</li>
</ol>
<pre><code><20260830205912.478358-1-lucasadramalho@gmail.com>
</code></pre>
<p>Isso será importante para você conseguir acompanhar pela lore.kernel.org e referenciar patches antigos em V2, V3 etc. Exemplo de como o link ficaria:</p>
<pre><code class="language-bash">https://lore.kernel.org/all/20260830205912.478358-1-lucasadramalho@gmail.com/
</code></pre>
<p>Importante notar que o corpo deve ser quebrado em aproximadamente 75 colunas.</p>
<hr>
<h3>Enviando V != 1</h3>
<p>Não é preciso criar um novo commit para revisões simples do mesmo patch:</p>
<pre><code class="language-bash">git add arquivo
</code></pre>
<pre><code class="language-bash">git commit --amend
</code></pre>
<p>Caso alguém responda com <code>Reviewed-by</code>, preserve os <code>trailers</code>:</p>
<pre><code class="language-bash">Assisted-by: ...
Reviewed-by: Reviewer <reviewer@example.com>
Signed-off-by: Seu Nome <seu-email@example.com>
</code></pre>
<p><strong>OBS.:</strong> Se uma nova versão alterar substancialmente o patch, trailers como <code>Reviewed-by:</code>, <code>Tested-by:</code> e <code>Acked-by:</code> podem deixar de ser aplicáveis. Remova os trailers cuja revisão, teste ou aprovação tenha sido invalidada e mencione a remoção no changelog da nova versão.</p>
<h4>Gerando V2</h4>
<pre><code class="language-bash">rm -rf /tmp/volatile-v2
mkdir -p /tmp/volatile-v2
</code></pre>
<pre><code class="language-bash">git format-patch \
-v2 \
-1 HEAD \
-o /tmp/volatile-v2
</code></pre>
<h4>Adicionando changelog</h4>
<pre><code class="language-bash">vim /tmp/volatile-v2/v2-0001-*.patch
</code></pre>
<p>Procure por:</p>
<pre><code class="language-bash">Signed-off-by: ...
---
diffstat...
</code></pre>
<p>Adicione depois dos <code>---</code>:</p>
<pre><code class="language-bash">---
Changes in v2:
- Address review comments from Reviewer Name.
- Fix terminology in the translated text.
- Fix indentation in the process index.
v1: https://lore.kernel.org/r/MESSAGE-ID-DA-V1
</code></pre>
<p>O conteúdo após <code>---</code> não faz parte do commit final aplicado. Isso garante que não entre no histórico de commits, poluindo-o sem necessidade.</p>
<p>Changelog não pertence ao commit.</p>
<hr>
<h5>Extras</h5>
<h4>Verificando atualização da tradução</h4>
<p>Para verificar se a tradução está sincronizada com sua versão original:</p>
<pre><code class="language-bash">tools/docs/checktransupdate.py \
Documentation/translations/pt_BR/process/volatile-considered-harmful.rst
</code></pre>
<hr>
<h2>Checklist V1</h2>
<pre><code class="language-bash">[ ] branch criada a partir da árvore correta
[ ] alterações revisadas
[ ] git diff --check
[ ] make htmldocs
[ ] checktransupdate.py, quando aplicável
[ ] git add somente dos arquivos corretos
[ ] git diff --cached
[ ] git diff --cached --check
[ ] git commit -s
[ ] Signed-off-by presente
[ ] git show --check HEAD
[ ] git format-patch
[ ] patch revisado com less/cat
[ ] checkpatch.pl --strict
[ ] get_maintainer.pl
[ ] To e Cc revisados
[ ] git send-email --dry-run
[ ] Subject revisado
[ ] encoding UTF-8 correto
[ ] Result: OK no dry-run
[ ] envio real
[ ] Result: 250
[ ] Message-ID salvo
[ ] link do lore salvo
</code></pre>
<h2>Checklist V != 1</h2>
<pre><code>[ ] review lido
[ ] alterações feitas
[ ] trailers recebidos adicionados
[ ] git commit --amend
[ ] testes repetidos
[ ] git format-patch -vN
[ ] Changes in vN adicionado após ---
[ ] Link to vN-1 adicionado
[ ] checkpatch.pl
[ ] dry-run
[ ] envio real
[ ] novo Message-ID salvo
</code></pre>
<hr>
</div>
</div>
<div id="patches" class="tab-content">
<div class="section-title">Patches</div>
<div class="section-lede">Patches recentes da lista <a href="https://lore.kernel.org/linux-doc/?q=pt_BR" target="_blank" rel="noopener">linux-doc (pt_BR)</a> no lore.kernel.org. Atualizado periodicamente.</div>
<div id="patch-list-wrap">
<div class="patch-toolbar">
<input type="text" id="search-input" class="search-box" placeholder="Buscar por título, autor ou conteúdo..." oninput="filterPatches()">
</div>
<div class="patch-count" id="patch-count"></div>
<div class="loading" id="patches-loading" style="display:none;">Carregando patches<span class="spinner"></span></div>
<ul class="patch-list" id="patch-list"></ul>
</div>
<div id="patch-viewer">
<div class="viewer-head">
<h3 id="viewer-title"></h3>
<div style="display:flex; gap:8px;">
<a id="viewer-lore-link" class="btn" href="#" target="_blank" rel="noopener">Ver no Lore ↗</a>
<button class="btn" onclick="closePatch()">Fechar</button>
</div>
</div>
<div class="viewer-meta" id="viewer-meta"></div>
<div class="patch-content" id="viewer-content"></div>
</div>
</div>
</main>
<footer class="site-footer">
<div class="footer-inner">
<div class="footer-brand">
<strong>kernelBase</strong>
<p>KernelBase Tecnologia LTDA. Automação de atendimento com IA para WhatsApp, Instagram e site, além de engenharia e formação Linux.</p>
</div>
<div class="footer-links">
<div class="footer-col">
<h4>Empresa</h4>
<a href="index.html#programa">Curso LPIC-1</a>
<a href="index.html#instrutor">Instrutor</a>
<a href="index.html#entrar">Contato</a>
</div>
<div class="footer-col">
<h4>Open source</h4>
<a href="#docs" data-tab="docs">Documentação</a>
<a href="#patches" data-tab="patches">Patches</a>
</div>
<div class="footer-col">
<h4>Comunidade</h4>
<a href="https://lore.kernel.org/linux-doc/" target="_blank" rel="noopener">Lista linux-doc</a>
<a href="https://kernelnewbies.org/" target="_blank" rel="noopener">Kernel Newbies</a>
</div>
<div class="footer-col">
<h4>Projeto</h4>
<a href="https://github.com/Daniel-Pereira-Linux/kernel-docs-br" target="_blank" rel="noopener">Código-fonte</a>
<a href="https://github.com/Daniel-Pereira-Linux/kernel-docs-br/issues" target="_blank" rel="noopener">Reportar problema</a>
</div>
</div>
</div>
<div class="footer-bottom">© <span id="year">2026</span> KernelBase Tecnologia LTDA · dados ao vivo de kernel.org e lore.kernel.org</div>
</footer>
<a class="wa-float" href="#contato" data-wa="Olá! Vim pelo site da KernelBase." aria-label="Falar no WhatsApp" title="Falar no WhatsApp">
<svg viewBox="0 0 32 32" width="28" height="28" fill="currentColor" aria-hidden="true"><path d="M16 3C8.8 3 3 8.7 3 15.8c0 2.5.7 4.9 2 7L3 29l6.4-2c2 1.1 4.3 1.7 6.6 1.7 7.2 0 13-5.7 13-12.8S23.2 3 16 3zm0 23.4c-2.1 0-4.1-.6-5.9-1.7l-.4-.3-3.8 1.2 1.2-3.7-.3-.4a10.4 10.4 0 0 1-1.6-5.6C5.2 10 10 5.3 16 5.3S26.8 10 26.8 15.8 22 26.4 16 26.4zm5.9-7.8c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2l-1 1.2c-.2.2-.4.2-.7.1-.3-.2-1.4-.5-2.6-1.6-1-.9-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.4.3-.6.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.7s1.2 3.2 1.4 3.4c.2.2 2.4 3.6 5.8 5 .8.4 1.4.6 1.9.7.8.3 1.5.2 2.1.1.6-.1 1.9-.8 2.2-1.5.3-.7.3-1.4.2-1.5-.1-.2-.3-.3-.6-.4z"/></svg>
</a>
<script src="js/app.js?v=20261002b" defer></script>
</body>
</html>