| title | Embedded Linux with RPi - Collaboration Guide | ||
|---|---|---|---|
| description | Contributing guide for Embedded Linux with RPi course content | ||
| tableOfContents | true | ||
| sidebar |
|
Read this course at: https://siliconwit.com/education/embedded-linux-rpi/
A practical course on embedded Linux development using the Raspberry Pi. Topics range from cross-compilation and kernel builds through Buildroot and Yocto, culminating in an edge gateway that bridges MCU sensor networks.
| # | Title |
|---|---|
| 1 | Cross-Compilation and Boot Process |
| 2 | Kernel Configuration and Custom Build |
| 3 | Device Trees and Hardware Description |
| 4 | Userspace GPIO I2C SPI |
| 5 | Kernel Module Development |
| 6 | Buildroot Custom Linux Image |
| 7 | System Services and Process Management |
| 8 | Yocto Production Images |
| 9 | Edge Gateway for MCU Sensor Networks |
embedded-linux-rpi/
├── lesson-0.mdx # Course introduction
├── lesson-1.mdx # Cross-Compilation and Boot Process
├── lesson-2.mdx # Kernel Configuration and Custom Build
├── lesson-3.mdx # Device Trees and Hardware Description
├── lesson-4.mdx # Userspace GPIO I2C SPI
├── lesson-5.mdx # Kernel Module Development
├── lesson-6.mdx # Buildroot Custom Linux Image
├── lesson-7.mdx # System Services and Process Management
├── lesson-8.mdx # Yocto Production Images
├── lesson-9.mdx # Edge Gateway for MCU Sensor Networks
└── README.md
All commands below work on Linux, macOS, and Windows (using Git Bash, PowerShell, or Command Prompt with Git installed).
First time setup (clone the repo once):
git clone https://github.com/SiliconWit/embedded-linux-rpi.git
cd embedded-linux-rpiEvery time you start working:
git pull origin mainAlways pull before making changes. This avoids conflicts with other contributors.
After making your changes:
git add .
git commit -m "Brief description of what you changed"
git push origin mainIf you get a push error (someone pushed before you):
git pull origin mainGit will merge the changes automatically in most cases. If there is a conflict, Git will mark the conflicting lines in the file. Open the file, choose which version to keep, then:
git add .
git commit -m "Resolve merge conflict"
git push origin mainTips to avoid conflicts:
- Always
git pull origin mainbefore you start working - Push your changes as soon as you are done, do not hold onto uncommitted work for long
- Coordinate with other contributors so two people are not editing the same file at the same time
- Fork the repository: SiliconWit/embedded-linux-rpi
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/embedded-linux-rpi.git cd embedded-linux-rpi - Make your changes and commit:
git add . git commit -m "Brief description of what you changed" git push origin main
- Open a Pull Request against
mainon the original repository - Describe what you changed and why in the PR description
- All lesson files use
.mdxformat - Do not use
<BionicText>in this course - Code blocks should include a title attribute:
```c title="gpio_driver.c" #include <linux/module.h> ```
- Use Starlight components (
<Tabs>,<TabItem>,<Steps>,<Card>) where appropriate - Keep paragraphs concise and focused on practical application
- Include working code examples that readers can run directly
Clone the main site repository and initialize submodules:
git clone --recurse-submodules <main-repo-url>
cd siliconwit-com
npm install
npm run devTo test a production build:
npm run buildThis course content is released under the MIT License.