Code Monkey home page Code Monkey logo

leoos's Introduction

leo_os

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.

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 bare Ubuntu Server 18.04 32-bit system for Raspberry Pi.
  • stage1 - A minimal working system that is a base for LeoOS but does not contain anything specific to Leo Rover.
    • Set regional configuration (locales, timezone, etc.).
    • Add Raspberry Pi 2 Ubuntu PPA repository.
    • Upgrade all packages.
    • Purge some redundant packages.
    • Replace config.txt and cmdline.txt boot configuration files for RPi.
    • Add init_firstboot script that is called upon first boot of the system, which runs scripts from the /etc/firstboot.d directory.
    • Add a script to firtboot config, which extends the filesystem to fill the SD card.
    • Enable SSH Password Authentication.
    • Install network-manager and configure netplan to use it as a default renderer.
    • Set the hostname to leo.
    • Perform some minor system tweaks: enable bash color prompt, disable auto upgrades, disable creation of xdg user directories.
    • Create a default user and add him to different groups.
    • Add Fictionlab apt repository.
    • Add a service which generates SSH host keys upon first boot.
    • 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 VideoCore utilities for RaspberryPi.
  • 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 - The headless (without graphical interface) version of LeoOS. It is exported to the lite image.
    • Install drivers for Realtek 88XXau WiFi network USB cards.
    • 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.
    • Install core2-flasher utility.
    • Configure update-motd.
  • stage4 - The full version of LeoOS. It is exported to the full image.
    • Install lubuntu core desktop environment, a web browser and a GUI text editor.
    • Change the default wallpaper.
    • Configure lightdm to automatically login to the system.
    • Install ROS desktop packages.
    • Install and configure xrdp server (remote desktop).
    • Add a script to firstboot configuration, which generates keys for xrdp.

leoos's People

Contributors

bjsowa avatar

Watchers

 avatar  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.