

All stainless steels are alloys.
All stainless steels are alloys.
Turning your fridge off for an hour will not cause your food to spoil. You probably won’t even notice a difference since they are well insulated. Turning off the compressor during the hour where most of everyone gets home and turns on their AC can have a noticeable effect on grid stability if done widely enough. I do this with a smart switch connected to my HA server instead of using cloud based connections, but the effect is the same and I’ve never had my food spoil because of it.
Nothing is written in stone…
Udev is the best way to add persistent values for pretty much everything in the sysfs. That being said, it can be a bit obtuse when first learning about it. Here are some tips
udevadm test /sys/path/to/device
will tell you if your rule is running and what the state is at each step. You’ll want to look at this before you start so you can see when your rule should runudevadm info /sys/path/to/device
will tell you what the PROPERTIES of a device are. These are usually set by hwdb files to inform userspace programs about the details of a device.udevadm info /sys/path/to/device --attribute-walk
will tell you about the ATTRIBUTES of a device and all it’s parent devices. These correspond to the character file endpoints you are setting currently. You’ll want to use these to write your match rules and set the values.udevadm monitor
can be used to watch for udev events to let you know if you should match on add, change, and/or remove.Udev rules work as a cascading match system and they run in numerical and directory order. E.g.
/usr/lib/udev/rules/60-keyboard.rules
will run before/etc/udev/rules.d/62-keyboard.rules
but after/etc/udev/rules.d/60-keyboard.rules
For user defined rules you will want to put them in
/etc/udev/rules.d/
and keep in mind any state that needs to be set before or after your rule.Matching happens with
==
or!=
, setting attributes is done with=
,+=
,-=
, or:=
. := is really cool because you can use that to block changes from downstream rules. E.g.MODE:="666"
will make the matched attribute r/w from unprivileged users, even if a later rule tries to set 400.Udev rules will run in order in a file, but each rule must be a single line. Each attribute will also be set in order of the rule if setting multiple attributes in a rule. Multiple rules can be useful if you need to set attributes on multiple levels of a device, or in sibling directories.
For a complete breakdown of everything, see the udev manual: https://man.archlinux.org/man/udev.7
I also have a guide on one of my (currently out of tree) drivers that has some examples. https://github.com/ShadowBlip/ayn-platform?tab=readme-ov-file#changing-startup-defaults
Let me know if you have questions.