Compare commits

...

6 Commits
4.13 ... 4.14

Author SHA1 Message Date
Stefan Agner
d6d3097111 Bump version to 4.14 2020-10-06 21:13:44 +02:00
Stefan Agner
915f5464c0 Linux: Update kernel 5.4.69 (#887) 2020-10-06 12:16:08 +02:00
Stefan Agner
0db7013427 Drop UART write retry patch from U-Boot (#873)
The patch causes U-Boot freezes in some configurations. The root cause
is that U-Boot does not allow to use the bss section in pre-relocation
code (which is where the UART is used). Drop the patch as it is not
required currently.

See also:
http://u-boot.10912.n7.nabble.com/RPi4-U-Boot-freeze-td424432.html#a427198
2020-10-05 22:20:59 +02:00
Pascal Vizeli
75b09cc42e Add observer plugin (#864) 2020-10-05 22:20:42 +02:00
Stefan Agner
269e97cd1c Make sure udev rule only applies to first PL011 UART (#778) (#862)
The to symlink serial0/1 currently might apply to the first or second
ttyAMAX instance. In downstream, a patch makes sure that the first
PL011 is always ttyAMA0. However, upstream the numbering depends on the
UART alias, which leads to the first PL011 being ttyAMA1.

Check the actual iobase too to make sure we are dealing with the first
PL011 instance.

See also:
05cfe136f7 (diff-2678c183f503319c8d8c09c818af789a)
2020-10-05 22:20:31 +02:00
Stefan Agner
5c2408c023 Resize serial terminal on login (#860) (#863)
The new readline utilty used by the CLI add-on requires the size of the
terminal to be set. Use the resize command to initialize terminal size
on login if we are running on a serial terminal.
2020-10-05 22:20:25 +02:00
9 changed files with 17 additions and 57 deletions

View File

@@ -5,14 +5,14 @@ Default Kernel tree: 5.4
| Board | Version | | Board | Version |
|-------|---------| |-------|---------|
| Open Virtual Appliance | 5.4.63 | | Open Virtual Appliance | 5.4.69 |
| Raspberry Pi | 4.19.127 | | Raspberry Pi | 4.19.127 |
| Raspberry Pi 0-W | 4.19.127 | | Raspberry Pi 0-W | 4.19.127 |
| Raspberry Pi 2 | 4.19.127 | | Raspberry Pi 2 | 4.19.127 |
| Raspberry Pi 3 | 4.19.127 | | Raspberry Pi 3 | 4.19.127 |
| Raspberry Pi 4 | 4.19.127 | | Raspberry Pi 4 | 4.19.127 |
| Tinker Board | 5.4.63 | | Tinker Board | 5.4.69 |
| Odroid-C2 | 5.7.19 | | Odroid-C2 | 5.7.19 |
| Odroid-N2 | 5.7.19 | | Odroid-N2 | 5.7.19 |
| Odroid-XU4 | 5.7.19 | | Odroid-XU4 | 5.7.19 |
| Intel NUC | 5.4.63 | | Intel NUC | 5.4.69 |

View File

@@ -1,49 +0,0 @@
From 5e960cc9b208c53d5385d5a2f6c7f380e9499d4c Mon Sep 17 00:00:00 2001
From: Alexandru Costache <alexandru@balena.io>
Date: Wed, 18 Mar 2020 16:54:28 +0100
Subject: [PATCH] Add a retry limit when writing to uart console
Seems that if the serial console is incorrectly
configured in the dtb, writing to it may block indefinitely,
thus preventing the board from booting.
Let's add a retry count to unblock in such cases.
Upstream-status: Inappropriate [configuration]
Signed-off-by: Alexandru Costache <alexandru@balena.io>
---
drivers/serial/serial_bcm283x_mu.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/serial/serial_bcm283x_mu.c b/drivers/serial/serial_bcm283x_mu.c
index bd1d89ec83..bd033d14c4 100644
--- a/drivers/serial/serial_bcm283x_mu.c
+++ b/drivers/serial/serial_bcm283x_mu.c
@@ -49,7 +49,7 @@ struct bcm283x_mu_regs {
struct bcm283x_mu_priv {
struct bcm283x_mu_regs *regs;
};
-
+static uint16_t putc_retry = 0;
static int bcm283x_mu_serial_getc(struct udevice *dev);
static int bcm283x_mu_serial_setbrg(struct udevice *dev, int baudrate)
@@ -105,8 +105,14 @@ static int bcm283x_mu_serial_putc(struct udevice *dev, const char data)
struct bcm283x_mu_regs *regs = priv->regs;
/* Wait until there is space in the FIFO */
- if (!(readl(&regs->lsr) & BCM283X_MU_LSR_TX_EMPTY))
- return -EAGAIN;
+ if (!(readl(&regs->lsr) & BCM283X_MU_LSR_TX_EMPTY)) {
+ if (++putc_retry) {
+ return -EAGAIN;
+ } else {
+ /* Couldn't write for too long, drop char */
+ return 0;
+ }
+ }
/* Send the character */
writel(data, &regs->io);
--
2.17.1

View File

@@ -1,4 +1,4 @@
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\ KERNEL=="ttyAMA[01]", ATTR{iomem_base}=="0xFE201000", PROGRAM="/bin/sh -c '\
ALIASES=/proc/device-tree/aliases; \ ALIASES=/proc/device-tree/aliases; \
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \ if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
echo 0;\ echo 0;\

View File

@@ -22,7 +22,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc/hassos-hook.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc/hassos-hook.sh"
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.63" BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.69"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64" BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc/kernel.config" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/nuc/kernel.config"
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y

View File

@@ -23,7 +23,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova/hassos-hook.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova/hassos-hook.sh"
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.63" BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.69"
BR2_LINUX_KERNEL_DEFCONFIG="x86_64" BR2_LINUX_KERNEL_DEFCONFIG="x86_64"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova/kernel.config" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config $(BR2_EXTERNAL_HASSOS_PATH)/board/intel/ova/kernel.config"
BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_LZ4=y

View File

@@ -24,7 +24,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_HASSOS_PATH)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/hassos-hook.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/hassos-hook.sh"
BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.63" BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.69"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/kernel.config" BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/kernel.config"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/kernel/hassos.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/docker.config $(BR2_EXTERNAL_HASSOS_PATH)/kernel/device-support.config"

View File

@@ -1,5 +1,5 @@
VERSION_MAJOR=4 VERSION_MAJOR=4
VERSION_BUILD=13 VERSION_BUILD=14
HASSOS_NAME="HassOS" HASSOS_NAME="HassOS"
HASSOS_ID="hassos" HASSOS_ID="hassos"

View File

@@ -26,12 +26,14 @@ DNS="homeassistant/${ARCH}-hassio-dns"
AUDIO="homeassistant/${ARCH}-hassio-audio" AUDIO="homeassistant/${ARCH}-hassio-audio"
CLI="homeassistant/${ARCH}-hassio-cli" CLI="homeassistant/${ARCH}-hassio-cli"
MULTICAST="homeassistant/${ARCH}-hassio-multicast" MULTICAST="homeassistant/${ARCH}-hassio-multicast"
OBSERVER="homeassistant/${ARCH}-hassio-observer"
SUPERVISOR_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.supervisor') SUPERVISOR_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.supervisor')
DNS_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.dns') DNS_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.dns')
CLI_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.cli') CLI_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.cli')
AUDIO_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.audio') AUDIO_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.audio')
MULTICAST_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.multicast') MULTICAST_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.multicast')
OBSERVER_VERSION=$(curl -s ${VERSION_URL} | jq -e -r '.observer')
# Make image # Make image
dd if=/dev/zero of=${DATA_IMG} bs=1G count=1 dd if=/dev/zero of=${DATA_IMG} bs=1G count=1
@@ -72,6 +74,7 @@ docker pull "${CLI}:${CLI_VERSION}"
docker pull "${DNS}:${DNS_VERSION}" docker pull "${DNS}:${DNS_VERSION}"
docker pull "${AUDIO}:${AUDIO_VERSION}" docker pull "${AUDIO}:${AUDIO_VERSION}"
docker pull "${MULTICAST}:${MULTICAST_VERSION}" docker pull "${MULTICAST}:${MULTICAST_VERSION}"
docker pull "${OBSERVER}:${OBSERVER_VERSION}"
# Setup AppArmor # Setup AppArmor
mkdir -p "/mnt/data/supervisor/apparmor" mkdir -p "/mnt/data/supervisor/apparmor"

View File

@@ -3,6 +3,12 @@
# Run logging cli # Run logging cli
# ============================================================================== # ==============================================================================
# Setup terminal size on serial console
if [ "${TERM}" = "vt220" ] || [ "${TERM}" = "vt102" ] || \
[ "${TERM}" = "vt100" ]; then
resize
fi
# Run CLI container # Run CLI container
if [ "$(docker ps -q -f name=hassio_cli)" ]; then if [ "$(docker ps -q -f name=hassio_cli)" ]; then
docker container exec \ docker container exec \