recordevolution / reswarmos Goto Github PK
View Code? Open in Web Editor NEWA small, customized host operating system for IoT devices meeting the needs of Reswarm
License: Apache License 2.0
A small, customized host operating system for IoT devices meeting the needs of Reswarm
License: Apache License 2.0
Even though a wifi is entered it does not connect on boot. I have to plug in a LAN cable to get connection. Only then it switches to wifi.
On Wednsday I have a product presentation in front of two team leaders and others. This could decide the fate of Record Evolution in Conti.
Device never comes online again.
After repower it does.
use any "base" image, like i.a. ubuntu, Raspbian, arch, manjaro and turn it into a Reswarm(OS) compatible image by adding the "Reswarm layer" including addition of required dependencies, setup of services, etc.
A version has to be prepared for intel/amd.
See here what to take care of to use a custom image as the boot disk for gcloud instance:
I created a bucket for holding the reswarm images already https://console.cloud.google.com/storage/browser/reswarmos;tab=objects?project=record-1283&prefix=&forceOnObjectsSortingFiltering=false
employ security hardening configuration options to sshd_config by:
integrate Reagent management daemon
set up a docker container as environment for building the buildroot image
add image configured for Pi zero
set up proper user and groups, i.e. custom user including its own group, add custom user to sudoer list
transition to support both Pi3 and Pi4 broke the interactive login (keyboard + screen) in commit d628776
create unix system user on first boot corresponding to Reswarm user the device belongs to
provide some shell dashboard (e.g. triggered by motd.sh) showing:
implement update mechanism to avoid the need for reflashing a device with latest version of reswarmOS
fix unstable resizing/repartitioning on Pi3 during first boot
especially in low bandwidth scenarios the ping pong should have high priority.
related to RecordEvolution/DeviceManagementAgent#35
clean up/simplify structure of repository focusing on buildroot
compile list of interesting boards to be targeted
add image configuration for Raspberry Pi 3
avoid trying to install unverified update bundle because of expired certificate by either:
Seems to be like this on multiple terminal apps, (default mac one and iterm2)
I'm not 100% sure if this is OS related? Feel free to close if it isn't.
Just something I noticed while typing/copying long commands:
Example I used:
sudo ./reagent-linux-arm-7 -config demo_demo_swarm_TestDevice.reswarm -logFile /home/ruben/reagent.log -appsDirectory /home/ruben -debug
for every user provide default .vimrc config
automatically switch between know (preconfigured) WiFi networks depending on availability, signal strength and range.
during very first boot perform rootfs resizing to adapt to overall disk size
Create a web front end that allows users to customize ReswarmOS for their purposes.
In a web frontend, they should
Version 0.2.9 in this case
To be able to properly debug things like e.g. 'LTE stick without WiFi' it's necessary that this works
In general needed for testing and debugging in environments without any (W)LAN connection
set up 'reagent' user with root privileges (instead of using root user) that runs the reagent for better customization of
employ fake hardware clock to provide approximately correct timestamp during early boot process
dtoverlay=mcp2515-can0
Very important, because this is one of the apps we are using in the conti NVH use case.
It can not identify the GPS modem.
I am testing with https://studio.record-evolution.com/de/RecordEvolution/swarms/Lab/devices/device/Auto_Marko5
it has the SIM7600 HAT. I did not change anything else but the new ReswarmOS
provide overview over running containers on login
make latest version work/adjust to Pi0w
Bluetooth is currently not setup, and not accessible/usable from within Docker
Not really urgent, would currently only be useful for hobby projects ๐
... while LAN cable is plugged in.
Not sure if this is agent or ReswarmOS related.
After repowering the Raspi it came online.
most of the updating frameworks (including RAUC, ostree) rely on a specific bootloader like i.a. u-boot
Setup:
Problem:
It seems like the NetworkManager does not consider switching over to another interface since it assumes that when the stick is 'connected', it also has internet access
This results in, in this case, the agent unable to connect to RESWARM even though it is has a working Ethernet/WLAN connection
Unplugging the stick in this situation, forces the NetworkManager to switch to Ethernet or WLAN, and makes the agent come back online.
Ideal way this is solved:
The NetworkManager always uses an Ethernet or WLAN connection over the LTE device OR It is somehow detected if the stick has no service or has run out of data (if there's no valid connection) and the traffic is passed to any other available interface.
Possible solution:
Maybe the priority settings in the NetworkManager config can resolve this issue.
This would be resolved if the NetworkManager always switches over to either Ethernet or WLAN whenever that interface is available and connected.
reference: https://docs.docker.com/engine/reference/commandline/dockerd/
Add this to the docker daemon config
{
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
"cpu-rt-period": 100000,
"cpu-rt-runtime": 95000
}
Explanation for CPU config: https://www.kernel.org/doc/Documentation/scheduler/sched-rt-group.txt
So if I understand correctly it will reserve 5% CPU for non docker related tasks and is responsive at 100ms. (The params are to be given in microseconds)
successfully set up and first time started device does not come up again after restart
Currently, a USB device is not accessible if plugged into an existing container.
all configuration must be done with configuration files in the boot (FAT32) partition since this is the only one that is also supported by Windows and macOS
setup docker insecure registries in /etc/docker/daemon.json and add any configured insecure regs provided in a reswarm file
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.