From 855dba35547609791e49b9d4dee9cf34b332fafc Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:40:09 +0300 Subject: [PATCH 01/10] Update README.md --- README.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 125b0e0ad2..b8c5a5be92 100644 --- a/README.md +++ b/README.md @@ -1 +1,30 @@ -**thingOS** is a lightweight Linux OS for things. +# What's thingOS? + +thingOS is a highly customized [Build](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. + +# Philosophy + +thingOS aims to make the development of small dedicated Linux-based OSes an easy task. Deployment, over-the-air updates and backups shouldn't be a pain in the ass. Developers should concentrate on their main goal rather than removing unused packages and services from existing OSes to lighten them up, taking care of network connection reliability or enabling the watchdog. + +thingOS tries to boot as fast as possible. Whenever something goes wrong, we prefer to reboot the system instead of trying to run complex recovery procedures. + +thingOS doesn't reinvent the wheel. It uses the amazing infrastructure provided by BuildRoot but comes with customized configurations and init scripts for the supported hardware platforms. + +# Features + + * support for popular single-board computers (see [Supported Single-board Computers]) + * quick boots (see [Boot Process]) + * read-only partitions to minimize corruption risks (see [Partition Layout]) + * simple configuration via text files (see [Configuration Files]) + * over-the-air "firmware" updates (see [Firmware Updates]) + * out-of-the box backup and restore mechanism (see [Backup/Restore]) + * high reliability (see [Watchdogs]) + * everything that [BuildRoot](https://buildroot.uclibc.org) has to offer + +# Getting Started + +Just follow the [Getting Started] guide. + +# Supported Boards + +Here's a list of [Supported Single-board Computers]. From 9d7857fcc8fc1f688db9a225c71240436db99ce2 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:40:34 +0300 Subject: [PATCH 02/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b8c5a5be92..f2572aff40 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # What's thingOS? -thingOS is a highly customized [Build](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. +thingOS is a highly customized [BuildRoot](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. # Philosophy From c11b0b899507598aaffb7795af9818f8e8ab2f45 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:41:17 +0300 Subject: [PATCH 03/10] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f2572aff40..332edffdf3 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # What's thingOS? -thingOS is a highly customized [BuildRoot](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. +**thingOS** is a highly customized [BuildRoot](https://buildroot.uclibc.org) that serves as a base for IoT dedicated operating systems. If you want to turn your Raspberry PI board into something that controls your lights, doors, sprinklers or other devices, by designing your own "firmware", thingOS may be a good choice. # Philosophy -thingOS aims to make the development of small dedicated Linux-based OSes an easy task. Deployment, over-the-air updates and backups shouldn't be a pain in the ass. Developers should concentrate on their main goal rather than removing unused packages and services from existing OSes to lighten them up, taking care of network connection reliability or enabling the watchdog. +**thingOS** aims to make the development of small dedicated Linux-based OSes an easy task. Deployment, over-the-air updates and backups shouldn't be a pain in the ass. Developers should concentrate on their main goal rather than removing unused packages and services from existing OSes to lighten them up, taking care of network connection reliability or enabling the watchdog. -thingOS tries to boot as fast as possible. Whenever something goes wrong, we prefer to reboot the system instead of trying to run complex recovery procedures. +**thingOS** tries to boot as fast as possible. Whenever something goes wrong, we prefer to reboot the system instead of trying to run complex recovery procedures. -thingOS doesn't reinvent the wheel. It uses the amazing infrastructure provided by BuildRoot but comes with customized configurations and init scripts for the supported hardware platforms. +**thingOS** doesn't reinvent the wheel. It uses the amazing infrastructure provided by BuildRoot but comes with customized configurations and init scripts for the supported hardware platforms. # Features From 4c193a00037b18df003e6f65b0ec73e7779691e3 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:41:37 +0300 Subject: [PATCH 04/10] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 332edffdf3..2bc1946476 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,7 @@ Just follow the [Getting Started] guide. # Supported Boards Here's a list of [Supported Single-board Computers]. + +# Documentation + +Feel free to browse the wiki articles available on the side bar. From d1412e1fb3e7043f4bdb277e5a2946e7ec5cc80e Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:43:15 +0300 Subject: [PATCH 05/10] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2bc1946476..6bf7d980e1 100644 --- a/README.md +++ b/README.md @@ -31,4 +31,4 @@ Here's a list of [Supported Single-board Computers]. # Documentation -Feel free to browse the wiki articles available on the side bar. +Feel free to browse the [wiki articles](https://github.com/ccrisan/thingos/wiki). From 302598d41746093520581c487a2ad584e3ca2d86 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 2 Jun 2017 22:48:30 +0300 Subject: [PATCH 06/10] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6bf7d980e1..eb3654f354 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ # Features - * support for popular single-board computers (see [Supported Single-board Computers]) + * support for popular single-board computers (see [Supported Single-board Computers](https://github.com/ccrisan/thingos/wiki/Supported-Single-board-Computers)) * quick boots (see [Boot Process]) * read-only partitions to minimize corruption risks (see [Partition Layout]) * simple configuration via text files (see [Configuration Files]) @@ -27,7 +27,7 @@ Just follow the [Getting Started] guide. # Supported Boards -Here's a list of [Supported Single-board Computers]. +Here's a list of [Supported Single-board Computers](https://github.com/ccrisan/thingos/wiki/Supported-Single-board-Computers). # Documentation From 6043799b047f811a36b7f79d4d71873d0633c2ce Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 3 Jun 2017 16:53:08 +0300 Subject: [PATCH 07/10] pine64: rename initrd.img to fwupdater.img --- board/pine64/{initrd.img => fwupdater.img} | Bin board/pine64/overlay/usr/libexec/fw-prepare-boot | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename board/pine64/{initrd.img => fwupdater.img} (100%) diff --git a/board/pine64/initrd.img b/board/pine64/fwupdater.img similarity index 100% rename from board/pine64/initrd.img rename to board/pine64/fwupdater.img diff --git a/board/pine64/overlay/usr/libexec/fw-prepare-boot b/board/pine64/overlay/usr/libexec/fw-prepare-boot index 0f8c0fad79..67ec46b152 100755 --- a/board/pine64/overlay/usr/libexec/fw-prepare-boot +++ b/board/pine64/overlay/usr/libexec/fw-prepare-boot @@ -1,4 +1,4 @@ #!/bin/bash -sed 's/#initrd_filename=.*/initrd_filename=initrd.img/' uEnv.txt +sed 's/#initrd_filename=.*/initrd_filename=fwupdater.img/' uEnv.txt From e072447ea63642366e57a91f19deafd7afc11ae9 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 3 Jun 2017 17:08:12 +0300 Subject: [PATCH 08/10] supress unwanted data partition creation message --- board/common/overlay/etc/init.d/S00datapart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/common/overlay/etc/init.d/S00datapart b/board/common/overlay/etc/init.d/S00datapart index 019234c40b..adc39808c1 100755 --- a/board/common/overlay/etc/init.d/S00datapart +++ b/board/common/overlay/etc/init.d/S00datapart @@ -30,7 +30,7 @@ case "$1" in 3 ${data_start} \n - w" | /sbin/fdisk $disk_dev 2>&1 >/dev/null | grep -v "Device or resource busy" | grep -v '^$' + w" | /sbin/fdisk $disk_dev &>/dev/null partx -a $disk_dev &>/dev/null test -b $data_dev && msg_done || msg_fail From 5cd600bd613fb044f8268bb4b70f234d2306473e Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 3 Jun 2017 18:00:47 +0300 Subject: [PATCH 09/10] wpa_supplicant driver defaults to nl80211 now --- board/common/overlay/etc/init.d/S35wifi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board/common/overlay/etc/init.d/S35wifi b/board/common/overlay/etc/init.d/S35wifi index 90801dcbd5..a7c032f669 100755 --- a/board/common/overlay/etc/init.d/S35wifi +++ b/board/common/overlay/etc/init.d/S35wifi @@ -6,7 +6,7 @@ conf="/data/etc/wpa_supplicant.conf" log="/var/log/wpa_supplicant.log" prog="/usr/sbin/wpa_supplicant" -driver=wext +driver=nl80211,wext sys_watch_conf="/etc/watch.conf" boot_watch_conf="/boot/watch.conf" From 9278ca2925e7a2120327fb26da12c27295357651 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 3 Jun 2017 18:11:54 +0300 Subject: [PATCH 10/10] odroidc2,pine64: use eudev --- configs/odroidc2_defconfig | 1 + configs/pine64_defconfig | 1 + 2 files changed, 2 insertions(+) diff --git a/configs/odroidc2_defconfig b/configs/odroidc2_defconfig index b476252fcb..982872d3ad 100644 --- a/configs/odroidc2_defconfig +++ b/configs/odroidc2_defconfig @@ -7,6 +7,7 @@ BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_SKELETON_CUSTOM=y BR2_ROOTFS_SKELETON_CUSTOM_PATH="board/common/skeleton" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_ROOTFS_OVERLAY="board/common/overlay board/odroidc2/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y diff --git a/configs/pine64_defconfig b/configs/pine64_defconfig index da837fa249..b0914977ce 100644 --- a/configs/pine64_defconfig +++ b/configs/pine64_defconfig @@ -7,6 +7,7 @@ BR2_TOOLCHAIN_EXTERNAL=y BR2_TARGET_OPTIMIZATION="-pipe" BR2_ROOTFS_SKELETON_CUSTOM=y BR2_ROOTFS_SKELETON_CUSTOM_PATH="board/common/skeleton" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_ROOTFS_OVERLAY="board/common/overlay board/pine64/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/common/postscript.sh" BR2_LINUX_KERNEL=y