diff --git a/configuration.nix b/configuration.nix index 3b55094..b0e8ab8 100644 --- a/configuration.nix +++ b/configuration.nix @@ -31,6 +31,15 @@ in hash = "sha256-1zxrT7phXeQYNbWHWMyPuHiUglrPSMPP0bfAcfvt8dM="; }; }); + stm32cubemx = prev.stm32cubemx.override { + fetchzip = args: prev.fetchzip (args // { + url = "http://${serverIP}/stm32cube_mx_v6111-lin.zip"; + hash = "sha256-By9T43GLM1J63TkRi3kl05h1RflBorU1QHgYOrXQ9N0="; + }); + buildFHSEnv = args: prev.buildFHSEnv ( args // { + unshareNet = true; + }); + }; }) ]; users.users.student = { @@ -115,7 +124,8 @@ in inputs.kompas3d.packages.${pkgs.system}.default # KOMPAS-3D freecad elmerfem gmsh # FEM calculation - inputs.stm32cubemx.packages.x86_64-linux.stm32cubemx + #inputs.stm32cubemx.packages.x86_64-linux.stm32cubemx + stm32cubemx pandoc onlyoffice-desktopeditors # к сожалению, пока у OnlyOffice баг со шрифтами. Ждём фикс @@ -190,6 +200,7 @@ in # актуально для разработчиков ПО (встраивание диаграмм в код) # поддерживается нашей поставкой IJ IDEA CE plantuml + graphviz archi # поддержка archimate @@ -200,6 +211,7 @@ in stlink stlink-gui stm32loader + openocd ##### СЕТЕВЫЕ УТИЛИТЫ ###### # установлен Cisco Packet Tracer, обернут в firejail чтобы не стучался на Netacad.com @@ -510,7 +522,6 @@ in with vscode-extensions; [ ms-vscode.cpptools-extension-pack - zainchen.json ms-dotnettools.csharp formulahendry.code-runner tomoki1207.pdf @@ -529,12 +540,6 @@ in timonwong.shellcheck ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ - { - name = "better-cpp-syntax"; - publisher = "jeff-hykin"; - version = "1.27.1"; - sha256 = "sha256-GO/ooq50KLFsiEuimqTbD/mauQYcD/p2keHYo/6L9gw="; - } { name = "vscode-cppcheck"; publisher = "brobeson"; @@ -671,6 +676,25 @@ in PGUSER = "postgres"; }; }; + + + + systemd.user.services.stm32cubemx-repo = + let + stm32f1-v180 = builtins.fetchTarball { url = "http://${serverIP}/STM32Cube.tar.gz"; sha256 = "sha256:1zlcp82xq16anx02ghiv9xa5bi2fsz78h945miqmi26bwcjxdagn"; }; + + in { + description = "STM32CubeMX firmware repository setup"; + wantedBy = [ "default.target" ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = pkgs.writeShellScript "stm32cubemx-repo-setup" '' + cp -r ${stm32f1-v180}/. "$HOME/STM32Cube" + chmod -R u+w "$HOME/STM32Cube" + ''; + }; + }; services.grdcontrol.enable = true; imports = [ @@ -835,6 +859,8 @@ in open = false; nvidiaSettings = false; }; + + services.udev.packages = [ pkgs.stlink pkgs.openocd ]; services.udev.extraRules = if isAdata then '' ACTION=="add|change",KERNEL=="nvme[0-9]", ATTR{queue/scheduler}="none" '' else ""; @@ -890,7 +916,7 @@ in }; # каждый компьютер имеет выход в интернет - networking.networkmanager.enable = true; + networking.networkmanager.enable = ! config.services.harmonia.enable; networking.hostName = "nixos"; networking.firewall.allowedTCPPorts = [ 22 ] ++ lib.optionals config.services.harmonia.enable [ 80 ];