Initial release v1.0.0
Add GPIO-based volume button driver for Lenovo IdeaPad Flex 5i Chromebook Gen 8 Features: - Volume button detection via GPIO polling - Key repeat with configurable timings - Systemd service integration - Professional documentation
This commit is contained in:
parent
bc9d6f8639
commit
5a8f103be3
175
CREDITS.md
Normal file
175
CREDITS.md
Normal file
@ -0,0 +1,175 @@
|
||||
# Credits and Acknowledgments
|
||||
|
||||
This project would not exist without the work of numerous individuals and communities in the open source ecosystem.
|
||||
|
||||
## Primary Author
|
||||
|
||||
**Muyue** - Original implementation and maintenance
|
||||
|
||||
## Firmware and Hardware Support
|
||||
|
||||
**MrChromebox (Matt DeVillier)**
|
||||
- Custom UEFI firmware for Chromebooks
|
||||
- Enabling Linux compatibility on ChromeOS hardware
|
||||
- Website: https://mrchromebox.tech/
|
||||
- GitHub: https://github.com/MrChromebox
|
||||
|
||||
**Google ChromiumOS Team**
|
||||
- Embedded Controller (EC) firmware
|
||||
- GPIO infrastructure and documentation
|
||||
- Coreboot integration
|
||||
- Project: https://www.chromium.org/chromium-os/
|
||||
|
||||
**Coreboot Project**
|
||||
- Open source firmware replacement
|
||||
- ACPI table implementation
|
||||
- Hardware initialization
|
||||
- Project: https://www.coreboot.org/
|
||||
|
||||
## Linux Kernel Contributors
|
||||
|
||||
**Linux GPIO Subsystem Maintainers**
|
||||
- Bartosz Golaszewski - libgpiod maintainer
|
||||
- Linus Walleij - GPIO subsystem maintainer
|
||||
- Kent Gibson - GPIO userspace API v2
|
||||
- All contributors to drivers/gpio/
|
||||
|
||||
**Linux Input Subsystem**
|
||||
- Dmitry Torokhov - Input subsystem maintainer
|
||||
- All contributors to drivers/input/
|
||||
|
||||
**Intel Platform Drivers**
|
||||
- Contributors to intel-vbtn driver
|
||||
- ChromeOS EC kernel driver developers
|
||||
|
||||
## Software Libraries
|
||||
|
||||
**libgpiod Project**
|
||||
- Bartosz Golaszewski - Lead developer
|
||||
- Project: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
|
||||
- Providing clean userspace GPIO access
|
||||
|
||||
**python-evdev**
|
||||
- Georgi Valkov - Original author and maintainer
|
||||
- Project: https://github.com/gvalkov/python-evdev
|
||||
- Python bindings for Linux input subsystem
|
||||
|
||||
**Python Core Team**
|
||||
- Guido van Rossum - Python creator
|
||||
- Python Software Foundation
|
||||
- All Python core developers and contributors
|
||||
|
||||
## Linux Distributions
|
||||
|
||||
**Arch Linux**
|
||||
- Package maintainers for python-evdev and libgpiod
|
||||
- Documentation and wiki contributors
|
||||
- Community support
|
||||
|
||||
**All Linux Distributions**
|
||||
- Debian, Ubuntu, Fedora, Gentoo, and others
|
||||
- For packaging and maintaining open source software
|
||||
|
||||
## Hardware Vendors
|
||||
|
||||
**Lenovo**
|
||||
- Manufacturing IdeaPad Flex 5i Chromebook Gen 8
|
||||
- Hardware design and engineering
|
||||
|
||||
**Intel**
|
||||
- Core i3-1215U processor design
|
||||
- Platform specifications and documentation
|
||||
- Open source driver support
|
||||
|
||||
**Google**
|
||||
- ChromeOS hardware reference designs (Brya family)
|
||||
- Embedded Controller specifications
|
||||
- Open source commitment
|
||||
|
||||
## Standards Organizations
|
||||
|
||||
**USB Implementers Forum**
|
||||
- HID (Human Interface Device) specifications
|
||||
|
||||
**ACPI Specification**
|
||||
- Advanced Configuration and Power Interface standards
|
||||
|
||||
**Linux Foundation**
|
||||
- Hosting kernel development
|
||||
- Supporting open source infrastructure
|
||||
|
||||
## Documentation and Education
|
||||
|
||||
**ArchWiki Contributors**
|
||||
- Comprehensive Linux documentation
|
||||
- Chromebook-specific guides
|
||||
|
||||
**Stack Overflow Community**
|
||||
- Technical Q&A and problem solving
|
||||
|
||||
**GitHub/GitLab/Gitea**
|
||||
- Hosting open source projects
|
||||
- Collaboration infrastructure
|
||||
|
||||
## Testing and Feedback
|
||||
|
||||
Special thanks to the Chromebook Linux community for:
|
||||
- Hardware compatibility testing
|
||||
- Bug reports and feature requests
|
||||
- Documentation improvements
|
||||
- Use case validation
|
||||
|
||||
## Tools and Infrastructure
|
||||
|
||||
**Git Version Control**
|
||||
- Linus Torvalds - Git creator
|
||||
- Git development community
|
||||
|
||||
**systemd**
|
||||
- Lennart Poettering and systemd team
|
||||
- Service management infrastructure
|
||||
|
||||
**GNU Project**
|
||||
- bash, coreutils, and essential utilities
|
||||
- Free Software Foundation
|
||||
|
||||
## Inspiration and References
|
||||
|
||||
**ChromiumOS EC GPIO Documentation**
|
||||
- Technical specifications for EC GPIO pins
|
||||
- Board-specific configuration details
|
||||
|
||||
**Linux Kernel Documentation**
|
||||
- GPIO userspace API documentation
|
||||
- Input subsystem documentation
|
||||
- Character device interface specifications
|
||||
|
||||
**Academic Research**
|
||||
- Computer hardware interfacing research
|
||||
- Operating systems research
|
||||
- Human-computer interaction studies
|
||||
|
||||
## Free and Open Source Software Philosophy
|
||||
|
||||
This project stands on the shoulders of giants. The open source philosophy of:
|
||||
- **Free Software Foundation** - Richard Stallman
|
||||
- **Open Source Initiative** - Bruce Perens, Eric S. Raymond
|
||||
- Countless developers who choose to share their work freely
|
||||
|
||||
## Legal Acknowledgments
|
||||
|
||||
All trademarks mentioned herein are property of their respective owners:
|
||||
- Lenovo, IdeaPad, and Flex are trademarks of Lenovo
|
||||
- Intel and Core are trademarks of Intel Corporation
|
||||
- Chromebook and ChromeOS are trademarks of Google LLC
|
||||
- Linux is a registered trademark of Linus Torvalds
|
||||
|
||||
## Contributing
|
||||
|
||||
If your work contributed to this project and you're not listed here, please submit a pull request to add yourself. Every contribution matters.
|
||||
|
||||
## Final Note
|
||||
|
||||
Open source is a collaborative effort. This project is freely available because countless individuals and organizations chose to share their knowledge and code. We honor that tradition by releasing this work under the MIT License, ensuring it remains free for all.
|
||||
|
||||
Thank you to everyone who makes open source software possible.
|
||||
36
README.md
36
README.md
@ -2,6 +2,27 @@
|
||||
|
||||
Hardware volume button driver for Chromebook devices with non-functional side-mounted volume controls.
|
||||
|
||||
## Free and Open Source Software
|
||||
|
||||
This project is **completely free and open source** under the MIT License.
|
||||
|
||||
**You are free to:**
|
||||
- Use this software for any purpose (personal, commercial, educational)
|
||||
- Study and modify the source code
|
||||
- Redistribute original or modified versions
|
||||
- Integrate into your own projects
|
||||
- Create derivative works
|
||||
|
||||
**No restrictions except:**
|
||||
- Include the original MIT License and copyright notice
|
||||
- Provide attribution to the original author
|
||||
|
||||
**Philosophy:**
|
||||
This software is released in the spirit of collaboration and knowledge sharing. It builds upon the work of countless open source contributors (see CREDITS.md) and continues that tradition by remaining completely free for everyone.
|
||||
|
||||
**Contributions Welcome:**
|
||||
Pull requests, bug reports, documentation improvements, and hardware compatibility reports are encouraged and appreciated. See CONTRIBUTING.md for guidelines.
|
||||
|
||||
## Hardware Compatibility
|
||||
|
||||
**Primary Target:**
|
||||
@ -201,6 +222,15 @@ Muyue
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- MrChromebox for custom BIOS support
|
||||
- ChromiumOS embedded controller team
|
||||
- Linux GPIO subsystem maintainers
|
||||
This project is possible thanks to the work of many individuals and organizations:
|
||||
|
||||
- **MrChromebox** - Custom UEFI firmware for Chromebooks
|
||||
- **ChromiumOS Team** - Embedded controller firmware and documentation
|
||||
- **Linux Kernel Contributors** - GPIO subsystem and input subsystem
|
||||
- **libgpiod Project** - Bartosz Golaszewski and contributors
|
||||
- **python-evdev** - Georgi Valkov and contributors
|
||||
- **Open Source Community** - All contributors to tools, libraries, and documentation used
|
||||
|
||||
For a complete list of acknowledgments, see [CREDITS.md](CREDITS.md).
|
||||
|
||||
This project stands on the shoulders of giants. Thank you to everyone who makes open source possible.
|
||||
|
||||
@ -1,8 +1,51 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script pour activer les boutons volume du Chromebook Taeko
|
||||
Les boutons sont connectés aux GPIO 3 (Volume Down) et 4 (Volume Up)
|
||||
sur le chip cros-ec-gpio (gpiochip1)
|
||||
Chromebook Volume Buttons Driver
|
||||
|
||||
Hardware volume button driver for Chromebook devices with non-functional
|
||||
side-mounted volume controls.
|
||||
|
||||
This driver reads GPIO states from the ChromeOS Embedded Controller and
|
||||
emulates keyboard volume events via uinput, enabling physical volume buttons
|
||||
on Chromebooks running Linux with custom firmware.
|
||||
|
||||
Target Hardware:
|
||||
- Lenovo IdeaPad Flex 5i Chromebook Gen 8 (Taeko)
|
||||
- GPIO 3 (EC:EC_VOLDN_BTN_ODL) - Volume Down
|
||||
- GPIO 4 (EC:EC_VOLUP_BTN_ODL) - Volume Up
|
||||
- Chip: /dev/gpiochip1 (cros-ec-gpio)
|
||||
|
||||
License:
|
||||
MIT License
|
||||
Copyright (c) 2025 Muyue
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
Author:
|
||||
Muyue
|
||||
|
||||
Contributors:
|
||||
See CREDITS.md for acknowledgments of all contributors to this project
|
||||
and the open source libraries and tools it depends upon.
|
||||
|
||||
Repository:
|
||||
https://gitea.legion-muyue.fr/Muyue/chromebook-volume-buttons
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user