매번 sysfs 매개변수 파일을 작성하고 재부팅해야 합니다. initramfs 중에 이러한 설정을 초기에 자동으로 설정할 수 있는 방법이 있는지 궁금합니다. 이를 수행하는 정식 방법이 있습니까?
나는 lsinitramfs를 사용하여 해당 sysfs를 담당하는 모듈을 확인합니다. 그들은 존재합니다. 예: asus-wmi.ko
, 변경하려는 경우 /sys/class/power_supply/BAT0/charge_control_end_threshold
.
노트
- 이 모든 일은 /가 마운트되기 전에 발생해야 하므로 /disk보다는 initramfs에 직접 files/config를 추가해야 할 가능성이 높습니다.
- 만약에 그런 일이 일어났더라면 가장 좋았을 텐데
scripts/local-top/cryptroot
답변1
언급한 특정 클래스는 커널 모듈에 의해 추가되었으므로 모듈이 로드될 때까지 수정이 발생하지 않습니다.
일부 udev 규칙을 선택할 수 있습니다/etc/udev/rules.d
디렉토리 에 추가하려면 :
ACTION=="add", KERNEL=="asus-nb-wmi", RUN+="/bin/bash -c 'echo [TheValueOfYourchoice] > /sys/class/power_supply/BAT?/charge_control_end_threshold'"
간호: 당신이 언급한아수스 wmi기준 치수. 위의 규칙은 다음에 적용됩니다.ASUS-NB-WMI기준 치수. 아마도 적응해야 할 것입니다.
또는 systemd 아래에 있는 경우 systemd 서비스를 만듭니다.디렉토리 아래 /etc/systemd/system
:
[Unit]
Description=Set the battery charge end threshold
After=multi-user.target
StartLimitBurst=0
[Service]
Type=oneshot
Restart=on-failure
ExecStart=/bin/bash -c 'echo [TheValueOfYourChoice] > /sys/class/power_supply/BAT0/charge_control_end_threshold'
[Install]
WantedBy=multi-user.target
이미 systemd 서비스에 익숙하다면 Restart=on-failure and StartLimitBurst=0
asus 모듈이 로드되기 전에 서비스가 시작되는 상황을 해결하는 데 필요한 트릭을 알 수 있을 것입니다( ).
물론 두 경우 모두 변경됩니다.[당신이 선택한 가치]유효한 숫자에 대해.
답변2
그게 다야sysfsutils입니다.
전부는 아니더라도 대부분의 Linux 배포판에 대해 패키지되어야 합니다. 데비안 패키지 설명은 다음과 같습니다:
Package: sysfsutils
Version: 2.1.1-3
Installed-Size: 62
Maintainer: Guillem Jover <[email protected]>
Architecture: amd64
Depends: libc6 (>= 2.34), libsysfs2 (>= 2.1.1), lsb-base, pci.ids
Pre-Depends: init-system-helpers (>= 1.54~)
Description-en: sysfs query tool and boot-time setup
The sysfs is a virtual file system found in Linux kernels 2.5+ that provides
a tree of system devices. This package provides the program 'systool' to
query it, which can be used to list devices by bus, class, and topology.
.
In addition this package ships a configuration file /etc/sysfs.conf which
allows one to conveniently set sysfs attributes at system bootup (via an
init script).
Description-md5: 07811d91c926da426d94db98052434b1
Multi-Arch: foreign
Homepage: https://github.com/linux-ras/sysfsutils
그건 그렇고, 또한 참조 sysctl
하십시오sysctl.conf
프로세스의 커널 매개변수 구성과 유사한 기능을 제공합니다 /proc/sys/
. Linux에서 ps
, pgrep
, , pkill
등과 함께 제공되는 패키지이므로 거의 확실하게 이 패키지가 설치되어 있습니다.top
/etc/modules
마지막으로 커널 모듈을 로드할 때 특정 모듈 옵션을 설정해야 하는 경우 및 .conf 파일을 사용할 수 있습니다 /etc/modprobe.d/
. 예를 들어 다음이 있습니다 /etc/modprobe.d/zfs.conf
.
# use minimum 8GB and maxmum of 16GB RAM for ZFS ARC
options zfs zfs_arc_min=8589934592 zfs_arc_max=17179869184