From 1e80961a0bace897c909739967e6f6206eb75f66 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Mon, 2 Sep 2024 09:53:32 -0400 Subject: [PATCH 01/11] Hack CircleCI script to meet build time limitation --- .circleci/config.yml | 125 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 122 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d18da59..e69abbb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,8 +8,114 @@ version: 2.1 orbs: build-tools: nerves-project/build-tools@0.3.0 +jobs: + pre-build: + parameters: + exec: + type: executor + resource-class: + type: string + default: medium + executor: << parameters.exec >> + resource_class: << parameters.resource-class >> + steps: + - checkout + - build-tools/install-elixir: + version: $ELIXIR_VERSION + - build-tools/install-hex-rebar + - build-tools/install-nerves-bootstrap + - build-tools/mix-deps-get + - build-tools/restore-nerves-downloads + - run: + name: Create build dir + command: | + ./deps/nerves_system_br/create-build.sh nerves_defconfig build + - run: + name: make nerves-config + working_directory: build + command: make nerves-config + - run: + name: make linux + working_directory: build + command: make linux + - persist_to_workspace: + root: ~/project + paths: + - build + - deps + + build-system: + parameters: + exec: + type: executor + resource-class: + type: string + default: medium + hex-validate: + type: boolean + default: true + env-setup: + type: steps + default: [] + executor: << parameters.exec >> + resource_class: << parameters.resource-class >> + steps: + - checkout + - steps: << parameters.env-setup >> + - build-tools/install-elixir: + version: $ELIXIR_VERSION + - build-tools/install-hex-rebar + - build-tools/install-nerves-bootstrap + - build-tools/mix-deps-get + - build-tools/restore-nerves-downloads + - when: + condition: << parameters.hex-validate >> + steps: + - run: + name: Validate Hex package + command: mix hex.build + - attach_workspace: + at: ~/project + - run: + name: symlink build dir + command: | + mkdir -p .nerves/artifacts + ln -s $PWD/build $PWD/.nerves/artifacts/nerves_system_rpi5-portable-$(< VERSION) + - run: + name: Build + command: mix compile + - run: + name: Did I really build + command: | + [ -d .nerves ] || (echo "VERSION file needs to be bumped or a config file needs to change to force a build"; exit 1) + - run: + name: Lint + command: mix nerves.system.lint nerves_defconfig + - run: + name: Create artifact dir + command: mkdir -p deploy/system/artifacts + - run: + name: Copy CHANGELOG + command: cp ./CHANGELOG.md deploy/system/CHANGELOG.md + + - run: + name: Create artifacts + command: | + if [ -n "$CIRCLE_TAG" ]; then + TAG=$CIRCLE_TAG + else + TAG=$CIRCLE_SHA1 + fi + mix nerves.artifact ${CIRCLE_PROJECT_REPONAME} --path deploy/system/artifacts + - store_artifacts: + path: deploy/system/artifacts + destination: system + - save_cache: + key: deploy/system-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }} + paths: + - "deploy/system" + workflows: - version: 2 build_test_deploy: jobs: - build-tools/get-br-dependencies: @@ -19,13 +125,25 @@ workflows: filters: tags: only: /.*/ - - build-tools/build-system: + - pre-build: + exec: + <<: *exec + resource-class: large + context: org-global + requires: + - build-tools/get-br-dependencies + filters: + tags: + only: /.*/ + # - build-tools/build-system: + - build-system: exec: <<: *exec resource-class: large context: org-global requires: - build-tools/get-br-dependencies + - pre-build filters: tags: only: /.*/ @@ -34,7 +152,8 @@ workflows: <<: *exec context: org-global requires: - - build-tools/build-system + # - build-tools/build-system + - build-system filters: branches: ignore: /.*/ From 648b9fc0112392f41d0c3ad2432208fe9d5bbe8d Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Wed, 9 Oct 2024 22:14:42 -0400 Subject: [PATCH 02/11] nerves_system_br: bump to v1.29.0 --- .circleci/config.yml | 2 +- mix.exs | 2 +- mix.lock | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e69abbb..a8d5da8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,6 @@ exec: &exec name: build-tools/nerves-system-br - version: 1.28.3 + version: 1.29.0 elixir: 1.17.2-otp-27 version: 2.1 diff --git a/mix.exs b/mix.exs index 61ac5a7..3e0b11e 100644 --- a/mix.exs +++ b/mix.exs @@ -68,7 +68,7 @@ defmodule NervesSystemRpi4.MixProject do defp deps do [ {:nerves, "~> 1.11", runtime: false}, - {:nerves_system_br, "1.28.3", runtime: false}, + {:nerves_system_br, "1.29.0", runtime: false}, {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 13.2.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} diff --git a/mix.lock b/mix.lock index 56f93e1..606eeac 100644 --- a/mix.lock +++ b/mix.lock @@ -1,5 +1,5 @@ %{ - "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, + "castore": {:hex, :castore, "1.0.9", "5cc77474afadf02c7c017823f460a17daa7908e991b0cc917febc90e466a375c", [:mix], [], "hexpm", "5ea956504f1ba6f2b4eb707061d8e17870de2bee95fb59d512872c2ef06925e7"}, "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"}, "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"}, @@ -7,8 +7,8 @@ "makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"}, "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"}, - "nerves": {:hex, :nerves, "1.11.1", "bd31dc8bd8212478a87702c06b5475482dd65d1c3395930f16279d488624ab84", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "18e815823bb110b0c82a667bcf8711653dfa94237422df79013aba8ba831dd2c"}, - "nerves_system_br": {:hex, :nerves_system_br, "1.28.3", "979ac2d9ca66e45cb14ffb440a65e691892569070bb2104a9db65cb7a847b9f7", [:mix], [], "hexpm", "4bb6df0823696762c4e81c944fe3e08f46136e982b6bd34258a936b43b389a90"}, + "nerves": {:hex, :nerves, "1.11.2", "a6733509c433f244aaf8a3aef28fcc3cc653fd5c5e3dc3f475b233730dbb1b2a", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0b554421e7d1b82b03955fda3d966c83ab2414c5ed52f57ad7f4bcdc98279c57"}, + "nerves_system_br": {:hex, :nerves_system_br, "1.29.0", "2e7129862bb8004e33e56685538c10eb529ea4617e52e190d8b9b0ee78a0680e", [:mix], [], "hexpm", "5b663a53ed638d9be78c251048a8f7220682f6258bc98468f0b02c6086ac1530"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "13.2.0", "68fcd2c21c86cceb9545948fae052d72f88b7c7c10205b252dac88559e2a3369", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.10.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "f92212606919a062f975e7bd82ed8a1b95bd4864abb3444cd0d5d0e610e94cc5"}, "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.10.0", "c6b35377a0b7a93633a8673a788f1580fe1fa06083374b0e4df36da65828d2ef", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "e4ae1a2b84de3502ecac195765819be0ce2834eb276553163a7c03133f1760f1"}, From 333ba1bb3396ae2ff32a1d606633198feed8137d Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Sat, 5 Oct 2024 20:59:24 -0400 Subject: [PATCH 03/11] Bump GCC to 14.2.0 --- mix.exs | 2 +- mix.lock | 4 ++-- nerves_defconfig | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mix.exs b/mix.exs index 3e0b11e..cb2d9fa 100644 --- a/mix.exs +++ b/mix.exs @@ -69,7 +69,7 @@ defmodule NervesSystemRpi4.MixProject do [ {:nerves, "~> 1.11", runtime: false}, {:nerves_system_br, "1.29.0", runtime: false}, - {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 13.2.0", runtime: false}, + {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 14.2.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} ] diff --git a/mix.lock b/mix.lock index 606eeac..9c65d66 100644 --- a/mix.lock +++ b/mix.lock @@ -10,7 +10,7 @@ "nerves": {:hex, :nerves, "1.11.2", "a6733509c433f244aaf8a3aef28fcc3cc653fd5c5e3dc3f475b233730dbb1b2a", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0b554421e7d1b82b03955fda3d966c83ab2414c5ed52f57ad7f4bcdc98279c57"}, "nerves_system_br": {:hex, :nerves_system_br, "1.29.0", "2e7129862bb8004e33e56685538c10eb529ea4617e52e190d8b9b0ee78a0680e", [:mix], [], "hexpm", "5b663a53ed638d9be78c251048a8f7220682f6258bc98468f0b02c6086ac1530"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, - "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "13.2.0", "68fcd2c21c86cceb9545948fae052d72f88b7c7c10205b252dac88559e2a3369", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.10.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "f92212606919a062f975e7bd82ed8a1b95bd4864abb3444cd0d5d0e610e94cc5"}, - "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.10.0", "c6b35377a0b7a93633a8673a788f1580fe1fa06083374b0e4df36da65828d2ef", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "e4ae1a2b84de3502ecac195765819be0ce2834eb276553163a7c03133f1760f1"}, + "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "14.2.0", "b9ad2f73f870a76f65afbfb67d7edc029574051220e6ebbfd9bce519965df4ac", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.11.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "4d41c3e575b3d59d15c246e4602956a9d7f6e8d0dc5c4538a322b14ce6d8d544"}, + "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, } diff --git a/nerves_defconfig b/nerves_defconfig index f53dfe7..c876894 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -3,9 +3,8 @@ BR2_cortex_a72=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y -BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v13.2.0/nerves_toolchain_aarch64_nerves_linux_gnu-linux_${shell uname -m}-13.2.0-CE4B5F8.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v14.2.0/nerves_toolchain_aarch64_nerves_linux_gnu-linux_${shell uname -m}-14.2.0-C3B80E7.tar.xz" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="aarch64-nerves-linux-gnu" -BR2_TOOLCHAIN_EXTERNAL_GCC_13=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_4=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set From 5f537dff79395ed33594368251abfa1c84627e01 Mon Sep 17 00:00:00 2001 From: Connor Rigby Date: Thu, 24 Oct 2024 13:40:00 -0600 Subject: [PATCH 04/11] Use schedutil governor by default This is such a common default that there's no reason for Nerves not to use it as well. It also removes one potential source of differences when people see performance differences between Raspberry Pi OS and Nerves. The article at https://lwn.net/Articles/682391/ describes the issues and why schedutil is a good option unless there are overarching concerns with a particular project. --- linux-6.6.defconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/linux-6.6.defconfig b/linux-6.6.defconfig index 5a1acf9..23ab933 100644 --- a/linux-6.6.defconfig +++ b/linux-6.6.defconfig @@ -35,11 +35,10 @@ CONFIG_PM=y CONFIG_CPU_IDLE=y CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y CONFIG_CPUFREQ_DT=y CONFIG_ARM_RASPBERRYPI_CPUFREQ=y CONFIG_KPROBES=y From 6086d4eb29d107db06b80bcce570b3a76048910b Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Thu, 21 Nov 2024 07:31:36 -0500 Subject: [PATCH 05/11] nerves_system_br: bump to v1.29.1 --- .circleci/config.yml | 4 ++-- mix.exs | 2 +- mix.lock | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a8d5da8..0d00081 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,7 +1,7 @@ exec: &exec name: build-tools/nerves-system-br - version: 1.29.0 - elixir: 1.17.2-otp-27 + version: 1.29.1 + elixir: 1.17.3-otp-27 version: 2.1 diff --git a/mix.exs b/mix.exs index cb2d9fa..7731180 100644 --- a/mix.exs +++ b/mix.exs @@ -68,7 +68,7 @@ defmodule NervesSystemRpi4.MixProject do defp deps do [ {:nerves, "~> 1.11", runtime: false}, - {:nerves_system_br, "1.29.0", runtime: false}, + {:nerves_system_br, "1.29.1", runtime: false}, {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 14.2.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} diff --git a/mix.lock b/mix.lock index 9c65d66..82e6fc7 100644 --- a/mix.lock +++ b/mix.lock @@ -1,14 +1,14 @@ %{ - "castore": {:hex, :castore, "1.0.9", "5cc77474afadf02c7c017823f460a17daa7908e991b0cc917febc90e466a375c", [:mix], [], "hexpm", "5ea956504f1ba6f2b4eb707061d8e17870de2bee95fb59d512872c2ef06925e7"}, + "castore": {:hex, :castore, "1.0.10", "43bbeeac820f16c89f79721af1b3e092399b3a1ecc8df1a472738fd853574911", [:mix], [], "hexpm", "1b0b7ea14d889d9ea21202c43a4fa015eb913021cb535e8ed91946f4b77a8848"}, "earmark_parser": {:hex, :earmark_parser, "1.4.41", "ab34711c9dc6212dda44fcd20ecb87ac3f3fce6f0ca2f28d4a00e4154f8cd599", [:mix], [], "hexpm", "a81a04c7e34b6617c2792e291b5a2e57ab316365c2644ddc553bb9ed863ebefa"}, - "elixir_make": {:hex, :elixir_make, "0.8.4", "4960a03ce79081dee8fe119d80ad372c4e7badb84c493cc75983f9d3bc8bde0f", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.0", [hex: :certifi, repo: "hexpm", optional: true]}], "hexpm", "6e7f1d619b5f61dfabd0a20aa268e575572b542ac31723293a4c1a567d5ef040"}, - "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"}, + "elixir_make": {:hex, :elixir_make, "0.9.0", "6484b3cd8c0cee58f09f05ecaf1a140a8c97670671a6a0e7ab4dc326c3109726", [:mix], [], "hexpm", "db23d4fd8b757462ad02f8aa73431a426fe6671c80b200d9710caf3d1dd0ffdb"}, + "ex_doc": {:hex, :ex_doc, "0.35.1", "de804c590d3df2d9d5b8aec77d758b00c814b356119b3d4455e4b8a8687aecaf", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2121c6402c8d44b05622677b761371a759143b958c6c19f6558ff64d0aed40df"}, "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, - "makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"}, - "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, + "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, + "makeup_elixir": {:hex, :makeup_elixir, "1.0.0", "74bb8348c9b3a51d5c589bf5aebb0466a84b33274150e3b6ece1da45584afc82", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "49159b7d7d999e836bedaf09dcf35ca18b312230cf901b725a64f3f42e407983"}, "makeup_erlang": {:hex, :makeup_erlang, "1.0.1", "c7f58c120b2b5aa5fd80d540a89fdf866ed42f1f3994e4fe189abebeab610839", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "8a89a1eeccc2d798d6ea15496a6e4870b75e014d1af514b1b71fa33134f57814"}, "nerves": {:hex, :nerves, "1.11.2", "a6733509c433f244aaf8a3aef28fcc3cc653fd5c5e3dc3f475b233730dbb1b2a", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0b554421e7d1b82b03955fda3d966c83ab2414c5ed52f57ad7f4bcdc98279c57"}, - "nerves_system_br": {:hex, :nerves_system_br, "1.29.0", "2e7129862bb8004e33e56685538c10eb529ea4617e52e190d8b9b0ee78a0680e", [:mix], [], "hexpm", "5b663a53ed638d9be78c251048a8f7220682f6258bc98468f0b02c6086ac1530"}, + "nerves_system_br": {:hex, :nerves_system_br, "1.29.1", "afa5337d66e9770d48dc8bf3a4da41f63dcbd1f0b4639d67fa08d449ad752668", [:mix], [], "hexpm", "33f5afe50fa603a8cdb22e281c18fb98de9f3012598af1ab77849d1dbe59747e"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "14.2.0", "b9ad2f73f870a76f65afbfb67d7edc029574051220e6ebbfd9bce519965df4ac", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.11.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "4d41c3e575b3d59d15c246e4602956a9d7f6e8d0dc5c4538a322b14ce6d8d544"}, "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, From 67662a3ce06206ed6db28ddc7c48d45bde9b6407 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Thu, 21 Nov 2024 16:51:43 -0500 Subject: [PATCH 06/11] Switch to GitHub Actions --- .circleci/config.yml | 161 --------------------------------------- .github/workflows/ci.yml | 55 +++++++++++++ 2 files changed, 55 insertions(+), 161 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/ci.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 0d00081..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,161 +0,0 @@ -exec: &exec - name: build-tools/nerves-system-br - version: 1.29.1 - elixir: 1.17.3-otp-27 - -version: 2.1 - -orbs: - build-tools: nerves-project/build-tools@0.3.0 - -jobs: - pre-build: - parameters: - exec: - type: executor - resource-class: - type: string - default: medium - executor: << parameters.exec >> - resource_class: << parameters.resource-class >> - steps: - - checkout - - build-tools/install-elixir: - version: $ELIXIR_VERSION - - build-tools/install-hex-rebar - - build-tools/install-nerves-bootstrap - - build-tools/mix-deps-get - - build-tools/restore-nerves-downloads - - run: - name: Create build dir - command: | - ./deps/nerves_system_br/create-build.sh nerves_defconfig build - - run: - name: make nerves-config - working_directory: build - command: make nerves-config - - run: - name: make linux - working_directory: build - command: make linux - - persist_to_workspace: - root: ~/project - paths: - - build - - deps - - build-system: - parameters: - exec: - type: executor - resource-class: - type: string - default: medium - hex-validate: - type: boolean - default: true - env-setup: - type: steps - default: [] - executor: << parameters.exec >> - resource_class: << parameters.resource-class >> - steps: - - checkout - - steps: << parameters.env-setup >> - - build-tools/install-elixir: - version: $ELIXIR_VERSION - - build-tools/install-hex-rebar - - build-tools/install-nerves-bootstrap - - build-tools/mix-deps-get - - build-tools/restore-nerves-downloads - - when: - condition: << parameters.hex-validate >> - steps: - - run: - name: Validate Hex package - command: mix hex.build - - attach_workspace: - at: ~/project - - run: - name: symlink build dir - command: | - mkdir -p .nerves/artifacts - ln -s $PWD/build $PWD/.nerves/artifacts/nerves_system_rpi5-portable-$(< VERSION) - - run: - name: Build - command: mix compile - - run: - name: Did I really build - command: | - [ -d .nerves ] || (echo "VERSION file needs to be bumped or a config file needs to change to force a build"; exit 1) - - run: - name: Lint - command: mix nerves.system.lint nerves_defconfig - - run: - name: Create artifact dir - command: mkdir -p deploy/system/artifacts - - run: - name: Copy CHANGELOG - command: cp ./CHANGELOG.md deploy/system/CHANGELOG.md - - - run: - name: Create artifacts - command: | - if [ -n "$CIRCLE_TAG" ]; then - TAG=$CIRCLE_TAG - else - TAG=$CIRCLE_SHA1 - fi - mix nerves.artifact ${CIRCLE_PROJECT_REPONAME} --path deploy/system/artifacts - - store_artifacts: - path: deploy/system/artifacts - destination: system - - save_cache: - key: deploy/system-{{ .Revision }}-{{ .Environment.CIRCLE_TAG }} - paths: - - "deploy/system" - -workflows: - build_test_deploy: - jobs: - - build-tools/get-br-dependencies: - exec: - <<: *exec - context: org-global - filters: - tags: - only: /.*/ - - pre-build: - exec: - <<: *exec - resource-class: large - context: org-global - requires: - - build-tools/get-br-dependencies - filters: - tags: - only: /.*/ - # - build-tools/build-system: - - build-system: - exec: - <<: *exec - resource-class: large - context: org-global - requires: - - build-tools/get-br-dependencies - - pre-build - filters: - tags: - only: /.*/ - - build-tools/deploy-system: - exec: - <<: *exec - context: org-global - requires: - # - build-tools/build-system - - build-system - filters: - branches: - ignore: /.*/ - tags: - only: /v.*/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9edd727 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: [push] + +env: + OTP_VERSION: 27.1.2 + ELIXIR_VERSION: 1.17.3-otp-27 + NERVES_BOOTSTRAP_VERSION: 1.13.0 + +permissions: + id-token: write + contents: read + +jobs: + get-br-dependencies: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: gridpoint-com/actions-nerves-system@v1 + - name: Get Buildroot Dependencies + uses: ./.actions/get-br-dependencies + with: + otp-version: ${{ env.OTP_VERSION }} + elixir-version: ${{ env.ELIXIR_VERSION }} + nerves-bootstrap-version: ${{ env.NERVES_BOOTSTRAP_VERSION }} + push-to-download-site: false + download-site-url: ${{ vars.PUBLIC_S3_SITE }} + download-site-bucket-uri: ${{ vars.S3_BUCKET }} + aws-role: ${{ secrets.AWS_ROLE }} + aws-region: ${{ vars.AWS_REGION }} + build-system: + needs: [get-br-dependencies] + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: gridpoint-com/actions-nerves-system@v1 + - name: Build nerves_system + uses: ./.actions/build-system + with: + otp-version: ${{ env.OTP_VERSION }} + elixir-version: ${{ env.ELIXIR_VERSION }} + nerves-bootstrap-version: ${{ env.NERVES_BOOTSTRAP_VERSION }} + deploy-system: + needs: [build-system] + if: github.ref_type == 'tag' + runs-on: ubuntu-22.04 + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + - uses: gridpoint-com/actions-nerves-system@v1 + - name: Deploy nerves_system + uses: ./.actions/deploy-system + with: + github-token: ${{ secrets.GITHUB_TOKEN }} From 008ff4463db4ad3fad6c92f051d10101dbe074f8 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Fri, 22 Nov 2024 20:44:24 -0500 Subject: [PATCH 07/11] Revert "Bump GCC to 14.2.0" This reverts commit 333ba1bb3396ae2ff32a1d606633198feed8137d. This is for consistency with other Nerves systems until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117675 is resolved. --- mix.exs | 2 +- mix.lock | 4 ++-- nerves_defconfig | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mix.exs b/mix.exs index 7731180..385a8ce 100644 --- a/mix.exs +++ b/mix.exs @@ -69,7 +69,7 @@ defmodule NervesSystemRpi4.MixProject do [ {:nerves, "~> 1.11", runtime: false}, {:nerves_system_br, "1.29.1", runtime: false}, - {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 14.2.0", runtime: false}, + {:nerves_toolchain_aarch64_nerves_linux_gnu, "~> 13.2.0", runtime: false}, {:nerves_system_linter, "~> 0.4", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false} ] diff --git a/mix.lock b/mix.lock index 82e6fc7..14c0d17 100644 --- a/mix.lock +++ b/mix.lock @@ -10,7 +10,7 @@ "nerves": {:hex, :nerves, "1.11.2", "a6733509c433f244aaf8a3aef28fcc3cc653fd5c5e3dc3f475b233730dbb1b2a", [:make, :mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:elixir_make, "~> 0.6", [hex: :elixir_make, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "0b554421e7d1b82b03955fda3d966c83ab2414c5ed52f57ad7f4bcdc98279c57"}, "nerves_system_br": {:hex, :nerves_system_br, "1.29.1", "afa5337d66e9770d48dc8bf3a4da41f63dcbd1f0b4639d67fa08d449ad752668", [:mix], [], "hexpm", "33f5afe50fa603a8cdb22e281c18fb98de9f3012598af1ab77849d1dbe59747e"}, "nerves_system_linter": {:hex, :nerves_system_linter, "0.4.0", "81e9a6f5018fe5fb67d7b43a04dca36156f62b55b5554eb2fa3964d3889d09cd", [:mix], [], "hexpm", "b5bd8480ce7a6317f4601ff41fd2f594bdf76aff0bdf6dcfac571c3fa1ec5f82"}, - "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "14.2.0", "b9ad2f73f870a76f65afbfb67d7edc029574051220e6ebbfd9bce519965df4ac", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.11.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "4d41c3e575b3d59d15c246e4602956a9d7f6e8d0dc5c4538a322b14ce6d8d544"}, - "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.11.0", "829b312eb94ea2bc4733299aeccbe1bbe67430cebf2d23cc28df7cc2ea7dc572", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "c98ab17dd2210a50e948fb5ae4ef418e651e10cbb868f00c39a1f3541cec5467"}, + "nerves_toolchain_aarch64_nerves_linux_gnu": {:hex, :nerves_toolchain_aarch64_nerves_linux_gnu, "13.2.0", "68fcd2c21c86cceb9545948fae052d72f88b7c7c10205b252dac88559e2a3369", [:mix], [{:nerves, "~> 1.4", [hex: :nerves, repo: "hexpm", optional: false]}, {:nerves_toolchain_ctng, "~> 1.10.0", [hex: :nerves_toolchain_ctng, repo: "hexpm", optional: false]}], "hexpm", "f92212606919a062f975e7bd82ed8a1b95bd4864abb3444cd0d5d0e610e94cc5"}, + "nerves_toolchain_ctng": {:hex, :nerves_toolchain_ctng, "1.10.0", "c6b35377a0b7a93633a8673a788f1580fe1fa06083374b0e4df36da65828d2ef", [:mix], [{:nerves, "~> 1.0", [hex: :nerves, repo: "hexpm", optional: false]}], "hexpm", "e4ae1a2b84de3502ecac195765819be0ce2834eb276553163a7c03133f1760f1"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, } diff --git a/nerves_defconfig b/nerves_defconfig index c876894..f53dfe7 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -3,8 +3,9 @@ BR2_cortex_a72=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y -BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v14.2.0/nerves_toolchain_aarch64_nerves_linux_gnu-linux_${shell uname -m}-14.2.0-C3B80E7.tar.xz" +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/nerves-project/toolchains/releases/download/v13.2.0/nerves_toolchain_aarch64_nerves_linux_gnu-linux_${shell uname -m}-13.2.0-CE4B5F8.tar.xz" BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="aarch64-nerves-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_13=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_4=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set From 9d3a88ecc3bec9d61166dcc1a6716a9047b73260 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Sat, 23 Nov 2024 18:42:20 +0000 Subject: [PATCH 08/11] linux: bump to 6.6.51 --- nerves_defconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nerves_defconfig b/nerves_defconfig index f53dfe7..25a9183 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -28,7 +28,7 @@ BR2_ROOTFS_POST_BUILD_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-build.sh ${BR2_EXTERN BR2_ROOTFS_POST_IMAGE_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-createfs.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/stable_20240529.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/stable_20241008.tar.gz" BR2_LINUX_KERNEL_PATCH="${NERVES_DEFCONFIG_DIR}/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-6.6.defconfig" @@ -48,7 +48,7 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_RPI_FIRMWARE=y -BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20240529" +BR2_PACKAGE_RPI_FIRMWARE_CUSTOM_VERSION="1.20241008" BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y BR2_PACKAGE_PIGPIO=y # BR2_PACKAGE_RNG_TOOLS_JITTERENTROPY_LIBRARY is not set From 6410ddcd54acaf65d25437c6831e13fdf27387ed Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Fri, 30 Aug 2024 21:39:17 -0400 Subject: [PATCH 09/11] Fix missing QMI support QMI was intended to be enabled in 0aaee4f1, but not all of the options were enabled. --- linux-6.6.defconfig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/linux-6.6.defconfig b/linux-6.6.defconfig index 23ab933..557aacc 100644 --- a/linux-6.6.defconfig +++ b/linux-6.6.defconfig @@ -195,6 +195,15 @@ CONFIG_BCMGENET=y # CONFIG_NET_VENDOR_VIA is not set # CONFIG_NET_VENDOR_WIZNET is not set CONFIG_USB_NET_DRIVERS=m +CONFIG_USB_USBNET=m +# CONFIG_USB_NET_AX8817X is not set +# CONFIG_USB_NET_AX88179_178A is not set +# CONFIG_USB_NET_CDCETHER is not set +# CONFIG_USB_NET_CDC_NCM is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_USB_NET_QMI_WWAN=m # CONFIG_WLAN_VENDOR_ADMTEK is not set # CONFIG_WLAN_VENDOR_ATH is not set # CONFIG_WLAN_VENDOR_ATMEL is not set From 13400bf95f964532d431b709a49369573dcd32ae Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Tue, 15 Oct 2024 09:26:57 -0400 Subject: [PATCH 10/11] linux: enable PREEMPT_RT This includes the real-time patch set and enables PREEMPT_RT. --- linux-6.6.defconfig | 8 ++++++-- nerves_defconfig | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/linux-6.6.defconfig b/linux-6.6.defconfig index 557aacc..cf940a1 100644 --- a/linux-6.6.defconfig +++ b/linux-6.6.defconfig @@ -4,7 +4,7 @@ CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT=y +CONFIG_PREEMPT_RT=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_MEMCG=y @@ -15,11 +15,13 @@ CONFIG_CGROUP_FREEZER=y CONFIG_CPUSETS=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y +CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set CONFIG_SCHED_AUTOGROUP=y +CONFIG_EXPERT=y # CONFIG_PERF_EVENTS is not set CONFIG_PROFILING=y CONFIG_ARCH_BCM=y @@ -276,9 +278,11 @@ CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_SUPPORT_FILTER=y CONFIG_MEDIA_CAMERA_SUPPORT=y CONFIG_MEDIA_PLATFORM_SUPPORT=y CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_BCM2835_UNICAM=m CONFIG_VIDEO_RASPBERRYPI_PISP_BE=m CONFIG_VIDEO_IMX219=m @@ -355,7 +359,6 @@ CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_ONESHOT=y CONFIG_LEDS_TRIGGER_HEARTBEAT=y CONFIG_LEDS_TRIGGER_BACKLIGHT=y -CONFIG_LEDS_TRIGGER_CPU=y CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_LEDS_TRIGGER_TRANSIENT=y CONFIG_LEDS_TRIGGER_INPUT=y @@ -413,3 +416,4 @@ CONFIG_DMA_CMA=y CONFIG_CMA_SIZE_MBYTES=5 CONFIG_PRINTK_TIME=y CONFIG_PANIC_TIMEOUT=10 +# CONFIG_FTRACE is not set diff --git a/nerves_defconfig b/nerves_defconfig index 25a9183..dbf8a7b 100644 --- a/nerves_defconfig +++ b/nerves_defconfig @@ -29,7 +29,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="${NERVES_DEFCONFIG_DIR}/post-createfs.sh" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/raspberrypi/linux/archive/refs/tags/stable_20241008.tar.gz" -BR2_LINUX_KERNEL_PATCH="${NERVES_DEFCONFIG_DIR}/linux" +BR2_LINUX_KERNEL_PATCH="http://cdn.kernel.org/pub/linux/kernel/projects/rt/6.6/patch-6.6.53-rt44.patch.gz ${NERVES_DEFCONFIG_DIR}/linux" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="${NERVES_DEFCONFIG_DIR}/linux-6.6.defconfig" BR2_LINUX_KERNEL_XZ=y From 2c44c672518854ebd19e0fb1a6df775bbffe4017 Mon Sep 17 00:00:00 2001 From: Frank Hunleth Date: Tue, 26 Nov 2024 15:49:24 -0500 Subject: [PATCH 11/11] v1.29.0 release --- CHANGELOG.md | 22 +++++++++++++++++++++- VERSION | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c42aa68..87b13c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,26 @@ follows: releases, and Linux kernel updates. They're also made to fix bugs and add features to the build infrastructure. +## v1.29.0 + +This is a major Erlang and Buildroot update. + +Please see the [nerves_system_br v1.29.0 release notes](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.29.0) +for upgrade instructions if you've forked this system. + +* Changes + * Applied and enabled the Real-Time Linux patch set, PREEMPT_RT. Please see + write-ups on the web for benefits and how to use. The impact of this patch + shouldn't be noticeable to most Nerves users. + * Switch CPU frequency governor from conservative to the more modern + schedutil. See [LWN article](https://lwn.net/Articles/682391/) for details. + * Fix missing option for out-of-the-box QMI (cellular modem) support + +* Updated dependencies + * [nerves_system_br v1.29.1](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.29.1) + * [Buildroot 2024.08.2](https://lore.kernel.org/buildroot/871pzex7gn.fsf@dell.be.48ers.dk/T/) + * Linux 6.6.51 (Raspberry Pi stable_20241008 release) + ## v1.28.1 This is a security/bug fix update. @@ -29,7 +49,7 @@ This is a security/bug fix update. ## v1.28.0 -This is a major Erlang and Buildroot. +This is a major Erlang and Buildroot update. Please see the [nerves_system_br v1.28.0 release notes](https://github.com/nerves-project/nerves_system_br/releases/tag/v1.28.0) for upgrade instructions if you've forked this system. diff --git a/VERSION b/VERSION index 450a687..5e57fb8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.28.1 +1.29.0