aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorThomas Van Iseghem <[email protected]>2024-06-17 08:37:55 +0200
committerGitHub <[email protected]>2024-06-17 08:37:55 +0200
commit226a1233fa0257b1393ccdd7e2cf2a12d244a778 (patch)
treeb07c12ff2e4b56b0a46c26732ff9067a756cb670
parent3ba4308938bcab5a23ae96b0809895ef28d47720 (diff)
parent1b0601a8be5deecf3dd27eff6213ac7359d9761c (diff)
downloadOpenCortex-226a1233fa0257b1393ccdd7e2cf2a12d244a778.tar.gz
OpenCortex-226a1233fa0257b1393ccdd7e2cf2a12d244a778.zip
Merge pull request #8 from JudahZF/patch-1HEADmain
Add M1 Docker Docs
-rw-r--r--CorOS-dev-environment/CorOS-build-env/Dockerfile7
-rw-r--r--CorOS-dev-environment/CorOS-build-env/docker-compose.yaml36
-rw-r--r--CorOS-dev-environment/CorOS-emulation/Dockerfile4
-rw-r--r--CorOS-dev-environment/CorOS-emulation/docker-compose.yaml38
-rw-r--r--CorOS-dev-environment/README.md51
5 files changed, 86 insertions, 50 deletions
diff --git a/CorOS-dev-environment/CorOS-build-env/Dockerfile b/CorOS-dev-environment/CorOS-build-env/Dockerfile
index 9ddd439..e736205 100644
--- a/CorOS-dev-environment/CorOS-build-env/Dockerfile
+++ b/CorOS-dev-environment/CorOS-build-env/Dockerfile
@@ -1,8 +1,9 @@
# Use official Ubuntu as our base# Use official Ubuntu as our base
-FROM opencortex/coros-emu:latest
+FROM coros-emu:latest
# Add required packages in the noninteractive mode
-RUN apt-get -y update && apt-get -y -q install curl net-tools build-essential minicom tftpd-hpa git-all subversion openssh-server ncurses-dev php gawk g++ m4 libncurses5-dev texinfo flex bison php-cli vim php-xml python-setuptools python-dev make unzip rsync cpio bc lib32z1 lib32stdc++6
+RUN apt-get -y update
+RUN apt-get -y -q install curl net-tools build-essential minicom tftpd-hpa git-all subversion openssh-server ncurses-dev php gawk g++ m4 libncurses5-dev texinfo flex bison php-cli vim php-xml python-setuptools python-dev make unzip rsync cpio bc lib32z1 lib32stdc++6
# Set the workspace in /sc5xx_dev
ARG TOOLCHAIN_PATH=/sc5xx_dev
@@ -19,7 +20,7 @@ ARG LINUX_ADDIN_VERSION="1.3.1"
WORKDIR ${TOOLCHAIN_PATH}
# Copy the install_toolchain.sh to /sc5xx_dev
-COPY install_toolchain.sh .
+COPY install_toolchain.sh ./
RUN dos2unix install_toolchain.sh && chmod +x install_toolchain.sh && ./install_toolchain.sh ${TOOLCHAIN_PATH}
# Set toolchain PATH for remote container
diff --git a/CorOS-dev-environment/CorOS-build-env/docker-compose.yaml b/CorOS-dev-environment/CorOS-build-env/docker-compose.yaml
index 3f4c9d6..3d75bb1 100644
--- a/CorOS-dev-environment/CorOS-build-env/docker-compose.yaml
+++ b/CorOS-dev-environment/CorOS-build-env/docker-compose.yaml
@@ -1,25 +1,25 @@
# Docker compose file for easy volume mounting and running of the container
services:
- coros-dev:
- image: opencortex/coros-dev:latest
- build:
- context: ../
- dockerfile: CorOS-build-env/Dockerfile
- tags:
- - opencortex/coros-dev:latest
+ coros-dev:
+ image: cortex-dev:latest
+ build:
+ context: ../
+ dockerfile: CorOS-build-env/Dockerfile
+ tags:
+ - opencortex/coros-dev:latest
- volumes:
- - ../filesystems:/qc-fs
- - ../mount:/mnt
+ volumes:
+ - ../filesystems:/qc-fs
+ - ../mount:/mnt
- environment:
- # Edit this to your needs. This should be just the file name, not the path.
- - UPDATE_FILE=verify.bin.gz
+ environment:
+ # Edit this to your needs. This should be just the file name, not the path.
+ - UPDATE_FILE=verify.bin.gz
- # Port forward the VNC port
- ports:
- - "5900:5900"
+ # Port forward the VNC port
+ ports:
+ - "5900:5900"
- privileged: true
- entrypoint: /bin/bash -c "while true; do sleep 1; done" \ No newline at end of file
+ privileged: true
+ entrypoint: /bin/bash -c "while true; do sleep 1; done"
diff --git a/CorOS-dev-environment/CorOS-emulation/Dockerfile b/CorOS-dev-environment/CorOS-emulation/Dockerfile
index 1f24b79..b556f64 100644
--- a/CorOS-dev-environment/CorOS-emulation/Dockerfile
+++ b/CorOS-dev-environment/CorOS-emulation/Dockerfile
@@ -13,10 +13,10 @@ RUN mkdir qc-fs qc-fs-uncompressed qt_src
WORKDIR /qt_src
# # Copy and run the installer
-COPY qt-compiled-4.8.7.tar.gz install_qt_compiled.sh .
+COPY qt-compiled-4.8.7.tar.gz install_qt_compiled.sh ./
WORKDIR /
-COPY init_system.sh update-builder.sh .
+COPY init_system.sh update-builder.sh ./
RUN dos2unix init_system.sh update-builder.sh /qt_src/install_qt_compiled.sh
ENTRYPOINT ["/bin/bash"]
diff --git a/CorOS-dev-environment/CorOS-emulation/docker-compose.yaml b/CorOS-dev-environment/CorOS-emulation/docker-compose.yaml
index edd22bf..99bbcc4 100644
--- a/CorOS-dev-environment/CorOS-emulation/docker-compose.yaml
+++ b/CorOS-dev-environment/CorOS-emulation/docker-compose.yaml
@@ -1,25 +1,25 @@
# Docker compose file for easy volume mounting and running of the container
services:
- coros-emu:
- image: opencortex/coros-emu:latest
- build:
- context: ../
- dockerfile: CorOS-emulation/Dockerfile
- tags:
- - opencortex/coros-emu:latest
+ coros-emu:
+ image: opencortex/coros-emu:latest
+ build:
+ context: ../
+ dockerfile: CorOS-emulation/Dockerfile
+ tags:
+ - opencortex/coros-emu:latest
- volumes:
- - ../filesystems:/qc-fs
- - ../mount:/mnt
+ volumes:
+ - ../filesystems:/qc-fs
+ - ../mount:/mnt
+
+ environment:
+ # Edit this to your needs. This should be just the file name, not the path.
+ - UPDATE_FILE=update-v6_MZO3_RudwwcoQAF3iLtPQ0ERwy4w6.bin.gz
- environment:
- # Edit this to your needs. This should be just the file name, not the path.
- - UPDATE_FILE=update-dYOaOKRKVdwFYyN2bb4KCKkl5Wjc1hg6.bin.gz
-
- # Port forward the VNC port
- ports:
- - "5900:5900"
+ # Port forward the VNC port
+ ports:
+ - "5900:5900"
- privileged: true
- entrypoint: /bin/bash -c "while true; do sleep 1; done" \ No newline at end of file
+ privileged: true
+ entrypoint: /bin/bash -c "while true; do sleep 1; done"
diff --git a/CorOS-dev-environment/README.md b/CorOS-dev-environment/README.md
index 1804152..4d319b8 100644
--- a/CorOS-dev-environment/README.md
+++ b/CorOS-dev-environment/README.md
@@ -4,7 +4,7 @@
You can use the Python tool for downloading the latest firmware. You can find it in this repository under the `Firmware-download` folder. This will download the latest CorOS version from the official NeuralDSP server.
-***[Alternative] The old way***
+**_[Alternative] The old way_**
The update process of the QC is done in 2 steps. First the download, after that the install. We can use this to our advantage to grab the actual update file. Once you downloaded the update **do not install it yet.** Get an SSH shell going and go to `/media/p4`. There you will find your update file. A registry of these file names is also available inside the `filesystems/README.md` of this folder.
@@ -16,9 +16,11 @@ Once you've got the update file, you can put it inside the `filesystems` directo
**The easier** way is to use `docker compose`. In the `docker-compose.yaml` file, all volumes are already defined. This means you only have to define the update file in the `environment` section.
+**[Click here for ARM and M1](#running-on-m1)**
+
To use this first run the service in detached mode. **Make sure to build the CorOS-emulation container first if you want to use the CorOS-build-env one!**
-```
+```bash
docker compose up -d --build
```
@@ -26,14 +28,15 @@ After that you can attach to the container using Docker Desktop and running the
If Docker Desktop isn't your cup of tea, you can always do it the CLI way. First identify the container by running `docker ps` and look for your `opencortex/coros-<target>:latest` containers.
-```
+```bash
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e94bc7cd6045 opencortex/coros-emu:latest "/bin/bash -c 'while…" 5 minutes ago Up 5 minutes coros-emulation-coros-emu-1
a81a4c3249c9 opencortex/coros-dev:latest "/bin/bash -c 'while…" 41 minutes ago Up 41 minutes coros-build-env-coros-dev-1
```
Then you can attach to it by running
-```
+
+```bash
docker compose exec <NAME or CONTAINER ID> /bin/bash
```
@@ -41,7 +44,7 @@ docker compose exec <NAME or CONTAINER ID> /bin/bash
When attached to the docker container's shell, there is one post-install step left. Run the following command:
-```
+```bash
./init_system.sh
```
@@ -53,18 +56,50 @@ To link QT to the right fonts folder, run:
export QT_QWS_FONTDIR=/etc/fonts
```
+## Running On M1
+
+If you docker enviroment (~/.docker)is not alread accessable by your user, run:
+
+```bash
+sudo chmod -R 777 ~/.docker
+```
+
+To build the dev enviroment on M1 _you must enable Rosseta x86 Emulation_ (Docker Desktop, Settings, In Development, Beta Features).
+Then you have to pull, build and compose the container in seperate steps, adding the platform flag to each step.
+
+Pull the base image for the enviroment you wish to build:
+
+```bash
+CorOS-Emu:
+docker pull docker.io/library/debian:buster-slim --platform linux/amd64
+
+CorOS-Dev:
+
+```
+
+Build the cortex-emu and cortex-dev images:
+
+```bash
+docker build . --platform=linux/amd64 -t coros-emu
+docker build . --platform=linux/amd64 -t cortex-dev
+```
+
+Compose the container:
+
+```bash
+docker compose up -d
+```
+
## Creating an update package
You can create a custom update package based on the mounted filesystem, by running the `update-builder.sh` script. This can be found in the root of the docker container. This way you can patch your update to include all mods and ssh access, without opening the QC up everytime.
The update file should be available on your host machine at `filesystems/update-opencortex.bin.gz`. You can validate the update file by mounting it as the actual update file using the `UPDATE_FILE` environment variable and running `init_system.sh`.
-
## Config for custom compiled QT
For running GUI applications such as `ZenUI` it is possible to output the video to a virtual device. One of these posibilities is a simple VNC server. To enable this ability I have compiled QT from source using the following config:
-```
+```bash
./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -nomake examples -nomake demos -opensource -qt-libtiff -qt-zlib -qt-libpng -qt-libmng -qt-libjpeg -optimized-qmake -qt-freetype -qt-gfx-vnc -no-webkit -no-javascript-jit -optimized-qmake -no-cups && make
```
-