Hey y’all!
The setup
I’ve got a Raspberry Pi 4 running the latest beta 64 bit version of Raspberry Pi OS Lite taken from the official servers, with HomeAssistant Supervised running on top as per this community guide.
The issue
It works perfectly overall and doesn’t even show the unsupported warning if that matters, but it’s my assumption that NetworkManager conflicts with default RaspiOS settings or something along these lines because the IP address related settings in HA’s UI don’t work, and nmcli
shows the eth/wlan interfaces as unavailable.
HA error
21-02-18 16:26:53 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/lib/python3.8/site-packages/sentry_sdk/integrations/aiohttp.py", line 123, in sentry_app_handle
reraise(*_capture_exception(hub))
File "/usr/local/lib/python3.8/site-packages/sentry_sdk/_compat.py", line 54, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/sentry_sdk/integrations/aiohttp.py", line 113, in sentry_app_handle
response = await old_handle(self, request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.8/site-packages/aiohttp/web_middlewares.py", line 118, in impl
return await handler(request)
File "/usr/src/supervisor/supervisor/api/security.py", line 134, in system_validation
return await handler(request)
File "/usr/src/supervisor/supervisor/api/security.py", line 196, in token_validation
return await handler(request)
File "/usr/src/supervisor/supervisor/api/utils.py", line 61, in wrap_api
answer = await method(api, *args, **kwargs)
File "/usr/src/supervisor/supervisor/api/network.py", line 218, in interface_update
await asyncio.shield(self.sys_host.network.apply_changes(interface))
File "/usr/src/supervisor/supervisor/host/network.py", line 137, in apply_changes
settings = interface_update_payload(interface)
File "/usr/src/supervisor/supervisor/dbus/payloads/generate.py", line 60, in interface_update_payload
return template.render(interface=interface, name=name, uuid=uuid)
File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 1090, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 832, in handle_exception
reraise(*rewrite_traceback_stack(source=source))
File "/usr/local/lib/python3.8/site-packages/jinja2/_compat.py", line 28, in reraise
raise value.with_traceback(tb)
File "<template>", line 83, in top-level template code
File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 471, in getattr
return getattr(obj, attribute)
jinja2.exceptions.UndefinedError: 'None' has no attribute 'mode'
nmcli dev
➜ ~ nmcli dev
DEVICE TYPE STATE CONNECTION
eth0 ethernet unavailable --
wlan0 wifi unavailable --
docker0 bridge unmanaged --
hassio bridge unmanaged --
veth0232513 ethernet unmanaged --
[other veth devices removed for brevity]
lo loopback unmanaged --
Extra info
The only network related setting that’s changed from default as far as I’m aware is /etc/wpa_supplicant
, which contains the following and was necessary for wifi to work with ssh since I run it headless and with no readily available ethernet cable:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=BR
network={
[redacted]
}
The files mentioned here look exactly the same bar the uuid as well.
I do realize this is pretty niche and that I’m fully responsible for choosing to do it this way but searching didn’t turn up much I can make sense of so I’d appreciate some pointers if someone’s got any idea how to get it working or has been in a similar spot.
If you’re still with me, thanks a lot for reading!