Rewamped README
This commit is contained in:
parent
8cfdc7547d
commit
bd88c7ab0d
122
README.md
122
README.md
@ -1,22 +1,116 @@
|
||||
# Phyllome OS
|
||||
|
||||
Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) designed to leverage [hardware-assisted virtualization](https://wiki.phyllo.me/virt/lexicon#hardware-assisted-virtualization) and [paravirtualization](https://wiki.phyllo.me/virt/lexicon#paravirtualization) to make it easier to run modern guest operating systems locally.
|
||||
Phyllome OS is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) designed to leverage [hardware-assisted virtualization](https://wiki.phyllo.me/virt/lexicon#hardware-assisted-virtualization) and [paravirtualization](https://wiki.phyllo.me/virt/lexicon#paravirtualization) to make it easier to run virtualized operating systems locally.
|
||||
|
||||
Phyllome OS uses the [automated kickstart installation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) method to deploy itself to a specific target.
|
||||
|
||||
This repository contains complete or partial kickstart files, [organized by folders](#the-content-of-this-repository), for Phyllome OS and also a handful of other operating systems artifacts.
|
||||
Phyllome OS uses the [automated kickstart installation](https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#chapter-1-introduction) method to deploy itself to a specific target computer or virtual machine.
|
||||
|
||||
> Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment
|
||||
|
||||
## The content of this repository
|
||||
|
||||
Each version of Phyllome OS is like a `dish` that is based on a `recipe` that lists `ingredients`, or basic building blocks for assembling Phyllome OS and other derivatives.
|
||||
|
||||
Each version of Phyllome OS is a `dish` that is based on a `recipe` that lists `ingredients`.
|
||||
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment
|
||||
|
||||
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄...: this directory contains the basic building blocks, or ingredients, for assembling Phyllome OS and other derivatives.
|
||||
* Each ingredient represents a feature or a set of integrated features, such as a particular Desktop Environment.
|
||||
* `recipes`🧾 🧩: this directory contains recipes, which are made of ingredients.
|
||||
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁...: this directory contains the end-product in the form of stand-alone and ready-to-consume kickstart file, just like a ready to eat dish.
|
||||
Example for the base storage ingredient used by Phyllome OS.
|
||||
|
||||
`cat ingredients/base-storage.cfg`
|
||||
|
||||
```
|
||||
[...]
|
||||
# What ? This kickstart file provides a basic ext4 unencrypted partition layout for UEFI-based systems
|
||||
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an EFI system partitition of 128 MiB (vda1)
|
||||
part /boot --fstype="ext4" --size=512 --label=boot # Create a boot partition of 512 MiB using the ext4 filesystem (vda2)
|
||||
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3)
|
||||
```
|
||||
|
||||
* `recipes`🧾 🧩: this directory contains recipes for deploying operating system artifacts on bare-metal, as a live system, or inside a virtual machine.
|
||||
|
||||
Let's take a look at the recipe to deploy Phyllome OS Desktop.
|
||||
|
||||
|
||||
`cat recipes/desktop-hypervisor.cfg`
|
||||
|
||||
```
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor.
|
||||
|
||||
[...]
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-storage.cfg # base storage
|
||||
%include ../ingredients/base.cfg # A minimal machine
|
||||
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
|
||||
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
|
||||
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
|
||||
%include ../ingredients/base-initial-setup-gnome.cfg # Includes initial-setup for GNOME Shell, allowing for the creation of a user after the first boot, as well as some basic configuration
|
||||
```
|
||||
|
||||
* `dishes`🥨 🥐 🥖 🥧 🥞 🥯 🧆 🧁...: the end-product in the form of stand-alone and ready-to-consume kickstart file
|
||||
|
||||
Let's take a look at the final Phyllome OS Desktop dish.
|
||||
|
||||
`cat dishes/desktop-hypervisor.cfg`
|
||||
|
||||
```
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
|
||||
[...]
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
dejavu-sans-mono-fonts
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
gnome-backgrounds.noarch
|
||||
gnome-initial-setup
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-kvm
|
||||
usbutils
|
||||
virt-install
|
||||
virt-manager
|
||||
virt-top
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
@ -41,7 +135,7 @@ $ nano ingredients/extra-luanti.cfg
|
||||
```
|
||||
|
||||
```
|
||||
# What ? This partial kickstart file provides the video game Minetest
|
||||
# What ? This partial kickstart file provides the video game Luanti
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
|
||||
@ -89,6 +183,12 @@ $ ksflatten -c virtual-desktop-lunanti.cfg -o ../dishes/virtual-desktop-luanti.c
|
||||
|
||||
> If any errors are detected, go back and fix them.
|
||||
|
||||
If multiple dishes are affected by your ingredients, flatten them all while in the `recipes` folder.
|
||||
|
||||
```
|
||||
for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
```
|
||||
|
||||
* Navigate inside the `dishes` folder:
|
||||
|
||||
```
|
||||
@ -105,7 +205,7 @@ $ cd ../dishes/
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
--name virtual-desktop-minetest \
|
||||
--name virtual-desktop-luanti \
|
||||
--boot uefi \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
|
||||
--vcpus 2 \
|
||||
|
Loading…
x
Reference in New Issue
Block a user