Nový open source router Turris Omnia NG je v prodeji. Aktuálně na Allegro, Alternetivo, Discomp, i4wifi a WiFiShop.
Na YouTube a nově také na VHSky byly zveřejněny sestříhané videozáznamy přednášek z letošního OpenAltu.
Jednou za rok otevírá společnost SUSE dveře svých kanceláří široké veřejnosti. Vítáni jsou všichni, kdo se chtějí dozvědět více o naší práci, prostředí ve kterém pracujeme a o naší firemní kultuře. Letos se dveře otevřou 26. 11. 2025 v 16:00. Můžete se těšit na krátké prezentace, které vám přiblíží, na čem naši inženýři v Praze pracují, jak spolupracujeme se zákazníky, partnery i studenty, proč máme rádi open source a co pro nás skutečně
… více »Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za říjen (YouTube).
Jeff Quast otestoval současné emulátory terminálu. Zaměřil se na podporu Unicode a výkon. Vítězným emulátorem terminálu je Ghostty.
Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno
… více »Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.
Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.
Joel Severin v diskusním listu LKML představil svůj projekt linuxového jádra ve WebAssembly (Wasm). Linux tak "nativně" běží ve webovém prohlížeči. Potřebné skripty pro převod jsou k dispozici na GitHubu.
# Terminal on serial lines... # T0:23:respawn:/sbin/getty -8 -h -L ttyS0 115200 vt220 T1:23:respawn:/sbin/getty -8 -L ttyS1 115200 vt220 # COM2 - Rx/Tx only, no hw-flow! T2:23:respawn:/sbin/getty -8 -h -L ttyS2 115200 vt220A když spustím na druhé mašině minicom, tak se normálně přihlásím a vše funguje ok. Potíž je ale s jádrem (a s BIOSem, ale ten upravit by mohlo být snadné), když dám do lilo.conf:
append="console=ttyS0,115200 console=ttyS1,115200 console=ttyS2,115200"tak to bohužel používá konzoli jen na ttyS. V dmesg to taky vypíše jen:
[ 0.000000] Kernel command line: auto BOOT_IMAGE=linux ro root=LABEL=*censored* console=ttyS0,115200 console=ttyS1,115200 console=ttyS2,115200 ... [ 0.000000] Console: colour dummy device 80x25 [ 0.000000] console [ttyS0] enabledCož asi bude tím, že i v dokumentaci píšou:
Note that you can only define one console per device type (serial, video).Co tedy s tím? Docela bych to potřeboval, jednak kvůli hláškám jádra při bootu, jednak pro případ, že by se stroj zasekl při bootu a chtěl do rootovské konzole. Existuje nějaký trik? Nebo patch do jádra? Nebo páka na to, aby si to Linus konečně opravil? [*verzweifelt*]
traditionally, for getty and other login processes, the value of the id field is kept the same as the suffix of the corresponding tty=> ttyS0.. Imho. proc jedna konzole nestaci?
Jen bokem, nemel by byt v /inittab jako id S0,S1,S2 misto T0,T1,T2 viz man
Může být, já jsem jen upravil to, co tam bylo už z distribuce, nad těmito konvencemi jsem nekoumal a fungovalo mi to.
Imho. proc jedna konzole nestaci?
Jedna konzole je pro připojní externího PC (laptopu).
Jsou to dva stroje (PC Engines APU) ve funkci domácího routeru/serveru zapojené tak, aby v případě výpadku bylo možné, aby jeden zastal funkci druhého. Jsou v jedné skříni a interně mají vzájemně propojené ttyS2 <-> ttyS3 (v TTL 3.3V logice), tak aby bylo možné se na dálku vrtat např. v konfiguraci sítě bez rizika, že to člověk už neopraví.
Ještě plánuji připojit raspberryPi, jehož hlavní funkcí bude resetovat obě desky a v případě nutnosti do nich přes SPI nahrát novou verzi BIOSu. Vzhledem k tomu, že desky mají vyvedený ttyS1 na headeru v TTL 3.3V logice, tj. stejně jako RPi, se přímo nabízí ještě pro sichra mít konzoli přístupnou alespoň na jedné desce z toho RPi.
Ale to už by byla jen taková třešnička. Důležité je, aby byl přístup na konzoli vždycky z toho druhého stroje, a pak přes klasický RS232, co ty desky mají vyvedený ven, aby když tam člověk bude fyzicky, aby nemusel všechno rozebírat a shánět převodník na 3.3V TTL logiku..
Jedná se o síť v rodině, kterou mám >500km daleko a chci ji udělat co nejvíce "idiotensicher", aby se s tím na dálku dalo něco udělat v případě výpadků (těch teď bylo několik vinou kolísání napětí v síti, vyřešil jsem to koupí UPS, ale stejně chci co největší redundanci...)
určitě by šel výstup TTYS0 hardwarově "rozdvojit" a poslouchat 2ma sériovkami na tom samém výstupu z desky(drátě), ale s opačným směrem by byl problém, praly by se vysílače, tam to nejde, jedině přepínač...
Jenže o kousek níž je také
Note that you can only define one console per device type (serial, video).
Ale takhle z hlavy nevím, jestli je za tím nějaký hlubší důvod nebo je to jen důsledek implementace. V každém případě by to stejně nebylo moc praktické, už jedna sériová konzole může někdy nepříjemně zdržovat.
The Linux kernel has 2 general types of console drivers. The first type is assigned by the kernel to all the virtual consoles during the boot process. This type will be called 'system driver', and only one system driver is allowed to exist. The system driver is persistent and it can never be unloaded, though it may become inactive.Ještě něco nejasného? Soudruh Grunt vždy rád vysvětlí a zpříjemní den
chceš logovat ještě před inicializováním subsystémůZde si dovolím malé poupravení: Subsystémy inicializované jsou. BIOSem. Doporučuju projít si kód ve složce arch/x86/boot (není toho moc). V podstatě veškerý kód co tam je se umisťuje před rozbalení a spuštění hlavního jádra (je to vlastně nekomprimovaná přímo spustitelná hlavička vmlinuxu). Úplně nejúchvatnější je ovšem main.c:
void main(void)
{
/* First, copy the boot header into the "zeropage" */
copy_boot_params();
/* Initialize the early-boot console */
console_init();
if (cmdline_find_option_bool("debug"))
puts("early console in setup code\n");
/* End of heap check */
init_heap();
/* Make sure we have all the proper CPU support */
if (validate_cpu()) {
puts("Unable to boot - please use a kernel appropriate "
"for your CPU.\n");
die();
}
/* Tell the BIOS what CPU mode we intend to run in. */
set_bios_mode();
/* Detect memory layout */
detect_memory();
/* Set keyboard repeat rate (why?) and query the lock flags */
keyboard_init();
/* Query Intel SpeedStep (IST) information */
query_ist();
/* Query APM information */
#if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE)
query_apm_bios();
#endif
/* Query EDD information */
#if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE)
query_edd();
#endif
/* Set the video mode */
set_video();
/* Do the last things and invoke protected mode */
go_to_protected_mode();
}
Inicializace sériové konzoly probíhá jako druhý bod. Tedy před tím než se vůbec zkontroluje jestli je jádro možné spustit na daném CPU, před inicializací klávesnice, VGA módu, před přepnutím do chráněného režimu a před tím než se jádro rozbalí a vlastně spustí. Sem skáče GRUB a v této fázi se toho nedá dělat o moc víc než v běžném DOSu. Vlastně jen volat BIOS (což je přesně co se děje - viz bioscall.S a ano jsou tu segmenty napsané v assembleru!) a přímo zapisovat na porty. Takže otravovat že nejsou inicializované dva sériové porty…hele asi to půjde ale případným zájemcům bych popřál mnoho štěstí ve vlastnoruční implementaci i když bych byl Linus který to očividně psal
} else if (!strncmp(arg + pos, "ttyS", 4)) {
static const int bases[] = { 0x3f8, 0x2f8 };
int idx = 0;
/* += strlen("ttyS"); */
pos += 4;
if (arg[pos++] == '1')
idx = 1;
Jako výstup můžeš použít pouze jednu konzoluCož je přesně ten bug...
dmesg:
[ 2.569637] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 2.598223] serial8250: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A [ 2.626809] serial8250: ttyS2 at I/O 0x3e8 (irq = 4, base_baud = 115200) is a 16550A [ 2.655405] serial8250: ttyS3 at I/O 0x2e8 (irq = 3, base_baud = 115200) is a 16550ATady se není na co vykašlávat. Připojit se po dokončeném bootu na konzoli (getty) není problém, chápeš to? Jedinej problém je s hláškama a konzolí při bootu, jinak vše funguje, jak má...
Tiskni
Sdílej: