The project focuses on the creation of the multimedia server, and also on the creation of the snake game.
Details about the snake game part.
VCC ---> 5 V
GND ---> GND
DATA PINS:
SCL (signal clock) ---> B3
SDA (signal data) ---> B4

VCC ---> 5 V
GND ---> GND
SIGNAL ---> digital pin B1 and B2

This repository demonstrates how to run a Plex Media Server inside an emulated Raspbian environment on macOS using Docker and QEMU. It includes scripts for setup, networking, and managing the Plex service.
- Goal: Emulate a Raspberry Pi 3 (Raspbian) environment on macOS and run a Plex Media Server.
- Emulation: Utilizes QEMU for ARM to simulate Raspberry Pi hardware.
- Docker: Encapsulates the emulated environment, so you don’t need to install QEMU or additional dependencies directly on your host.
After following this guide, you’ll have a Docker image that boots an emulated Raspbian kernel, installs Plex, and makes it accessible from your macOS host.
-
media_server/
Main project folder containing all necessary files. -
scripts/
- media_service.sh: Manages the Media Server (start, stop, restart).
- network_conf.sh: Configures network settings for the emulation.
- setup.sh: Installs media server and other dependencies in the emulated environment.
-
bcm2710-rpi-3-b-plus.dtb
Device Tree Blob for Raspberry Pi 3 B+. -
kernel8.img
64-bit kernel image for Raspberry Pi 3 emulation. -
Dockerfile
Defines the Docker build process, including QEMU setup, copying kernel files, configuring Raspbian, and installing Plex.
-
macOS (Intel or Apple Silicon) with:
- Docker Desktop installed and running.
- (Optional) Homebrew if you want QEMU or other tools installed natively for testing.
-
Git (to clone the repository).
-
Sufficient disk space for the emulated image and any media files.
-
Clone the Repository
git clone https://github.com/Coffee-deve/Design_lab_project.git cd media_server -
Build the Docker Image
docker build -t media_server . -
Run the Docker Container
docker run -it --rm --privileged -p 32400:32400 media_server
-
Access Media Server
- Open a browser and go to http://localhost:32400/web.
- Follow the on-screen instructions to set up media server.
media_service.shPurpose: Start, stop, or restart Plex inside the emulated environment.
Usage:
./media_service.sh start
./media_service.sh stop
./media_service.sh restartnetwork_conf.shPurpose: Configure network settings (port forwarding, bridging, etc.) for the emulated environment.
Usage:
./network_conf.shAdjust this script as needed to match your network requirements.
setup.shPurpose: Install Plex, dependencies, and other tools in the emulated Raspbian environment.
Usage:
./setup.shTypically runs during Docker build or at first container startup.
Ensure Docker is forwarding port 32400. Check if Plex is running inside the container:
docker exec -it plex_rpi ps aux | grep plexEmulation is slower than native. Increase CPU/RAM for Docker if possible. Use “Direct Play” instead of transcoding if you can.
If mounting host directories, ensure the container user has proper read permissions. Use change ownership or permissions as needed.
docker exec -it plex_rpi chown -R plex:plex /path/to/mediaIf port 32400 is in use, change the host port (e.g., -p 8080:32400) and then access Plex at http://localhost:8080/web.
Connections of both parts.