diff --git a/bundles/apt/files/sources.list-raspbian-buster b/bundles/apt/files/sources.list-raspbian-buster new file mode 100644 index 0000000..d52d1f9 --- /dev/null +++ b/bundles/apt/files/sources.list-raspbian-buster @@ -0,0 +1 @@ +deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi diff --git a/bundles/apt/items.py b/bundles/apt/items.py index 0f3f92d..05528d0 100644 --- a/bundles/apt/items.py +++ b/bundles/apt/items.py @@ -7,6 +7,9 @@ supported_os = { 12: 'bookworm', 99: 'unstable', }, + 'raspbian': { + 10: 'buster', + }, } try: diff --git a/bundles/apt/metadata.py b/bundles/apt/metadata.py index 526f318..df84473 100644 --- a/bundles/apt/metadata.py +++ b/bundles/apt/metadata.py @@ -21,9 +21,6 @@ defaults = { 'cron/jobs/upgrade-and-reboot' ) def patchday(metadata): - if not node.metadata.get('apt/unattended-upgrades/enabled', True): - return {} - day = metadata.get('apt/unattended-upgrades/day') hour = metadata.get('apt/unattended-upgrades/hour') diff --git a/bundles/mosquitto/items.py b/bundles/mosquitto/items.py index 1b16413..92eb1b5 100644 --- a/bundles/mosquitto/items.py +++ b/bundles/mosquitto/items.py @@ -5,6 +5,12 @@ files = { 'svc_systemd:mosquitto:restart', }, }, + '/usr/local/bin/tasmota-telegraf-plugin': { + 'mode': '0755', + 'needs': { + 'pkg_apt:python3-paho-mqtt', + }, + }, } svc_systemd = { @@ -17,12 +23,6 @@ svc_systemd = { } if node.has_bundle('telegraf'): - files['/usr/local/bin/tasmota-telegraf-plugin'] = { - 'mode': '0755', - 'needs': { - 'pkg_apt:python3-paho-mqtt', - }, - 'triggers': { - 'svc_systemd:telegraf:restart', - }, + files['/usr/local/bin/tasmota-telegraf-plugin']['triggers'] = { + 'svc_systemd:telegraf:restart', } diff --git a/bundles/mosquitto/metadata.py b/bundles/mosquitto/metadata.py index 213dac6..66199ac 100644 --- a/bundles/mosquitto/metadata.py +++ b/bundles/mosquitto/metadata.py @@ -5,6 +5,7 @@ defaults = { 'packages': { 'mosquitto': {}, 'mosquitto-clients': {}, + 'python3-paho-mqtt': {}, # for telegraf plugin }, }, 'icinga2_api': { @@ -23,9 +24,6 @@ defaults = { }, } -if node.has_bundle('telegraf'): - defaults['apt']['packages']['python3-paho-mqtt'] = {} - @metadata_reactor.provides( 'firewall/port_rules', diff --git a/bundles/raspberrypi/files/config.txt b/bundles/raspberrypi/files/config.txt index bf6751e..00079b2 100644 --- a/bundles/raspberrypi/files/config.txt +++ b/bundles/raspberrypi/files/config.txt @@ -1,30 +1,22 @@ disable_overscan=1 +hdmi_force_hotplug=1 +dtparam=spi=on dtparam=audio=on -dtoverlay=vc4-kms-v3d +dtoverlay=vc4-fkms-v3d max_framebuffers=2 +hdmi_drive=2 force_turbo=1 -gpu_mem=${node.metadata.get('raspberrypi/gpu_mem', 128)} - -% if node.metadata.get('raspberrypi/enable_display'): -display_auto_detect=1 -% else: -dtparam=i2c_arm=on -dtparam=i2s=on -dtparam=spi=on -hdmi_drive=2 -hdmi_force_hotplug=1 -% endif +gpu_mem=${node.metadata['raspberrypi'].get('gpu_mem', 128)} % if node.os == 'debian': arm_64bit=1 % endif -arm_boost=1 -% for item in sorted(node.metadata.get('raspberrypi/config.txt', set())): +% for item in sorted(node.metadata['raspberrypi'].get('config.txt', set())): ${item} % endfor -% if node.metadata.get('raspberrypi/enable_camera', False): -camera_auto_detect=1 +% if node.metadata['raspberrypi'].get('camera', False): +start_x=1 % endif diff --git a/bundles/raspberrypi/items.py b/bundles/raspberrypi/items.py index 41f5544..aab459a 100644 --- a/bundles/raspberrypi/items.py +++ b/bundles/raspberrypi/items.py @@ -15,11 +15,11 @@ actions = { } files = { - '/boot/firmware/cmdline.txt': { + '/boot/cmdline.txt': { 'content': ' '.join(sorted(node.metadata['raspberrypi']['cmdline'])), **file_perms, }, - '/boot/firmware/config.txt': { + '/boot/config.txt': { 'content_type': 'mako', 'context': node.metadata['raspberrypi'], **file_perms, diff --git a/bundles/raspberrypi/metadata.py b/bundles/raspberrypi/metadata.py index 80eac1a..a4c10c2 100644 --- a/bundles/raspberrypi/metadata.py +++ b/bundles/raspberrypi/metadata.py @@ -1,6 +1,5 @@ defaults = { 'apt': { - 'clean_old_kernels': False, 'packages': { 'dhcpcd5': { 'installed': False, @@ -15,16 +14,9 @@ defaults = { 'installed': False, }, }, - 'repos': { - 'raspi': { - 'install_gpg_key': False, - 'items': { - 'deb http://archive.raspberrypi.org/debian/ {os_release} main', - }, - }, - }, }, 'raspberrypi': { + 'default-target': 'multi-user.target', 'cmdline': { 'console=tty1', 'root=/dev/mmcblk0p2', @@ -36,8 +28,6 @@ defaults = { 'plymouth.ignore-serial-consoles', 'net.ifnames=0', }, - 'default-target': 'multi-user.target', - 'enable_display': False, }, 'systemd': { 'journal': { @@ -47,19 +37,3 @@ defaults = { }, }, } - - -@metadata_reactor.provides( - 'raspberrypi/cmdline', -) -def display(metadata): - if not metadata.get('raspberrypi/enable_display'): - return {} - - return { - 'raspberrypi': { - 'cmdline': { - 'video=DSI-1:800x480@60,rotate=180', - }, - }, - }