Compare commits

...
Author SHA1 Message Date
0d727d7074 making stm32cube repo installed by default
All checks were successful
/ build-installer (push) Successful in 29s
2026-09-02 21:25:47 +03:00
d4fb99ce55 disabled network-manager when the node is build-node (bc it is virtual
All checks were successful
/ build-installer (push) Successful in 29s
and special sometimes)
2026-09-02 20:25:57 +03:00
ac69cd54d3 enhanced stm32 support
All checks were successful
/ build-installer (push) Successful in 1m14s
2026-09-02 20:20:21 +03:00

View file

@ -31,6 +31,15 @@ in
hash = "sha256-1zxrT7phXeQYNbWHWMyPuHiUglrPSMPP0bfAcfvt8dM="; 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 = { users.users.student = {
@ -115,7 +124,8 @@ in
inputs.kompas3d.packages.${pkgs.system}.default # KOMPAS-3D inputs.kompas3d.packages.${pkgs.system}.default # KOMPAS-3D
freecad elmerfem gmsh # FEM calculation freecad elmerfem gmsh # FEM calculation
inputs.stm32cubemx.packages.x86_64-linux.stm32cubemx #inputs.stm32cubemx.packages.x86_64-linux.stm32cubemx
stm32cubemx
pandoc pandoc
onlyoffice-desktopeditors # к сожалению, пока у OnlyOffice баг со шрифтами. Ждём фикс onlyoffice-desktopeditors # к сожалению, пока у OnlyOffice баг со шрифтами. Ждём фикс
@ -190,6 +200,7 @@ in
# актуально для разработчиков ПО (встраивание диаграмм в код) # актуально для разработчиков ПО (встраивание диаграмм в код)
# поддерживается нашей поставкой IJ IDEA CE # поддерживается нашей поставкой IJ IDEA CE
plantuml plantuml
graphviz
archi # поддержка archimate archi # поддержка archimate
@ -200,6 +211,7 @@ in
stlink stlink
stlink-gui stlink-gui
stm32loader stm32loader
openocd
##### СЕТЕВЫЕ УТИЛИТЫ ###### ##### СЕТЕВЫЕ УТИЛИТЫ ######
# установлен Cisco Packet Tracer, обернут в firejail чтобы не стучался на Netacad.com # установлен Cisco Packet Tracer, обернут в firejail чтобы не стучался на Netacad.com
@ -510,7 +522,6 @@ in
with vscode-extensions; with vscode-extensions;
[ [
ms-vscode.cpptools-extension-pack ms-vscode.cpptools-extension-pack
zainchen.json
ms-dotnettools.csharp ms-dotnettools.csharp
formulahendry.code-runner formulahendry.code-runner
tomoki1207.pdf tomoki1207.pdf
@ -529,12 +540,6 @@ in
timonwong.shellcheck timonwong.shellcheck
] ]
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ++ 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"; name = "vscode-cppcheck";
publisher = "brobeson"; publisher = "brobeson";
@ -671,6 +676,25 @@ in
PGUSER = "postgres"; 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; services.grdcontrol.enable = true;
imports = [ imports = [
@ -835,6 +859,8 @@ in
open = false; open = false;
nvidiaSettings = false; nvidiaSettings = false;
}; };
services.udev.packages = [ pkgs.stlink pkgs.openocd ];
services.udev.extraRules = if isAdata then '' services.udev.extraRules = if isAdata then ''
ACTION=="add|change",KERNEL=="nvme[0-9]", ATTR{queue/scheduler}="none" ACTION=="add|change",KERNEL=="nvme[0-9]", ATTR{queue/scheduler}="none"
'' else ""; '' else "";
@ -890,7 +916,7 @@ in
}; };
# каждый компьютер имеет выход в интернет # каждый компьютер имеет выход в интернет
networking.networkmanager.enable = true; networking.networkmanager.enable = ! config.services.harmonia.enable;
networking.hostName = "nixos"; networking.hostName = "nixos";
networking.firewall.allowedTCPPorts = [ 22 ] ++ lib.optionals config.services.harmonia.enable [ 80 ]; networking.firewall.allowedTCPPorts = [ 22 ] ++ lib.optionals config.services.harmonia.enable [ 80 ];