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.
IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.
Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.
#!/bin/bash get_disk_temperature() { local disk_path=$1 local output=$(smartctl -a "$disk_path" 2>/dev/null) local temperature=$(echo "$output" | awk '/Temperature_Celsius/ { print $10 }') if [[ -n $temperature ]]; then echo "$temperature" else echo "-1" fi } main() { local disks_output=$(lsblk -d -n -o NAME) local disks=($disks_output) for disk in "${disks[@]}"; do if [[ $disk == sd* || $disk == nvme* ]]; then local temperature=$(get_disk_temperature "/dev/$disk") if [[ $temperature != -1 ]]; then echo "Disk temperature for $disk: $temperature°C" else echo "Disk temperature for $disk is not available." fi fi done } mainUkážka výstupu:
$ ./hddtemp.sh Disk temperature for sda: 35°C Disk temperature for sdb: 39°C Disk temperature for sdc: 38°C Disk temperature for sdd: 32°C Disk temperature for sde is not available.Druhá náhrada hddtemp2.sh rieši zobrazenie iba samotnej teploty pre zvolený disk sd[x] a/alebo nvme[x] zariadenia.
#!/bin/bash get_disk_temperature() { local disk_path=$1 local output=$(smartctl -a "$disk_path" 2>/dev/null) local temperature=$(echo "$output" | awk '/Temperature_Celsius/ { print $10 }') if [[ -n $temperature ]]; then echo "$temperature" else echo "-1" fi } main() { local disk_name=$1 if [[ -z $disk_name ]]; then echo "Error: Disk name not provided." echo "Usage: $0 <disk_name>>" exit 1 fi local disk_path="/dev/$disk_name" if [[ ! -e $disk_path ]]; then echo "Error: Disk $disk_name does not exist." exit 1 fi local temperature=$(get_disk_temperature "$disk_path") if [[ $temperature != -1 ]]; then echo "$temperature°C" else echo "Disk temperature for $disk_name is not available." fi } main "$@"Ukážka výstupu:
$ ./hddtemp2.sh sda 35°CMožno to niekomu pomôže. Tieto scripty vyžadujú inštaláciu balíčka smartmontools
Tiskni
Sdílej:
#!/bin/bash echo "hdt.sh v0.1 - bash script displays the temperature of hd/nvme disks" echo " " echo "--help show usage of script" echo " " get_disk_temperature() { local disk_path=$1 local temperature=$(smartctl -a "$disk_path" 2>/dev/null | awk '/Temperature_Celsius/ { print $10 }') if [[ -n $temperature ]]; then echo "$temperature°C" else echo "Disk temperature is not available." fi } display_usage() { echo "Usage: $0 [disk_name]" echo "disk_name (optional): Name of the disk to display the temperature." echo "If not provided, temperatures for all eligible disks will be displayed." echo "Package smartmontools is mandatory." } main() { if [[ $1 == "--help" ]]; then display_usage exit 0 fi if [[ -n $1 ]]; then local disk_path="/dev/$1" if [[ -e $disk_path ]]; then get_disk_temperature "$disk_path" else echo "Error: Disk $1 does not exist." exit 1 fi else local disks_output=$(lsblk -d -n -o NAME) for disk in ${disks_output[@]}; do if [[ $disk == sd* || $disk == nvme* ]]; then local disk_path="/dev/$disk" echo "Disk temperature for $disk: $(get_disk_temperature "$disk_path")" fi done fi } main "$@"
Bez roota to nepôjde. Spustil som strace
s rootom a bez. Podľa toho čo píše strace tak to spadne na prístupových právachk danému zariadeniu sdX.
openat(AT_FDCWD, "/dev/sda", O_RDONLY|O_NONBLOCK) = 3
ioctl(3, SG_IO, {interface_id='S', dxfer_direction=SG_DXFER_FROM_DEV, cmd_len=6,
cmdp="\x12\x00\x00\x00\x24\x00", mx_sb_len=32, iovec_count=0, dxfer_len=36, tim
eout=60000, flags=0, dxferp="\x00\x00\x05\x02\x5b\x00\x00\x02\x41\x54\x41\x20\x20\x20\x20\x20\x57\x44\x43\x20\x57\x44\x35\x30\x30\x33\x41\x5a\x45\x58\x2d\x30"..., status=0, masked_status=0, msg_status=0, sb_len_wr=0, sbp="", host_status=0, driver_status=0, resid=0, duration=0, info=0}) = 0
ioctl(3, SG_IO, {interface_id='S', dxfer_direction=SG_DXFER_FROM_DEV, cmd_len=16, cmdp="\x85\x08\x0e\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xec\x00", mx_sb_len=32, iovec_count=0, dxfer_len=512, timeout=60000, flags=0, dxferp="\x7a\x42\xff\x3f\x37\xc8\x10\x00\x00\x00\x00\x00\x3f\x00\x00\x00\x00\x00\x00\x00\x20\x20\x20\x20\x57\x20\x2d\x44\x43\x57\x36\x43"..., status=0, masked_status=0, msg_status=0, sb_len_wr=0, sbp="", host_status=0, driver_status=0, resid=0, duration=0, info=0}) = 0
openat(AT_FDCWD, "/dev/sda", O_RDONLY|O_NONBLOCK) = -1 EACCES (Permission denied)
write(1, "Smartctl open device: /dev/sda f"..., 57) = 57
exit_group(2) = ?
+++ exited with 2 +++
CAP_FOWNER,CAP_RAWIO
. Lenže tieto povolenia sú všeobecne a zatial neviem o tom, že existuje ako vyriešiť riadené prístupu. Na bezpečný prístup k daným funkciam by musela byť aplikácia prepísaná. Čo asi nebude a zrejme bude nutné doprogramovať nejaký výstup cez filesystém sysfs
.
Napríklad teploty, napätia a frekvenicie sú v /sys/class/hwmon/