forked from roots/phyllomeos
		
	Rewamped README
This commit is contained in:
		
							
								
								
									
										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 \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user