S79 · SOURCE-BOUND GATE EVIDENCE
G8f üçüncü direct raw 17 leading NUL nedeniyle yeniden reddedildi
S79 UART capture kapısı → kendi G8F same-descriptor helper kodu Bu sayfa yalnız S79 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S79Komut / fiziksel sözleşmeOperations id exactsource SHA exact
operation: rpi5-g8f-third-direct-raw-leading-nul-rejected
script/Makefile/config · Operations · 2 exact excerpt
sequence-bound=true · implementation-bound=false
01 · Yürütme / doğrulama kodu
Kapının gerçek repository sözleşmesi
tam C fonksiyonuL47–L239
scripts/capture-rpi5-g8f-uart10.c::main
int main(int argc, char **argv) {
if (argc != 3) {
fprintf(stderr, "usage: %s DEVICE OUTPUT\n", argv[0]);
return 2;
}
const char *device = argv[1];
const char *output = argv[2];
const char terminal_marker[] = "ASELSAN/BOOT8F ";
const size_t marker_len = sizeof(terminal_marker) - 1;
size_t marker_progress = 0;
bool terminal_seen = false;
double terminal_seen_at = 0.0;
signal(SIGINT, request_stop);
signal(SIGTERM, request_stop);
int serial_fd = open(device, O_RDWR | O_NOCTTY | O_NONBLOCK);
if (serial_fd < 0) {
perror("open serial device");
return 2;
}
struct termios settings;
if (tcgetattr(serial_fd, &settings) != 0) {
perror("tcgetattr before configure");
close(serial_fd);
return 2;
}
cfmakeraw(&settings);
settings.c_cflag &= (tcflag_t)~(PARENB | CSTOPB | CSIZE);
settings.c_cflag |= CS8 | CLOCAL | CREAD;
#ifdef CRTSCTS
settings.c_cflag &= (tcflag_t)~CRTSCTS;
#endif
settings.c_iflag &= (tcflag_t)~(IXON | IXOFF | IXANY);
settings.c_cc[VMIN] = 0;
settings.c_cc[VTIME] = 0;
if (cfsetispeed(&settings, B115200) != 0 ||
cfsetospeed(&settings, B115200) != 0) {
perror("cfset speed");
close(serial_fd);
return 2;
}
if (tcsetattr(serial_fd, TCSANOW, &settings) != 0) {
perror("tcsetattr");
close(serial_fd);
return 2;
}
struct termios effective;
if (tcgetattr(serial_fd, &effective) != 0) {
perror("tcgetattr after configure");
close(serial_fd);
return 2;
}
bool raw_ok = (effective.c_lflag & (ICANON | ECHO | ISIG | IEXTEN)) == 0 &&
(effective.c_oflag & OPOST) == 0;
bool bits_ok = (effective.c_cflag & CSIZE) == CS8 &&
(effective.c_cflag & (PARENB | CSTOPB)) == 0;
bool flow_ok = (effective.c_iflag & (IXON | IXOFF | IXANY)) == 0;
#ifdef CRTSCTS
flow_ok = flow_ok && (effective.c_cflag & CRTSCTS) == 0;
#endif
bool speed_ok = cfgetispeed(&effective) == B115200 &&
cfgetospeed(&effective) == B115200;
if (!raw_ok || !bits_ok || !flow_ok || !speed_ok) {
fprintf(stderr,
"effective termios mismatch raw=%s bits8n1=%s flow_off=%s speed=%s\n",
raw_ok ? "true" : "false",
bits_ok ? "true" : "false",
flow_ok ? "true" : "false",
speed_ok ? "true" : "false");
close(serial_fd);
return 2;
}
if (tcflush(serial_fd, TCIFLUSH) != 0) {
perror("tcflush TCIFLUSH");
close(serial_fd);
return 2;
}
int output_fd = open(output, O_WRONLY | O_CREAT | O_EXCL, 0600);
if (output_fd < 0) {
perror("open raw output");
close(serial_fd);
return 2;
}
printf("device=%s\n", device);
printf("same_descriptor=true fd=%d\n", serial_fd);
printf("effective_baud_115200=true ispeed=%lu ospeed=%lu\n",
(unsigned long)cfgetispeed(&effective),
(unsigned long)cfgetospeed(&effective));
printf("format=8N1 raw=true flow_control=false\n");
printf("input_flushed=true method=TCIFLUSH\n");
printf("capture_path=%s\n", output);
printf("capture_armed=YES\n");
fflush(stdout);
const double started_at = monotonic_seconds();
uint64_t total_bytes = 0;
uint8_t buffer[4096];
int result = 0;
while (!stop_requested) {
double now = monotonic_seconds();
if (terminal_seen && now - terminal_seen_at >= 3.0) {
printf("terminal_grace_complete=true\n");
break;
}
if (now - started_at >= 3600.0) {
fprintf(stderr, "capture_timeout=YES elapsed_seconds=3600\n");
result = 3;
break;
}
struct pollfd pfd = {.fd = serial_fd, .events = POLLIN, .revents = 0};
int polled = poll(&pfd, 1, 250);
if (polled < 0) {
if (errno == EINTR) {
continue;
}
perror("poll serial");
result = 2;
break;
}
if (polled == 0) {
continue;
}
if ((pfd.revents & (POLLERR | POLLNVAL)) != 0) {
fprintf(stderr, "serial poll failure revents=0x%x\n", pfd.revents);
result = 2;
break;
}
for (;;) {
ssize_t got = read(serial_fd, buffer, sizeof(buffer));
if (got < 0) {
if (errno == EINTR) {
continue;
}
if (errno == EAGAIN || errno == EWOULDBLOCK) {
break;
}
perror("read serial");
result = 2;
stop_requested = 1;
break;
}
if (got == 0) {
break;
}
write_all(output_fd, buffer, (size_t)got);
total_bytes += (uint64_t)got;
for (ssize_t i = 0; i < got && !terminal_seen; ++i) {
uint8_t byte = buffer[i];
if (byte == (uint8_t)terminal_marker[marker_progress]) {
marker_progress++;
if (marker_progress == marker_len) {
terminal_seen = true;
terminal_seen_at = monotonic_seconds();
printf("terminal_marker_seen=ASELSAN/BOOT8F bytes=%llu\n",
(unsigned long long)total_bytes);
fflush(stdout);
}
} else {
marker_progress = byte == (uint8_t)terminal_marker[0] ? 1 : 0;
}
}
}
}
if (fsync(output_fd) != 0) {
perror("fsync raw output");
result = 2;
}
if (fchmod(output_fd, 0444) != 0) {
perror("fchmod raw output");
result = 2;
}
close(output_fd);
close(serial_fd);
printf("capture_closed=true terminal_seen=%s exact_bytes=%llu mode=0444\n",
terminal_seen ? "true" : "false",
(unsigned long long)total_bytes);
fflush(stdout);
return result;
}snippet sha256: 64fd279c4975…file sha256: 58e8fb940ad0…
02 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL29866–L29975
website/src/lib/operations.ts::rpi5-g8f-third-direct-raw-leading-nul-rejected
{
id: "rpi5-g8f-third-direct-raw-leading-nul-rejected",
date: "2026-08-21",
sequence: 79,
status: "observed",
title: "G8f üçüncü direct raw 17 leading NUL nedeniyle yeniden reddedildi",
summary:
"Sıra 78'den sonra kullanıcı Pi'nin tamamen kapalı olduğunu teyit etti; kart, probe ve UART bağlantıları değiştirilmedi. Üç örnekli bağımsız pre-arm audit aynı USB/IOSerial/session/path/inode kimliğini, boş portu, son beş dakikada sıfır transport hatasını ve exact helper hashlerini doğruladı. Yeni exclusive raw açılıp güçten önce arm edildi; dört saniyelik üç pre-power örneğinin her biri yalnız bir NUL bayt içererek frozen ≤ 5 sınırı içinde kaldı. Kullanıcı tek hareketle güç verdi. Helper transport hatası olmadan BOOT8F marker'ını gördü, grace'i tamamladı ve exit 0 ile exact 17.379 bayt salt-okunur raw üretti. Power-on 16 yeni leading NUL ekledi; unchanged direct raw toplam/leading 17 NUL ile authoritative validator'da yalnız `observed 17, maximum 5` nedeniyle exit 1 verdi. Önceki 24→17 iyileşmesi hâlâ rejection'dır; raw ve validator değiştirilmedi. Exact 17 prefix'i yalnız dosyasız process stream'de atlayan diagnostic semantic GO direct-raw STOP'u geçersiz kılmaz. Kayıt üçüncü evidence-integrity rejection'dır; firmware error veya fiziksel BOOT8F PASS değildir. Pi kullanıcı bildirimiyle powered durumda ve yeni power-cut teyidi yoktur.",
evidence: [
"Sıra 78 sonrasında kullanıcı Pi'nin tamamen kapalı olduğunu teyit etti; exact kart, probe ve UART bağlantıları untouched kaldı.",
"Pre-arm USB object 0x100004496, IOSerial object 0x1000044a7, session 783935390455 ve `/dev/cu.usbmodem214402` kimliği üç örnek boyunca exact eşleşti.",
"Üç pre-arm örneğinde sekiz saniye boyunca identity ve inode stabil, `lsof` free ve son beş dakikadaki bounded disconnect/transaction/abort hata sayıları 0 kaldı.",
"Helper kaynağı exact 7.244 B / 58e8fb940ad0b17adf3b895a13b844647e8524d99136874ef2b4bedc1ff23e90; binary exact 35.112 B / 5e0f78f60b2ddb7ff5cf5d1c446cf17260cbde023f9ad6270524b74463cabedc olarak değişmeden eşleşti.",
"Yeni exclusive raw, same descriptor fd 3, effective 115200/8N1/raw/flow-off, `TCIFLUSH` ve güçten önce `capture_armed=YES` ile açıldı.",
"Dört saniyeye yayılan üç pre-power örneğinin her biri bytes=1, NUL=1, non-NUL=0 verdi; power öncesi prefix frozen ≤ 5 sınırı içindeydi.",
"Kullanıcı pre-power kapısından sonra tek-hareket power-on bildirdi; capture sırasında USB disconnect/transaction error sayıları 0/0 kaldı.",
"Helper exit 0: `terminal_marker_seen=ASELSAN/BOOT8F bytes=16467`, `terminal_grace_complete=true`, `capture_closed=true terminal_seen=true exact_bytes=17379 mode=0444`.",
"Immutable üçüncü raw exact 17.379 B / a31f4f0f1eb0fc93cfeaa48e4f556b104cc1e4cf9f1e5826c387014643d193d4 ve mode 0444'tür.",
"Raw byte audit: total/leading NUL=17/17, power-on added=16, non-leading NUL=0; CR/LF/CRLF=248/248/248, bare CR/LF=0/0, NUL'sız UTF-8 PASS, other control=0 ve final CRLF PASS.",
"Authoritative validator unchanged direct raw üzerinde exit 1 verdi ve tek kök neden exact `leading NUL prefix exceeds capture allowance: observed 17, maximum 5` oldu.",
"Sıra 78'in 24 leading NUL sonucundan 17'ye iyileşme kabul değildir; frozen maximum 5, validator ve immutable raw değiştirilmedi.",
"Yalnız tanı için exact 17 leading NUL'ı dosyasız process stream'de atlayan validator exit 0 verdi: release/ack=1/1, ack_ticks=0, proof_ticks=1, bütün new-work=0 ve boot8f_tick=1005.",
"Immutable marker offsets BOOT8E=15166, G8F0=15633, G8F1=16051 ve BOOT8F=16438; dördünün count'u 1, error/G8FERR/panic/unknown-IRQ count'ları 0'dır.",
"Diagnostic semantic GO direct-raw framing STOP'unu ve physical acceptance reddini geçersiz kılmaz.",
"Evidence arşivi `evidence/rpi5/g8f/sequence-79-leading-nul-rejected/`; README exact 3.485 B / fc6a742e0f16dd5fe221bb5eba308bb45863e675c9ddacda3398e47e11ee566d.",
"Arşiv SHA256SUMS exact 292 B / fcf6081e6f265da06e608e149a5893825a328aea0c7b495b99d188439bf7aba8; raw/helper kaynak/helper binary manifest, temporary→archive cmp ve mode 0444 PASS'tir.",
"G8f staged proof exact 27.334 B / c325f496647188139d201b8451aa71fb7932b129910ebc09f85cdef19a25c1d5; üçüncü direct-raw rejection ile diagnostic semantic sonucu ayrı tutar.",
],
terminalSessionsNote:
"Oturumlar untouched power-off pre-arm/pre-power ölçümünü, temiz transport capture'ı, authoritative unchanged-direct-raw reddini ve dosyasız diagnostic semantic audit'i ayrı gösterir. Validator exit 1 firmware error sonucu değildir.",
terminalSessions: [
{
id: "g8f-seq79-untouched-prearm-and-prepower-go",
title: "Untouched probe, stabil üç örnek ve ≤5 pre-power line kapısı",
commandLines: [
"verify user-confirmed power-off while card, probe and UART remain untouched",
"sample USB/IOSerial/session/path/inode three times over eight seconds and inspect bounded five-minute errors",
"verify lsof-free and unchanged helper hashes",
"open a new exclusive raw, configure and arm, then sample the line three times over four seconds before power",
],
outputLines: [
"USB=0x100004496 · IOSerial=0x1000044a7 · session=783935390455 · identity/path/inode stable=3/3",
"lsof=FREE · last-5m disconnect/transaction/abort errors=0 · helper hashes=PASS",
"same descriptor fd=3 · 115200/8N1/raw/flow-off · TCIFLUSH · capture_armed=YES",
"pre-power samples=3/4 s · each bytes/NUL/nonNUL=1/1/0 · prefix within <=5",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8f-seq79-third-clean-transport-capture",
title: "Tek-hareket power-on ve üçüncü BOOT8F capture",
commandLines: [
"after the pre-power gate, accept the user's single-action power-on and capture into the new raw",
"verify terminal marker, grace, transport counters and immutable close",
],
outputLines: [
"terminal_marker_seen=ASELSAN/BOOT8F bytes=16467",
"terminal_grace_complete=true",
"capture_closed=true terminal_seen=true exact_bytes=17379 mode=0444",
"USB disconnect/transaction errors=0/0 · helper exit=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8f-seq79-authoritative-direct-raw-reject",
title: "17 leading NUL için tek-kök-neden direct-raw reddi",
commandLines: [
"run the authoritative strict G8f validator directly on the immutable 17379-byte raw",
"audit pre-power and power-on NUL contribution plus framing without modifying the file",
],
outputLines: [
"leading NUL prefix exceeds capture allowance: observed 17, maximum 5",
"only validator error=leading NUL 17>5 · prior attempt=24 · improvement is still REJECT",
"pre-power/power-added/total=1/16/17 · nonleading NUL=0 · raw+validator unchanged",
"CRLF=248 · bare CR/LF=0/0 · UTF8/control/final CRLF=PASS",
],
exitCode: 1,
outputMode: "complete",
},
{
id: "g8f-seq79-diagnostic-semantic-and-archive",
title: "Dosyasız exact-17 skip diagnostic ve immutable arşiv",
commandLines: [
"stream the raw while skipping exactly 17 leading NUL bytes in-process; create no output file",
"run the same validator and audit immutable marker offsets/counts on that diagnostic stream",
"archive only the original raw and exact helper copies; verify SHA256SUMS, cmp and mode 0444",
],
outputLines: [
"diagnostic validator exit=0 · release/ack=1/1 · ack_ticks=0 · proof_ticks=1 · all new work=0 · boot8f_tick=1005",
"BOOT8E/G8F0/G8F1/BOOT8F offsets=15166/15633/16051/16438 · counts=1/1/1/1 · errors=0",
"diagnostic GO cannot override direct-raw STOP",
"archive README/SHA256SUMS/manifest/cmp/mode0444=PASS",
],
exitCode: 0,
outputMode: "complete",
},
],
limitations: [
"Bu üçüncü unchanged-direct-raw evidence-integrity reddidir; firmware error değildir ve fiziksel G8f/BOOT8F PASS değildir.",
"24→17 leading-NUL iyileşmesi frozen maximum 5'i aşmaya devam eder ve acceptance değildir.",
"Dosyasız process-stream diagnostic semantic GO yalnız teşhistir; direct-raw framing STOP'unu geçersiz kılamaz.",
"Reddedilen raw trim/edit/rewrite edilemez, yeni capture ile birleştirilemez ve physical PASS kanıtı olarak kullanılamaz.",
"Pi kullanıcı bildirimiyle hâlâ powered durumdadır ve yeni power-cut teyidi yoktur; retry yeni power-cycle, yeni exclusive raw ve direct leading NUL ≤ 5 gerektirir.",
"Generic SMP runtime kapalıdır; bu transport/evidence gözlemi scheduler, timer, migration veya shootdown güvenliği kanıtı değildir.",
"Website yayını yalnız canonical custom domain üzerinden doğrulanır; bu ortamda pages.dev direct smoke için başarı iddia edilmez.",
"Wrangler yayını dirty/untracked workspace'ten ve stale 47d22c9 source etiketiyle yapılır; canlı artifact hash'i doğrulansa da Git-provider provenance kurulmuş sayılmaz.",
],
},snippet sha256: c0bc66ae97a4…file sha256: 9726dbf00f84…
Kayıtlı yürütme/kanıt komutu
verify user-confirmed power-off while card, probe and UART remain untouchedRegistry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9