|
1 | | -FROM ubuntu:22.04 AS orbuculum_build |
| 1 | +FROM ubuntu:24.04 AS orbuculum_build |
2 | 2 |
|
3 | 3 | RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \ |
4 | | - apt-get -y install git build-essential curl libusb-1.0-0-dev libczmq-dev libncurses-dev meson libsdl2-dev |
| 4 | + apt-get -y install git build-essential curl libusb-1.0-0-dev libczmq-dev libncurses-dev meson libsdl2-dev libelf-dev libcapstone-dev |
5 | 5 |
|
6 | | -RUN git clone --depth 1 --branch V2.1.0 https://github.com/orbcode/orbuculum.git orbuculum_build && \ |
| 6 | +RUN git clone --depth 1 --branch V2.2.0 https://github.com/orbcode/orbuculum.git orbuculum_build && \ |
7 | 7 | cd orbuculum_build && meson setup --prefix=/usr build && \ |
8 | 8 | meson compile -C build && \ |
9 | 9 | DESTDIR=/orbuculum meson install -C build |
10 | 10 |
|
11 | | -FROM mcr.microsoft.com/devcontainers/base:1.0.8-ubuntu-22.04 |
| 11 | +FROM ubuntu:24.04 AS pyocd_pack_build |
12 | 12 |
|
13 | | -RUN echo "deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" >> /etc/apt/sources.list && \ |
| 13 | +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \ |
| 14 | + apt-get -y install python3-pip zip unzip && \ |
| 15 | + pip install --break-system-packages pyocd==0.36.0 |
| 16 | + |
| 17 | +RUN pyocd pack install stm32 nrf51 |
| 18 | + |
| 19 | +RUN cd ~/.local/share/cmsis-pack-manager/ && \ |
| 20 | + for file in $(find . -iname "*.pack"); do zipinfo -1 $file | sed '/^.*\(flm\|pdsc\|svd\|dbgconf\|sdf\)/Id' | xargs zip -d $file; done |
| 21 | + |
| 22 | +FROM mcr.microsoft.com/devcontainers/base:1.2.6-ubuntu-24.04 |
| 23 | + |
| 24 | +RUN echo "deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble main" >> /etc/apt/sources.list && \ |
14 | 25 | apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F23C5A6CF475977595C89F51BA6932366A755776 |
15 | 26 |
|
16 | | -# Texane st-link (version 1.7.0 in repository) |
| 27 | +# Texane st-link (version 1.8.0 in repository) |
17 | 28 | RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && \ |
18 | 29 | apt-get -y install \ |
19 | 30 | make \ |
20 | 31 | bear \ |
21 | 32 | picocom \ |
| 33 | + microcom \ |
22 | 34 | xz-utils \ |
23 | 35 | python3-pip \ |
24 | 36 | telnet \ |
25 | | - libncursesw5 \ |
26 | 37 | python3.8 \ |
| 38 | + libpython3.8 \ |
27 | 39 | libusb-1.0 \ |
28 | 40 | libczmq4 \ |
| 41 | + libelf1 \ |
| 42 | + libsdl2-2.0-0 \ |
| 43 | + libcapstone4 \ |
29 | 44 | libncurses6 \ |
30 | 45 | libglib2.0-0 \ |
31 | 46 | cmake \ |
32 | 47 | stlink-tools \ |
| 48 | + gdb-multiarch \ |
33 | 49 | && rm -rf /var/lib/apt/lists/* |
34 | 50 |
|
35 | 51 | # ARM GCC Compiler |
36 | | -RUN curl -sL "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz" | tar -xJf - -C /usr/local --strip-components=1 |
| 52 | +RUN curl -sL "https://developer.arm.com/-/media/Files/downloads/gnu/14.2.rel1/binrel/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi.tar.xz" | tar -xJf - -C /usr/local --strip-components=1 |
37 | 53 |
|
38 | | -# OpenOCD (version 0.12.0-1) |
| 54 | +# OpenOCD (version 0.12.0-6) |
39 | 55 | RUN mkdir /opt/openocd && \ |
40 | | - curl -sL "https://github.com/xpack-dev-tools/openocd-xpack/releases/download/v0.12.0-1/xpack-openocd-0.12.0-1-linux-x64.tar.gz" | tar -xzf - -C /opt/openocd --strip-components=1 && \ |
| 56 | + curl -sL "https://github.com/xpack-dev-tools/openocd-xpack/releases/download/v0.12.0-6/xpack-openocd-0.12.0-6-linux-x64.tar.gz" | tar -xzf - -C /opt/openocd --strip-components=1 && \ |
41 | 57 | ln -s /opt/openocd/bin/openocd /usr/local/bin/openocd |
42 | 58 |
|
43 | 59 | # STM32CubeProgrammer (version 2.13.0) |
44 | 60 | ADD stm32cubeprogrammer /opt/stm32cubeprogrammer |
45 | 61 | RUN ln -s /opt/stm32cubeprogrammer/bin/STM32_Programmer_CLI /usr/local/bin/STM32_Programmer_CLI |
46 | 62 |
|
47 | 63 | # PyOCD |
48 | | -RUN pip install pyocd==0.36.0 |
49 | | - |
50 | | -USER vscode |
51 | | - |
52 | | -RUN pyocd pack install stm32 nrf51 && \ |
53 | | - cd ~/.local/share/cmsis-pack-manager/ && \ |
54 | | - for file in $(find . -iname "*.pack"); do zipinfo -1 $file | sed '/^.*\(flm\|pdsc\|svd\|dbgconf\|sdf\)/Id' | xargs zip -d $file; done |
55 | | - |
56 | | -USER root |
| 64 | +RUN pip install --break-system-packages pyocd==0.36.0 |
57 | 65 |
|
58 | 66 | # clangd (version 17.0.3) |
59 | 67 | RUN mkdir /tmp/clangd && \ |
60 | | - curl -sL -o /tmp/clangd/clangd.zip "https://github.com/clangd/clangd/releases/download/17.0.3/clangd-linux-17.0.3.zip" && \ |
| 68 | + curl -sL -o /tmp/clangd/clangd.zip "https://github.com/clangd/clangd/releases/download/20.1.0/clangd-linux-20.1.0.zip" && \ |
61 | 69 | unzip /tmp/clangd/clangd.zip -d /tmp/clangd && \ |
62 | | - cp -r /tmp/clangd/clangd_17.0.3/* /usr/local/ && \ |
| 70 | + cp -r /tmp/clangd/clangd_20.1.0/* /usr/local/ && \ |
63 | 71 | rm /tmp/clangd -rf |
64 | 72 |
|
65 | 73 | # Clangd default configuration |
66 | 74 | COPY --chown=vscode:vscode config.yaml /home/vscode/.config/clangd/config.yaml |
67 | 75 |
|
68 | 76 | # Orbuculum |
69 | 77 | COPY --from=orbuculum_build /orbuculum / |
| 78 | + |
| 79 | +# Pyocd packs |
| 80 | +COPY --from=pyocd_pack_build --chown=vscode:vscode /root/.local/share/cmsis-pack-manager/ /home/vscode/.local/share/cmsis-pack-manager/ |
0 commit comments