Add Dockerfile and run scripts for containerized crash cart adapter
Wraps the NOTECONS02 USB Crash Cart Adapter software (usb-crash-cart-adapter v20240517) in an Ubuntu 16.04 Docker container to resolve incompatibilities with modern Fedora. Includes X11/XWayland passthrough, USB device access, and host udev rules for the crash cart adapter (vendor 152a, products 8460/8463). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
47
README.md
47
README.md
@@ -1 +1,48 @@
|
||||
# usb-crash-cart
|
||||
|
||||
Docker container wrapper for the NOTECONS02 USB Crash Cart Adapter software.
|
||||
|
||||
The vendor software (`usb-crash-cart-adapter` v20240517) was built against Ubuntu 16.04
|
||||
(Python 2.7, wxWidgets 2.9/GTK2) and is incompatible with modern Fedora. This repo runs
|
||||
it inside an Ubuntu 16.04 container with X11 passthrough.
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Install udev rules (once, on the host)
|
||||
|
||||
```bash
|
||||
sudo ./install-udev-rules.sh
|
||||
```
|
||||
|
||||
This allows the crash cart adapter (USB vendor `152a`, products `8460`/`8463`) to be
|
||||
accessed without root.
|
||||
|
||||
### 2. Place the .deb package
|
||||
|
||||
Copy the vendor `.deb` to `packages/crash-cart.deb`:
|
||||
|
||||
```bash
|
||||
cp /path/to/"Linux-X64 Crash Cart Software_1240415.deb" packages/crash-cart.deb
|
||||
```
|
||||
|
||||
### 3. Build the image
|
||||
|
||||
```bash
|
||||
docker build -t usb-crash-cart .
|
||||
```
|
||||
|
||||
### 4. Run
|
||||
|
||||
```bash
|
||||
./docker-run.sh
|
||||
```
|
||||
|
||||
This handles X11 socket sharing and USB device passthrough automatically.
|
||||
|
||||
## Notes
|
||||
|
||||
- The container uses `ubuntu:16.04` to match the build environment.
|
||||
- The app bundles its own `libpython2.7`, `libwx_gtk2u-2.9`, `libpng12`, etc. — the
|
||||
container only needs GTK2 and X11 system libs from the OS.
|
||||
- `LD_LIBRARY_PATH` is set to prefer the bundled libs over system ones.
|
||||
- The `.deb` is excluded from git (`.gitignore`) — obtain it from the vendor package.
|
||||
|
||||
Reference in New Issue
Block a user