Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech
… více »Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.
Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.
Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »
Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.
Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
Tak jsem se po delší době opět dostal k tunění svého placatého přítele (HP nx6110). Od jisté doby, ani nevím od kdy, mi nechce moje Pentium M740 snižovat frekvenci. Prostě pořád běží na maximální frekvenci. Co z toho plyne, jednak spotřebovává relativně hodně energie a druhak se chladič může v obzvláště horkých dnech doslova zbláznit.
Cílem tedy je přinutit procesor ke snižování frekvence CPU. Co budeme potřebovat: dvě vejce, 0.5l mléka, ... né dělám si srandu:) Teď vážně. První co potřebujeme je
samozřejmě podpora v jádře, jak pro Frequency scaling tak pro
ACPI:
# # CPU Frequency scaling # CONFIG_CPU_FREQ=y # CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=m CONFIG_CPU_FREQ_TABLE=mModuly pro
ACPI nebudu ani vypisovat, jsou většinou všude
předvoleny.
Je samozřejmě možné používat i některé deamony jako cpufreqd nebo powersaved. Ale nač používat deamona, když je k dispozici modul. Jak jsem již řekl použijeme služeb jaderných modulů, konkrétně těchto:
cpufreq_ondemand cpufreq_powersave cpufreq_conservative cpufreq_stats acpi_cpufreq freq_tableMožná některé z nich nejsou potřeba, každopádně já mám zavedeny tyto.
Prostředkem pro komunikaci s moduly jsou soubory v /sys/devices/system/cpu/cpu0/cpufreq/
:~$ ls /sys/devices/system/cpu/cpu0/cpufreq/ affected_cpus ondemand scaling_driver stats cpuinfo_cur_freq scaling_available_frequencies scaling_governor cpuinfo_max_freq scaling_available_governors scaling_max_freq cpuinfo_min_freq scaling_cur_freq scaling_min_freqMůžeme nahlédnout do všech souborů, jejich názvy jsou dostatečně výstižné, nebudu je proto komentovat. Ucelenější přehled dostaneme pomocí
cpufreq-info, viz.například:
:~$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which need to switch frequency at the same time: 0
hardware limits: 800 MHz - 1.73 GHz
available frequency steps: 1.73 GHz, 1.33 GHz, 1.07 GHz, 800 MHz
available cpufreq governors: userspace, ondemand, conservative, powersave, performance
current policy: frequency should be within 800 MHz and 1.73 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.
Rozsahy frekvencí se mění v souborech scaling_max_freq resp
scaling_min_freq a chování v scaling_governor. Jak je
vidět ja mám zvolen rozsah 1.73GHz - 800MHz a governor = "ondemand". Nastavení
konkrétních parametrů je jednoduché:
cd /sys/devices/system/cpu/cpu0/cpufreq/ echo 800000 > scaling_min_freq echo odemand > scaling_governorSamozřejmě jako
root.
Pro klikače Gnomisty jsem při svém brouzdání narazil na popis zprovoznění appletu pro Gnome-applets, viz. zde. Je zde i poměrně přehledná tabulka taktovacích startegií.
Teď již jen zbývá zařídit, aby se hodnoty nastavovaly například když odpojím AC adaptér, nebo naopak. O tom ale příště protože jsem to ještě pořádně nedoladil.
Jakékoliv náměty na vylepšení, či opravení jsou vítány.
Zdroje:
Kromě toho co jsem uvedl v textu.
Enhanced Intel SpeedStep Technology and Demand-Based Switching on Linux*
WEBlog -- Wouter's Eclectic Blog
Tiskni
Sdílej:
To je celkem jednoduchý, na to stačí následující shell skript* (/etc/acpi/battery.sh):
#!/bin/sh
if grep 'off-line' /proc/acpi/ac_adapter/C1BA/state; then
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
a příslušnej konfigurační soubor (/etc/acpi/events/battery) pro acpid:
event=battery.* action=/etc/acpi/battery.sh %e
*přesný názvy "zařízení" baterek je třeba nastavit "na míru" systému
Super věc
Zas tak super to neni - když jsem začal přemejšlet, že bych to teda napsal do toho FAQ a zkusil to pro jistotu znovu otestovat, zjistil jsem, že to najednou (když jsem ten skript vymejšlel, tak to ale určitě fungovalo
) až tak úplně nefunguje...
Při přechodu z baterky na AC se to nepřepne zpět. Na vině je to, že /proc/acpi/ac_adapter/C1BA/state se změní o něco později, než dostane acpid informaci o změně napájení (divné, ale je to tak). Problém (i případný problém v "opačném" směru) nicméně spolehlivě řeší sleep na začátku skriptu (před testem stavu napájení)
#!/bin/sh
sleep 1
if grep 'off-line' /proc/acpi/ac_adapter/C1BA/state; then
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
Použití ac_adapter místo battery nemá na funkci vliv.
Otázkou spíš je, jak je možný, že acpid dostane informaci od jádra o změně "baterky" dřív, než jádro změní příslušnej soubor v /proc, což je situace proti který nejsou "imunní" ani skripty z Debianu. V době, kdy jsem si ty skripty psal tahle situace nenastávala, takže bych tipoval, že to že to u Debianu s těmi skripty (možná) funguje je způsobeno buď tím, že je tam starší jádro, kde tahle situace nenastane, nebo složitostí těch skriptů - než se dostanou k testu souboru v /proc, je ten už nastavenej správně.
Nesmysl. Jak u battery tak u ac_adapter dostaneš oba dva signály, tzn. odpojení napájení i jeho připojení.
odpojenie adaptera => event=ac_adapter AC 00000080 00000000 pripojenie adaptera => event=ac_adapter AC 00000080 00000001a viac ma nezaujima, ani to ci nahodou nemam BAT1 v ultrabay ani ci sa jedna len o vybratie/zalozie baterky a pod. :)
Ten sleep je v těch Debianích skriptech IMHO až po detekci statusu v /proc. A získání tý informace je mnohem složitější, než jenom jediný grep v /proc. Volají se další skripty, například /usr/bin/on_ac_power (takže dotaz na status v /proc se provádí 2x...) atd. Ale zas tak podrobně jsem ten bordel (zlatej Arch a jeho KISS strategie
) nezkoumal.
power.sh, ktery je spousten z event=ac_adapter a vse funguje jak sem si predstavoval.
Teorie sice je taková, že spotřeba CMOSu je nejvýrazněji závislá na frekvenci přepínání hradel
Ne tak docela.. jako obecnej vzorec pro ztrátovej výkon CMOSu se udává P = c·V²·f, kde c je technologická konstanta. Rostoucí podíl parazitních proudů na ztrátovém výkonu je nicméně taky fakt (bodejť by ne, když jsou dneska hradla tranzistorů "vysoký" jen jednotky atomovejch vrstev...)
Klasický CMOS (4xxx) je sice na napětí celkem nenáročný, ale dnešní procesor má podstatně méně prostoru pro změnu voltáže mezi podpětím (leda, že by se voltáž a frekvence měnily synchronně, což je modus operandi speedstepu) a vyhořením, takže až donedávna nebyly nějaké úpravy napájení moc na pořadu dne. Jsou na to i nějaké husté patenty, přinejmenším jeden od Chucka Moorea.
Možná jsem měl napsat "pokud nevezmeme v úvahu změny napětí a zaměříme se jen na to, co se v těch hradlech děje".
Zrušíte tím ztrátový výkon a tím i produkci tepla. Jenom musíte dávat pozor, aby vám to nequenchlo jako náš supravodivý magnet na NMR
. Povolil jsem v jadru timer s vysokym rozlisenim. Pocet preruseni klesl na 50 v idle, a priblizne 120 pri praci. Teplota klesa z 47 stupnu na 40. Spotreba 11.5W, vydrz 4.7 hodiny.
Podminky nejsou uplne ferovy - mam vypnuty amarok a lifereu, protoze zrejmne maji nejaky bugy, kvuli kterym se budi zbytecne casto. ehci taky pusobilo casty preruseni procesoru, po te co jsem z nej udelal moduly je to uz v poradku. Ale nemam tady zadny usb zarizeni, abych vyzkousel, jak se jeho pripojeni projevi.
/sys, ale stačí použít nástroj cpufreq-set.