GithubHelp home page GithubHelp logo

vickymade / leoos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from leorover/leoos

0.0 0.0 0.0 2.44 MB

OS distribution for Raspberry Pi computer running inside Leo Rover.

License: BSD 3-Clause "New" or "Revised" License

Shell 100.00%

leoos's Introduction

LeoOS

LeoOS is a Debian-based Operating System distribution for the single-board computer running inside Leo Rover (currently Raspberry Pi 4B). It uses Ubuntu and Fictionlab package archives, comes with a ROS distribution, preconfigured network, a desktop environment, a service for starting base functionalities at boot, and many more.

This repository contains an image-builder configuration for building LeoOS images (OS images for Raspberry Pi computer running inside Leo Rover).
For the built, compressed images, visit the Releases page.

Versions

The major version (the first part in the three-part version number) is tied to the Ubuntu and ROS distributions the OS is based on. For now, the version semantics look as follows:

  • 1.0.0 and up - Ubuntu 20.04 Focal Fossa and ROS Noetic
  • Before 1.0.0 - Ubuntu 18.04 Bionic Beaver and ROS Melodic

Build stages

The configuration consists of 5 stages, each one creates a valid root filesystem for Raspberry Pi 3/4. The last two stages are exported to bootable SD card images.

Here's a short description and list of changes for each stage:

  • stage0 - A minimal bootable Ubuntu 20.04 64-bit system for Raspberry Pi.
    • Use multistrap to bootstrap a root filesystem from Ubuntu and Fictionlab Package Archives.
    • Set regional configuration (locales, timezone, etc.).
    • Copy config.txt and cmdline.txt boot configuration files for RPi.
  • stage1 - A lightweight working system that is a base for LeoOS but does not contain anything specific to Leo Rover.
    • Add init_firstboot script that is called upon first boot of the system and runs scripts from the /etc/firstboot.d directory.
    • Add a script to firtboot config, which extends the filesystem to fill the SD card space.
    • Install network-manager and configure netplan to use it as a default renderer.
    • Add a script to firtboot config, which generates SSH host keys.
    • Set the hostname to leo.
    • Perform some minor system tweaks: enable bash color prompt, install some polkit and udev rules.
    • Create a default user and add him to different groups.
    • Install rng-tools package to use RPi Hardware TRNG to feed kernel entropy pool.
    • Install pi-bluetooth package to enable the onboard bluetooth module.
    • Install zram-config package to dedicate a portion of the RAM memory for swapping.
    • Install drivers for Realtek 88XXau WiFi network USB cards.
  • stage2 - A "ROS-ready" minimal system.
    • Add ROS apt repository.
    • Install some base ROS packages.
    • Install rosdep and catkin-tools python packages.
    • Initialize rosdep.
  • stage3 (lite image) - The headless (without a graphical interface) version of LeoOS.
    • Install hostapd and dnsmasq packages.
    • Configure the network to use the USB WiFi as an Access Point.
    • Add a script to firstboot config, which sets a unique Access Point SSID based on last 4 characters of RPi serial number.
    • Add ap-disable and ap-disable scripts that can be used to Enable/Disable Access Point at runtime.
    • Install ROS packages for Leo Rover.
    • Add robot configuration files under /etc/ros directory.
    • Add scripts for starting and stopping Leo Rover ROS functionality
    • Add the leo systemd service which start Leo Rover ROS functionality upon boot.
    • Install leo_ui and configure a HTTP server to host the Web interface.
    • Configure update-motd.
  • stage4 (full image) - The full version of LeoOS.
    • Install LXQt desktop environment, a web browser and a GUI text editor.
    • Change the default wallpaper.
    • Install ROS desktop packages.
    • Install xrdp and TigerVNC servers for remote desktop.
    • Add a script to firstboot configuration, which generates keys for xrdp.

leoos's People

Contributors

bjsowa avatar szlachcic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.