summaryrefslogtreecommitdiff
path: root/init/src/kmods/load.rs
diff options
context:
space:
mode:
authornamilsk <namilsk@namilsk.tech>2026-01-09 19:13:16 +0300
committernamilsk <namilsk@namilsk.tech>2026-01-09 19:13:16 +0300
commitbca3ae435452b22a08eb66b7d3ab98d840a87b94 (patch)
tree5048a0afa1806bc8213f0b4100a91b10f949cdf2 /init/src/kmods/load.rs
parent3a5c327a546ff1838e4dc32b8b67a056c1b95f3d (diff)
Implemetned kernel modules, locales and timezones settings.
Diffstat (limited to 'init/src/kmods/load.rs')
-rw-r--r--init/src/kmods/load.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/init/src/kmods/load.rs b/init/src/kmods/load.rs
new file mode 100644
index 0000000..374ce36
--- /dev/null
+++ b/init/src/kmods/load.rs
@@ -0,0 +1,24 @@
+use liblmod::Selection;
+use liblmod::modprobe;
+use std::fs;
+
+fn parse_modules() -> Result<Vec<String>, Box<dyn std::error::Error>> {
+ let raw_mods = fs::read_to_string("/etc/modules")?
+ .split(',')
+ .map(|s| s.trim().to_string())
+ .collect();
+
+ Ok(raw_mods)
+}
+
+pub fn load_modules() -> Result<(), Box<dyn std::error::Error>> {
+ let modules = parse_modules()?;
+
+ for i in 0..modules.len() {
+ modprobe(modules[i].to_string(), "".to_string(), Selection::Current)?;
+ }
+
+ Ok(())
+}
+
+// TODO: Think, is `rmmod` needed?