Apple na své vývojářské konferenci WWDC24 (Worldwide Developers Conference, keynote) představil řadu novinek: svou umělou inteligenci pojmenovanou jednoduše Apple Intelligence, iOS 18, visionOS 2, macOS Sequoia, iPadOS 18, watchOS 11, …
Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.
Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.
Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.
Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).
Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.
Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.
NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.
Je tak trochu šílenost, uznávám. Ale přesto je to věc, pro kterou mám svůj use case.
Situace: bootujete z eth0 a chcete tuto síť dále poskytovat na eth1. Používání jiného rozsahu pro eth1 se vám nelíbí.
Hlavním problémem je to, že není dobře možné dát rozhraní eth0 a eth1 do bridge br0 s přesunem síťové adresy z eth0 na br0, aniž by tam byl nějaký krátký moment, kdy nebude kořenový (síťový) souborový systém dostupný. Pokud si myslíte, jako já, že to přece musí dát, tak věřte, že si to vždycky někam sáhne a umře to
Po troše googlení jsem nalezl jedno řešení. Bylo jím ebtables. Pomocí ebtables je možné pozměnit routovací pravidla bridge tak, aby vznikl most mezi eth0 a eth1, ale pakety na IP adresu patřící eth0 se nesměrovaly skrz bridge.
Zde je skript, který jsem nakonec dal do kupy, i když teď si nejsem stoprocentně jist, že toto funguje:
#!/bin/sh NFSIF="eth0" SECIF="eth1" BRIF="br0" set -e nfsmac=$(ip link show "$NFSIF" | awk 'NR==2 { print $2 }') nfsip=$(ip addr show dev "$NFSIF" | awk '$1=="inet" { print gensub(/\/.+/, "", "g", $2) }') for ip in "$nfsip"; do ebtables -t broute -A BROUTING -p ipv4 -i "$NFSIF" --ip-dst "$ip" -j DROP ebtables -t broute -A BROUTING -p arp -i "$NFSIF" --arp-ip-dst "$ip" -j DROP done ebtables -t broute -A BROUTING -p arp -i "$NFSIF" -d "$nfsmac" -j DROP brctl addbr "$BRIF" brctl addif "$BRIF" "$SECIF" ip link set "$BRIF" up brctl addif "$BRIF" "$NFSIF"
Funguje to, až na jeden defekt. IP adresa na rozhraní eth0 není dostupná z druhé strany bridge, tedy z eth1. A celé je to takový hnusný hack, takže jsem hledal řešení jiné.
Nejelegantnějším řešením je nakonec initrd. Vytvořil jsem si dostatečně velký prázdný soubor, naformátoval jsem jej na ext2 a po připojení jsem vytvořil adresáře /bin a /dev. Do /dev jsem umístil null a console. Emergnul jsem si statický busybox a ten jsem strčil do /bin. Tam jsem na něj udělal symlinky sh, ip, brctl. Pak jsem napsal skript /linuxrc:
#!/bin/sh PATH="/bin" MYADDR="10.10.10.2/24" GW="10.10.10.3" #ip addr flush dev eth0 ip link set eth0 up ip link set eth1 up brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 ip addr add $MYADDR dev br0 ip link set br0 up ip route add default via $GW
Na závěr jsem image odpojil a zkomprimoval. A funguje to. Z hlediska nastavení PXE stačilo přidat jádru argument initrd=/tftp-cesta-k-souboru/initrd.img.gz a bylo.
Třeba se to někomu bude hodit
Tiskni
Sdílej: