-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make usb_modeswitch include directory writable #3800
Conversation
The /etc/usb_modeswitch.d is present and empty but it can't be written to allow user modification. Bind-mount it like other /etc folders to make it possible to adjust usb_modeswitch config. Fixes #3785
📝 WalkthroughWalkthroughA new systemd mount unit file Changes
Sequence DiagramsequenceDiagram
participant Boot Process
participant mnt-overlay.mount
participant etc-usb_modeswitch.d.mount
participant hassos-config.service
Boot Process->>mnt-overlay.mount: Mount overlay filesystem
mnt-overlay.mount-->>etc-usb_modeswitch.d.mount: Trigger USB modeswitch mount
etc-usb_modeswitch.d.mount->>etc-usb_modeswitch.d.mount: Bind mount /mnt/overlay/etc/usb_modeswitch.d to /etc/usb_modeswitch.d
etc-usb_modeswitch.d.mount-->>hassos-config.service: Prepare for configuration service
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-usb_modeswitch.d.mount (1)
1-14
: Consider enhancing documentation and default configuration.While the mount unit implementation is solid, consider these enhancements:
- Add documentation explaining the purpose and usage of the persistent USB modeswitch configuration directory
- Consider providing default configuration files or templates to help users get started
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-usb_modeswitch.d.mount
(1 hunks)
🔇 Additional comments (3)
buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-usb_modeswitch.d.mount (3)
1-6
: LGTM! Unit dependencies are well-defined.The unit section correctly establishes the required dependencies and ordering:
- Ensures the overlay mount is available (
Requires=mnt-overlay.mount
)- Executes after the overlay mount (
After=mnt-overlay.mount
)- Completes before the config service (
Before=hassos-config.service
)
13-14
: LGTM! Appropriate target selection.The mount unit is correctly integrated into the
hassos-bind.target
, which is the standard target for bind mounts in the system.
7-12
: Verify source directory creation and permissions.The mount configuration looks correct, but we should verify:
- That the source directory is created during system initialization
- That both source and target directories have appropriate permissions
Let's verify the directory setup:
✅ Verification successful
Mount configuration is correctly implemented
The mount unit follows the system's standard overlay pattern and has proper dependencies:
- Base directory provided by system package
- Depends on overlay partition mount
- Uses correct bind mount option
- Follows same pattern as other system directories
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for directory creation in overlay configuration # Check if the source directory is created in any buildroot or overlay scripts rg -l "usb_modeswitch.d" buildroot-external/ # Look for any related permission settings rg -l "755.*usb_modeswitch" buildroot-external/Length of output: 178
Script:
#!/bin/bash # Check rootfs-overlay structure and package configs fd usb_modeswitch buildroot-external/rootfs-overlay/ fd usb_modeswitch buildroot-external/package/ fd usb_modeswitch.d buildroot-external/rootfs-overlay/ # Check systemd unit dependencies grep -r "Requires\|After" buildroot-external/rootfs-overlay/usr/lib/systemd/system/etc-usb_modeswitch.d.mountLength of output: 490
Script:
#!/bin/bash # Check for base package configuration and overlay mount rg -l "BR2_PACKAGE.*usb.?modeswitch" buildroot-external/ rg -l "mnt-overlay.mount" buildroot-external/ # Check overlay configuration cat buildroot-external/rootfs-overlay/usr/lib/systemd/system/mnt-overlay.mountLength of output: 1931
The /etc/usb_modeswitch.d is present and empty but it can't be written to allow user modification. Bind-mount it like other /etc folders to make it possible to adjust usb_modeswitch config.
Fixes #3785
Summary by CodeRabbit