Richard Hughes oznámil, že službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzoruje také společnost HP.
O víkendu proběhla demopárty Outline 2026. Publikována byla prezentovaná dema. Upozornit lze na 16 bajtové, opravdu šestnáct bajtové, zvukově obrazové demo Wake Up! 16b (YouTube).
Byla vydána nová verze 9.5 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání a na YouTube.
Dnes a zítra probíhá vývojářská konference Google I/O 2026. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).
Canonical vydal Ubuntu Core 26. Vychází z Ubuntu 26.04 LTS a podporováno bude 15 let. Ubuntu Core je minimální neměnný operační systém určený pro vestavěné systémy.
Bylo vydáno OpenBSD 7.9. Po dlouhé době opět se songem: Diamond in the Rough.
Byl vydán Mozilla Firefox 151.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 151 bude brzy k dispozici také na Flathubu a Snapcraftu.
Elon Musk prohrál soudní spor se společností OpenAI, která se podle jeho žaloby odchýlila od původně uváděného cíle vyvíjet umělou inteligenci (AI) ku prospěchu lidstva. Porota včera po necelých dvou hodinách dospěla k jednomyslnému závěru, že Musk žalobu podal příliš pozdě. Musk byl jedním ze spoluzakladatelů společnosti OpenAI, která vznikla v roce 2015 a vyvinula populární chatovací systém ChatGPT. V roce 2018 na svůj post ve vedení
… více »Byla vydána nová verze 10.4 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Opraveny jsou zranitelnosti Copy Fail a Dirty Frag. Přibyl nový obraz pro Orange Pi 5B.
Pokud je zranitelnost Linuxu v nepoužívaném jaderném modulu, lze ji jednoduše vyřešit zakázáním automatického načítání tohoto konkrétního zranitelného modulu. Projekt ModuleJail si klade za cíl zvýšit bezpečnost Linuxu zakázáním automatického načítání všech nepoužívaných jaderných modulů. Jedná se o skript, který dá všechny nepoužívané jaderné moduly na blacklist (/etc/modprobe.d/modulejail-blacklist.conf).
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governora jestliže nastavím, aby se frekvence zvýšila už při 20% zátěži
echo 20 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_thresholda jestliže nechám samplovat zátěž co nejčastěji
echo $(cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min) > \ /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_ratetak to stejně není dostatečné, protože nejnižší hodnota pro samplovací periodu je 620000 mikrosekund, tedy něco přes půl sekundy. A to už je bohužel poznat. Mohu názorně demonstrovat:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import time
fncur = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'
fnmin = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'
fnmax = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'
class CPUgov:
def __init__(self):
self.minfreq = self.readintfromfile(fnmin)
self.maxfreq = self.readintfromfile(fnmax)
def readintfromfile(self, fn):
return int(file(fn).read())
def getfreq(self):
return self.readintfromfile(fncur)
def waitforfall(self):
stamp = time.time()
while self.getfreq() != self.minfreq:
time.sleep(0.01)
return time.time() - stamp
def waitforrise(self):
stamp = time.time()
while self.getfreq() != self.maxfreq:
pass
return time.time() - stamp
cpu = CPUgov()
while True:
print 'rise:', cpu.waitforrise()
print 'fall:', cpu.waitforfall()
Frekvence se skutečně zvýší až po cca 0.6 sekundách, což je pro interaktivní práci (např. přepínání mezi okny, renderování html) příliš dlouho. Takže se chci zeptat, jak snížit hodnotu v echo "požadovaná hodnota" > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_minPřičemž ona požadovaná hodnota bude ze .../scaling_available_frequencies.
static unsigned int def_sampling_rate;
#define MIN_SAMPLING_RATE_RATIO (2)
/* for correct statistics, we need at least 10 ticks between each measure */
#define MIN_STAT_SAMPLING_RATE \
(MIN_SAMPLING_RATE_RATIO * jiffies_to_usecs(10))
#define MIN_SAMPLING_RATE \
(def_sampling_rate / MIN_SAMPLING_RATE_RATIO)
#define MAX_SAMPLING_RATE (500 * def_sampling_rate)
#define DEF_SAMPLING_RATE_LATENCY_MULTIPLIER (1000)
#define TRANSITION_LATENCY_LIMIT (10 * 1000)
Zkusím si s tím trochu pohrát. Mám (na druhém počítači) vyzkoušeno, že když ondemand zareaguje za 0.1 sekundy, tak je to už úplně v pohodě a nepoznám žádnou prodlevu.
#!/usr/bin/python
# -*- coding:utf-8 -*-
import time
fncur = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq'
fnmin = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq'
fnmax = '/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq'
class CPUgov:
def __init__(self):
self.minfreq = self.readintfromfile(fnmin)
self.maxfreq = self.readintfromfile(fnmax)
self.samples_high = 0
self.samples_low = 0
def readintfromfile(self, fn):
return int(file(fn).read())
def getfreq(self):
return self.readintfromfile(fncur)
def measure(self):
freq = self.getfreq()
if freq == self.minfreq:
self.samples_low += 1
else:
self.samples_high += 1
cpu = CPUgov()
while True:
cpu.measure()
N100 = (cpu.samples_high + cpu.samples_low) * 0.01
print 'high: %5.2f%% low:%5.2f%%' %(cpu.samples_high / N100,
cpu.samples_low / N100)
time.sleep(1)
Zkuste tohle nechat běžet hodinu, dvě, tři ... den, dva, tři ...
Tiskni
Sdílej: