contributing - FarelRA/CSMWrap GitHub Wiki
We welcome contributions to CSMWrap! Whether it's reporting bugs, suggesting features, or submitting code changes, your help is appreciated.
If you encounter a bug, please open an issue on the GitHub repository. To help us diagnose the problem, please include as much information as possible:
- CSMWrap Version: The specific version or Git commit hash you are using.
-
Hardware Details:
- Motherboard model and manufacturer.
- CPU model.
- GPU model.
- UEFI Firmware Version:
-
Relevant UEFI Settings:
- Secure Boot (should be disabled).
- Above 4G Decoding / Resizable BAR (should be disabled).
- Native CSM Support setting (enabled/disabled).
- Legacy OS: The operating system you are trying to boot (e.g., FreeDOS, Windows XP 32-bit).
- Steps to Reproduce: A clear, step-by-step description of how to trigger the bug.
- Observed Behavior: What actually happened.
- Expected Behavior: What you expected to happen.
- Screenshots/Logs: If CSMWrap prints any messages or if you can capture serial logs (especially from QEMU), please include them.
If you have an idea for a new feature or an improvement to an existing one, feel free to open an issue to discuss it. Describe the enhancement and why you think it would be beneficial.
- Fork the Repository: Create your own fork of the CSMWrap repository on GitHub.
-
Create a Branch: Create a new branch in your fork for your changes (e.g.,
git checkout -b feature/my-new-feature
orgit checkout -b bugfix/fix-that-thing
). -
Make Your Changes:
- Write clear, concise, and well-commented code.
- Follow the existing coding style as much as possible (though not strictly enforced yet, aim for consistency).
- Ensure your changes build correctly for both
ia32
andx86_64
architectures:make ARCH=ia32 make ARCH=x86_64
- Test your changes thoroughly, preferably on both QEMU and real hardware if possible.
- Commit Your Changes: Write clear and descriptive commit messages.
- Push to Your Fork: Push your branch to your forked repository on GitHub.
-
Open a Pull Request: Go to the original CSMWrap repository and open a pull request from your branch to the
main
branch (or the relevant development branch).- Provide a clear title and description for your pull request, explaining the purpose of your changes.
- Link to any relevant issues.
- The project uses a Makefile for building. See Building from Source for details on setting up the build environment.
- Key submodules include Nyu-EFI (for EFI headers and linker script) and uACPI (for ACPI table handling). SeaBIOS is also a critical submodule for providing the CSM binaries.
- Improving hardware compatibility (e.g., adding workarounds for more chipsets in
unlock_region.c
). - Enhancing VBIOS compatibility or video initialization.
- Improving ACPI/SMBIOS handling.
- Fixing bugs found by users.
- Testing on a wider range of hardware and reporting results.
- Documentation improvements.
Thank you for considering contributing to CSMWrap!