diff --git a/README.md b/README.md index 654372c..e9df40a 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,50 @@ -# KioskSystemX8664 +# Generic x86_64 System -Nerves system for rendering webkit kiosk on x86_64 computers +[![CircleCI](https://circleci.com/gh/letoteteam/kiosk_system_x86_64/tree/master.svg?style=svg)](https://circleci.com/gh/letoteteam/kiosk_system_x86_64/tree/master) +[![Hex version](https://img.shields.io/hexpm/v/kiosk_system_x86_64.svg "Hex version")](https://hex.pm/packages/kiosk_system_x86_64) -## Installation +This is the base Nerves System configuration for a kiosk x86_64 system. -```elixir -def deps do - [{:kiosk_system_x86_64, "~> 0.1.0"}] -end -``` +| Feature | Description | +| -------------------- | ------------------------------- | +| CPU | Intel | +| Memory | 512 MB+ DRAM | +| Storage | Hard disk/SSD/etc. (/dev/sda) | +| Linux kernel | 4.13 | +| IEx terminal | ttyS0 (for use with QEMU) | +| Hardware I/O | None | +| Ethernet | Yes | + +## Using + +## Using + +The most common way of using this Nerves System is create a project with `mix +nerves.new` and to export `MIX_TARGET=x86_64`. + +Then, change the rpi3 system dependency to +`{:kiosk_system_x86_64, "~> 1.0"}` + +See the [Getting started +guide](https://hexdocs.pm/nerves/getting-started.html#creating-a-new-nerves-app) +for more information. + +If you need custom modifications to this system for your device, clone this +repository and update as described in [Making custom +systems](https://hexdocs.pm/nerves/systems.html#customizing-your-own-nerves-system) + +See the [example project](https://github.com/LeToteTeam/kiosk_system_rpi3/tree/master/example) for more info + +## Root disk naming + +If you have multiple SSDs, or other devices connected, it's +possible that Linux will enumerate those devices in a nondeterministic order. +This can be mitigated by using `udev` to populate the `/dev/disks/by-*` +directories, but even this can be inconvenient when you just want to refer to +the drive that provides the root filesystem. To address this, `erlinit` creates +`/dev/rootdisk0`, `/dev/rootdisk0p1`, etc. and symlinks them to the expected +devices. For example, if your root file system is on `/dev/mmcblk0p1`, you'll +get a symlink from `/dev/rootdisk0p1` to `/dev/mmcblk0p1` and the whole disk +will be `/dev/rootdisk0`. Similarly, if the root filesystem is on `/dev/sdb1`, +you'd still get `/dev/rootdisk0p1` and `/dev/rootdisk0` and they'd by symlinked +to `/dev/sdb1` and `/dev/sdb` respectively.