fix: 初始化时完整应用 USB 运行时配置,避免遗漏 MSD 功能

This commit is contained in:
mofeng-git
2026-07-24 11:02:14 +08:00
parent 4cd622ff07
commit 32d8a62fec

View File

@@ -65,6 +65,8 @@ pub async fn setup_init(
)); ));
} }
let old_config = state.config.get();
// Create single system user // Create single system user
state state
.users .users
@@ -140,18 +142,10 @@ pub async fn setup_init(
}) })
.await?; .await?;
// Get updated config for HID reload // Apply the complete USB runtime configuration, including the MSD controller.
let new_config = state.config.get(); let new_config = state.config.get();
if let Err(e) = config::apply::apply_usb_config(&state, &old_config, &new_config).await {
#[cfg(unix)] tracing::warn!("Failed to apply USB config during setup: {}", e);
{
if let Err(e) = state
.otg_service
.apply_config(&new_config.hid, &new_config.msd, &new_config.otg_network)
.await
{
tracing::warn!("Failed to apply OTG config during setup: {}", e);
}
} }
tracing::info!( tracing::info!(
@@ -160,25 +154,6 @@ pub async fn setup_init(
new_config.rustdesk.enabled new_config.rustdesk.enabled
); );
// Initialize HID backend with new config
let new_hid_backend = match new_config.hid.backend {
crate::config::HidBackend::Otg => crate::hid::HidBackendType::Otg,
crate::config::HidBackend::Ch9329 => crate::hid::HidBackendType::Ch9329 {
port: new_config.hid.ch9329_port.clone(),
baud_rate: new_config.hid.ch9329_baudrate,
hybrid_mouse: new_config.hid.ch9329_hybrid_mouse,
},
crate::config::HidBackend::None => crate::hid::HidBackendType::None,
};
// Reload HID backend
if let Err(e) = state.hid.reload(new_hid_backend).await {
tracing::warn!("Failed to initialize HID backend during setup: {}", e);
// Don't fail setup, just warn
} else {
tracing::info!("HID backend initialized: {:?}", new_config.hid.backend);
}
// Start extensions if enabled // Start extensions if enabled
if new_config.extensions.ttyd.enabled { if new_config.extensions.ttyd.enabled {
if let Err(e) = state if let Err(e) = state