Skip to content

Instantly share code, notes, and snippets.

@aaronjanse
Created November 4, 2020 01:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aaronjanse/a5d4fd22c56c248e1142d481d5a18d64 to your computer and use it in GitHub Desktop.
Save aaronjanse/a5d4fd22c56c248e1142d481d5a18d64 to your computer and use it in GitHub Desktop.
Works with nixos-unstable as of October 2020
{ stdenv, autoPatchelfHook, ffmpeg_3, fetchurl, bash, jdk, kmod, pkgs }:
stdenv.mkDerivation {
name = "energia";
version = "1.8.10E23";
src = fetchurl {
url = "http://energia.nu/downloads/downloadv4.php?file=energia-1.8.10E23-linux64.tar.xz";
sha256 = "065vii9x9b7x4bj1b97grz2vwd4xam1lprsbgsfagry3adf3bshv";
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = with pkgs; [
libav xorg.libX11 xorg.libXtst ncurses5.dev zlib (pkgs.libusb-compat-0_1 or pkgs.libusb) python27
ffmpeg libGL pango glib gobject-introspection gtk3 gtk2 gdk-pixbuf atk kmod bash
];
buildPhase = ''
sed -i "s#{runtime.tools.dslite-9.2.0.1793-e1.path}#$out/hardware/tools/DSLite#g" hardware/energia/msp430/platform.txt
rm java/jre/lib/amd64/*.so
rm hardware/tools/msp430/bin/msp430-size
mkdir -p $out
cp -r ./* $out
'';
installPhase = ''
mkdir $out/bin
cat << EOF > $out/bin/energia
#!${bash}/bin/bash
for LIB in \
$out/java/jre/lib/rt.jar \
$out/java/jre/lib/tools.jar \
$out/lib/*.jar \
;
do
CLASSPATH="\$CLASSPATH:\$LIB"
done
export CLASSPATH
export LD_LIBRARY_PATH=$out/lib:\$LD_LIBRARY_PATH
${jdk}/bin/java "-DAPP_DIR=$out" processing.app.Base "\$@"
EOF
chmod +x $out/bin/energia
mkdir -p "$out/etc/udev/rules.d"
cat << EOF > $out/etc/udev/rules.d/71-ti-permissions.rules
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="a6d0",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="a6d1",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1cbe",ATTRS{idProduct}=="00fd",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1cbe",ATTRS{idProduct}=="00ff",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0451",ATTRS{idProduct}=="bef1",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0451",ATTRS{idProduct}=="bef2",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0451",ATTRS{idProduct}=="bef3",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0451",ATTRS{idProduct}=="bef4",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0451",ATTRS{idProduct}=="f432",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="0d28",ATTRS{idProduct}=="0204",MODE:="0666"
KERNEL=="hidraw*",ATTRS{busnum}=="*",ATTRS{idVendor}=="0d28",ATTRS{idProduct}=="0204",MODE:="0666"
ATTRS{idVendor}=="0451",ATTRS{idProduct}=="bef0",ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="0c55",ATTRS{idProduct}=="0220",ENV{ID_MM_DEVICE_IGNORE}="1"
KERNEL=="ttyACM[0-9]*",MODE:="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="0660", GROUP="dialout", RUN+="${kmod}/bin/modprobe ftdi-sio" RUN+="${bash}/bin/sh -c 'echo 0451 c32a > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
EOF
'';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment