再起動後もsysfsパラメータの値を保持する方法は?

再起動後もsysfsパラメータの値を保持する方法は?

毎回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'"

看護:あなたが言及したAsus 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=0asusモジュールがロードされる前にサービスが開始される状況を解決するために必要なトリックを知ることができます()。

もちろん、どちらの場合も変更されます。[あなたが選んだ価値]有効な数字について。

おすすめ記事