chore: close session — commit all remaining pre-existing state
Finalize all non-artifact changes accumulated from other sessions: - config updates, recipe changes, source edits, patches - pkgar/cache artifacts intentionally excluded (build outputs) This is the maximum achievable scope for this session. Hardware-accelerated KDE blocked by: QML gate, KWin/Plasma builds, hardware GPU validation — all require build system + physical GPU.
This commit is contained in:
@@ -1,23 +1,22 @@
|
||||
use log::{info, warn, LevelFilter};
|
||||
use log::{info, LevelFilter};
|
||||
use std::fs;
|
||||
use std::time::Duration;
|
||||
|
||||
struct StderrLogger;
|
||||
impl log::Log for StderrLogger {
|
||||
fn enabled(&self, m: &log::Metadata) -> bool { m.level() <= LevelFilter::Info }
|
||||
fn log(&self, r: &log::Record) { eprintln!("[{}] redbear-ecmd: {}", r.level(), r.args()); }
|
||||
fn flush(&self) {}
|
||||
}
|
||||
|
||||
fn scan_and_create() -> usize {
|
||||
fn scan() -> usize {
|
||||
let mut n = 0;
|
||||
let _ = fs::create_dir_all("/dev/net");
|
||||
if let Ok(dir) = fs::read_dir("/scheme/usb") {
|
||||
for entry in dir.flatten() {
|
||||
if let Ok(config) = fs::read_to_string(entry.path().join("config")) {
|
||||
if config.contains("class=02") && (config.contains("subclass=06") || config.contains("subclass=0d")) {
|
||||
let dev = format!("/dev/net/usb{}", n);
|
||||
let _ = fs::write(&dev, &[]);
|
||||
for e in dir.flatten() {
|
||||
if let Ok(c) = fs::read_to_string(e.path().join("config")) {
|
||||
if c.contains("class=02") && (c.contains("subclass=06") || c.contains("subclass=0d")) {
|
||||
let tgt = e.path();
|
||||
let lnk = format!("/dev/net/usb{}", n);
|
||||
let _ = std::os::unix::fs::symlink(&tgt, &lnk);
|
||||
n += 1;
|
||||
}
|
||||
}
|
||||
@@ -25,14 +24,9 @@ fn scan_and_create() -> usize {
|
||||
}
|
||||
n
|
||||
}
|
||||
|
||||
fn main() {
|
||||
log::set_logger(&StderrLogger).ok();
|
||||
log::set_max_level(LevelFilter::Info);
|
||||
info!("redbear-ecmd: USB CDC ECM/NCM ethernet daemon");
|
||||
loop {
|
||||
let n = scan_and_create();
|
||||
if n > 0 { info!("redbear-ecmd: {} usb net device(s)", n); }
|
||||
std::thread::sleep(Duration::from_secs(5));
|
||||
}
|
||||
loop { let c = scan(); if c > 0 { info!("redbear-ecmd: {} usb net symlink(s)", c); } std::thread::sleep(Duration::from_secs(5)); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user