{ pkgs ? import <nixpkgs> { }, }:
let
- tattlekey = { lib, stdenv, cmake, pico-sdk, python3 }:
+ tattlekey = { lib, stdenv, cmake, pico-sdk, pico-examples, python3 }:
stdenv.mkDerivation {
pname = "tattlekey";
version = "0.0.1";
src = lib.cleanSource ./.;
nativeBuildInputs = [ cmake python3 ];
+ postUnpack = ''
+ # Per https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf page 9
+ cp ${pico-examples}/pico_w/wifi/lwipopts_examples_common.h lwipopts.h
+ '';
cmakeFlags = [
"-DCMAKE_C_COMPILER=/usr/bin/arm-none-eabi-gcc"
"-DCMAKE_CXX_COMPILER=/usr/bin/arm-none-eabi-c++"
diskImageFormat = "qcow2";
};
- pico-sdk = pkgs.pico-sdk.overrideAttrs (old: rec {
- version = "1.5.1";
+ pico-sdk-version = "1.5.1";
+
+ pico-sdk = pkgs.pico-sdk.overrideAttrs (old: {
+ version = pico-sdk-version;
src = pkgs.fetchFromGitHub {
fetchSubmodules = true;
owner = "raspberrypi";
repo = "pico-sdk";
- rev = version;
+ rev = pico-sdk-version;
hash = "sha256-GY5jjJzaENL3ftuU5KpEZAmEZgyFRtLwGVg3W1e/4Ho=";
};
});
+ pico-examples = pkgs.fetchFromGitHub {
+ fetchSubmodules = true;
+ owner = "raspberrypi";
+ repo = "pico-examples";
+ rev = "sdk-${pico-sdk-version}";
+ hash = "sha256-mJIOWUqsQJcg7FUWZePf+pA/YblZskDtIVnUJiz7szU=";
+ };
+
distro = "debian11x86_64";
extraPackages = [
debImage = pkgs.vmTools.diskImageFuns."${distro}" { inherit extraPackages; };
in pkgs.vmTools.runInLinuxImage
-(pkgs.callPackage tattlekey { pico-sdk = pico-sdk; })
+(pkgs.callPackage tattlekey { inherit pico-examples pico-sdk; })