Coder Social home page Coder Social logo

lysmarine / lysmarine_gen Goto Github PK

View Code? Open in Web Editor NEW
18.0 4.0 62.0 9.95 MB

Lysmarine is build with the stability of the raspbian operating system to provide an easy to use, stable, low-cost navigation computer for boats.

Home Page: http://lysmarineos.com

Shell 83.78% Python 2.55% QML 13.67%
operating-system boating chartplotter raspberrypi pine64

lysmarine_gen's Introduction

Lysmarine gen

This repository contains all the script and files used to create Lysmarine images.

The ready to use image and documentation can be found at http://lysmarineos.com


Supported Boards

Since version 0.9.X Lysmarine now have it's custom build tool to be able to compile for multiple single boards computer.

At this time, The tested SBCs are :

  • RaspberryPi 3 (armhf and arm64)
  • PineA64 LTS (based on the Pine64so kernel)
  • Liveusb
  • Desktop install

Lysmarine probably build out of the box for most armbian supported SBC, it's just a matter of testing and reporting it.

Content

This repository contains 2 section. The install-scripts contain all the steps needed to create lysmarine on a fresh install while cross-build-release contain the necessary scripts to download the upstream os, mount them, build lysmarine and repackage them for distribution.

The repository also include instructions for circle-ci continuous integration and automatic deployment.

In place build

apt install git
git clone https://github.com/lysmarine/lysmarine_gen.git
sudo mv ./lysmarine_gen/install-scripts / 
cd /install-scripts
sudo chmod -v u+w *.sh
sudo ./install.sh

When the build script is done, you need to reboot. Few things are configured on the first boot.

Build from a host

Install Dependencies

`apt install proot xorriso qemu kpartx vagrant mergerfs qemu-user p7zip-full git squashfs-tools
 live-build` (v1:20190311)

Clone repository

git clone https://github.com/lysmarine/lysmarine_gen.git
cd ./lysmarine_gen/cross-build
sudo chmod -v u+w *.sh

Build examples:

cd ./lysmarine_gen/cross-build

sudo ./build.sh raspios arm64
sudo ./build.sh raspios arm64 customBuild '0 2 4 8'
sudo ./build.sh raspios arm64 TEST bash

The build.sh usage goes like this:

Usage: build.sh baseOS processorArchitecture lmVersion stagesToBuild

baseOs options are raspios|armbian-pine64so|debian-live|debian-vbox
processorArchitecture are armhf|arm64|amd64

If you want to have a prompt instide the build env use 'bash' as stagesToBuild argument

Contributors & Testers

Contributors are welcome.

If you are not sure what it means to contribute to an opensource project or github scare you. Message me on facebook https://fb.me.com/lysmarineOS/ (I speak english and french).

If you don't know where to start, fixing a typo can be enough. There also some issues in the bug tracker marked as 'good first issue'.

If something bigger bother you or you would like to add a feature. Plz open an issue before making a Pull Request so we can discuss it.

License

Lysmarine and it's scripts are distributed under GPLv3 Copyright © 2021 Frederic Guilbault

Included Content that belong to others entities are distributed under their respective licences.

lysmarine_gen's People

Contributors

andig avatar andrewmichaelsmith avatar bjpirt avatar bjsowa avatar cfstras avatar chzchzchz avatar davesteele avatar dcwangmit01 avatar fredericguilbault avatar gadgetoid avatar gudata avatar hhromic avatar jacen92 avatar jamesruan avatar junian avatar kalledk avatar knghtbrd avatar kr15h avatar louismt avatar m-roberts avatar martignoni avatar rickdoesdev avatar rkubes avatar rschulman avatar sam3d avatar samtygier avatar staroselskii avatar tjrana avatar tjstyle avatar xecdesign avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lysmarine_gen's Issues

Stage 48 often fail

This is the error message

Collecting python-can
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
    requirement_set.prepare_files(finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 501, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py", line 423, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py", line 643, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py", line 315, in increment
    total -= 1
TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

Do not use round image in the splash screen at boot

The splash screen ratio tend to change a lot across different screens. It's a bad idea to use something round in it (as i did with the compass image). The splash screen image should be changed. Maybe by something animated ;)

UDP vs TCP for NMEA

UDP I think would be a better choice for LAN NMEA network traffic than TCP.
UDP is connectionless so it restores automatically, while I've seen
bugs in SignalK or something else where it wouldn't restore lost TCP connections.

Thanks,
--MG

Lysmarine need a logo !!!

lysmarine need a logo !!!
And im not a frontend guy so help is welcome.
The logo must fit as icon (24px X 24px) and splash screen (1920X1080) So .svg is kinda a must
And it must not be round as splash screen tend to be stretched to fit screens.
Bonus points if it have reference to the glider of game of life :D

pypilot_control and xterm don't need window borders

pypilot_control and xterm applications don't need window borders.

This can be removed in the openbox config file. There are softwares that have removed borders in it already so it's pretty much a copy/paste/adjust job.

Create tutorials to install lysmarine.

Make a nice graphical install tutorial for:

  • linux
  • mac
  • windows

I only did the Command line install procedure for linux power users cuz that's what I am. But I guess it's a major turnoff for other people.

All the documentation is writhen in markdown sot it's pretty simple to make it look nice.

tuktuk don't query charts form signalk

Signalk plugin work as expected but tuktuk don't see it... that's probably an upstream problem with the original tuktuk. But this should be confirmed.

Please use UbuntuFonts on desktop (menus, forms, etc) They are much more readable on small touchscreens in a cockpit

Please use Ubuntu Fonts on desktop theme (menus, forms, etc) They are much more readable on small touchscreens in a cockpit
(than the fonts raspberry OS is using)

sudo apt-get -y install fonts-ubuntu

And the default theme should be dark like on most smartphones.

Breeze-Dark is a nice theme. I've played with many,

sudo aapt-get -y install breeze-gtk-theme breeze-icon-theme breeze-icon-theme breeze-icon-theme-rcc breeze-cursor-theme

Start lxappearance

lxappearance

and choose 'Breeze-Dark'

Thanks,
--MG

Onboard setting reset at every reboot

In openbox autostart there is a line that reload dconf on every boot.
**Workaround is to delete the line in /home/pi/.config/openbox/autostart after the first boot. **

The pi-gen file to blame is stage4/02-onboard/01-run.sh at line:
echo "dconf load /org/onboard/ < /usr/share/onboard/onboard.dconf &" >> /home/pi/.config/openbox/autostart
It's the only way so far I found to load the configs. It's ugly and should be fixed.

Clock does not always set it self alone.

chrony is better then ntpd for devices that goes offline. Many gps device provide pps time format that can be read as a pool server by chrony or ntpd.
I saw that openplotter just set date with on command line from the nmea of the GPS witch have a loose accuracy.

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.