Wracając do tematu extremalnie lekkiego obrazu. Z poziomu make Menuconfig już więcej nic nie usunę. Ale nadal w obrazie pozostają elementy IPv6 którego nie używam. Czy można te elementu usunąć bezpośrednio w pliku .config. Chcę usunąć przez wstawienie #  : odhcp6c, odhcp-ipv6only, kmod-ip6tables, kmod-conntrack6, kmod-nf-ipt6, kmod-nf-reject6, kmod-nf-log6, libiptext6, oraz podobnie PACKAGE_ip6tables-nft, KERNEL_IPV6, KERNEL_IPV6_MULTIPLE_TABLES, KERNEL_IPV6_SUBTRESS, CONFIG_IPV6. Czy taka metoda usunięcia zbędnych pakietów jest dopuszczalna i bezpieczna. No i czy kompilacja się uda a router ruszy na takim obrazie? Cezary próbowałeś może czegoś takiego już? System pisze że .config wymaga synchronizacji, jak go zmodyfikuję.

Walcze Walcze, ale wyżej wiadomo czego nie podskoczę, muszę rozważyć dołożenie pośredniego urządzenia w sieci jako router wejściowy do filtrowania reklam i innych śmieci. Cezary baza urządzeń jest spora, co byś mi zaproponował? Minimum 2 porty 1GB, min. 256 RAM, w miare SoC. bez WiFI

udalo się, bardzo dziękuję za pomoc.

Czyli po kolei: 1. zaznaczam Collection Luci, co zaznacza potrzebne rzeczy, a potem: 2. Odznaczam Luci i wywalam Luci-light, luci-theme-bootstrap oraz luci-proto-ipv6. Kompiluje !! czy jak wgram ten obraz to będę miał graficzy interfejs Luci dalej? Jeszcze tak nie robiłem smile.

czyli odznaczam, ale potem resztę muszę ręcznie dodać? czy tak?

ok, pppoe używam, mam światłowód, a reszta: tylko jak to zrobić bo jak robię obraz to Boostrap i luci-proto-ipc6 są zablokowane

używam: material, mwan3 oraz 802.11k i 802.11V, w bakupie modem Hilink LTE

No dobrze połatałem obraz o brakujące elementy i działa teraz na backupie, ale teraz muszę poszukać jeszcze możliwości i usunięcia czegoś jeszcze, może coś się znajdzie do usunięcia. Cezary zerknij proszę na listę poniżej:

root@Router_Glowny_57U:/etc# opkg list-installed | sort
attendedsysupgrade-common - 8
base-files - 1563-r24159-081ff3eee2
block-mount - 2023-02-28-bfe882d5-1
bridge - 1.7.1-1
busybox - 1.36.1-1
ca-bundle - 20230311-1
ca-certificates - 20230311-1
cgi-io - 2022-08-10-901b0f04-21
coreutils - 9.3-1
coreutils-sort - 9.3-1
curl - 8.7.1-r1
dnsmasq - 2.90-2
dropbear - 2022.82-6
firewall4 - 2023-09-01-598d9fbb-1
fstools - 2023-02-28-bfe882d5-1
fwtool - 2019-11-12-8f7fe925-1
gawk - 5.2.1-2
getrandom - 2022-08-13-4c7b720b-2
grep - 3.8-2
hostapd-common - 2023-09-08-e5ccbfc6-8
ip-tiny - 6.3.0-1
ip6tables-nft - 1.8.8-3
ipset - 7.17-1
iptables-mod-conntrack-extra - 1.8.8-3
iptables-mod-ipopt - 1.8.8-3
iptables-nft - 1.8.8-3
iw - 5.19-1
iwinfo - 2023-07-01-ca79f641-1
jansson4 - 2.14-3
jshn - 2023-05-23-75a3b870-1
jsonfilter - 2024-01-23-594cfa86-1
kernel - 5.15.173-1-e5141462cc9934052e79c5c45df702e6
kmod-cfg80211 - 5.15.173+6.1.110-1-1
kmod-crypto-aead - 5.15.173-1
kmod-crypto-ccm - 5.15.173-1
kmod-crypto-cmac - 5.15.173-1
kmod-crypto-crc32c - 5.15.173-1
kmod-crypto-ctr - 5.15.173-1
kmod-crypto-gcm - 5.15.173-1
kmod-crypto-gf128 - 5.15.173-1
kmod-crypto-ghash - 5.15.173-1
kmod-crypto-hash - 5.15.173-1
kmod-crypto-hmac - 5.15.173-1
kmod-crypto-manager - 5.15.173-1
kmod-crypto-md5 - 5.15.173-1
kmod-crypto-null - 5.15.173-1
kmod-crypto-rng - 5.15.173-1
kmod-crypto-seqiv - 5.15.173-1
kmod-crypto-sha512 - 5.15.173-1
kmod-gpio-button-hotplug - 5.15.173-3
kmod-ip6tables - 5.15.173-1
kmod-ipt-conntrack - 5.15.173-1
kmod-ipt-conntrack-extra - 5.15.173-1
kmod-ipt-core - 5.15.173-1
kmod-ipt-ipopt - 5.15.173-1
kmod-ipt-ipset - 5.15.173-1
kmod-leds-gpio - 5.15.173-1
kmod-lib-crc-ccitt - 5.15.173-1
kmod-lib-crc32c - 5.15.173-1
kmod-mac80211 - 5.15.173+6.1.110-1-1
kmod-mii - 5.15.173-1
kmod-mt76-core - 5.15.173+2024-04-03-1e336a85-1
kmod-mt7603 - 5.15.173+2024-04-03-1e336a85-1
kmod-mt76x02-common - 5.15.173+2024-04-03-1e336a85-1
kmod-mt76x2 - 5.15.173+2024-04-03-1e336a85-1
kmod-mt76x2-common - 5.15.173+2024-04-03-1e336a85-1
kmod-nf-conncount - 5.15.173-1
kmod-nf-conntrack - 5.15.173-1
kmod-nf-conntrack6 - 5.15.173-1
kmod-nf-flow - 5.15.173-1
kmod-nf-ipt - 5.15.173-1
kmod-nf-ipt6 - 5.15.173-1
kmod-nf-log - 5.15.173-1
kmod-nf-log6 - 5.15.173-1
kmod-nf-nat - 5.15.173-1
kmod-nf-reject - 5.15.173-1
kmod-nf-reject6 - 5.15.173-1
kmod-nfnetlink - 5.15.173-1
kmod-nft-compat - 5.15.173-1
kmod-nft-core - 5.15.173-1
kmod-nft-fib - 5.15.173-1
kmod-nft-nat - 5.15.173-1
kmod-nft-offload - 5.15.173-1
kmod-nls-base - 5.15.173-1
kmod-ppp - 5.15.173-1
kmod-pppoe - 5.15.173-1
kmod-pppox - 5.15.173-1
kmod-slhc - 5.15.173-1
kmod-usb-core - 5.15.173-1
kmod-usb-ledtrig-usbport - 5.15.173-1
kmod-usb-net - 5.15.173-1
kmod-usb-net-cdc-ether - 5.15.173-1
kmod-usb-xhci-hcd - 5.15.173-1
kmod-usb-xhci-mtk - 5.15.173-1
kmod-usb3 - 5.15.173-1
libatomic1 - 12.3.0-4
libblobmsg-json20230523 - 2023-05-23-75a3b870-1
libc - 1.2.4-4
libcurl4 - 8.7.1-r1
libgcc1 - 12.3.0-4
libipset13 - 7.17-1
libiptext-nft0 - 1.8.8-3
libiptext0 - 1.8.8-3
libiptext6-0 - 1.8.8-3
libiwinfo-data - 2023-07-01-ca79f641-1
libiwinfo20230701 - 2023-07-01-ca79f641-1
libjson-c5 - 0.16-3
libjson-script20230523 - 2023-05-23-75a3b870-1
liblua5.1.5 - 5.1.5-11
liblucihttp-lua - 2023-03-15-9b5b683f-1
liblucihttp-ucode - 2023-03-15-9b5b683f-1
liblucihttp0 - 2023-03-15-9b5b683f-1
libmbedtls12 - 2.28.9-1
libmnl0 - 1.0.5-1
libncurses6 - 6.4-2
libnftnl11 - 1.2.6-1
libnghttp2-14 - 1.57.0-1
libnl-tiny1 - 2023-07-27-bc92a280-1
libpcre2 - 10.42-1
libpthread - 1.2.4-4
libreadline8 - 8.2-1
librt - 1.2.4-4
libubox20230523 - 2023-05-23-75a3b870-1
libubus-lua - 2023-06-05-f787c97b-1
libubus20230605 - 2023-06-05-f787c97b-1
libuci20130104 - 2023-08-10-5781664d-1
libuclient20201210 - 2023-04-13-007d9454-1
libucode20230711 - 2024-07-11-1a8a0bcf-3
libusb-1.0-0 - 1.0.26-3
libustream-mbedtls20201210 - 2023-02-25-498f6e26-1
libxtables12 - 1.8.8-3
logd - 2022-08-13-4c7b720b-2
lua - 5.1.5-11
luci - git-25.070.50735-0322352
luci-app-attendedsysupgrade - git-25.070.50735-0322352
luci-app-commands - git-25.070.50735-0322352
luci-app-firewall - git-25.070.50735-0322352
luci-app-mwan3 - git-25.070.50735-0322352
luci-app-opkg - git-25.070.50735-0322352
luci-base - git-25.070.50735-0322352
luci-i18n-attendedsysupgrade-pl - git-25.070.50735-0322352
luci-i18n-base-pl - git-25.070.50735-0322352
luci-i18n-commands-pl - git-25.070.50735-0322352
luci-i18n-firewall-pl - git-25.070.50735-0322352
luci-i18n-mwan3-pl - git-25.070.50735-0322352
luci-i18n-opkg-pl - git-25.070.50735-0322352
luci-lib-base - git-25.070.50735-0322352
luci-lib-ip - git-25.070.50735-0322352
luci-lib-jsonc - git-25.070.50735-0322352
luci-lib-nixio - git-25.070.50735-0322352
luci-light - git-25.070.50735-0322352
luci-lua-runtime - git-25.070.50735-0322352
luci-mod-admin-full - git-25.070.50735-0322352
luci-mod-network - git-25.070.50735-0322352
luci-mod-status - git-25.070.50735-0322352
luci-mod-system - git-25.070.50735-0322352
luci-proto-ipv6 - git-25.070.50735-0322352
luci-proto-ppp - git-25.070.50735-0322352
luci-theme-bootstrap - git-25.070.50735-0322352
luci-theme-material - git-25.070.50735-0322352
mtd - 26
mwan3 - 2.11.8-2
netifd - 2024-01-04-c18cc79d-2
nftables-json - 1.0.8-1
openwrt-keyring - 2022-03-25-62471e69-2
opkg - 2022-02-24-d038e5b6-2
ppp - 2.4.9.git-2021-01-04-4
ppp-mod-pppoe - 2.4.9.git-2021-01-04-4
procd - 2023-06-25-2db83655-2
procd-seccomp - 2023-06-25-2db83655-2
procd-ujail - 2023-06-25-2db83655-2
rpcd - 2023-07-01-c07ab2f9-1
rpcd-mod-file - 2023-07-01-c07ab2f9-1
rpcd-mod-iwinfo - 2023-07-01-c07ab2f9-1
rpcd-mod-luci - 20240305-1
rpcd-mod-rpcsys - 2023-07-01-c07ab2f9-1
rpcd-mod-rrdns - 20170710
rpcd-mod-ucode - 2023-07-01-c07ab2f9-1
sed - 4.9-1
sysinfo - 20210313
terminfo - 6.4-2
ubi-utils - 2.1.5-1
uboot-envtools - 2023.04-1
ubox - 2022-08-13-4c7b720b-2
ubus - 2023-06-05-f787c97b-1
ubusd - 2023-06-05-f787c97b-1
uci - 2023-08-10-5781664d-1
uclient-fetch - 2023-04-13-007d9454-1
ucode - 2024-07-11-1a8a0bcf-3
ucode-mod-fs - 2024-07-11-1a8a0bcf-3
ucode-mod-html - 1
ucode-mod-lua - 1
ucode-mod-math - 2024-07-11-1a8a0bcf-3
ucode-mod-nl80211 - 2024-07-11-1a8a0bcf-3
ucode-mod-rtnl - 2024-07-11-1a8a0bcf-3
ucode-mod-ubus - 2024-07-11-1a8a0bcf-3
ucode-mod-uci - 2024-07-11-1a8a0bcf-3
ucode-mod-uloop - 2024-07-11-1a8a0bcf-3
uhttpd - 2023-06-25-34a8a74d-2
uhttpd-mod-ubus - 2023-06-25-34a8a74d-2
urandom-seed - 3
urngd - 2023-11-01-44365eb1-1
usb-modeswitch - 2022-02-24-3c8595a4-1
usign - 2020-05-23-f1f65026-1
wireless-regdb - 2024.10.07-1
wpad-mbedtls - 2023-09-08-e5ccbfc6-8
xtables-nft - 1.8.8-3
root@Router_Glowny_57U:/etc#

usb-modeswitch i ruszyło, poskładałem konfig z plików, już coś ruszyło. sprawdzam resztę.

przy aktualizacji pakietów wywaliło błąd:

Failed to send request: Operation not permitted
Failed to send request: Operation not permitted
Collected errors:
* opkg_download: Failed to download https://downloads.openwrt.org/releases/ … ckages.gz, wget returned 4.
* opkg_download: Check your network settings and connectivity.

* opkg_download: Failed to download https://downloads.openwrt.org/releases/ … ckages.gz, wget returned 4.
* opkg_download: Check your network settings and connectivity.

* opkg_download: Failed to download https://downloads.openwrt.org/releases/ … ckages.gz, wget returned 8.

no nie bardzo taka sama, muszę rzeźbić i naprawiać konfigurację sad. Obraz wynikowy 8,3 MB zamiast 10,5 z ramem też lepiej.
Ale zaginął mi Hilinik LTE, czegoś mi brakuje

ok zmienilem pakiety na lżejsze, pytanie czy konfiguracja w config ma taką samą strukturę, tzn. czy zapisane konfiguracje ruszą na tych pakietach tak wprost?

wlasnie robie obraz minimum do zera, dziękuję za uwagi.

a używam 802.11k i 802.11v - a to siedzi w wpad-openssl załatwia pięknie automatyczne przęłączanie na silniejszy sygnał AP. 3ginfo mam backup na LTE, VIM ok usunę, wolę sam material, najchętniej bym boostrap wywalił tylko jak? Z Curla wywaliłem FTP i proxy.

To na czym mi zależy: powłoka material, mwan3

Może jest jakaś sztuczka jak kompilować żeby ograniczyć zajęcie pamięci

Cezary, walczę ze zrobieniem jak najlżejszego obrazu do moich routerów ASUSA.

Nie mogę zejść poniżej rozmiaru 10 MB.

Mam 128 MB pamięci RAM i kilka ważnych aplikacji, i pracuje w wolnym obszarem 2%.

POtrzebuję system odchudzić.

Miałem Kernel nr 5.15.150 a teraz kompiluje mi się 5.15.173 jakby był większy.

poniżej zawartość obrazu, który daje mi wynikowo 11MB i jest za duży:

Cezary może coś podpowiesz?

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_mt7621=y
CONFIG_TARGET_ramips_mt7621_DEVICE_asus_rt-ac57u-v1=y
CONFIG_IPK_FILES_CHECKSUMS=y
CONFIG_LIBCURL_COOKIES=y
CONFIG_LIBCURL_FILE=y
CONFIG_LIBCURL_HTTP=y
CONFIG_LIBCURL_MBEDTLS=y
CONFIG_LIBCURL_NGHTTP2=y
CONFIG_LIBCURL_NO_SMB="!"
CONFIG_LIBCURL_UNIX_SOCKETS=y
CONFIG_LUCI_LANG_pl=y
CONFIG_OPENSSL_ENGINE=y
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM=y
CONFIG_OPENSSL_WITH_ASM=y
CONFIG_OPENSSL_WITH_CHACHA_POLY1305=y
CONFIG_OPENSSL_WITH_CMS=y
CONFIG_OPENSSL_WITH_DEPRECATED=y
CONFIG_OPENSSL_WITH_ERROR_MESSAGES=y
CONFIG_OPENSSL_WITH_IDEA=y
CONFIG_OPENSSL_WITH_MDC2=y
CONFIG_OPENSSL_WITH_PSK=y
CONFIG_OPENSSL_WITH_SEED=y
CONFIG_OPENSSL_WITH_SRP=y
CONFIG_OPENSSL_WITH_TLS13=y
CONFIG_OPENSSL_WITH_WHIRLPOOL=y
CONFIG_PACKAGE_3ginfo=y
CONFIG_PACKAGE_3ginfo-text=y
CONFIG_PACKAGE_attendedsysupgrade-common=y
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_bridge=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_chat=y
CONFIG_PACKAGE_comgt=y
CONFIG_PACKAGE_coreutils=y
CONFIG_PACKAGE_coreutils-sort=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_gawk=y
CONFIG_PACKAGE_grep=y
CONFIG_PACKAGE_ip-full=y
CONFIG_PACKAGE_ip6tables-nft=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-nft=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-ip6tables=y
CONFIG_PACKAGE_kmod-ipt-conntrack=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-core=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-mii=y
CONFIG_PACKAGE_kmod-nf-conncount=y
CONFIG_PACKAGE_kmod-nf-ipt=y
CONFIG_PACKAGE_kmod-nf-ipt6=y
CONFIG_PACKAGE_kmod-nft-compat=y
CONFIG_PACKAGE_kmod-sched-connmark=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-usb-net=y
CONFIG_PACKAGE_kmod-usb-net-cdc-ether=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libbpf=y
CONFIG_PACKAGE_libcurl=y
CONFIG_PACKAGE_libelf=y
CONFIG_PACKAGE_libiperf3=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libiptext=y
CONFIG_PACKAGE_libiptext-nft=y
CONFIG_PACKAGE_libiptext6=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblucihttp-ucode=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnghttp2=y
CONFIG_PACKAGE_libopenssl=y
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_libopenssl-legacy=y
CONFIG_PACKAGE_libpcre2=y
CONFIG_PACKAGE_libreadline=y
CONFIG_PACKAGE_libubus-lua=y
# CONFIG_PACKAGE_libustream-mbedtls is not set
CONFIG_PACKAGE_libustream-openssl=y
CONFIG_PACKAGE_libxtables=y
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-attendedsysupgrade=y
CONFIG_PACKAGE_luci-app-commands=y
CONFIG_PACKAGE_luci-app-diag-core=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-mwan3=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-compat=y
CONFIG_PACKAGE_luci-i18n-attendedsysupgrade-pl=y
CONFIG_PACKAGE_luci-i18n-base-pl=y
CONFIG_PACKAGE_luci-i18n-commands-pl=y
CONFIG_PACKAGE_luci-i18n-diag-core-pl=y
CONFIG_PACKAGE_luci-i18n-firewall-pl=y
CONFIG_PACKAGE_luci-i18n-mwan3-pl=y
CONFIG_PACKAGE_luci-i18n-opkg-pl=y
CONFIG_PACKAGE_luci-lib-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-light=y
CONFIG_PACKAGE_luci-lua-runtime=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_luci-theme-material=y
CONFIG_PACKAGE_mwan3=y
# CONFIG_PACKAGE_odhcp6c is not set
CONFIG_PACKAGE_odhcpd=y
# CONFIG_PACKAGE_odhcpd-ipv6only is not set
CONFIG_PACKAGE_odhcpd_full_ext_cer_id=0
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_qos-scripts=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_rpcd-mod-ucode=y
CONFIG_PACKAGE_sed=y
CONFIG_PACKAGE_sms-tool=y
CONFIG_PACKAGE_sysinfo=y
CONFIG_PACKAGE_tc-tiny=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_ucert=y
CONFIG_PACKAGE_ucode-mod-html=y
CONFIG_PACKAGE_ucode-mod-lua=y
CONFIG_PACKAGE_ucode-mod-math=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_vim=y
# CONFIG_PACKAGE_wpad-basic-mbedtls is not set
CONFIG_PACKAGE_wpad-openssl=y
CONFIG_PACKAGE_xtables-nft=y
CONFIG_PACKAGE_zlib=y
# CONFIG_LIBCURL_FTP is not set
# CONFIG_LIBCURL_PROXY is not set
# CONFIG_WPA_MBO_SUPPORT is not set

67

(150 odpowiedzi, napisanych Sprzęt / Hardware)

temperatura w tym układzie i tak oscyluje do 50 st. C

68

(150 odpowiedzi, napisanych Sprzęt / Hardware)

Celem było pozbycie sie terkotania wentylatora:

Ostatecznie zrobiłem tak:

1. założyłem radiatory na Soc i pamięci

2. zrobiłem plik rc.local w konfiguracji która wymusza tryb automatyczny ale z ograniczniem obrotów maksymalnych wentylatora do "190" tj. ok. 3400 obr/min i jest idealnie.

plik rc.local - wygląda tak, może się komuś przyda:

root@Zyxel_NSA310:/etc# cat rc.local
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.


   echo "$(date) - rc.local uruchomiony" >> /tmp/rc_local.log

   logger "rc.local: Uruchamianie skryptu PWM"


# Czekaj na załadowanie hwmon
   while [ ! -f /sys/class/hwmon/hwmon0/pwm1_enable ]; do
     sleep 5
   done
   logger "rc.local: hwmon dostępny"

# Przeładowanie sterownika i2c-dev
   logger "rc.local: Przeładowuję sterownik i2c-dev"
   modprobe -r i2c-dev
     sleep 2
   modprobe i2c-dev
   logger "rc.local: Sterownik i2c-dev załadowany ponownie"

# Sprawdzenie, czy plik pwm1_enable istnieje
  if [ -f /sys/class/hwmon/hwmon0/pwm1_enable ]; then
    logger "rc.local: Plik pwm1_enable istnieje, ustawiam wartości"

# Włącz sterowanie Automatyczne PWM - z ograniczeniem maks. obrotów
    echo 2 > /sys/class/hwmon/hwmon0/pwm1_enable
    echo 123 > /sys/class/hwmon/hwmon0/pwm1_auto_channels
    echo 190 > /sys/class/hwmon/hwmon0/pwm1

# Ustaw temperatury sterowania (jeśli obsługiwane)
    echo 30000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_min
    echo 50000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_max
    logger "rc.local: Ustawienia PWM zapisane"
  else
    logger "rc.local: BŁĄD - Plik pwm1_enable NIE istnieje!"
  fi

  exit 0




Ważna Uwaga:
skrypt ma kontrolne logowanie oraz przeładowuje sterownik.

69

(150 odpowiedzi, napisanych Sprzęt / Hardware)

założyłem radiatory na CPU i pamięci, czekam aż klej wyschnie.

A wentylator ustawię ręcznie na 1800 obrotów / minute i taki układ potestuje.

70

(150 odpowiedzi, napisanych Sprzęt / Hardware)

Dobra okazało się, że ChatGPT mnie wprowadził w błąd. Ale zrobiłem taki sprytny rc.local. Może się komuś przyda:


1 # Put your custom commands here that should be executed once
2 # the system init finished. By default this file does nothing.
3
4
5    echo "$(date) - rc.local uruchomiony" >> /tmp/rc_local.log
6
7    logger "rc.local: Uruchamianie skryptu PWM"
8
9
10 # Czekaj na załadowanie hwmon
11    while [ ! -f /sys/class/hwmon/hwmon0/pwm1_enable ]; do
12      sleep 5
13    done
14    logger "rc.local: hwmon dostępny"
15
16 # Przeładowanie sterownika i2c-dev
17    logger "rc.local: Przeładowuję sterownik i2c-dev"
18    modprobe -r i2c-dev
19      sleep 2
20    modprobe i2c-dev
21    logger "rc.local: Sterownik i2c-dev załadowany ponownie"
22
23 # Sprawdzenie, czy plik pwm1_enable istnieje
24   if [ -f /sys/class/hwmon/hwmon0/pwm1_enable ]; then
25     logger "rc.local: Plik pwm1_enable istnieje, ustawiam wartości"
26
27 # Włącz sterowanie PWM
28     echo 1 > /sys/class/hwmon/hwmon0/pwm1_enable
29     echo 40 > /sys/class/hwmon/hwmon0/pwm1
30
31 # Ustaw temperatury sterowania (jeśli obsługiwane)
32     echo 30000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_min
33     echo 50000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_max
34     logger "rc.local: Ustawienia PWM zapisane"
35   else
36     logger "rc.local: BŁĄD - Plik pwm1_enable NIE istnieje!"
37   fi
38
39   exit 0



i teraz jak to działa:

root@Zyxel_NSA310:~# logread | grep rc.local
Mon Mar 10 10:29:29 2025 user.notice root: rc.local: Uruchamianie skryptu PWM
Mon Mar 10 10:29:29 2025 user.notice root: rc.local: hwmon dostępny
Mon Mar 10 10:29:29 2025 user.notice root: rc.local: Przeładowuję sterownik i2c-dev
Mon Mar 10 10:29:31 2025 user.notice root: rc.local: Sterownik i2c-dev załadowany ponownie
Mon Mar 10 10:29:31 2025 user.notice root: rc.local: Plik pwm1_enable istnieje, ustawiam wartości
Mon Mar 10 10:29:31 2025 user.notice root: rc.local: Ustawienia PWM zapisane
root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/pwm1_enable
2
root@Zyxel_NSA310:~# ^C

root@Zyxel_NSA310:~# sensors
lm85-i2c-0-2e
Adapter: mv64xxx_i2c adapter
in0:           1.78 V  (min =  +0.00 V, max =  +3.32 V)
in1:           1.07 V  (min =  +0.00 V, max =  +2.99 V)
in2:           3.20 V  (min =  +0.00 V, max =  +4.38 V)
in3:           5.05 V  (min =  +0.00 V, max =  +6.64 V)
in4:          12.19 V  (min =  +0.00 V, max = +15.94 V)
fan1:        3848 RPM  (min =    0 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
temp1:        +38.0°C  (low  = -127.0°C, high = +127.0°C)
temp2:        +42.0°C  (low  = -127.0°C, high = +127.0°C)
temp3:        +45.0°C  (low  = -127.0°C, high = +127.0°C)
cpu0_vid:    +0.000 V


root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/pwm1_enable
2
root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/pwm1
204
root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/temp1_auto_temp_max
50000
root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/temp1_auto_temp_min
30000
root@Zyxel_NSA310:~# sensors
lm85-i2c-0-2e
Adapter: mv64xxx_i2c adapter
in0:           1.78 V  (min =  +0.00 V, max =  +3.32 V)
in1:           1.08 V  (min =  +0.00 V, max =  +2.99 V)
in2:           3.20 V  (min =  +0.00 V, max =  +4.38 V)
in3:           5.05 V  (min =  +0.00 V, max =  +6.64 V)
in4:          12.19 V  (min =  +0.00 V, max = +15.94 V)
fan1:        3805 RPM  (min =    0 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
temp1:        +38.0°C  (low  = -127.0°C, high = +127.0°C)
temp2:        +42.0°C  (low  = -127.0°C, high = +127.0°C)
temp3:        +44.0°C  (low  = -127.0°C, high = +127.0°C)
cpu0_vid:    +0.000 V

71

(150 odpowiedzi, napisanych Sprzęt / Hardware)

nadal nie działa, po resecie jest tak:

root@Zyxel_NSA310:~# sensors
lm85-i2c-0-2e
Adapter: mv64xxx_i2c adapter
in0:           1.78 V  (min =  +0.00 V, max =  +3.32 V)
in1:           1.07 V  (min =  +0.00 V, max =  +2.99 V)
in2:           3.20 V  (min =  +0.00 V, max =  +4.38 V)
in3:           5.05 V  (min =  +0.00 V, max =  +6.64 V)
in4:          12.19 V  (min =  +0.00 V, max = +15.94 V)
fan1:        3508 RPM  (min =    0 RPM)
fan2:           0 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
temp1:        +36.0°C  (low  = -127.0°C, high = +127.0°C)
temp2:        +40.0°C  (low  = -127.0°C, high = +127.0°C)
temp3:        +43.0°C  (low  = -127.0°C, high = +127.0°C)
cpu0_vid:    +0.000 V

root@Zyxel_NSA310:~# cat /sys/class/hwmon/hwmon0/pwm1_enable
2
root@Zyxel_NSA310:~#

2 oznacza że PWM nie działa, jak go ręczenie włączę to ma wartość 1 i obroty spadają

72

(150 odpowiedzi, napisanych Sprzęt / Hardware)

Natrafiłem na problem, nie startuje automatycznie sterowanie pwm1.

zrobiłem skrypt /etc/rc.local:

1 # Put your custom commands here that should be executed once
2 # the system init finished. By default this file does nothing.
3
4 # Czekaj na załadowanie hwmon
5
6 while [ ! -f /sys/class/hwmon/hwmon0/pwm1_enable ]; do
7     sleep 5
8 done
9
10 # Włącz sterowanie PWM
11 echo 1 > /sys/class/hwmon/hwmon0/pwm1_enable
12 echo 40 > /sys/class/hwmon/hwmon0/pwm1
13
14 # Ustaw temperatury sterowania (jeśli obsługiwane)
15 echo 30000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_min
16 echo 50000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_max
17
18
19 exit 0

Ale nie uruchamia się sterowanie obrotami, ale jak wywołam /etc/rc.lokal ręcznie to rusza.

Cezary możesz masz jakiś pomysł czemu to nie chcę ruszać automatycznie.

73

(150 odpowiedzi, napisanych Sprzęt / Hardware)

Niezłe narzędzie, myślę że może być czasami przydatne

74

(150 odpowiedzi, napisanych Sprzęt / Hardware)

I jeszcze:

Zapytałem:
jak włączyć automatyczne sterowanie pwm1

ChatGPT:

Jeśli chcesz włączyć automatyczne sterowanie PWM1 w Zyxel NSA310 z OpenWRT, musisz sprawdzić, czy system obsługuje sterowanie wentylatorem i czy odpowiednie pliki w /sys/class/hwmon/ istnieją.
1. Sprawdzenie dostępnych sensorów i PWM

Najpierw sprawdź, czy Twój system ma czujniki temperatury i obsługuje sterowanie wentylatorem:

ls -l /sys/class/hwmon/

Jeśli widzisz katalog hwmon0, sprawdź, co to za sprzęt:

cat /sys/class/hwmon/hwmon0/name

Jeśli masz więcej katalogów (hwmon1, hwmon2), sprawdź wszystkie.

Potem sprawdź, czy jest obsługa PWM:

ls -l /sys/class/hwmon/hwmon0/ | grep pwm

Jeśli są pliki pwm1, pwm1_enable, to znaczy, że system wspiera sterowanie wentylatorem.
2. Włączenie automatycznego sterowania PWM

Jeśli masz plik pwm1_enable, spróbuj włączyć automatyczne sterowanie:

echo 1 > /sys/class/hwmon/hwmon0/pwm1_enable

Sprawdź, czy działa:

cat /sys/class/hwmon/hwmon0/pwm1_enable

Jeśli wynik to 1, oznacza, że wentylator powinien teraz działać automatycznie.
3. Ustawienie temperatur dla wentylatora

Jeśli system obsługuje sterowanie temperaturą, ustaw minimalne i maksymalne temperatury dla czujników:

echo 30000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_min
echo 50000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_max

Sprawdź dostępne czujniki:

ls /sys/class/hwmon/hwmon0/ | grep temp

Dostosuj wartości według nazw plików (temp2_auto_temp_min, temp3_auto_temp_min, itd.).
4. Zapisanie ustawień na stałe

Zmiany w /sys/class/hwmon/ znikają po restarcie, więc dodaj je do /etc/rc.local:

echo "echo 1 > /sys/class/hwmon/hwmon0/pwm1_enable" >> /etc/rc.local
echo "echo 30000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_min" >> /etc/rc.local
echo "echo 50000 > /sys/class/hwmon/hwmon0/temp1_auto_temp_max" >> /etc/rc.local

Zapisz plik i uruchom ponownie OpenWRT:

reboot

Co jeśli pwm1_enable nie istnieje?

Jeśli plik pwm1_enable nie istnieje, sterownik może nie obsługiwać automatycznego sterowania. Wtedy trzeba:

    Sprawdzić, czy masz odpowiedni moduł jądra (np. pwm_fan).

lsmod | grep pwm

Jeśli nie ma pwm_fan, spróbuj załadować moduł:

modprobe pwm_fan

75

(150 odpowiedzi, napisanych Sprzęt / Hardware)

zatrudniłem ChatGPT:

   zyxel,nsa310b)
40                 path_to_hwmon='/sys/devices/platform/ocp@f1000000/f1011000.i2c/i2c-0/0-002e/hwmon/hwmon0'
41                 # use the max. value of (temp1) OR (temp2) OR (temp3) as an input
42                 # for the PWM of the cooling fan
43                 echo 123 > "$path_to_hwmon/pwm1_auto_channels"
44                 # Temperature sensor #1 placed on mainboard
45                 echo 30000 > "$path_to_hwmon/temp1_auto_temp_min"
46                 echo 49600 > "$path_to_hwmon/temp1_auto_temp_max"
47                 # Temperature sensor #2 placed on mainboard
48                 # range: 0 to 127000 in steps of 1000 [millicelsius]
49                 echo 30000 > "$path_to_hwmon/temp2_auto_temp_min"
50                 # range: 0 to 127000 in steps of ???? [millicelsius]
51                 echo 49600 > "$path_to_hwmon/temp2_auto_temp_max"
52                 # Temperature sensor #3 placed close to a chipset
53                 # range: 0 to 60000 in steps of 1000 [millicelsius]
54                 echo 23000 > "$path_to_hwmon/temp3_auto_temp_min"
55                 # pre-defined steps: 103000, 122000, 143300, 170000 in [millicelsius]
56                 echo 103000 > "$path_to_hwmon/temp3_auto_temp_max"
57                 ;;
58         esac
ChatGPT powiedział:

To fragment skryptu konfiguracyjnego dla chłodzenia w serwerze NAS Zyxel NSA310B. Wygląda na to, że konfiguruje automatyczne sterowanie wentylatorem na podstawie odczytów temperatury z kilku czujników.
Co robi ten kod?

    Określa ścieżkę do interfejsu sprzętowego (hwmon), gdzie znajdują się dane z czujników temperatury.
    Ustawia tryb sterowania wentylatorem – echo 123 > "$path_to_hwmon/pwm1_auto_channels", co oznacza, że wentylator będzie sterowany na podstawie najwyższej temperatury spośród trzech czujników (temp1, temp2, temp3).
    Konfiguruje zakresy temperatur:
        temp1 (czujnik na płycie głównej):
            Minimalna temperatura dla działania wentylatora: 30°C (30000 millicelsjuszy)
            Maksymalna temperatura: 49,6°C (49600 millicelsjuszy)
        temp2 (drugi czujnik na płycie głównej):
            Zakres taki sam jak temp1.
        temp3 (czujnik blisko chipsetu):
            Minimalna temperatura: 23°C (23000 millicelsjuszy)
            Maksymalna temperatura: 103°C (103000 millicelsjuszy) (czyli pewnie graniczna wartość krytyczna dla układu).

Co można poprawić lub dostosować?

    Sprawdzenie faktycznych zakresów temperatur chipsetu – 103°C to bardzo wysoka wartość.
    Dostosowanie temperatur minimalnych – jeśli wentylator działa głośno, można podnieść wartości *_auto_temp_min.
    Dodanie logowania – np. zapis aktualnych temperatur i ustawień do pliku logów.

Może komuś cos to pomoże: