Do 17. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2024 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
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.
Dlouho jsem řešil následující problém: integrované grafické karty Intel 915 a podobné, které se často nachází v levnějších noteboocích, jsou známé tím, že mají špatně definované rozlišení. To se dá částečně opravit spuštěním utilitky 915resolution PŘED spuštěním aplikace, která toto zařízení využívá, tedy většinou Xorg. Ale nebylo by špatné kdybych mohl v plné míře využít textového režimu ve vysokém rozlišení framebufferu a také gensplash/fbsplash. Ale právě kvůli zmíněnému problému nelze využít plného rozlišení a navíc po spuštění Xorg se na tty rozhází pixely a už s tím vůbec nejde pracovat. Je tedy třeba spustit 915resolution PŘED aktivací framebufferu. To je ale menší oříšek, protože kvůli podpoře fbsplash nelze sestavit framebuffer jako modul, takže není možné spustit 915resolution a pak modprobe. Je nutné spustit 915resolution PŘED startem jádra, což zní dost děsivě. Na různých fórech jsem se pouze dočetl, že se asi budu muset smířit se stávajícím stavem.
Tak jsem si musel poradit sám...
Možná by se zdálo, že není možné spustit něco před startem jádra, ale možné to je. Nikde totiž nebylo řečeno, že to musí být před startem prvního jádra. Stačí sestavit druhé jádro, nemodulární, s minimální konfigurací a BEZ podpory framebufferu (je nustné povolit velmi užitečné systémové volání zvané kexec, které umožní ukončit běh jednoho jádra a spustit jiné bez restartu). Potom pro toto jádro vytvořit initramfs, ve kterém se nachází 915resolution, kexec utilitka a pár základních systémových souborů. Po spuštění tohoto jádra se upraví rozlišení a bez restartu se spustí původní jádro, které (naštěstí) neinicializuje znovu grafickou kartu, takže změna rozlišení je možná PŘED aktivací framebufferu. Takhle jsem zprovoznil framebuffer a fbsplash v plném rozlišení a bez konfliktů s Xorg.
Inicializační ramdisk pro spouštěcí mikrojádro může vypadat například takto:
. ./sbin ./sbin/kexec ./sbin/915resolution ./bin ./bin/sh ./bin/mount ./bin/umount ./bin/cat ./bin/bash ./bin/sed ./bin/cmdline ./lib ./lib/libc.so.6 ./lib/libz.so.1 ./lib/ld-linux.so.2 ./lib/ld-2.4.so ./lib/libdl.so.2 ./lib/libncurses.so.5 ./lib/libreadline.so ./lib/libncurses.so ./lib/libblkid.so.1 ./lib/libuuid.so.1 ./etc ./etc/fstab ./etc/mtab ./init ./dev ./dev/hda ./dev/hda1 ./dev/hda2 ./dev/hda3 ./dev/hda5 ./dev/hda6 ./dev/hda7 ./dev/hda8 ./dev/null ./dev/zero ./dev/mem ./dev/console ./dev/tty ./dev/tty0 ./dev/tty1 ./proc ./boot ./tmp ./varPoužívám následující inicializační skript, který je flexibilní a příjmá spoustu parametrů:
#!/bin/sh set -e echo "Mounting proc" /bin/mount -t proc proc /proc echo "Mounting /boot" /bin/mount -t "`/bin/cmdline fs ext2`" -o ro "`/bin/cmdline dev /dev/hda1`" /boot echo "Changing resolution" /sbin/915resolution "`/bin/cmdline mode 45`" "`/bin/cmdline xres 1280`" "`/bin/cmdline yres 800`" "`/bin/cmdline depth 16`" echo "Loading new kernel" /sbin/kexec --initrd="/boot/`/bin/cmdline initrd initrd`" --append="`/bin/cat /proc/cmdline`" -l "/boot/`/bin/cmdline kernel vmlinuz`" echo "Unmounting /boot" /bin/umount /boot echo "Starting new kernel" exec /sbin/kexec -eCmdline ja malá pomůcka pro čtení parametrů jádra:
#!/bin/sh res=`cat /proc/cmdline |sed -r 's/.*'$1'=([^ ]+).*/\1/'` [ "$res" = "`cat /proc/cmdline`" ] && { echo $2 exit 1 } echo $resParamery jádra:
Název | Význam | Výchozí hodnota |
dev | Oddíl, na kterém se nachází linuxové jádro, většinou /boot | /dev/hda1 |
fs | Souborový systém na oddílu z dev | ext2 |
kernel | Soubor na oddílu určeném parametrem dev, který obsahuje původní linuxové jádro (např. vmlinuz nebo boot/vmlinuz v případě absence /boot oddílu) | vmlinuz |
initrd | soubor s initrd, pravidla stejná jako pro parametr kernel | initrd |
mode,xres,yres,depth | Parametry pro 915resolution | 45, 1280, 800, 16 |
title Gentoo Linux kernel (hd0,0)/vmlinuz-micro splash=silent,theme:regnarg console=tty1 CONSOLE=/dev/tty1 root=/dev/hda5 noapic nolapic pci=routeirq netconf=doma dev=/dev/hda1 fs=reiserfs initrd=gensplash-initrd-regnarg mode=45 xres=1280 yres=800 depth=16 initrd (hd0,0)/initrd-micro
Šílené řešení, že ? Ale doufám, že to bude někomu užitečné. Postup byl testován na notebooku Gigabyte W511U a funguje bez problémů. V případě jakýchkoliv potíží se můžete poradit tady v komentářích nebo se ozvat na moje JID. Také uvítám všechny konstruktivní připomínky (například, že ten initramfs je moc velký, a takové věci jako bash, readline a ncurses tam vůbec nepatří).
Nedokonalou, ale ve většině případů funkční implementaci výše uvedeného řešení najdete na http://regnarg.kx.cz/i915kexec/
Tiskni Sdílej: