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
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
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 is in its ***alpha*** stage of development. Expect bugs and disappointment
|
> Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment
|
||||||
|
|
||||||
## The content of this repository
|
## 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.
|
Example for the base storage ingredient used by Phyllome OS.
|
||||||
* 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.
|
`cat ingredients/base-storage.cfg`
|
||||||
* `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.
|
|
||||||
|
```
|
||||||
|
[...]
|
||||||
|
# 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
|
## 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
|
%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 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:
|
* Navigate inside the `dishes` folder:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -105,7 +205,7 @@ $ cd ../dishes/
|
|||||||
--virt-type kvm \
|
--virt-type kvm \
|
||||||
--arch x86_64 \
|
--arch x86_64 \
|
||||||
--machine q35 \
|
--machine q35 \
|
||||||
--name virtual-desktop-minetest \
|
--name virtual-desktop-luanti \
|
||||||
--boot uefi \
|
--boot uefi \
|
||||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
|
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
|
||||||
--vcpus 2 \
|
--vcpus 2 \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user