Compare commits
165 Commits
v.0.2.0-al
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
bd88c7ab0d | ||
|
8cfdc7547d | ||
|
cf7f2c05e9 | ||
|
b56f49f5d6 | ||
|
56c6b95a9a | ||
|
dcd8496069 | ||
|
3d5e2ab82d | ||
|
d5ef3f1524 | ||
|
99aec6f314 | ||
|
5096522edb | ||
|
edb503aef0 | ||
|
f9822a5b96 | ||
|
cdbc99abb8 | ||
|
cadcce3f4c | ||
|
20ed966ff2 | ||
|
1d56725e17 | ||
|
7c445f822b | ||
|
111cbf073f | ||
|
e6f991d5dc | ||
|
98df76dc73 | ||
|
11ccb45bf3 | ||
|
1bb2375d79 | ||
|
c02a862262 | ||
|
c56fbe0806 | ||
|
a9012154fd | ||
|
e5b2108210 | ||
|
ea7ded1fe2 | ||
|
72009fe0b2 | ||
|
dece0f19cd | ||
|
b90360ea63 | ||
|
1f2a0eea3d | ||
|
24020ddbae | ||
|
f0bfaf592f | ||
|
3781aeafef | ||
|
1ec81597ba | ||
59ba896198 | |||
c0bcfc4287 | |||
850d44f002 | |||
cf4d69ce19 | |||
|
6a7f48c47e | ||
|
c637167990 | ||
|
9cd3f351b1 | ||
|
9207be1082 | ||
|
a775b55095 | ||
|
3a7b0ccc65 | ||
|
fb424ef12d | ||
|
7f450ad2da | ||
41907c4d89 | |||
9faf7ba0d0 | |||
059929749a | |||
b4f004c21c | |||
750aa50f5a | |||
67cb44ed7a | |||
6787ab2bff | |||
39fd963f30 | |||
95dd2f5f83 | |||
99d35b98fe | |||
a0c1ff5e6f | |||
da49f4023f | |||
|
fc598467b9 | ||
e12f5dd72b | |||
8095b269d7 | |||
c816fd92ff | |||
ec1499d2e8 | |||
bfc2abc3d1 | |||
2e353d35b9 | |||
24326e10a2 | |||
ef84a6f432 | |||
93863761b1 | |||
f89e73b38e | |||
8f99a07773 | |||
53389f76c8 | |||
bd3c8e934e | |||
e247b72659 | |||
2f24524ad5 | |||
b28694caa0 | |||
7f3c5d9f30 | |||
8c09f046f1 | |||
1a4b1604bb | |||
9c5a1de5a2 | |||
b464725ee2 | |||
2f9a79478b | |||
d9441b4ab3 | |||
473c66f345 | |||
5e727e93f0 | |||
40be769d79 | |||
a29701201f | |||
35b2691875 | |||
0fae876bc3 | |||
f6b518ca2a | |||
b2dc2b6b43 | |||
f0aa553e04 | |||
1b6f725861 | |||
5ea024e2c2 | |||
2aaeeb4d32 | |||
26fd2b834c | |||
4682f2c01b | |||
71a694b997 | |||
c0ef9c7105 | |||
6c9110a9d3 | |||
3f3fed8acf | |||
d38f5fd489 | |||
8d2fbf0dbf | |||
e9ddf9b5f9 | |||
2becc66328 | |||
b6af4d7aca | |||
f728cf7a0f | |||
215fd06ed0 | |||
1ba41887bb | |||
8c97aed689 | |||
6506283b36 | |||
93323709d1 | |||
67649f9c37 | |||
fd2dbbe00b | |||
f477aa881a | |||
44cbbaa289 | |||
66ff0c5771 | |||
3dbf80bcd3 | |||
7277fe262c | |||
0313011cf4 | |||
96e09ed84e | |||
dadb1a05be | |||
f12d83b04d | |||
3c3f420217 | |||
2aad7d9988 | |||
483f4f31a3 | |||
1561be2dc3 | |||
b3f1c389fb | |||
3ed2548b6d | |||
f384f264e1 | |||
f1c8280316 | |||
157ceb9ab1 | |||
6aa2a6db4f | |||
60c2fe867e | |||
2ff4fe251e | |||
3c1b1227b3 | |||
b8018cf11f | |||
24cf78e420 | |||
761d2cab6b | |||
8eda17ef1a | |||
f5844a1866 | |||
dfebe0f30c | |||
ce56c92d7c | |||
9da992ed8f | |||
9ae0cd228f | |||
2eb9a95ce6 | |||
4a87957654 | |||
e14f5376a1 | |||
b84c4ebab4 | |||
b429fc6114 | |||
194a8fcb98 | |||
1bf082856c | |||
ea52dd017b | |||
a29819a5ae | |||
97285a853f | |||
5ea07a45f2 | |||
141cb2335a | |||
a8813c1715 | |||
c2c4e83321 | |||
4aed83c7ad | |||
20d698943e | |||
4cf7a11d5f | |||
f6b286e3ff | |||
dc73b8b67c | |||
de556053c3 |
@ -1,6 +1,6 @@
|
||||
# MIT License
|
||||
|
||||
Copyright (c) 2021 Lukas Greve
|
||||
Copyright (c) 2022 Lukas Greve
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
|
297
README.md
297
README.md
@ -1,182 +1,235 @@
|
||||
# Phyllome OS
|
||||
|
||||
> Virtualization for the rest of us
|
||||
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 is a [Fedora Remix](https://fedoraproject.org/wiki/Remix) based on [Fedora Server 35](https://getfedora.org/en/server/) designed to leverage hardware-assisted virtualization and paravirtualization to make it easier to run modern guest 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 computer or virtual machine.
|
||||
|
||||
> This is the **alpha version** of Phyllome OS. Expect bugs and disappointment.
|
||||
> Phyllome OS is in its ***alpha*** stage of development. Expect bugs and disappointment
|
||||
|
||||
> External contributions to Phyllome OS are welcome. Have a look [here](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development) for some ideas on what to do next, or feel free to create an issue and suggest an idea you wish to work on. Also, it might be good to skim through the [white-paper](https://files.phyllo.me/s/oYwfxYpZcbppwr6) to understand what it is about and what the project is trying to achieve.
|
||||
## The content of this repository
|
||||
|
||||
> The Phyllome OS Project is **looking for core contributors**, willing to contribute regularly to the project. If you are interested in making cutting-edge open-source virtualization more accessible, please send an email to contact@phyllo.me.
|
||||
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.
|
||||
|
||||
## What
|
||||
* `ingredients`🥑 🥥 🥭 🥝 🥦 🥬 🥒 🧄: Each ingredient represents a feature or a set of integrated features, such as a specific Desktop Environment
|
||||
|
||||
This repository contains the basic building blocks required to deploy [Phyllome OS](https://phyllo.me/) in a virtual machine, using kickstart files.
|
||||
Example for the base storage ingredient used by Phyllome OS.
|
||||
|
||||
Kickstart files are used to automate the installation and configuration of RPM-based operating systems.
|
||||
|
||||
> If you would like to install Phyllome OS on your computer, please follow [this guide](https://wiki.phyllo.me/deploy/install) instead.
|
||||
|
||||
### Structure of the repository
|
||||
|
||||
* `blocks` : this directory contains the basic building blocks for assembling Phyllome OS Desktop and Phyllome OS Server.
|
||||
* This is where most of the development happens.
|
||||
* `blocks-live` : this directory contains the basic building blocks for creating a live medium for Phyllome OS.
|
||||
* The code in this directory usually lags behind what is found in the `blocks` directory.
|
||||
* The `blocks` and `blocks-live` repository will eventually be merged, and the number of blocks will be reduced to avoid code duplication.
|
||||
* `leaves` : this directory contains the end product in the form of stand-alone and ready-to-use kickstart files.
|
||||
* For instance, the Phyllome OS Desktop version optimized for Intel(tm) CPUs and Intel(tm) graphics cards, referred to internally as `flat-dhi`, is stored there (*d* stands for desktop, *h* for hypervisor and *i* for intel).
|
||||
* `post` : this directory contains scripts that are meant to be run after a successful installation, after Phyllome OS has started.
|
||||
* Ideally, these code snippets will be merged with existing building blocks, or summoned as a systemd unit.
|
||||
|
||||
## How to hack Phyllome OS
|
||||
|
||||
> Only Linux-based development is possible at the moment, sorry. Support for macOS and Windows-based development will follow.
|
||||
|
||||
As of now, hacking kickstart files is the main way to develop Phyllome OS.
|
||||
|
||||
Have a look [here](https://docs.fedoraproject.org/en-US/fedora/rawhide/install-guide/appendixes/Kickstart_Syntax_Reference/) to learn the kickstart syntax.
|
||||
|
||||
### Requirements
|
||||
|
||||
* A Linux distribution, with a recent Linux Kernel (> 5.X)
|
||||
* A x86_64 platform with hardware-assisted virtualization [enabled](https://wiki.phyllo.me/deploy/prepare)
|
||||
* Nested-virtualization enabled
|
||||
* `virt-install` and `virt-manager`, as well as `libvirt` and `qemu-kvm` up and running
|
||||
|
||||
**Enable** nested-virtualization on **AMD-based systems**, then reboot:
|
||||
`cat ingredients/base-storage.cfg`
|
||||
|
||||
```
|
||||
sudo echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf
|
||||
[...]
|
||||
# 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)
|
||||
```
|
||||
|
||||
**Enable** nested-virtualization on **Intel-based systems**, then reboot:
|
||||
* `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`
|
||||
|
||||
```
|
||||
sudo echo "options kvm_intel nested=1" >> /etc/modprobe.d/kvm.conf`
|
||||
# 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
|
||||
```
|
||||
|
||||
**Install the prerequisites on Fedora 35**
|
||||
* `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`
|
||||
|
||||
```
|
||||
sudo dnf install -y qemu-kvm libvirt libvirt-daemon-config-network libvirt-daemon-kvm virt-install virt-top virt-manager libguestfs-tools python3-libguestfs guestfs-tools pykickstart
|
||||
# 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
|
||||
```
|
||||
|
||||
**Install the prerequisites on Ubuntu 20.4 or Debian 11**
|
||||
## Development
|
||||
|
||||
```To be done```
|
||||
Let's assume you wish to add [Luanti](https://www.luanti.org/), a free and open-source sandbox video game engine, as an ingredient to a dish.
|
||||
|
||||
### Hack around
|
||||
|
||||
Clone this repository:
|
||||
* Clone this repository and move inside:
|
||||
|
||||
```
|
||||
git clone https://github.com/PhyllomeOS/PhyllomeOS.git
|
||||
$ git clone https://git.phyllo.me/roots/phyllomeos && cd phyllomeos
|
||||
```
|
||||
|
||||
Modify some files, typically inside the `blocks` directory.
|
||||
|
||||
When you are done, move to the `flat` directory:
|
||||
* Make a copy of the `template.cfg` file and rename it
|
||||
|
||||
```
|
||||
cd ./PhyllomeOS/flat/
|
||||
$ cp ingredients/template.cfg ingredients/extra-luanti.cfg
|
||||
```
|
||||
|
||||
Then, merge the kickstart basic building blocks into a single file, a process called 'flattening'.
|
||||
* Add software `luanti` to your file:
|
||||
|
||||
```
|
||||
ksflatten -c ../blocks/dhi.cfg -o flat-dhi.cfg
|
||||
$ nano ingredients/extra-luanti.cfg
|
||||
```
|
||||
If any errors are detected, go back and fix them.
|
||||
|
||||
### Fire it up!
|
||||
|
||||
For testing purposes, Phyllome OS can be deployed inside a virtual machine, as a guest hypervisor.
|
||||
|
||||
The following command will automatically deploy the alpha version of Phyllome OS, tuned for Intel CPUs and Intel graphics cards.
|
||||
|
||||
It uses a Q35 virtual motherboard, a UEFI-based firmware, virtio-devices accross the board, 2 vCPUs, 4 GB of RAM and a disk of 5 GB.
|
||||
|
||||
> Adjust it according to your needs.
|
||||
|
||||
When ready, copy and paste it to your terminal.
|
||||
|
||||
```
|
||||
virt-install \
|
||||
# What ? This partial kickstart file provides the video game Luanti
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
|
||||
luanti # a free and open-source sandbox video game
|
||||
|
||||
%end
|
||||
```
|
||||
|
||||
* Navigate inside the `recipes` folder:
|
||||
|
||||
```
|
||||
$ cd recipes
|
||||
```
|
||||
|
||||
* Pick a suitable recipe to add your ingredient to it. As luanti is a GUI application, `virtual-desktop.cfg` is a fitting candidate. Make a copy of it.
|
||||
|
||||
```
|
||||
$ cp virtual-desktop.cfg virtual-desktop-lunanti.cfg
|
||||
```
|
||||
|
||||
* Edit the file and add the newly defined ingredient:
|
||||
|
||||
```
|
||||
$ nano virtual-desktop-luanti.cfg
|
||||
```
|
||||
|
||||
```
|
||||
%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
|
||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||
%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
|
||||
|
||||
%include ../ingredients/extra-luanti.cfg # A free and open-source sandbox video game
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
||||
```
|
||||
|
||||
* Merge the kickstart basic building blocks a single file, or dish. This process is called 'flattening'.
|
||||
|
||||
```
|
||||
$ ksflatten -c virtual-desktop-lunanti.cfg -o ../dishes/virtual-desktop-luanti.cfg
|
||||
```
|
||||
|
||||
> 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:
|
||||
|
||||
```
|
||||
$ cd ../dishes/
|
||||
```
|
||||
|
||||
* You can then kickstart your own installation:
|
||||
|
||||
```
|
||||
# virt-install \
|
||||
--connect qemu:///system \
|
||||
--metadata description="Phyllome OS Desktop, virtual edition, with Luanti" \
|
||||
--os-variant fedora41 \
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
--name phyllome-alpha \
|
||||
--name virtual-desktop-luanti \
|
||||
--boot uefi \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=2,topology.threads=1 \
|
||||
--vcpus 2 \
|
||||
--memory 4096 \
|
||||
--video virtio \
|
||||
--graphics spice,listen=none \
|
||||
--channel spicevmc \
|
||||
--autoconsole none \
|
||||
--console pty,target.type=virtio \
|
||||
--sound none \
|
||||
--network type=user,model=virtio \
|
||||
--controller type=virtio-serial \
|
||||
--controller type=usb,model=none \
|
||||
--controller type=scsi,model=virtio-scsi \
|
||||
--network network=default,model=virtio \
|
||||
--input type=keyboard,bus=virtio \
|
||||
--input type=tablet,bus=virtio \
|
||||
--rng /dev/urandom,model=virtio \
|
||||
--disk path=/var/lib/libvirt/images/flat-dhi.img,format=raw,bus=virtio,cache=writeback,size=5 \
|
||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/35/Everything/x86_64/os/ \
|
||||
--initrd-inject flat-dhi.cfg --extra-args "inst.ks=file:flat-dhi.cfg"
|
||||
--disk path=/var/lib/libvirt/images/virtual-phyllome-desktop.img,format=raw,bus=virtio,cache=writeback,size=5 \
|
||||
--location=https://download.fedoraproject.org/pub/fedora/linux/releases/42/Everything/x86_64/os/ \
|
||||
--initrd-inject virtual-desktop-luanti.cfg --extra-args "inst.ks=file:virtual-desktop-luanti.cfg"
|
||||
```
|
||||
You should see the following message:
|
||||
```
|
||||
Starting install...
|
||||
Retrieving file vmlinuz... | 10 MB 00:00
|
||||
Retrieving file initrd.img... | 79 MB 00:02
|
||||
Allocating 'virtinst-inlu7cmw-vmlinuz' | 10 MB 00:00
|
||||
Transferring virtinst-inlu7cmw-vmlinuz | 10 MB 00:00
|
||||
Allocating 'virtinst-2dd8ghse-initrd.img' | 79 MB 00:00
|
||||
Transferring virtinst-2dd8ghse-initrd.img | 79 MB 00:01
|
||||
Allocating 'flat-dhi.img' | 5.0 GB 00:00
|
||||
|
||||
Domain is still running. Installation may be in progress.
|
||||
You can reconnect to the console to complete the installation process.
|
||||
```
|
||||
The installation process will be launched behind the scenes. You can open `virt-manager` and connect to the virtual machine console to follow the process. Eventually, you will be greeted with this screen:
|
||||
|
||||

|
||||
|
||||
After you are done setting up your user account, `virt-manager` will automatically start:
|
||||
|
||||

|
||||
|
||||
If the installation is successful and your feature is working as intended, you are welcome to create a pull request. Thank you!
|
||||
|
||||
## Phyllome OS
|
||||
|
||||
Phyllome OS goal is to maximize ease-of-use and compatibility. As such, it intends to become the easiest way to use modern operating systems locally, in a virtual machine, by integrating pertinent open-source software such as `libvirt`, `qemu-kvm` (and eventually `Cloud Hypervisor`), as well as `virt-manager`.
|
||||
|
||||
Users should not have to manage Phyllome OS: they should be able to pick their favorite operating system and Phyllome OS should run it, no questions asked.
|
||||
|
||||
> Note : with the exception of open-source [Darwin derivatives](https://en.wikipedia.org/wiki/Darwin_(operating_system)#Derived_projects), Phyllome OS **strongly** discourages users from running proprietary, darwin-based derivatives on non-Apple hardware.
|
||||
|
||||
### The Phyllome OS Project
|
||||
|
||||
The Phyllome OS Project relies on multiple tools, including the following public-facing tools:
|
||||
|
||||
* **Wiki**: Take a look at the [wiki repository](https://github.com/PhyllomeOS/wiki) for more information on how you can contribute to improving the documentation.
|
||||
* **Issues tracker**: a public, read-only issue tracking is [available online](https://kanboard.phyllo.me/b/CH7qd98J2v7egmodk/development). From now on, GitHub issue tracking will be used to track development-only issues.
|
||||
* **Code repository**: GitHub is used to host the code, with a mirror pointing to git.phyllo.me
|
||||
|
||||
## License
|
||||
|
||||
* [MIT](./LICENSE.md) for the most part, with some [GPL](./blocks-live/LICENSE.md) code.
|
||||
|
||||
## Acknowledgement
|
||||
|
||||
Thanks to the main contributors of the official Fedora kickstart files repository, and related tools:
|
||||
|
||||
> Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert,
|
||||
Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen
|
||||
Jesse Keating, Luya Tshimbalanga, Matthias Clasen, Pedro Silva, Rahul Sundaram, Sebastian Dziallas
|
||||
Sebastian Vahl, wart. More information here : https://pagure.io/fedora-kickstarts
|
||||
> Adam Miller, Bastien Nocera, Bruno Wolff III, Bryan Kearney, Chitlesh Goorah, Christoph Wickert, Colin Walters, Fabian Affolter, Igor Pires Soares, Jens Petersen, Jeremy Katz, Jeroen van Meeuwen Jesse Keating, Luya Tshimbalanga, Matthias Clasen, Pedro Silva, Rahul Sundaram, Sebastian Dziallas Sebastian Vahl, wart. More information here : https://pagure.io/fedora-kickstarts
|
@ -1,70 +0,0 @@
|
||||
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic, generic building block to build a virtualization host.
|
||||
# 'b' for basic building block, 'h' for hypervisor'
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
|
||||
|
||||
qemu-kvm
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
virt-install
|
||||
virt-top
|
||||
libguestfs-tools
|
||||
python3-libguestfs
|
||||
guestfs-tools # Complementary tools useful for interacting with vith guest systems
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/bhl.log # Beginning of %post section. Those commands are executed inside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
mkdir /var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end # End of the %post section
|
||||
|
@ -1,36 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file configures an hypervisor for AMD (tm) CPUs
|
||||
# 'b' for basic building block, 'h' for hypervisor', 'a' for amd
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%post --log=/root/bhla.log # Beginning of %post section. Those commands are executed inside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 amd_iommu=on amd_iommu=pt rd.driver.pre=vfio-pci/i' /etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /usr/bin/dracut
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
|
||||
%end # End of the %post section
|
@ -1,38 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file configures an hypervisor for Intel(tm) CPUs and Intel(tm) graphic cards
|
||||
# 'b' for basic building block, 'h' for hypervisor', 'i' for intel
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%post --log=/root/blhi.log # Beginning of %post section. Those commands are executed inside the chroot environment. Logging is enabled to help with post-installtion troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
|
||||
echo "kvmgt" > /etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
echo "options kvm_intel nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /usr/bin/dracut
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
|
||||
%end # End of the %post sectionsud
|
@ -1,437 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic block to build a minimal, live system
|
||||
# 'b' for basic building block, 'l' for live
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
# text # Perform installation in text mode
|
||||
|
||||
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
|
||||
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
# #repo --name=updates-testing --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-testing-f$releasever&arch=$basearch
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
|
||||
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandie # Unnecessary if using inital-setup
|
||||
lang en_US.UTF-8 # Set system language to American English # Unnecessary if using inital-setup
|
||||
timezone Europe/Paris --utc # Set System timezone to Paris # Unnecessary if using inital-setup
|
||||
# lang en_US.UTF-8
|
||||
# keyboard us
|
||||
# timezone US/Eastern
|
||||
|
||||
selinux --enforcing # Make sure SELinux is in enforced mode
|
||||
firewall --enabled --service=mdns
|
||||
# selinux --enforcing
|
||||
# firewall --enabled --service=mdns
|
||||
|
||||
# xconfig --startxonboot
|
||||
|
||||
zerombr
|
||||
clearpart --all
|
||||
part / --size 5120
|
||||
# bootloader --timeout=2
|
||||
|
||||
# services --enabled=NetworkManager --disabled=sshd
|
||||
# network --bootproto=dhcp --device=link --activate --hostname=phyllome
|
||||
#
|
||||
# rootpw --lock --iscrypted locked
|
||||
#
|
||||
# # shutdown
|
||||
|
||||
# zerombr
|
||||
# clearpart --all
|
||||
# part / --size 5120 --fstype ext4
|
||||
# services --enabled=NetworkManager,ModemManager --disabled=sshd
|
||||
network --bootproto=dhcp --device=link --activate
|
||||
rootpw --lock --iscrypted locked
|
||||
shutdown
|
||||
|
||||
#
|
||||
# %packages # Beginning of the packages section.
|
||||
#
|
||||
# # Explicitly specified here:
|
||||
# # <notting> walters: because otherwise dependency loops cause yum issues.
|
||||
# kernel
|
||||
# kernel-modules
|
||||
# kernel-modules-extra
|
||||
#
|
||||
# # This was added a while ago, I think it falls into the category of
|
||||
# # "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
|
||||
# # for now.
|
||||
# #memtest86+
|
||||
# #@x86-baremetal-tools # memtest86+ is included
|
||||
#
|
||||
# # The point of a live image is to install
|
||||
# # anaconda
|
||||
# # anaconda-install-env-deps
|
||||
# # anaconda-live
|
||||
# # @anaconda-tools
|
||||
# # Anaconda has a weak dep on this and we don't want it on livecds, see
|
||||
# # https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD
|
||||
# # -fcoe-utils
|
||||
# # -device-mapper-multipath
|
||||
#
|
||||
# # Need aajohan-comfortaa-fonts for the SVG rnotes images
|
||||
# # aajohan-comfortaa-fonts
|
||||
#
|
||||
# # Without this, initramfs generation during live image creation fails: #1242586
|
||||
# dracut-live
|
||||
# dracut-config-generic # add that as sugested here : https://www.brianlane.com/post/creating-live-isos-with-livemedia-creator/
|
||||
#
|
||||
# # For UEFI-boot, see https://github.com/weldr/lorax/blob/master/docs/fedora-livemedia.ks
|
||||
# shim
|
||||
# shim-ia32
|
||||
# grub2
|
||||
# grub2-efi
|
||||
# grub2-efi-*-cdboot
|
||||
# grub2-efi-ia32
|
||||
# efibootmgr
|
||||
#
|
||||
# # syslinux is in @x86-baremetal-tools
|
||||
#
|
||||
# # anaconda needs the locales available to run for different locales
|
||||
# glibc-all-langpacks
|
||||
#
|
||||
# # no longer in @core since 2018-10, but needed for livesys script
|
||||
# initscripts
|
||||
# chkconfig
|
||||
#
|
||||
# @core # minimal installation
|
||||
# pciutils # Pciutils provides lspci commandline tool and is not installed by default
|
||||
# # initial-setup # Install the initial setup package. For the GUI version, use initial-setup-gui instead.
|
||||
# qemu-guest-agent # "QEMU guest agent"
|
||||
# spice-vdagent # "Agent for Spice guests"
|
||||
# -fedora-logos # Fedora logos
|
||||
# -fedora-release # Fedora release-notes
|
||||
# -fedora-release-notes
|
||||
# -fedora-release-common # Fedora release files
|
||||
# -fedora-release-identity-basic # ???
|
||||
# fedora-remix-logos # Install Fedora remix logos
|
||||
# generic-release
|
||||
# generic-logos
|
||||
# generic-release-common # "Generic release files"
|
||||
# generic-release-notes # "Release Notes"
|
||||
|
||||
# %end # End of the packages section
|
||||
|
||||
%packages
|
||||
# Explicitly specified here:
|
||||
# <notting> walters: because otherwise dependency loops cause yum issues.
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
|
||||
# This was added a while ago, I think it falls into the category of
|
||||
# "Diagnosis/recovery tool useful from a Live OS image". Leaving this untouched
|
||||
# for now.
|
||||
#memtest86+
|
||||
@x86-baremetal-tools # memtest86+ is included
|
||||
|
||||
# The point of a live image is to install
|
||||
anaconda
|
||||
anaconda-install-env-deps
|
||||
anaconda-live
|
||||
@anaconda-tools
|
||||
# Anaconda has a weak dep on this and we don't want it on livecds, see
|
||||
# https://fedoraproject.org/wiki/Changes/RemoveDeviceMapperMultipathFromWorkstationLiveCD
|
||||
-fcoe-utils
|
||||
-device-mapper-multipath
|
||||
|
||||
# Need aajohan-comfortaa-fonts for the SVG rnotes images
|
||||
aajohan-comfortaa-fonts
|
||||
|
||||
# Without this, initramfs generation during live image creation fails: #1242586
|
||||
dracut-live
|
||||
# syslinux is in @x86-baremetal-tools
|
||||
|
||||
# anaconda needs the locales available to run for different locales
|
||||
glibc-all-langpacks
|
||||
|
||||
# no longer in @core since 2018-10, but needed for livesys script
|
||||
initscripts
|
||||
chkconfig
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/bl.log # Beginning of the post-installation section. Add logging.
|
||||
|
||||
# FIXME: it'd be better to get this installed from a package
|
||||
cat > /etc/rc.d/init.d/livesys << EOF
|
||||
#!/bin/bash
|
||||
#
|
||||
# live: Init script for live image
|
||||
#
|
||||
# chkconfig: 345 00 99
|
||||
# description: Init script for live image.
|
||||
### BEGIN INIT INFO
|
||||
# X-Start-Before: display-manager chronyd
|
||||
### END INIT INFO
|
||||
|
||||
. /etc/init.d/functions
|
||||
|
||||
if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -e /.liveimg-configured ] ; then
|
||||
configdone=1
|
||||
fi
|
||||
|
||||
exists() {
|
||||
which \$1 >/dev/null 2>&1 || return
|
||||
\$*
|
||||
}
|
||||
|
||||
livedir="LiveOS"
|
||||
for arg in \`cat /proc/cmdline\` ; do
|
||||
if [ "\${arg##rd.live.dir=}" != "\${arg}" ]; then
|
||||
livedir=\${arg##rd.live.dir=}
|
||||
continue
|
||||
fi
|
||||
if [ "\${arg##live_dir=}" != "\${arg}" ]; then
|
||||
livedir=\${arg##live_dir=}
|
||||
fi
|
||||
done
|
||||
|
||||
# enable swapfile if it exists
|
||||
if ! strstr "\`cat /proc/cmdline\`" noswap && [ -f /run/initramfs/live/\${livedir}/swap.img ] ; then
|
||||
action "Enabling swap file" swapon /run/initramfs/live/\${livedir}/swap.img
|
||||
fi
|
||||
|
||||
mountPersistentHome() {
|
||||
# support label/uuid
|
||||
if [ "\${homedev##LABEL=}" != "\${homedev}" -o "\${homedev##UUID=}" != "\${homedev}" ]; then
|
||||
homedev=\`/sbin/blkid -o device -t "\$homedev"\`
|
||||
fi
|
||||
|
||||
# if we're given a file rather than a blockdev, loopback it
|
||||
if [ "\${homedev##mtd}" != "\${homedev}" ]; then
|
||||
# mtd devs don't have a block device but get magic-mounted with -t jffs2
|
||||
mountopts="-t jffs2"
|
||||
elif [ ! -b "\$homedev" ]; then
|
||||
loopdev=\`losetup -f\`
|
||||
if [ "\${homedev##/run/initramfs/live}" != "\${homedev}" ]; then
|
||||
action "Remounting live store r/w" mount -o remount,rw /run/initramfs/live
|
||||
fi
|
||||
losetup \$loopdev \$homedev
|
||||
homedev=\$loopdev
|
||||
fi
|
||||
|
||||
# if it's encrypted, we need to unlock it
|
||||
if [ "\$(/sbin/blkid -s TYPE -o value \$homedev 2>/dev/null)" = "crypto_LUKS" ]; then
|
||||
echo
|
||||
echo "Setting up encrypted /home device"
|
||||
plymouth ask-for-password --command="cryptsetup luksOpen \$homedev EncHome"
|
||||
homedev=/dev/mapper/EncHome
|
||||
fi
|
||||
|
||||
# and finally do the mount
|
||||
mount \$mountopts \$homedev /home
|
||||
# if we have /home under what's passed for persistent home, then
|
||||
# we should make that the real /home. useful for mtd device on olpc
|
||||
if [ -d /home/home ]; then mount --bind /home/home /home ; fi
|
||||
[ -x /sbin/restorecon ] && /sbin/restorecon /home
|
||||
if [ -d /home/liveuser ]; then USERADDARGS="-M" ; fi
|
||||
}
|
||||
|
||||
findPersistentHome() {
|
||||
for arg in \`cat /proc/cmdline\` ; do
|
||||
if [ "\${arg##persistenthome=}" != "\${arg}" ]; then
|
||||
homedev=\${arg##persistenthome=}
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
if strstr "\`cat /proc/cmdline\`" persistenthome= ; then
|
||||
findPersistentHome
|
||||
elif [ -e /run/initramfs/live/\${livedir}/home.img ]; then
|
||||
homedev=/run/initramfs/live/\${livedir}/home.img
|
||||
fi
|
||||
|
||||
# if we have a persistent /home, then we want to go ahead and mount it
|
||||
if ! strstr "\`cat /proc/cmdline\`" nopersistenthome && [ -n "\$homedev" ] ; then
|
||||
action "Mounting persistent /home" mountPersistentHome
|
||||
fi
|
||||
|
||||
if [ -n "\$configdone" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# add liveuser user with no passwd
|
||||
action "Adding live user" useradd \$USERADDARGS -c "Live System User" liveuser
|
||||
passwd -d liveuser > /dev/null
|
||||
usermod -aG wheel liveuser > /dev/null
|
||||
|
||||
# Remove root password lock
|
||||
passwd -d root > /dev/null
|
||||
|
||||
# turn off firstboot for livecd boots
|
||||
systemctl --no-reload disable firstboot-text.service 2> /dev/null || :
|
||||
systemctl --no-reload disable firstboot-graphical.service 2> /dev/null || :
|
||||
systemctl stop firstboot-text.service 2> /dev/null || :
|
||||
systemctl stop firstboot-graphical.service 2> /dev/null || :
|
||||
|
||||
# don't use prelink on a running live image
|
||||
sed -i 's/PRELINKING=yes/PRELINKING=no/' /etc/sysconfig/prelink &>/dev/null || :
|
||||
|
||||
# turn off mdmonitor by default
|
||||
systemctl --no-reload disable mdmonitor.service 2> /dev/null || :
|
||||
systemctl --no-reload disable mdmonitor-takeover.service 2> /dev/null || :
|
||||
systemctl stop mdmonitor.service 2> /dev/null || :
|
||||
systemctl stop mdmonitor-takeover.service 2> /dev/null || :
|
||||
|
||||
# don't start cron/at as they tend to spawn things which are
|
||||
# disk intensive that are painful on a live image
|
||||
systemctl --no-reload disable crond.service 2> /dev/null || :
|
||||
systemctl --no-reload disable atd.service 2> /dev/null || :
|
||||
systemctl stop crond.service 2> /dev/null || :
|
||||
systemctl stop atd.service 2> /dev/null || :
|
||||
|
||||
# turn off abrtd on a live image
|
||||
systemctl --no-reload disable abrtd.service 2> /dev/null || :
|
||||
systemctl stop abrtd.service 2> /dev/null || :
|
||||
|
||||
# Don't sync the system clock when running live (RHBZ #1018162)
|
||||
sed -i 's/rtcsync//' /etc/chrony.conf
|
||||
|
||||
# Mark things as configured
|
||||
touch /.liveimg-configured
|
||||
|
||||
# add static hostname to work around xauth bug
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=679486
|
||||
# the hostname must be something else than 'localhost'
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1370222
|
||||
hostnamectl set-hostname "localhost-live"
|
||||
|
||||
EOF
|
||||
|
||||
# bah, hal starts way too late
|
||||
cat > /etc/rc.d/init.d/livesys-late << EOF
|
||||
#!/bin/bash
|
||||
#
|
||||
# live: Late init script for live image
|
||||
#
|
||||
# chkconfig: 345 99 01
|
||||
# description: Late init script for live image.
|
||||
|
||||
. /etc/init.d/functions
|
||||
|
||||
if ! strstr "\`cat /proc/cmdline\`" rd.live.image || [ "\$1" != "start" ] || [ -e /.liveimg-late-configured ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
exists() {
|
||||
which \$1 >/dev/null 2>&1 || return
|
||||
\$*
|
||||
}
|
||||
|
||||
touch /.liveimg-late-configured
|
||||
|
||||
# read some variables out of /proc/cmdline
|
||||
for o in \`cat /proc/cmdline\` ; do
|
||||
case \$o in
|
||||
ks=*)
|
||||
ks="--kickstart=\${o#ks=}"
|
||||
;;
|
||||
xdriver=*)
|
||||
xdriver="\${o#xdriver=}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# if liveinst or textinst is given, start anaconda
|
||||
if strstr "\`cat /proc/cmdline\`" liveinst ; then
|
||||
plymouth --quit
|
||||
/usr/sbin/liveinst \$ks
|
||||
fi
|
||||
if strstr "\`cat /proc/cmdline\`" textinst ; then
|
||||
plymouth --quit
|
||||
/usr/sbin/liveinst --text \$ks
|
||||
fi
|
||||
|
||||
# configure X, allowing user to override xdriver
|
||||
if [ -n "\$xdriver" ]; then
|
||||
cat > /etc/X11/xorg.conf.d/00-xdriver.conf <<FOE
|
||||
Section "Device"
|
||||
Identifier "Videocard0"
|
||||
Driver "\$xdriver"
|
||||
EndSection
|
||||
FOE
|
||||
fi
|
||||
|
||||
EOF
|
||||
|
||||
chmod 755 /etc/rc.d/init.d/livesys
|
||||
/sbin/restorecon /etc/rc.d/init.d/livesys
|
||||
/sbin/chkconfig --add livesys
|
||||
|
||||
chmod 755 /etc/rc.d/init.d/livesys-late
|
||||
/sbin/restorecon /etc/rc.d/init.d/livesys-late
|
||||
/sbin/chkconfig --add livesys-late
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
/sbin/chkconfig network off
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
%end
|
||||
|
||||
|
||||
%post --nochroot
|
||||
# For livecd-creator builds only (lorax/livemedia-creator handles this directly)
|
||||
if [ -n "$LIVE_ROOT" ]; then
|
||||
cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/"
|
||||
|
||||
# only installed on x86, x86_64
|
||||
if [ -f /usr/bin/livecd-iso-to-disk ]; then
|
||||
mkdir -p "$LIVE_ROOT/LiveOS"
|
||||
cp /usr/bin/livecd-iso-to-disk "$LIVE_ROOT/LiveOS"
|
||||
fi
|
||||
fi
|
||||
|
||||
%end
|
||||
|
@ -1,119 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop machine.
|
||||
# 'l' for live, 'd' for desktop
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c ld.cfg -o ../leaves/flat-ld.cfg
|
||||
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
|
||||
|
||||
# Instructions for livecd-creator (about to be deprecated)
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livecd-creator -c ../leaves/flat-ld.cfg --fslabel=ld
|
||||
# livecd-creator is part of the livecd-tools package
|
||||
|
||||
# Instructions for livemedia-creator
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livemedia-creator --make-iso --ks flat-ld.cfg --no-virt --iso-only --iso-name phyllome-live-d-x86_64.iso --releasever 35
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-d-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-live-d-x86_64.iso
|
||||
|
||||
%include bl.cfg # A base for a minimal live machine
|
||||
%include "../blocks/bd.cfg" # A base for a desktop environment
|
||||
|
||||
%post --log=/root/ld.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging
|
||||
|
||||
cat >> /etc/rc.d/init.d/livesys << EOF
|
||||
|
||||
# # disable gnome-software automatically downloading updates
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE
|
||||
# [org.gnome.software]
|
||||
# download-updates=false
|
||||
# FOE
|
||||
#
|
||||
# # don't autostart gnome-software session service
|
||||
# rm -f /etc/xdg/autostart/gnome-software-service.desktop
|
||||
|
||||
# # disable the gnome-software shell search provider
|
||||
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
|
||||
# DefaultDisabled=true
|
||||
# FOE
|
||||
|
||||
# # don't run gnome-initial-setup
|
||||
# mkdir ~liveuser/.config
|
||||
# touch ~liveuser/.config/gnome-initial-setup-done
|
||||
|
||||
# suppress anaconda spokes redundant with gnome-initial-setup
|
||||
# cat >> /etc/sysconfig/anaconda << FOE
|
||||
# [NetworkSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [PasswordSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [UserSpoke]
|
||||
# visited=1
|
||||
# FOE
|
||||
|
||||
## make the installer show up
|
||||
#if [ -f /usr/share/applications/liveinst.desktop ]; then
|
||||
# # Show harddisk install in shell dash
|
||||
# sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop ""
|
||||
# # need to move it to anaconda.desktop to make shell happy
|
||||
# mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop
|
||||
#
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# [org.gnome.shell]
|
||||
# favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop']
|
||||
# FOE
|
||||
#
|
||||
# # Make the welcome screen show up
|
||||
# if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then
|
||||
# mkdir -p ~liveuser/.config/autostart
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/
|
||||
# fi
|
||||
#
|
||||
# # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# welcome-dialog-last-shown-version='4294967295'
|
||||
# FOE
|
||||
#
|
||||
# # Copy Anaconda branding in place
|
||||
# if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then
|
||||
# cp -a /usr/share/lorax/product/* /
|
||||
# fi
|
||||
# fi
|
||||
|
||||
# rebuild schema cache with any overrides we installed
|
||||
# glib-compile-schemas /usr/share/glib-2.0/schemas
|
||||
|
||||
# set up auto-login
|
||||
cat > /etc/gdm/custom.conf << FOE
|
||||
[daemon]
|
||||
AutomaticLoginEnable=True
|
||||
AutomaticLogin=liveuser
|
||||
FOE
|
||||
|
||||
# Turn off PackageKit-command-not-found while uninstalled
|
||||
# if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
|
||||
# sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
|
||||
# fi
|
||||
|
||||
# make sure to set the right permissions and selinux contexts
|
||||
chown -R liveuser:liveuser /home/liveuser/
|
||||
restorecon -R /home/liveuser/
|
||||
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,54 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor machine.
|
||||
# 'l' for live, 'h' for hypervisor, 'd' for desktop
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c ldh.cfg -o ../leaves/flat-ldh.cfg
|
||||
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
|
||||
|
||||
# Instructions for livecd-creator (about to be deprecated)
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livecd-creator -c ../leaves/flat-ldh.cfg --fslabel=ldh
|
||||
# livecd-creator is part of the livecd-tools package
|
||||
|
||||
# Instructions for livemedia-creator
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livemedia-creator --make-iso --ks flat-ldh.cfg --no-virt --iso-only --iso-name phyllome-live-dh-x86_64.iso --releasever 35
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-dh-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-live-dh-x86_64.iso
|
||||
|
||||
%include ld.cfg # A base for a live desktop minimal machine
|
||||
%include bhl.cfg # A base hypervisor
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/ldh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor.
|
||||
chown liveuser:liveuser /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
|
||||
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,55 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor configured for AMD (tm) CPUs.
|
||||
# 'l' for live, 'd' for desktop, 'h' for hypervisor', 'a' for amd
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c ldha.cfg -o ../leaves/flat-ldha.cfg
|
||||
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
|
||||
|
||||
# Instructions for livecd-creator (about to be deprecated)
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livecd-creator -c ../leaves/flat-ldha.cfg --fslabel=ldha
|
||||
# livecd-creator is part of the livecd-tools package
|
||||
|
||||
# Instructions for livemedia-creator
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livemedia-creator --make-iso --ks flat-ldha.cfg --no-virt --iso-only --iso-name phyllome-live-dha-x86_64.iso --releasever 35
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-dha-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-live-dha-x86_64.iso
|
||||
|
||||
%include ld.cfg # A base for a live desktop minimal machine
|
||||
%include bhl.cfg # A base hypervisor
|
||||
%include bhla.cfg # Specific virtualization configuration for AMD (tm) CPUs
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/ldha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor.
|
||||
chown liveuser:liveuser /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
|
||||
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,55 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor configured for Intel(tm) CPU and Intel(tm) graphic cards.
|
||||
# 'l' for live, 'd' for desktop, 'h' for hypervisor, 'i' for intel
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c ldhi.cfg -o ../leaves/flat-ldhi.cfg
|
||||
# IMPORTANT : Weak dependencies to be destroyed in the resulting ks
|
||||
|
||||
# Instructions for livecd-creator (about to be deprecated)
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livecd-creator -c ../leaves/flat-ldhi.cfg --fslabel=ldhi
|
||||
# livecd-creator is part of the livecd-tools package
|
||||
|
||||
# Instructions for livemedia-creator
|
||||
# An ISO file can be created using the following command as *root*:
|
||||
# livemedia-creator --make-iso --ks flat-ldhi.cfg --no-virt --iso-only --iso-name phyllome-live-dhi-x86_64.iso --releasever 35
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-live-ldhi-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-live-ldhi-x86_64.iso
|
||||
|
||||
%include ld.cfg # A base for a live desktop minimal machine
|
||||
%include bhl.cfg # A base hypervisor
|
||||
%include bhli.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/ldhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor.
|
||||
chown liveuser:liveuser /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
|
||||
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,29 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic block to build a minimal, desktop-oriented operating system using GNOME Shell.
|
||||
# 'b' for basic building block, 'd' for desktop
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
|
||||
gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
|
||||
gnome-terminal # install the default terminal for GNOME Shell
|
||||
-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot
|
||||
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
|
||||
elementary-wallpapers-gnome.noarch # Gorgeous wallpapers from the elementary OS project
|
||||
wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in gnome-shell, but necessary to configure wireless networks using the Network Manager
|
||||
nano # The nano text editor
|
||||
|
||||
%end
|
||||
|
||||
# %post --nochroot --log=/mnt/sysimage/root/bd.log # Beginning of %post section. Those commands are executed outside the chroot environment
|
||||
#
|
||||
# %end # End of the %post section
|
@ -1,73 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic, generic building block to build a virtualization host.
|
||||
# 'b' for basic building block, 'h' for hypervisor'
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
|
||||
|
||||
qemu-kvm
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
virt-install
|
||||
virt-top
|
||||
libguestfs-tools
|
||||
python3-libguestfs
|
||||
guestfs-tools # Complementary tools useful for interacting with vith guest systems
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end # End of the %post section
|
||||
|
||||
# %post # Beginning of the post-installation section.
|
||||
# %end # End of the %post section
|
||||
|
@ -1,36 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file configures an hypervisor for AMD (tm) CPUs
|
||||
# 'b' for basic building block, 'h' for hypervisor', 'a' for amd
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/bha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 amd_iommu=on amd_iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
echo "options kvm_amd nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
|
||||
%end # End of the %post section
|
@ -1,38 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file configures an hypervisor for Intel(tm) CPUs and Intel(tm) graphic cards
|
||||
# 'b' for basic building block, 'h' for hypervisor', 'i' for intel
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/bhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installtion troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
|
||||
%end # End of the %post sectionsud
|
36
blocks/d.cfg
36
blocks/d.cfg
@ -1,36 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop machine.
|
||||
# 'd' for desktop
|
||||
|
||||
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
|
||||
# Bye bye!
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c d.cfg -o ../leaves/flat-d.cfg
|
||||
|
||||
%include b.cfg # A base system
|
||||
%include bd.cfg # A desktop environment
|
||||
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
gnome-initial-setup # Add GNOME initial setup too.
|
||||
|
||||
%end # End of the %post section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/d.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# set new default background (doesn't work. Would have to call a script on first boot or something)
|
||||
# gsettings set org.gnome.desktop.background picture-uri file://mnt/sysimage/usr/share/backgrounds/elementary/default
|
||||
|
||||
%end # End of the %post section
|
@ -1,43 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor.
|
||||
# 'd' for desktop, 'h' for hypervisor
|
||||
|
||||
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
|
||||
# Bye bye!
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c dh.cfg -o ../leaves/flat-dh.cfg
|
||||
|
||||
%include b.cfg # A minimal machine
|
||||
%include bd.cfg # A desktop environment
|
||||
%include bh.cfg # A base hypervisor
|
||||
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/dh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,44 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor configured for AMD (tm) CPUs.
|
||||
# 'd' for desktop, 'h' for hypervisor', 'a' for amd
|
||||
|
||||
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
|
||||
# Bye bye!
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c dha.cfg -o ../leaves/flat-dha.cfg
|
||||
|
||||
%include b.cfg # A minimal machine
|
||||
%include bd.cfg # A desktop environment
|
||||
%include bh.cfg # A base hypervisor
|
||||
%include bha.cfg # Specific virtualization configuration for AMD (tm) CPUs
|
||||
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/dha.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -1,52 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPU and Intel(tm) graphic cards.
|
||||
# 'd' for desktop, 'h' for hypervisor', 'i' for intel
|
||||
|
||||
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
|
||||
# Bye bye!
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c dhi.cfg -o ../leaves/flat-dhi.cfg
|
||||
|
||||
%include b.cfg # A minimal machine
|
||||
%include bd.cfg # A desktop environment
|
||||
%include bh.cfg # A base hypervisor
|
||||
%include bhi.cfg # Specific virtualization configuration for Intel(tm) CPU and Intel(tm) graphic cards
|
||||
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
virt-manager # Install virt-manager, the graphical front-end for QEMU/KVM
|
||||
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/root/dhi.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
24
blocks/s.cfg
24
blocks/s.cfg
@ -1,24 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system.
|
||||
# 's' for server
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c s.cfg -o ../leaves/flat-s.cfg
|
||||
|
||||
%include b.cfg # A base system
|
||||
|
||||
firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
initial-setup # Install the initial setup package.
|
||||
|
||||
%end # End of the packages section
|
@ -1,25 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor.
|
||||
# 's' for server, 'h' for hypervisor
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c sh.cfg -o ../leaves/flat-sh.cfg
|
||||
|
||||
%include b.cfg # A base system
|
||||
%include bh.cfg # A base hypervisor
|
||||
|
||||
firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
initial-setup # Install the initial setup package.
|
||||
|
||||
%end # End of the packages section
|
@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor optimized for AMD (tm) CPUs
|
||||
# 's' for server, 'h' for hypervisor', 'a' for amd
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c sha.cfg -o ../leaves/flat-sha.cfg
|
||||
|
||||
%include b.cfg # Include a base system
|
||||
%include bh.cfg # A base hypervisor
|
||||
%include bha.cfg # Specific virtualization tweaks for AMD (tm) CPUs
|
||||
|
||||
firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
initial-setup # Install the initial setup package.
|
||||
|
||||
%end # End of the packages section
|
@ -1,26 +0,0 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented system with a hypervisor optimized for Intel (tm) CPUs
|
||||
# 's' for server, 'h' for hypervisor', 'i' for intel
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c shi.cfg -o ../leaves/flat-shi.cfg
|
||||
|
||||
%include b.cfg # Include a base system
|
||||
%include bh.cfg # A base hypervisor
|
||||
%include bhi.cfg # Specific virtualization tweaks for Intel(tm) CPU and Intel(tm) graphic cards
|
||||
|
||||
firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
initial-setup # Install the initial setup package.
|
||||
|
||||
%end # End of the packages section
|
288
dishes/desktop-hypervisor-amdcpu.cfg
Normal file
288
dishes/desktop-hypervisor-amdcpu.cfg
Normal file
@ -0,0 +1,288 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
298
dishes/desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
298
dishes/desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
@ -0,0 +1,298 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
|
||||
|
||||
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load extra kernel modules to enable vfio-mdev on selected hardware
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
288
dishes/desktop-hypervisor-intelcpu.cfg
Normal file
288
dishes/desktop-hypervisor-intelcpu.cfg
Normal file
@ -0,0 +1,288 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
280
dishes/desktop-hypervisor.cfg
Normal file
280
dishes/desktop-hypervisor.cfg
Normal file
@ -0,0 +1,280 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
177
dishes/desktop.cfg
Normal file
177
dishes/desktop.cfg
Normal file
@ -0,0 +1,177 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
||||
libusb
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
pciutils
|
||||
usbutils
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
147
dishes/dev-virtual-desktop.cfg
Normal file
147
dishes/dev-virtual-desktop.cfg
Normal file
@ -0,0 +1,147 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --disabled
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --plaintext carpediem
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%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-shell
|
||||
gnome-terminal
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
66
dishes/dev-virtual-server.cfg
Normal file
66
dishes/dev-virtual-server.cfg
Normal file
@ -0,0 +1,66 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --disabled
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --plaintext carpediem
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
|
||||
%end
|
212
dishes/live-desktop-backup.cfg
Normal file
212
dishes/live-desktop-backup.cfg
Normal file
@ -0,0 +1,212 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --fstype="ext4" --size=5120
|
||||
part / --size=7750
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@anaconda-tools
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libusb
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
usbutils
|
||||
wget
|
||||
wpa_supplicant
|
||||
-device-mapper-multipath
|
||||
-fcoe-utils
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
326
dishes/live-desktop-hypervisor-amdcpu.cfg
Normal file
326
dishes/live-desktop-hypervisor-amdcpu.cfg
Normal file
@ -0,0 +1,326 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --size=5120
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
# systemctl enable livesys.service
|
||||
# systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/live-desktop-quirks.log
|
||||
|
||||
cat >> /etc/rc.d/init.d/livesys << EOF
|
||||
|
||||
# set up auto-login
|
||||
cat > /etc/gdm/custom.conf << FOE
|
||||
[daemon]
|
||||
AutomaticLoginEnable=True
|
||||
AutomaticLogin=liveuser
|
||||
FOE
|
||||
|
||||
# Make sure to set the right permissions and selinux contexts
|
||||
chown -R liveuser:liveuser /home/liveuser/
|
||||
restorecon -R /home/liveuser/
|
||||
|
||||
EOF
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
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
|
343
dishes/live-desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
343
dishes/live-desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
@ -0,0 +1,343 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --size=7750
|
||||
part / --fstype="ext4" --size=5120
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
|
||||
|
||||
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load extra kernel modules to enable vfio-mdev on selected hardware
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
guestfs-tools
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
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
|
333
dishes/live-desktop-hypervisor-intelcpu.cfg
Normal file
333
dishes/live-desktop-hypervisor-intelcpu.cfg
Normal file
@ -0,0 +1,333 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --size=7750
|
||||
part / --fstype="ext4" --size=5120
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
guestfs-tools
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
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
|
325
dishes/live-desktop-hypervisor.cfg
Normal file
325
dishes/live-desktop-hypervisor.cfg
Normal file
@ -0,0 +1,325 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --size=7750
|
||||
part / --fstype="ext4" --size=5120
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
guestfs-tools
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
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
|
224
dishes/live-desktop.cfg
Normal file
224
dishes/live-desktop.cfg
Normal file
@ -0,0 +1,224 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part / --fstype="ext4" --size=5120
|
||||
part / --size=7750
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc-all-langpacks
|
||||
gnome-backgrounds.noarch
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libusb
|
||||
livesys-scripts
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
usbutils
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
@ -22,6 +22,8 @@ repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?
|
||||
timezone Europe/Paris --utc
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --enabled="NetworkManager,libvirtd"
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
@ -293,7 +295,7 @@ touch /etc/machine-id
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-live.log
|
||||
# For livecd-creator builds only (lorax/livemedia-creator handles this directly)
|
||||
if [ -n "$LIVE_ROOT" ]; then
|
||||
cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/"
|
||||
@ -307,73 +309,142 @@ fi
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/root/ld.log
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/live-desktop-quirks.log
|
||||
|
||||
cat >> /etc/rc.d/init.d/livesys << EOF
|
||||
|
||||
# # disable gnome-software automatically downloading updates
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE
|
||||
# [org.gnome.software]
|
||||
# download-updates=false
|
||||
# FOE
|
||||
#
|
||||
# # don't autostart gnome-software session service
|
||||
# rm -f /etc/xdg/autostart/gnome-software-service.desktop
|
||||
|
||||
# # disable the gnome-software shell search provider
|
||||
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
|
||||
# DefaultDisabled=true
|
||||
# FOE
|
||||
|
||||
# # don't run gnome-initial-setup
|
||||
# mkdir ~liveuser/.config
|
||||
# touch ~liveuser/.config/gnome-initial-setup-done
|
||||
|
||||
# suppress anaconda spokes redundant with gnome-initial-setup
|
||||
# cat >> /etc/sysconfig/anaconda << FOE
|
||||
# [NetworkSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [PasswordSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [UserSpoke]
|
||||
# visited=1
|
||||
# FOE
|
||||
|
||||
## make the installer show up
|
||||
#if [ -f /usr/share/applications/liveinst.desktop ]; then
|
||||
# # Show harddisk install in shell dash
|
||||
# sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop ""
|
||||
# # need to move it to anaconda.desktop to make shell happy
|
||||
# mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop
|
||||
#
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# [org.gnome.shell]
|
||||
# favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop']
|
||||
# FOE
|
||||
#
|
||||
# # Make the welcome screen show up
|
||||
# if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then
|
||||
# mkdir -p ~liveuser/.config/autostart
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/
|
||||
# fi
|
||||
#
|
||||
# # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# welcome-dialog-last-shown-version='4294967295'
|
||||
# FOE
|
||||
#
|
||||
# # Copy Anaconda branding in place
|
||||
# if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then
|
||||
# cp -a /usr/share/lorax/product/* /
|
||||
# fi
|
||||
# fi
|
||||
|
||||
# rebuild schema cache with any overrides we installed
|
||||
# glib-compile-schemas /usr/share/glib-2.0/schemas
|
||||
|
||||
# set up auto-login
|
||||
cat > /etc/gdm/custom.conf << FOE
|
||||
[daemon]
|
||||
@ -381,12 +452,7 @@ AutomaticLoginEnable=True
|
||||
AutomaticLogin=liveuser
|
||||
FOE
|
||||
|
||||
# Turn off PackageKit-command-not-found while uninstalled
|
||||
# if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
|
||||
# sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
|
||||
# fi
|
||||
|
||||
# make sure to set the right permissions and selinux contexts
|
||||
# Make sure to set the right permissions and selinux contexts
|
||||
chown -R liveuser:liveuser /home/liveuser/
|
||||
restorecon -R /home/liveuser/
|
||||
|
||||
@ -394,95 +460,44 @@ EOF
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/root/bhl.log
|
||||
|
||||
mkdir /var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /usr/sbin/
|
||||
chmod +x /usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/root/blhi.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /etc/default/grub # Load kernel modules in grub.
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /etc/modules-load.d/vfio_virqfd.conf
|
||||
echo "kvmgt" > /etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
echo "options kvm_intel nested=1" >> /etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /usr/bin/dracut
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
%end
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
%post --logfile=/root/ldhi.log
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
usermod -a -G libvirt liveuser # Make user "liveuser" part of the existing libvirt group to allow it to interact with the guest-hypervisor.
|
||||
chown liveuser:liveuser /var/lib/libvirt/iso # Make the user "liveuser" the owner of this directory
|
||||
chown liveuser:liveuser /var/lib/libvirt/images # Make the user "test" the owner of this directory
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@anaconda-tools
|
||||
@x86-baremetal-tools
|
||||
NetworkManager-wifi
|
||||
aajohan-comfortaa-fonts
|
||||
anaconda
|
||||
anaconda-install-env-deps
|
||||
@ -490,7 +505,7 @@ anaconda-live
|
||||
chkconfig
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
elementary-wallpapers-gnome.noarch
|
||||
gnome-backgrounds.noarch
|
||||
glibc-all-langpacks
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
@ -503,6 +518,7 @@ libguestfs-tools
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
mesa-dri-drivers
|
||||
nano
|
||||
python3-libguestfs
|
||||
qemu-kvm
|
@ -22,6 +22,8 @@ repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?
|
||||
timezone Europe/Paris --utc
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --enabled="NetworkManager,libvirtd"
|
||||
# System bootloader configuration
|
||||
bootloader --location=none
|
||||
# Clear the Master Boot Record
|
||||
@ -293,7 +295,7 @@ touch /etc/machine-id
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-live.log
|
||||
# For livecd-creator builds only (lorax/livemedia-creator handles this directly)
|
||||
if [ -n "$LIVE_ROOT" ]; then
|
||||
cp "$INSTALL_ROOT"/usr/share/licenses/*-release-common/* "$LIVE_ROOT/"
|
||||
@ -307,73 +309,142 @@ fi
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/root/ld.log
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/live-desktop-quirks.log
|
||||
|
||||
cat >> /etc/rc.d/init.d/livesys << EOF
|
||||
|
||||
# # disable gnome-software automatically downloading updates
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.software.gschema.override << FOE
|
||||
# [org.gnome.software]
|
||||
# download-updates=false
|
||||
# FOE
|
||||
#
|
||||
# # don't autostart gnome-software session service
|
||||
# rm -f /etc/xdg/autostart/gnome-software-service.desktop
|
||||
|
||||
# # disable the gnome-software shell search provider
|
||||
# cat >> /usr/share/gnome-shell/search-providers/org.gnome.Software-search-provider.ini << FOE
|
||||
# DefaultDisabled=true
|
||||
# FOE
|
||||
|
||||
# # don't run gnome-initial-setup
|
||||
# mkdir ~liveuser/.config
|
||||
# touch ~liveuser/.config/gnome-initial-setup-done
|
||||
|
||||
# suppress anaconda spokes redundant with gnome-initial-setup
|
||||
# cat >> /etc/sysconfig/anaconda << FOE
|
||||
# [NetworkSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [PasswordSpoke]
|
||||
# visited=1
|
||||
#
|
||||
# [UserSpoke]
|
||||
# visited=1
|
||||
# FOE
|
||||
|
||||
## make the installer show up
|
||||
#if [ -f /usr/share/applications/liveinst.desktop ]; then
|
||||
# # Show harddisk install in shell dash
|
||||
# sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop ""
|
||||
# # need to move it to anaconda.desktop to make shell happy
|
||||
# mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop
|
||||
#
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# [org.gnome.shell]
|
||||
# favorite-apps=['firefox.desktop', 'org.gnome.Calendar.desktop', 'rhythmbox.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'anaconda.desktop']
|
||||
# FOE
|
||||
#
|
||||
# # Make the welcome screen show up
|
||||
# if [ -f /usr/share/anaconda/gnome/fedora-welcome.desktop ]; then
|
||||
# mkdir -p ~liveuser/.config/autostart
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop /usr/share/applications/
|
||||
# cp /usr/share/anaconda/gnome/fedora-welcome.desktop ~liveuser/.config/autostart/
|
||||
# fi
|
||||
#
|
||||
# # Disable GNOME welcome tour so it doesn't overlap with Fedora welcome screen
|
||||
# cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
||||
# welcome-dialog-last-shown-version='4294967295'
|
||||
# FOE
|
||||
#
|
||||
# # Copy Anaconda branding in place
|
||||
# if [ -d /usr/share/lorax/product/usr/share/anaconda ]; then
|
||||
# cp -a /usr/share/lorax/product/* /
|
||||
# fi
|
||||
# fi
|
||||
|
||||
# rebuild schema cache with any overrides we installed
|
||||
# glib-compile-schemas /usr/share/glib-2.0/schemas
|
||||
|
||||
# set up auto-login
|
||||
cat > /etc/gdm/custom.conf << FOE
|
||||
[daemon]
|
||||
@ -381,12 +452,7 @@ AutomaticLoginEnable=True
|
||||
AutomaticLogin=liveuser
|
||||
FOE
|
||||
|
||||
# Turn off PackageKit-command-not-found while uninstalled
|
||||
# if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
|
||||
# sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
|
||||
# fi
|
||||
|
||||
# make sure to set the right permissions and selinux contexts
|
||||
# Make sure to set the right permissions and selinux contexts
|
||||
chown -R liveuser:liveuser /home/liveuser/
|
||||
restorecon -R /home/liveuser/
|
||||
|
||||
@ -394,6 +460,40 @@ EOF
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server_1vCPU_2GB-RAM_5GB-disk.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server_1vCPU_2GB-RAM_5GB-disk.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation_2vCPU_4GB-RAM_10GB-disk.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation_2vCPU_4GB-RAM_10GB-disk.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop_4vCPU_8GB-RAM_20GB-disk.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop_4vCPU_8GB-RAM_20GB-disk.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@anaconda-tools
|
||||
@x86-baremetal-tools
|
||||
@ -404,15 +504,26 @@ anaconda-live
|
||||
chkconfig
|
||||
dejavu-sans-mono-fonts
|
||||
dracut-live
|
||||
elementary-wallpapers-gnome.noarch
|
||||
gnome-backgrounds.noarch
|
||||
glibc-all-langpacks
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
initscripts
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
libguestfs-tools
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
mesa-dri-drivers
|
||||
nano
|
||||
python3-libguestfs
|
||||
qemu-kvm
|
||||
virt-install
|
||||
virt-manager
|
||||
virt-top
|
||||
wpa_supplicant
|
||||
-device-mapper-multipath
|
||||
-fcoe-utils
|
@ -1,7 +1,5 @@
|
||||
# Generated by pykickstart v3.34
|
||||
#version=DEVEL
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
@ -22,10 +20,12 @@ repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?r
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
services --disabled="sshd" --enabled="NetworkManager"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
@ -37,7 +37,7 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
%post --logfile=/root/bnd.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
@ -45,40 +45,58 @@ grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/d.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# set new default background (doesn't work. Would have to call a script on first boot or something)
|
||||
# gsettings set org.gnome.desktop.background picture-uri file://mnt/sysimage/usr/share/backgrounds/elementary/default
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
dejavu-sans-mono-fonts
|
||||
elementary-wallpapers-gnome.noarch
|
||||
NetworkManager
|
||||
audit
|
||||
basesystem
|
||||
bash
|
||||
coreutils
|
||||
curl
|
||||
dhcp-client
|
||||
dnf
|
||||
dnf-plugins-core
|
||||
dracut-config-rescue
|
||||
e2fsprogs
|
||||
efibootmgr
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
fedora-repos-modular
|
||||
filesystem
|
||||
firewalld
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
gnome-initial-setup
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
nano
|
||||
neofetch
|
||||
glibc
|
||||
glibc-minimal-langpack
|
||||
hostname
|
||||
initial-setup
|
||||
iproute
|
||||
iputils
|
||||
kbd
|
||||
kernel
|
||||
less
|
||||
man-db
|
||||
ncurses
|
||||
parted
|
||||
passwd
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
plymouth
|
||||
policycoreutils
|
||||
procps-ng
|
||||
rootfiles
|
||||
rpm
|
||||
selinux-policy-targeted
|
||||
setup
|
||||
shadow-utils
|
||||
sudo
|
||||
systemd
|
||||
systemd-oomd-defaults
|
||||
systemd-resolved
|
||||
util-linux
|
||||
vim-minimal
|
||||
yum
|
||||
zram-generator-defaults
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
118
dishes/nano.cfg
Normal file
118
dishes/nano.cfg
Normal file
@ -0,0 +1,118 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/root/bnd.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
NetworkManager
|
||||
audit
|
||||
basesystem
|
||||
bash
|
||||
coreutils
|
||||
curl
|
||||
dhcp-client
|
||||
dnf
|
||||
dnf-plugins-core
|
||||
dracut-config-rescue
|
||||
e2fsprogs
|
||||
efibootmgr
|
||||
fedora-remix-logos
|
||||
fedora-repos-modular
|
||||
filesystem
|
||||
firewalld
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
glibc
|
||||
glibc-minimal-langpack
|
||||
hostname
|
||||
initial-setup
|
||||
iproute
|
||||
iputils
|
||||
kbd
|
||||
kernel
|
||||
less
|
||||
man-db
|
||||
ncurses
|
||||
parted
|
||||
passwd
|
||||
pciutils
|
||||
plymouth
|
||||
policycoreutils
|
||||
procps-ng
|
||||
rootfiles
|
||||
rpm
|
||||
selinux-policy-targeted
|
||||
setup
|
||||
shadow-utils
|
||||
sudo
|
||||
systemd
|
||||
systemd-oomd-defaults
|
||||
systemd-resolved
|
||||
util-linux
|
||||
vim-minimal
|
||||
yum
|
||||
zram-generator-defaults
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
|
||||
%end
|
284
dishes/phyllome-desktop-intelcpu-intelgpu.cfg
Normal file
284
dishes/phyllome-desktop-intelcpu-intelgpu.cfg
Normal file
@ -0,0 +1,284 @@
|
||||
# Generated by pykickstart v3.34
|
||||
#version=DEVEL
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
|
||||
|
||||
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load extra kernel modules to enable vfio-mdev on selected hardware
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
dejavu-sans-mono-fonts
|
||||
gnome-backgrounds.noarch
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
gnome-initial-setup
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
mesa-dri-drivers
|
||||
nano
|
||||
neofetch
|
||||
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
|
120
dishes/server-hypervisor-amdcpu.cfg
Normal file
120
dishes/server-hypervisor-amdcpu.cfg
Normal file
@ -0,0 +1,120 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-amdcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
guestfs-tools
|
||||
initial-setup
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-kvm
|
||||
usbutils
|
||||
virt-install
|
||||
virt-top
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
|
||||
%end
|
@ -1,31 +1,31 @@
|
||||
# Generated by pykickstart v3.34
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Reboot after installation
|
||||
reboot --kexec
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
@ -37,82 +37,63 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
|
||||
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bhi.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelcpu.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut
|
||||
%end
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor-intelgpu.log
|
||||
|
||||
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load extra kernel modules to enable vfio-mdev on selected hardware
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
%end
|
||||
|
||||
@ -127,6 +108,7 @@ generic-release-notes
|
||||
guestfs-tools
|
||||
initial-setup
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
@ -134,9 +116,8 @@ nano
|
||||
neofetch
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-guest-agent
|
||||
qemu-kvm
|
||||
spice-vdagent
|
||||
usbutils
|
||||
virt-install
|
||||
virt-top
|
||||
wget
|
@ -1,31 +1,31 @@
|
||||
# Generated by pykickstart v3.34
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Reboot after installation
|
||||
reboot --kexec
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
@ -37,55 +37,45 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
|
||||
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/create-generic-vm-virtio-spice.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/create-generic-vm-virtio-spice.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-server.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-server.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-minimal-workstation.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-minimal-workstation.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/deploy-phyllome-desktop.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/deploy-phyllome-desktop.sh
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
# fetch custom script and make it executable
|
||||
wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
%end
|
||||
|
||||
@ -100,6 +90,7 @@ generic-release-notes
|
||||
guestfs-tools
|
||||
initial-setup
|
||||
libguestfs-tools
|
||||
libusb
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
@ -107,9 +98,8 @@ nano
|
||||
neofetch
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-guest-agent
|
||||
qemu-kvm
|
||||
spice-vdagent
|
||||
usbutils
|
||||
virt-install
|
||||
virt-top
|
||||
wget
|
@ -1,31 +1,31 @@
|
||||
# Generated by pykickstart v3.34
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Reboot after installation
|
||||
reboot --kexec
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
@ -37,11 +37,11 @@ part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
@ -54,11 +54,11 @@ generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
initial-setup
|
||||
libusb
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
usbutils
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
282
dishes/virtual-desktop-hypervisor.cfg
Normal file
282
dishes/virtual-desktop-hypervisor.cfg
Normal file
@ -0,0 +1,282 @@
|
||||
# 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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-hypervisor.log
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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-guest-agent
|
||||
qemu-kvm
|
||||
spice-vdagent
|
||||
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
|
94
dishes/virtual-desktop-sway.cfg
Normal file
94
dishes/virtual-desktop-sway.cfg
Normal file
@ -0,0 +1,94 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=SWAY --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@^sway-desktop-environment
|
||||
@core
|
||||
@hardware-support
|
||||
@swaywm-extended
|
||||
fedora-remix-logos
|
||||
firefox
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
initial-setup
|
||||
libusb
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
usbutils
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
|
||||
%end
|
179
dishes/virtual-desktop.cfg
Normal file
179
dishes/virtual-desktop.cfg
Normal file
@ -0,0 +1,179 @@
|
||||
# Generated by pykickstart v3.62
|
||||
#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
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
||||
libusb
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
usbutils
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
168
dishes/virtual-encrypted-desktop-extended.cfg
Normal file
168
dishes/virtual-encrypted-desktop-extended.cfg
Normal file
@ -0,0 +1,168 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root --encrypted --luks-version=luks2
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-desktop-gnome.log
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
[org.gnome.desktop.background]
|
||||
picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/opt/base-initial-setup-gnome.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%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
|
||||
libusb
|
||||
mesa-dri-drivers
|
||||
mozilla-ublock-origin.noarch
|
||||
nano
|
||||
nautilus
|
||||
neofetch
|
||||
nextcloud
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
thunderbird
|
||||
usbutils
|
||||
vlc
|
||||
wget
|
||||
wpa_supplicant
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
-gnome-tour
|
||||
|
||||
%end
|
71
dishes/virtual-server-encrypted.cfg
Normal file
71
dishes/virtual-server-encrypted.cfg
Normal file
@ -0,0 +1,71 @@
|
||||
# Generated by pykickstart v3.47
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root --encrypted --luks-version=luks2
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
initial-setup
|
||||
libusb
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
usbutils
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
|
||||
%end
|
86
dishes/virtual-server.cfg
Normal file
86
dishes/virtual-server.cfg
Normal file
@ -0,0 +1,86 @@
|
||||
# Generated by pykickstart v3.58
|
||||
#version=DEVEL
|
||||
# Use text mode install
|
||||
text
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Run the Setup Agent on first boot
|
||||
firstboot --reconfig
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Shutdown after installation
|
||||
shutdown
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
repo --name="rpmfusion-nonfree" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
repo --name="rpmfusion-nonfree-updates" --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs="rpmfusion-nonfree-release"
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# SELinux configuration
|
||||
selinux --disabled
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,chronyd,systemd-resolved"
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=512 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
||||
|
||||
%post --logfile=/opt/base.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
initial-setup
|
||||
libusb
|
||||
nano
|
||||
pciutils
|
||||
qemu-guest-agent
|
||||
spice-vdagent
|
||||
usbutils
|
||||
wget
|
||||
-fedora-logos
|
||||
-fedora-release
|
||||
-fedora-release-common
|
||||
-fedora-release-identity-basic
|
||||
-fedora-release-notes
|
||||
|
||||
%end
|
BIN
img/desktop.png
BIN
img/desktop.png
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
Binary file not shown.
Before Width: | Height: | Size: 66 KiB |
95
ingredients/base-desktop-gnome.cfg
Normal file
95
ingredients/base-desktop-gnome.cfg
Normal file
@ -0,0 +1,95 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic block to build a minimal and customized desktop-oriented operating system using GNOME Shell.
|
||||
|
||||
xconfig --startxonboot --defaultdesktop=GNOME # Start the display session on boot. Although it says --startx, which seems to imply xorg, it is actually generic and thus works also with Wayland.
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
|
||||
gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
|
||||
gnome-terminal # install the default terminal for GNOME Shell
|
||||
-gnome-tour # delete GNOME Tour so it doesn't automatically launch on boot
|
||||
mesa-dri-drivers # add mesa drivers otherwise there is a blank screen when first booting a desktop-based kickstart without virtualization tools
|
||||
dejavu-sans-mono-fonts # the gnome-shell package doesn't include much fonts by default, resulting in weird spacings in GNOME Terminal. GNOME Terminal unfortunately doesn't automatically pick this font
|
||||
gnome-backgrounds.noarch # wallpapers from the GNOME project
|
||||
wpa_supplicant # WPA Supplicant for Linux. It is not packaged by default in GNOME Shell, but necessary to configure wireless networks using the Network Manager
|
||||
NetworkManager-wifi # Provides the plugin to manage Wireless networking within GNOME Shell
|
||||
nano # The nano text editor
|
||||
firefox # Internet browser
|
||||
mozilla-ublock-origin.noarch # An efficient blocker for Firefox
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.media-handling.gschema.override<< EOF
|
||||
[org.gnome.desktop.media-handling]
|
||||
automount-open=false
|
||||
autorun-never=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.Terminal.gschema.override<< EOF
|
||||
[org.gnome.Terminal.Legacy.Profile]
|
||||
font='DejaVu Sans Mono 12'
|
||||
use-system-font=false
|
||||
audible-bell=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.wm.preferences.gschema.override<< EOF
|
||||
[org.gnome.desktop.wm.preferences]
|
||||
button-layout=':minimize,maximize,close'
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.gschema.override<< EOF
|
||||
[org.gnome.desktop.a11y]
|
||||
always-show-universal-access-status=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.override<< EOF
|
||||
[org.gnome.desktop.interface]
|
||||
enable-animations=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.privacy.gschema.override<< EOF
|
||||
[org.gnome.desktop.privacy]
|
||||
remove-old-temp-files=true
|
||||
remember-recent-files=false
|
||||
remember-app-usage=false
|
||||
disable-camera=true
|
||||
disable-microphone=true
|
||||
disable-sound-output=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.search-providers.gschema.override<< EOF
|
||||
[org.gnome.desktop.search-providers]
|
||||
disable-external=true
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.notifications.gschema.override<< EOF
|
||||
[org.gnome.desktop.notifications.application]
|
||||
enable-sound-alerts=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.sound.gschema.override<< EOF
|
||||
[org.gnome.desktop.sound]
|
||||
event-sounds=false
|
||||
EOF
|
||||
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.thumbnailers.gschema.override<< EOF
|
||||
[org.gnome.desktop.thumbnailers]
|
||||
disable-all=true
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end # End of the %post section
|
77
ingredients/base-desktop-virtual-machine-manager.cfg
Normal file
77
ingredients/base-desktop-virtual-machine-manager.cfg
Normal file
@ -0,0 +1,77 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a virtual machine manager, sets it to auto-launch and tweaked it.
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
|
||||
virt-manager # Install virt-manager, a graphical front-end for QEMU/KVM
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome-virtual-machine-manager.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.virt-manager.virt-manager.gschema.override<< EOF
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
[org.virt-manager.virt-manager]
|
||||
xmleditor-enabled=true
|
||||
manager-window-height=600
|
||||
manager-window-width=200
|
||||
|
||||
# Libvirt URIs listed in the manager window
|
||||
[org.virt-manager.virt-manager.connections]
|
||||
uris=['qemu:///system', 'qemu:///session']
|
||||
autoconnect=['qemu:///session']
|
||||
|
||||
# Show usage in the domain list
|
||||
[org.virt-manager.virt-manager.vmlist-fields]
|
||||
cpu-usage=false
|
||||
|
||||
# Settings related to statistics
|
||||
[org.virt-manager.virt-manager.stats]
|
||||
update-interval=3
|
||||
enable-disk-poll=true
|
||||
enable-memory-poll=true
|
||||
enable-net-poll=true
|
||||
|
||||
# Default behavior for the console
|
||||
[org.virt-manager.virt-manager.console]
|
||||
scaling=2
|
||||
resize-guest=1
|
||||
autoconnect=false
|
||||
|
||||
# Do not show toolbar
|
||||
[org.virt-manager.virt-manager.details]
|
||||
show-toolbar=false
|
||||
|
||||
# Modify default values for new VMs
|
||||
[org.virt-manager.virt-manager.new-vm]
|
||||
storage-format='raw'
|
||||
cpu-default='host-model'
|
||||
graphics-type='spice'
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
[org.virt-manager.virt-manager.confirm]
|
||||
forcepoweroff=false
|
||||
removedev=false
|
||||
unapplied-dev=false
|
||||
|
||||
EOF
|
||||
|
||||
glib-compile-schemas /mnt/sysimage/usr/share/glib-2.0/schemas/
|
||||
|
||||
%end # End of the %post section
|
16
ingredients/base-fedora-36-repo.cfg
Normal file
16
ingredients/base-fedora-36-repo.cfg
Normal file
@ -0,0 +1,16 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a the Fedora official repositories for free software
|
||||
|
||||
# Official Fedora repositories
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-36&arch=x86_64" # Official Fedora updates mirror
|
||||
repo --name=fedora-updates --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f36&arch=x86_64" --cost=0 # Official Fedora updates mirror
|
||||
repo --name=rpmfusion-free --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-36&arch=x86_64"
|
||||
repo --name=rpmfusion-free-updates --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-updates-released-36&arch=x86_64" --cost=0
|
||||
repo --name=rpmfusion-nonfree --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-36&arch=x86_64"
|
||||
repo --name=rpmfusion-nonfree-updates --mirrorlist="https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-36&arch=x86_64" --cost=0
|
@ -5,5 +5,6 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system.
|
||||
# 'l' for live, 's' for server
|
||||
# What ? This kickstart file allows you to use the cdrom as a source for packages
|
||||
# Use the cdrom
|
||||
cdrom
|
@ -5,5 +5,8 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor optimized for Intel (tm) CPUs
|
||||
# 'l' for live, 's' for server, 'h' for hypervisor', 'i' for intel
|
||||
# What ? This kickstart file provides a the Fedora Rawhide official repositories
|
||||
|
||||
# Official Fedora rawhide repositories
|
||||
repo --name=rawhide --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=$basearch
|
33
ingredients/base-fedora-repo.cfg
Normal file
33
ingredients/base-fedora-repo.cfg
Normal file
@ -0,0 +1,33 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a the Fedora official repositories for free software
|
||||
|
||||
# Official Fedora repositories
|
||||
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
|
||||
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
|
||||
# RPM fusion repositories
|
||||
# For the current release tree
|
||||
repo --name=rpmfusion-nonfree --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
|
||||
# Updates for the current release tree
|
||||
repo --name=rpmfusion-nonfree-updates --mirrorlist=https://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-updates-released-$releasever&arch=$basearch --includepkgs=rpmfusion-nonfree-release
|
||||
|
||||
%post
|
||||
|
||||
# Import RPM Fusion PGP Key. Courtesy of https://github.com/rpmfusion/rpmfusion-nonfree-remix-kickstarts/blob/master/rpmfusion-nonfree-live-base.ks
|
||||
echo "== RPM Fusion Nonfree: Base section =="
|
||||
echo "Importing RPM Fusion keys"
|
||||
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-*-primary
|
||||
echo "List of packages from RPM Fusion Nonfree:"
|
||||
rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ' | sort
|
||||
echo "List of incuded RPM Fusion packages with their size:"
|
||||
rpm -q --qf '%{SIZE} %{NAME}\n' $(rpm -qa --qf '%{NAME} %{SIGGPG:pgpsig} %{SIGPGP:pgpsig} \n' | grep -e 3DE8C682E38EE9BC0FDFEA47FCAE2EA87F858107 | awk ' { print $1 } ') | sort -n
|
||||
echo
|
||||
|
||||
%end
|
15
ingredients/base-guest-agents.cfg
Normal file
15
ingredients/base-guest-agents.cfg
Normal file
@ -0,0 +1,15 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides guest-agents, which are useful for virtual machines
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
|
||||
|
||||
qemu-guest-agent # "QEMU guest agent" The qemu-guest agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine
|
||||
spice-vdagent # "Agent for Spice guests" The spice agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine
|
||||
|
||||
%end # End of the packages section
|
16
ingredients/base-hypervisor-amdcpu.cfg
Normal file
16
ingredients/base-hypervisor-amdcpu.cfg
Normal file
@ -0,0 +1,16 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file preloads the vfio-pci driver for devices that are binded to it, activates IOMMU and enables nested-virtualization for AMD (tm) CPUs
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-amdcpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_amd nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end # End of the %post section
|
16
ingredients/base-hypervisor-intelcpu.cfg
Normal file
16
ingredients/base-hypervisor-intelcpu.cfg
Normal file
@ -0,0 +1,16 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file preloads the vfio-pci driver for devices that are binded to it, activates IOMMU and enables nested-virtualization for Intel(tm) CPUs
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-intelcpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci/i' /mnt/sysimage/etc/default/grub # Load kernel modules in GRUB.
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
%end # End of the %post section
|
19
ingredients/base-hypervisor-intelgpu.cfg
Normal file
19
ingredients/base-hypervisor-intelgpu.cfg
Normal file
@ -0,0 +1,19 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file enables vfio-mdev and KVMGT for compatible Intel(tm) graphic cards, allowing a host to create virtual GPUs.
|
||||
# The fifth generation of Broadwell-based SoC are compatible, up to the ninth generation (Cannon Lake and Whiskey Lake). Tiger Lake and later SoC based on the new Xe GPU architecture are not compatible, as they use SR/IOV instead.
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-intelgpu.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installtion troubleshooting
|
||||
|
||||
sed -i 's/\(vfio-pci\)/\1 i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load extra kernel modules to enable vfio-mdev on selected hardware
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
%end # End of the %post section
|
14
ingredients/base-hypervisor-opencore.cfg
Normal file
14
ingredients/base-hypervisor-opencore.cfg
Normal file
@ -0,0 +1,14 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This ingredient fetches the latest version of the OpenCore bootloader (https://github.com/acidanthera/OpenCorePkg) for Darwin-based guests, as built by the OSX-KVM project
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-opencore.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
wget https://github.com/kholia/OSX-KVM/raw/master/OpenCore/OpenCore.qcow2 -P /mnt/sysimage/var/lib/libvirt/isos/ # command to fetch the OpenCore file distributed by OSX-KVM project and store it under the iso directory
|
||||
|
||||
%end
|
14
ingredients/base-hypervisor-virtio-win.cfg
Normal file
14
ingredients/base-hypervisor-virtio-win.cfg
Normal file
@ -0,0 +1,14 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This ingredient fetches the latest version of paravirtual drivers for Windows, as an ISO file.
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor-virtio-win.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # command to fetch the latest iso and put it under a particular directory
|
||||
|
||||
%end
|
55
ingredients/base-hypervisor.cfg
Normal file
55
ingredients/base-hypervisor.cfg
Normal file
@ -0,0 +1,55 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic, generic building block to build a virtualization host.
|
||||
|
||||
services --enabled="NetworkManager,libvirtd" # Without libvirtd here, it appears the service won't automatically start
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Does not include weak dependencies.
|
||||
|
||||
qemu-kvm
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
# libvirt-daemon-driver-lxc
|
||||
virt-install
|
||||
virt-top
|
||||
libguestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
|
||||
python3-libguestfs # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
|
||||
guestfs-tools # Complementary tools useful for interacting with vith guest systems. Could probablby be removed
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-hypervisor.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/isos # Create a directory to store iso images. SELinux is already taking this one into account.
|
||||
|
||||
# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/isos/ # fetch netboot.xyz iso and store it to the newly created iso directory
|
||||
|
||||
# # virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
# virsh pool-define-as isos dir - - - - /mnt/sysimage/var/lib/libvirt/isos/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
# virsh pool-build isos # Build the pool
|
||||
# virsh pool-start isos # Start it
|
||||
# virsh pool-autostart isos # Set-it to autostart
|
||||
|
||||
# fetch custom script and make it executable
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/phyllomeos/main/post-first-startup-scripts/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/local/bin/
|
||||
# chmod +x /mnt/sysimage/usr/local/bin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/linux.xml
|
||||
# virsh define linux.xml
|
||||
|
||||
# wget https://raw.githubusercontent.com/PhyllomeOS/xml-definition-for-domains/main/xml/system/windows.xml
|
||||
# virsh define windows.xml
|
||||
|
||||
%end # End of the %post section
|
28
ingredients/base-initial-setup-gnome.cfg
Normal file
28
ingredients/base-initial-setup-gnome.cfg
Normal file
@ -0,0 +1,28 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides the basic plumbing for GNOME initial-setup to launch on the first system start-up.
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
||||
gnome-initial-setup # Add GNOME initial setup too to let user create local account.
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --nochroot --log=/mnt/sysimage/opt/base-initial-setup-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment. Add logging.
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%end # End of the %post section
|
@ -5,13 +5,9 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file itents to provide a basic block small than the minimal operating system.
|
||||
# 'n' for nano, 'd' for development only.
|
||||
|
||||
%include bnd.cfg # A base system
|
||||
# What ? This kickstart file provides the basic plumbing for initial-setup to launch on the first system start-up.
|
||||
|
||||
firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
reboot --kexec # Reboot straight into the system after a successfull installation
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the packages section. Do not include weak dependencies.
|
||||
|
@ -5,5 +5,8 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor optimized for AMD (tm) CPUs
|
||||
# 'l' for live, 's' for server, 'h' for hypervisor', 'a' for amd
|
||||
part / --fstype="ext4" --size=5120
|
||||
|
||||
# %post --log=/opt/live-desktop-quirks.log # Beginning of %post section. The following commands are executed inside a chroot environment. Add logging
|
||||
|
||||
# %end # End of the %post section
|
129
ingredients/base-live.cfg
Normal file
129
ingredients/base-live.cfg
Normal file
@ -0,0 +1,129 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic block to build a minimal, live system
|
||||
|
||||
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandy
|
||||
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK
|
||||
timezone Europe/Paris --utc # Set system timezone to Paris
|
||||
|
||||
rootpw --lock --iscrypted locked # Lock the root account
|
||||
|
||||
selinux --disabled # Make sure SELinux is disabled / Other option: --enforcing
|
||||
firewall --enabled --service=mdns# Make sure the firewall is enabled
|
||||
services --enabled=NetworkManager,systemd-resolved --disabled=sshd
|
||||
network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network interfaces and set hostname. "link" selects the first device reaching an up state
|
||||
|
||||
zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
|
||||
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default.
|
||||
bootloader --location=none # Set the GNU GRUB bootloader
|
||||
part / --fstype="ext4" --size=5120 # Create a root partition of around 7GB
|
||||
|
||||
%packages # Beginning of the package section. Does not include weak dependencies.
|
||||
|
||||
@core # minimal installation
|
||||
@hardware-support # Provides extended hardware support, and especially extra wireless drivers
|
||||
pciutils # Pciutils provides lspci commandline tool, which is not installed by default
|
||||
libusb # add usb library (otherwise, USB 3.0 controllers seem to not work)
|
||||
usbutils # add lsusb utility
|
||||
wget # "The non-interactive network downloader. " Used to fetch files during installation
|
||||
neofetch # a simple tool to show hardware-related informations inside a terminal
|
||||
nano # The nano text editor
|
||||
-fedora-logos # Remove Fedora logos to comply with [Fedora Remix legal guidelines](https://fedoraproject.org/wiki/Remix)
|
||||
-fedora-release # Remove Fedora release-notes
|
||||
-fedora-release-notes # Remove Fedora release-notes
|
||||
-fedora-release-common # Remove Fedora release files
|
||||
-fedora-release-identity-basic # ???
|
||||
fedora-remix-logos # Add Fedora Remix logos
|
||||
generic-release # Add Fedora Remix logos
|
||||
generic-logos # Add Fedora Remix logos
|
||||
generic-release-common # "Generic release files"
|
||||
generic-release-notes # "Release Notes"
|
||||
grub2-common.noarch
|
||||
grub2-efi-ia32
|
||||
grub2-efi-x64
|
||||
grub2-efi-x64-cdboot
|
||||
grub2-pc-modules.noarch
|
||||
grub2-tools
|
||||
grub2-tools-efi
|
||||
grub2-tools-extra
|
||||
grub2-tools-minimal
|
||||
grubby
|
||||
|
||||
# Explicitly specified here:
|
||||
# <notting> walters: because otherwise dependency loops cause yum issues.
|
||||
kernel
|
||||
kernel-modules
|
||||
kernel-modules-extra
|
||||
|
||||
# Need aajohan-comfortaa-fonts for the SVG rnotes images
|
||||
aajohan-comfortaa-fonts
|
||||
|
||||
# Without this, initramfs generation during live image creation fails: #1242586
|
||||
dracut-live
|
||||
|
||||
# anaconda needs the locales available to run for different locales
|
||||
glibc-all-langpacks
|
||||
|
||||
# provide the livesys scripts
|
||||
livesys-scripts
|
||||
%end
|
||||
|
||||
%post
|
||||
|
||||
# Enable livesys services
|
||||
systemctl enable livesys.service
|
||||
systemctl enable livesys-late.service
|
||||
|
||||
# enable tmpfs for /tmp
|
||||
systemctl enable tmp.mount
|
||||
|
||||
# make it so that we don't do writing to the overlay for things which
|
||||
# are just tmpdirs/caches
|
||||
# note https://bugzilla.redhat.com/show_bug.cgi?id=1135475
|
||||
cat >> /etc/fstab << EOF
|
||||
vartmp /var/tmp tmpfs defaults 0 0
|
||||
EOF
|
||||
|
||||
# work around for poor key import UI in PackageKit
|
||||
rm -f /var/lib/rpm/__db*
|
||||
echo "Packages within this LiveCD"
|
||||
rpm -qa --qf '%{size}\t%{name}-%{version}-%{release}.%{arch}\n' |sort -rn
|
||||
# Note that running rpm recreates the rpm db files which aren't needed or wanted
|
||||
rm -f /var/lib/rpm/__db*
|
||||
|
||||
# go ahead and pre-make the man -k cache (#455968)
|
||||
/usr/bin/mandb
|
||||
|
||||
# make sure there aren't core files lying around
|
||||
rm -f /core*
|
||||
|
||||
# remove random seed, the newly installed instance should make it's own
|
||||
rm -f /var/lib/systemd/random-seed
|
||||
|
||||
# convince readahead not to collect
|
||||
# FIXME: for systemd
|
||||
|
||||
echo 'File created by kickstart. See systemd-update-done.service(8).' \
|
||||
| tee /etc/.updated >/var/.updated
|
||||
|
||||
# Drop the rescue kernel and initramfs, we don't need them on the live media itself.
|
||||
# See bug 1317709
|
||||
rm -f /boot/*-rescue*
|
||||
|
||||
# Disable network service here, as doing it in the services line
|
||||
# fails due to RHBZ #1369794
|
||||
systemctl disable network
|
||||
|
||||
# Remove machine-id on pre generated images
|
||||
rm -f /etc/machine-id
|
||||
touch /etc/machine-id
|
||||
|
||||
# set livesys session type
|
||||
sed -i 's/^livesys_session=.*/livesys_session="gnome"/' /etc/sysconfig/livesys
|
||||
|
||||
%end
|
@ -5,45 +5,25 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file itents to provide a basic block small than the minimal operating system.
|
||||
# 'b' for basic building block, 'n' for nano, 'd' for development only.
|
||||
# What ? This kickstart file intends to provide a basic block smaller than the minimal operating system.
|
||||
|
||||
# This is NOT a standalone kickstart file.
|
||||
|
||||
# ATTENTION : this kickstart file will automatically DESTROY the main disk and all of its contents.
|
||||
# Bye bye
|
||||
|
||||
# NOTE : it currently fails
|
||||
|
||||
# cmdline # Perform the full installation in real text mode see here https://wiki.centos.org/TipsAndTricks/KickStart
|
||||
text # Perform installation in text mode
|
||||
|
||||
# Installation method. For cdrom, replace repo and url with cdrom
|
||||
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
|
||||
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
|
||||
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandie
|
||||
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandy
|
||||
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK
|
||||
timezone Europe/Paris --utc # Set system timezone to Paris
|
||||
|
||||
rootpw --lock --iscrypted locked # Lock the root account
|
||||
|
||||
selinux --enforcing # Make sure SELinux is in enforced mode
|
||||
firewall --enabled --service=mdns # Make sure the firewall is enabled
|
||||
services --enabled=NetworkManager,libvirtd --disabled=sshd
|
||||
selinux --disabled # Make sure SELinux is disabled / Other option: --enforcing
|
||||
firewall --enabled # Make sure the firewall is enabled
|
||||
services --enabled=NetworkManager,systemd-resolved --disabled=sshd
|
||||
network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network interfaces and set hostname. "link" selects the first device reaching an up state
|
||||
|
||||
zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
|
||||
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default.
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an efi partitition of 128 MiB (vda1)
|
||||
part /boot --fstype="ext4" --size=384 --label=boot # Create a boot partition of 384 MiB using the ext4 filesystem (vda2).
|
||||
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3).
|
||||
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1.
|
||||
|
||||
# reboot --kexec # Reboot the system after the installation is successfully completed
|
||||
# firstboot --enable --reconfig # Initial Setup will start after the first reboot
|
||||
|
||||
%packages --excludedocs --nocore --exclude-weakdeps
|
||||
|
||||
kernel # The Linux kernel
|
||||
@ -55,18 +35,14 @@ util-linux #
|
||||
coreutils # Core GNU utilities
|
||||
systemd # System and Service Manager
|
||||
glibc-minimal-langpack # "Minimal language packs for glibc"
|
||||
grubby # "Command line tool for updating bootloader configs"
|
||||
grub2-efi-x64 # "GRUB for EFI systems"
|
||||
qemu-guest-agent # "QEMU guest agent"
|
||||
spice-vdagent # "Agent for Spice guests"
|
||||
glibc
|
||||
efibootmgr # "EFI Boot Manager"
|
||||
pciutils # Pciutils provides lspci commandline tool and is not installed by default
|
||||
audit
|
||||
basesystem
|
||||
curl
|
||||
dhcp-client
|
||||
dnf
|
||||
filesystem
|
||||
glibc
|
||||
grubby
|
||||
e2fsprogs
|
||||
hostname
|
||||
iproute
|
||||
iputils
|
||||
@ -74,19 +50,26 @@ kbd
|
||||
less
|
||||
man-db
|
||||
ncurses
|
||||
parted
|
||||
passwd
|
||||
policycoreutils
|
||||
procps-ng
|
||||
rootfiles
|
||||
rpm
|
||||
selinux-policy-targeted
|
||||
setup
|
||||
shadow-utils
|
||||
sudo
|
||||
systemd
|
||||
util-linux
|
||||
vim-minimal
|
||||
yum
|
||||
NetworkManager
|
||||
dnf-plugins-core
|
||||
dracut-config-rescue
|
||||
fedora-repos-modular
|
||||
firewalld
|
||||
plymouth
|
||||
systemd-oomd-defaults
|
||||
systemd-resolved
|
||||
zram-generator-defaults
|
||||
-fedora-release # Fedora release-notes
|
||||
-fedora-release-common # Fedora release files
|
||||
-fedora-release-identity-basic # ???
|
12
ingredients/base-storage-encrypted.cfg
Normal file
12
ingredients/base-storage-encrypted.cfg
Normal file
@ -0,0 +1,12 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic EXT4 partition layout for EFI-based systems, with full-disk encryption. User input is necessary during deployment, as there is no hardcoded password.
|
||||
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an efi partitition of 128 MiB (vda1)
|
||||
part /boot --fstype="ext4" --size=384 --label=boot # Create a boot partition of 384 MiB using the ext4 filesystem (vda2).
|
||||
part / --fstype="ext4" --grow --label=root --encrypted --luks-version=luks2 # The remaining space will be used for an encrypted root (vda3).
|
@ -5,5 +5,6 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? When flattened, this file will result in a stand-alone kickstart file that can be automatically deploy into a server-oriented live system with a hypervisor
|
||||
# 'l' for live, 's' for server, 'h' for hypervisor'
|
||||
# What ? This kickstart file provides a basic partition layout for live systems, without encryption.
|
||||
|
||||
part / --size=7750 # Create a root partition of around 7GB
|
12
ingredients/base-storage.cfg
Normal file
12
ingredients/base-storage.cfg
Normal file
@ -0,0 +1,12 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file provides a basic ext4 partition layout for UEFI-based systems, without full-disk encryption
|
||||
|
||||
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)
|
@ -5,46 +5,34 @@
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? This kickstart file provides a basic block to build a minimal operating system.
|
||||
# 'b' for basic building block
|
||||
# What ? This kickstart file provides the basic block to build a minimal operating system based on Fedora
|
||||
|
||||
# This is NOT a standalone kickstart file
|
||||
text # Perform the kickstart installation in text mode
|
||||
|
||||
text # Perform installation in text mode
|
||||
|
||||
# Installation method. For cdrom, replace repo and url with cdrom
|
||||
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora mirror
|
||||
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch # Official Fedora updates mirror
|
||||
|
||||
keyboard --xlayouts='ch (fr)' # set keyboard layouts for Romandie
|
||||
keyboard --xlayouts='ch (fr)' # Set keyboard layouts for Romandy
|
||||
lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK
|
||||
timezone Europe/Paris --utc # Set system timezone to Paris
|
||||
|
||||
rootpw --lock --iscrypted locked # Lock the root account
|
||||
|
||||
selinux --enforcing # Make sure SELinux is in enforced mode
|
||||
selinux --disabled # Make sure SELinux is disabled ; other option: --enforcing
|
||||
firewall --enabled --service=mdns # Make sure the firewall is enabled
|
||||
services --enabled=NetworkManager,libvirtd --disabled=sshd
|
||||
services --enabled=NetworkManager,chronyd,systemd-resolved --disabled=sshd
|
||||
network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network interfaces and set hostname. "link" selects the first device reaching an up state
|
||||
|
||||
zerombr # WARNING : Dangerous command ! Will clear the Master Boot Record
|
||||
clearpart --all --initlabel # Partition clearing information. This setup uses GPT by default.
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi # Will create an efi partitition of 128 MiB (vda1)
|
||||
part /boot --fstype="ext4" --size=384 --label=boot # Create a boot partition of 384 MiB using the ext4 filesystem (vda2).
|
||||
part / --fstype="ext4" --grow --label=root # The remaining space will be used for root (vda3).
|
||||
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1.
|
||||
bootloader --timeout=1 # Set the GNU GRUB bootloader timeout to 1
|
||||
|
||||
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies.
|
||||
%packages --exclude-weakdeps # Beginning of the package section. Does not include weak dependencies
|
||||
|
||||
@core # minimal installation
|
||||
@hardware-support # Provides extended hardware support, and especially extra wireless drivers
|
||||
pciutils # Pciutils provides lspci commandline tool, which is not installed by default
|
||||
libusb # add usb library (otherwise, USB 3.0 controllers seem to not work)
|
||||
usbutils # add lsusb utility
|
||||
wget # "The non-interactive network downloader. " Used to fetch files during installation
|
||||
neofetch # a simple tool to show hardware-related informations inside a terminal
|
||||
nano # The nano text editor
|
||||
qemu-guest-agent # "QEMU guest agent" The qemu-guest agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine
|
||||
spice-vdagent # "Agent for Spice guests" The spice agent is unnecessary for a bare-metal system. However, it is included here to cover cases where this kickstart file is used to deploy a virtual machine
|
||||
-fedora-logos # Remove Fedora logos to comply with [Fedora Remix legal guidelines](https://fedoraproject.org/wiki/Remix)
|
||||
-fedora-release # Remove Fedora release-notes
|
||||
-fedora-release-notes # Remove Fedora release-notes
|
||||
@ -58,10 +46,10 @@ generic-release-notes # "Release Notes"
|
||||
|
||||
%end # End of the packages section
|
||||
|
||||
%post --log=/root/b.log # Beginning of the post-installation section. Add logging.
|
||||
%post --log=/opt/base.log # Beginning of the post-installation section. Add logging.
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Unsure it is actually useful
|
||||
|
||||
%end # End of the %post section
|
25
ingredients/template.cfg
Normal file
25
ingredients/template.cfg
Normal file
@ -0,0 +1,25 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This partial kickstart file provides a template one can use to further extend an installation
|
||||
|
||||
# %packages --exclude-weakdeps # Beginning of the packages section. Excludes weak package dependencies
|
||||
# Any software in the official Fedora repository can be added [here](https://packages.fedoraproject.org/).
|
||||
|
||||
# gnome-shell # the version 3 of the GNOME desktop environment, without any presintalled applications
|
||||
|
||||
# %end
|
||||
|
||||
# %post --nochroot --log=/mnt/sysimage/opt/base-desktop-gnome.log # Beginning of %post section. Those commands are executed outside the chroot environment.
|
||||
# Use this section to further extend the system
|
||||
|
||||
# cat >> /mnt/sysimage/usr/share/glib-2.0/schemas/org.gnome.desktop.background.gschema.override<< EOF
|
||||
# [org.gnome.desktop.background]
|
||||
# picture-uri='file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
# EOF
|
||||
|
||||
# %end # End of the %post section
|
@ -1,143 +0,0 @@
|
||||
# Generated by pykickstart v3.34
|
||||
#version=DEVEL
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Reboot after installation
|
||||
reboot --kexec
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
|
||||
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/dh.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
dejavu-sans-mono-fonts
|
||||
elementary-wallpapers-gnome.noarch
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
gnome-initial-setup
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
libguestfs-tools
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-guest-agent
|
||||
qemu-kvm
|
||||
spice-vdagent
|
||||
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
|
@ -1,178 +0,0 @@
|
||||
# Generated by pykickstart v3.34
|
||||
#version=DEVEL
|
||||
# X Window System configuration information
|
||||
xconfig --defaultdesktop=GNOME --startxonboot
|
||||
# Keyboard layouts
|
||||
keyboard --xlayouts='ch (fr)'
|
||||
# Root password
|
||||
rootpw --iscrypted --lock locked
|
||||
# System language
|
||||
lang en_US.UTF-8
|
||||
# Reboot after installation
|
||||
reboot --kexec
|
||||
# Use text mode install
|
||||
text
|
||||
# Network information
|
||||
network --bootproto=dhcp --device=link --hostname=phyllome-alpha --activate
|
||||
# Firewall configuration
|
||||
firewall --enabled --service=mdns
|
||||
# Use network installation
|
||||
url --mirrorlist="https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch"
|
||||
repo --name="fedora" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
|
||||
repo --name="updates" --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
|
||||
# System timezone
|
||||
timezone Europe/Paris --utc
|
||||
# SELinux configuration
|
||||
selinux --enforcing
|
||||
# System services
|
||||
services --disabled="sshd" --enabled="NetworkManager,libvirtd"
|
||||
# System bootloader configuration
|
||||
bootloader --location=mbr --timeout=1
|
||||
# Clear the Master Boot Record
|
||||
zerombr
|
||||
# Partition clearing information
|
||||
clearpart --all --initlabel
|
||||
# Disk partitioning information
|
||||
part /boot/efi --fstype="efi" --size=128 --fsoptions="umask=0077,shortname=winnt" --label=efi
|
||||
part /boot --fstype="ext4" --size=384 --label=boot
|
||||
part / --fstype="ext4" --grow --label=root
|
||||
|
||||
%post --logfile=/root/b.log
|
||||
|
||||
localectl set-keymap ch-fr # Set keymap to `ch-fr`. Alternatively, `us` can be picked.
|
||||
dnf update -y # Update the system
|
||||
grub2-mkconfig -o /boot/grub2/grub.cfg # Update grub otherwise the system won't boot properly
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bh.log
|
||||
# %post --log=/root/bh.log # Beginning of %post section. Those commands are executed outside the chroot environment. Logging is enabled to help with post-installation troubleshooting
|
||||
|
||||
mkdir /mnt/sysimage/var/lib/libvirt/iso # Create a directory to store iso images
|
||||
|
||||
wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso -P /mnt/sysimage/var/lib/libvirt/iso/ # fetch netboot.xyz iso
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/configure-vmm-and-desktop.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/configure-vmm-and-desktop.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/create-live-vm.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/create-live-vm.sh
|
||||
|
||||
# fetch custom script and make it executable
|
||||
wget https://git.phyllo.me/home/PhyllomeOS/raw/branch/main/post/virtualization-tweaks-root-needed.sh -P /mnt/sysimage/usr/sbin/
|
||||
chmod +x /mnt/sysimage/usr/sbin/virtualization-tweaks-root-needed.sh
|
||||
|
||||
# # Create new file /etc/systemd/system/postinstall.service using cat:
|
||||
# cat > /mnt/sysimage/etc/systemd/system/post-install.service<< EOF
|
||||
# [Unit]
|
||||
# Description=Post-installation configuration for Phyllome OS
|
||||
# After=gdm.service
|
||||
# Requires=gdm.service
|
||||
#
|
||||
# [Service]
|
||||
# Type=oneshot
|
||||
# ExecStart=/bin/bash /usr/sbin/post-install.sh
|
||||
# RemainAfterExit=yes
|
||||
#
|
||||
# [Install]
|
||||
# WantedBy=multi-user.target
|
||||
# EOF
|
||||
#
|
||||
# systemctl enable /mnt/sysimage/etc/systemd/system/post-install.service # Enable systemd unit
|
||||
|
||||
# Add a network bridge. Still need to declare it to libvirt/virt-manager
|
||||
# nmcli con add ifname br0 type bridge con-name br0
|
||||
# nmcli con add type bridge-slave ifname enp1s0 master br0 # to-do : generalize this command so that it could regardless of the name of the ethernet device
|
||||
# nmcli con up br0
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/bhi.log
|
||||
|
||||
sed -i 's/\(quiet\)/\1 intel_iommu=on iommu=pt rd.driver.pre=vfio-pci i915.enable_gvt=1/i' /mnt/sysimage/etc/default/grub # Load kernel modules in grub.
|
||||
|
||||
# Load kernel modules by adding vfio, vfio_pci, vfio_iommu_type1, vfio_virqfd
|
||||
echo "vfio" > /mnt/sysimage/etc/modules-load.d/vfio.conf
|
||||
echo "vfio-pci" > /mnt/sysimage/etc/modules-load.d/vfio-pci.conf
|
||||
echo "vfio_iommu_type1" > /mnt/sysimage/etc/modules-load.d/vfio_iommu_type1.conf
|
||||
echo "vfio_virqfd" > /mnt/sysimage/etc/modules-load.d/vfio_virqfd.conf
|
||||
echo "kvmgt" > /mnt/sysimage/etc/modules-load.d/kvmgt.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
echo "vfio-mdev" > /mnt/sysimage/etc/modules-load.d/vfio-mdev.conf # Load specific kernel modules kvmgt and vfio-mdev, for Intel (tm) GVT-g and Nvidia (tm)
|
||||
|
||||
echo "options kvm_intel nested=1" >> /mnt/sysimage/etc/modprobe.d/kvm.conf # Add support for nested-virtualization
|
||||
|
||||
# The following part seems useless
|
||||
# dracut --add-drivers " vfio vfio-pci vfio_iommu_type1 vfio_virqfd vfio-mdev kvmgt " --force # Instruct dracut to load the vfio drivers
|
||||
# dracut --force # Regenerate initramfs
|
||||
# Doesn't seem to work
|
||||
# dracut: Cannot find /usr/lib/dracut/dracut-init.sh.
|
||||
# dracut: Are you running from a git checkout?
|
||||
# dracut: Try passing -l as an argument to /mnt/sysimage/usr/bin/dracut
|
||||
|
||||
# The following part seems useless too. No need to regenerate grub
|
||||
# grub2-mkconfig -o /mnt/sysimage/boot/grub2/grub.cfg # Update grub. Does it fail ? /usr/sbin/grub2-probe: error: failed to get canonical path of `LiveOS_rootfs'.
|
||||
|
||||
%end
|
||||
|
||||
%post --nochroot --logfile=/mnt/sysimage/root/dhi.log
|
||||
|
||||
truncate -s 0 /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf # remove content of vendor.conf so that all options are made available
|
||||
|
||||
# Create a file to autostart virt-manager
|
||||
cat > /mnt/sysimage/etc/xdg/autostart/virt-manager.desktop << EOF
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Virtual Machine Manager
|
||||
Exec=virt-manager
|
||||
EOF
|
||||
|
||||
## Append lines to existing vendor.conf file, so that options are skipped upon reboot
|
||||
cat >> /mnt/sysimage/usr/share/gnome-initial-setup/vendor.conf<< EOF
|
||||
[pages]
|
||||
skip=privacy
|
||||
[goa]
|
||||
providers=local-first!
|
||||
EOF
|
||||
|
||||
%end
|
||||
|
||||
%packages --exclude-weakdeps
|
||||
@core
|
||||
@hardware-support
|
||||
dejavu-sans-mono-fonts
|
||||
elementary-wallpapers-gnome.noarch
|
||||
fedora-remix-logos
|
||||
generic-logos
|
||||
generic-release
|
||||
generic-release-common
|
||||
generic-release-notes
|
||||
gnome-initial-setup
|
||||
gnome-shell
|
||||
gnome-terminal
|
||||
guestfs-tools
|
||||
libguestfs-tools
|
||||
libvirt
|
||||
libvirt-daemon-config-network
|
||||
libvirt-daemon-kvm
|
||||
nano
|
||||
neofetch
|
||||
pciutils
|
||||
python3-libguestfs
|
||||
qemu-guest-agent
|
||||
qemu-kvm
|
||||
spice-vdagent
|
||||
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
|
@ -1,61 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script is fetched during the kickstarted installation of machines shipping with a hypervisor.
|
||||
# Ideally, this would happened during the installation process.
|
||||
# Eventually, the elements within this script will be moved to a kickstart file
|
||||
# It is then executed once upon first-boot as a systemd-unit
|
||||
|
||||
# Set the default wallpaper for Phyllome
|
||||
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/elementary/Morskie Oko.jpg'
|
||||
|
||||
# Virtual Machine Manager opionated configuration
|
||||
# Options that aren't modified in comparaison to the default are commented out
|
||||
# Modify the default virt-manager behavior for the console
|
||||
gsettings set org.virt-manager.virt-manager.console resize-guest 1
|
||||
gsettings set org.virt-manager.virt-manager.console scaling 2
|
||||
gsettings set org.virt-manager.virt-manager.console autoconnect false
|
||||
# gsettings set org.virt-manager.virt-manager.console grab-keys ''
|
||||
# gsettings set org.virt-manager.virt-manager.console auto-redirect true
|
||||
|
||||
# Modify the default virt-manager behavior for confirmation dialogues
|
||||
gsettings set org.virt-manager.virt-manager.confirm forcepoweroff false
|
||||
# gsettings set org.virt-manager.virt-manager.confirm delete-storage true
|
||||
gsettings set org.virt-manager.virt-manager.confirm removedev false
|
||||
# gsettings set org.virt-manager.virt-manager.confirm pause false
|
||||
# gsettings set org.virt-manager.virt-manager.confirm poweroff false
|
||||
|
||||
# Modify default values for new VMs
|
||||
gsettings set org.virt-manager.virt-manager.new-vm storage-format 'raw'
|
||||
gsettings set org.virt-manager.virt-manager.new-vm cpu-default 'host-model'
|
||||
gsettings set org.virt-manager.virt-manager.new-vm graphics-type 'spice'
|
||||
|
||||
# Settings related to usage and statistics
|
||||
# gsettings set org.virt-manager.virt-manager.vmlist-fields host-cpu-usage false
|
||||
# gsettings set org.virt-manager.virt-manager.vmlist-fields memory-usage false
|
||||
gsettings set org.virt-manager.virt-manager.vmlist-fields cpu-usage false
|
||||
# gsettings set org.virt-manager.virt-manager.vmlist-fields disk-usage false
|
||||
# gsettings set org.virt-manager.virt-manager.vmlist-fields network-traffic false
|
||||
gsettings set org.virt-manager.virt-manager.stats enable-net-poll true
|
||||
gsettings set org.virt-manager.virt-manager.stats update-interval 3
|
||||
gsettings set org.virt-manager.virt-manager.stats enable-memory-poll true
|
||||
gsettings set org.virt-manager.virt-manager.stats enable-disk-poll true
|
||||
# gsettings set org.virt-manager.virt-manager.stats enable-cpu-poll true
|
||||
|
||||
# Modify the default virt-manager behavior for misc. options
|
||||
gsettings set org.virt-manager.virt-manager manager-window-width 200
|
||||
gsettings set org.virt-manager.virt-manager manager-window-height 500
|
||||
# gsettings set org.virt-manager.virt-manager.details show-toolbar true
|
||||
gsettings set org.virt-manager.virt-manager xmleditor-enabled true # enable xml edition
|
||||
# gsettings set org.virt-manager.virt-manager.urls kickstarts @as []
|
||||
# gsettings set org.virt-manager.virt-manager.urls containers @as []
|
||||
# gsettings set org.virt-manager.virt-manager.urls isos @as []
|
||||
# gsettings set org.virt-manager.virt-manager.urls urls @as []
|
||||
# gsettings set org.virt-manager.virt-manager enable-libguestfs-vm-inspection true
|
||||
gsettings set org.virt-manager.virt-manager.connections uris "['qemu:///system', 'qemu:///session']"
|
||||
gsettings set org.virt-manager.virt-manager.connections autoconnect "['qemu:///system', 'qemu:///session']"
|
||||
gsettings set org.virt-manager.virt-manager.confirm unapplied-dev false
|
||||
# gsettings set org.virt-manager.virt-manager.paths screenshot-default ''
|
||||
# gsettings set org.virt-manager.virt-manager.paths perms-fix-ignore @as []
|
||||
# gsettings set org.virt-manager.virt-manager.paths media-default ''
|
||||
# gsettings set org.virt-manager.virt-manager.paths image-default ''
|
||||
|
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Create and start a new diskless VM using virt-install, but do not launch any installation
|
||||
virt-install \
|
||||
--connect qemu:///system \
|
||||
--virt-type kvm \
|
||||
--arch x86_64 \
|
||||
--machine q35 \
|
||||
--name my-first-live-vm \
|
||||
--boot uefi \
|
||||
--cpu host-model,topology.sockets=1,topology.cores=1,topology.threads=1 \
|
||||
--vcpus 1 \
|
||||
--memory 2048 \
|
||||
--video virtio \
|
||||
--channel spicevmc \
|
||||
--autoconsole none \
|
||||
--sound none \
|
||||
--controller type=virtio-serial \
|
||||
--controller type=usb,model=none \
|
||||
--controller type=scsi,model=virtio-scsi \
|
||||
--network network=default,model=virtio \
|
||||
--input type=keyboard,bus=virtio \
|
||||
--input type=tablet,bus=virtio \
|
||||
--rng /dev/urandom,model=virtio \
|
||||
--disk none \
|
||||
--cdrom=/var/lib/libvirt/iso/netboot.xyz.iso \
|
||||
--install no_install=yes
|
@ -1,9 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# usermod -a -G libvirt $(whoami) # add current user to the libvirt group
|
||||
|
||||
# virsh commands fail in a kickstart environment (chroot or not it seems). would need to fetch a script and execute post-launch with a delay, for example using a systemd unit
|
||||
virsh pool-define-as iso dir - - - - /var/lib/libvirt/iso/ # Make libvirt aware of this new directory by creating a so-called 'pool'.
|
||||
virsh pool-build iso # Build the pool
|
||||
virsh pool-start iso # Start it
|
||||
virsh pool-autostart iso # Set-it to autostart
|
@ -1,4 +1,4 @@
|
||||
> This licence applies to chunks of code as found especially in the `bl.cfg` and `ld.cfg` files, as those files contain codes from the following GNU-licensed project: https://pagure.io/fedora-kickstarts. Standalone kickstart files that are based on the said code, such as `flat-ld.cfg`, are also released under this license.
|
||||
> This licence applies to chunks of code as found especially in the `../ingredients/base-live-desktop-quirks.cfg` and `../ingredients/base-live.cfg` files, as those files contain codes from the following GNU-licensed project: https://pagure.io/fedora-kickstarts. Standalone kickstart files that are based on the said code, such as `flat-ld.cfg`, are also released under this license.
|
||||
|
||||
> All new contributions are made under the parent MIT license.
|
||||
|
26
recipes/desktop-hypervisor-amdcpu.cfg
Normal file
26
recipes/desktop-hypervisor-amdcpu.cfg
Normal file
@ -0,0 +1,26 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor configured for AMD (tm) CPUs.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c desktop-hypervisor-amdcpu.cfg -o ../dishes/phyllome-desktop-amdcpu.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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-hypervisor-amdcpu.cfg # Specific virtualization configuration for AMD (tm) CPUs
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
27
recipes/desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
27
recipes/desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
@ -0,0 +1,27 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPU and Intel(tm) GPUs compatible with vfio-mdev (pre-Tiger Lake)
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c desktop-hypervisor-intelcpu-intelgpu.cfg -o ../dishes/phyllome-desktop-intelcpu-intelgpu.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
|
||||
%include ../ingredients/base-hypervisor-intelgpu.cfg # Specific virtualization configuration for Intel (tm) GPUs from 4th to the 9th generation (compatible with vfio-mdev).
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
26
recipes/desktop-hypervisor-intelcpu.cfg
Normal file
26
recipes/desktop-hypervisor-intelcpu.cfg
Normal file
@ -0,0 +1,26 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor configured for Intel(tm) CPUs
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c desktop-hypervisor-intelcpu.cfg -o ../dishes/phyllome-desktop-intelcpu.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
25
recipes/desktop-hypervisor.cfg
Normal file
25
recipes/desktop-hypervisor.cfg
Normal file
@ -0,0 +1,25 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c desktop-hypervisor.cfg -o ../dishes/phyllome-desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
23
recipes/desktop.cfg
Normal file
23
recipes/desktop.cfg
Normal file
@ -0,0 +1,23 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop machine using GNOME Shell.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c desktop.cfg -o ../dishes/desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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-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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
36
recipes/live-desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
36
recipes/live-desktop-hypervisor-intelcpu-intelgpu.cfg
Normal file
@ -0,0 +1,36 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor configured for Intel(tm) CPU and Intel(tm) GPUs compatible with vfio-mdev (pre-Tiger Lake)
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c live-desktop-hypervisor-intelcpu-intelgpu -o ../dishes/live-phyllome-desktop-intelcpu-intelgpu.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
# Instructions for creating an ISO file:
|
||||
# Temporary disable SELinux:
|
||||
# setenforce 0
|
||||
# Use the following command to create an ISO file, as the root user:
|
||||
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop-intelcpu-intelgpu.cfg --no-virt --iso-only --iso-name phyllome-desktop-intelcpu-intelgpu-x86_64.iso --releasever 38
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-intelcpu-intelgpu-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-intelcpu-intelgpu-x86_64.iso
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
|
||||
%include ../ingredients/base-live.cfg # A minimal base for live systems
|
||||
%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-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
|
||||
%include ../ingredients/base-hypervisor-intelgpu.cfg # Specific virtualization configuration for Intel (tm) GPUs from 4th to the 9th generation (compatible with vfio-mdev).
|
35
recipes/live-desktop-hypervisor-intelcpu.cfg
Normal file
35
recipes/live-desktop-hypervisor-intelcpu.cfg
Normal file
@ -0,0 +1,35 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor machine configured for Intel(tm) CPU.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c live-desktop-hypervisor-intelcpu.cfg -o ../dishes/live-phyllome-desktop-intelcpu.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
# Instructions for creating an ISO file:
|
||||
# Temporary disable SELinux:
|
||||
# setenforce 0
|
||||
# Use the following command to create an ISO file, as the root user:
|
||||
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop-intelcpu.cfg --no-virt --iso-only --iso-name phyllome-desktop-intelcpu-x86_64.iso --releasever 38
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-intelcpu-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-intelcpu-x86_64.iso
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
|
||||
%include ../ingredients/base-live.cfg # A minimal base for live systems
|
||||
%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-hypervisor-intelcpu.cfg # Specific virtualization configuration for Intel (tm) CPUs
|
34
recipes/live-desktop-hypervisor.cfg
Normal file
34
recipes/live-desktop-hypervisor.cfg
Normal file
@ -0,0 +1,34 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop hypervisor machine.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c live-desktop-hypervisor.cfg -o ../dishes/live-phyllome-desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
# Instructions for creating an ISO file
|
||||
# Temporary disable SELinux:
|
||||
# setenforce 0
|
||||
# Use the following command to create an ISO file, as the root user:
|
||||
# livemedia-creator --make-iso --ks ../dishes/live-phyllome-desktop.cfg --no-virt --iso-only --iso-name phyllome-desktop-x86_64.iso --releasever 38
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl phyllome-desktop-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl phyllome-desktop-x86_64.iso
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
|
||||
%include ../ingredients/base-live.cfg # A minimal base for live systems
|
||||
%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
|
34
recipes/live-desktop.cfg
Normal file
34
recipes/live-desktop.cfg
Normal file
@ -0,0 +1,34 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a live desktop machine.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c live-desktop.cfg -o ../dishes/live-desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
# Instructions for creating an ISO file
|
||||
# Temporary disable SELinux:
|
||||
# setenforce 0
|
||||
# Use the following command to create an ISO file, as the root user:
|
||||
# livemedia-creator --make-iso --ks live-desktop.cfg --no-virt --iso-only --iso-name live-desktop-x86_64.iso --releasever 38
|
||||
|
||||
# The resulting ISO can be tested with qemu-kvm, using the following these two commands, as *root*:
|
||||
# UEFI test:
|
||||
# qemu-kvm -bios /usr/share/edk2/ovmf/OVMF_CODE.fd -m 2048 -vga qxl live-desktop-x86_64.iso
|
||||
# BIOS test:
|
||||
# qemu-kvm -m 2048 -vga qxl live-desktop-x86_64.iso
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-live.cfg # A minimal base for live systems
|
||||
%include ../ingredients/base-storage-live.cfg # a base storage for live systems
|
||||
%include ../ingredients/base-desktop-gnome.cfg # A desktop environment based on GNOME Shell
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
22
recipes/nano.cfg
Normal file
22
recipes/nano.cfg
Normal file
@ -0,0 +1,22 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file itents to provide a basic block small than the minimal operating system.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c nano.cfg -o ../dishes/nano-server-a.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # offical repositories for Fedora
|
||||
%include ../ingredients/base-storage.cfg # base storage
|
||||
%include ../ingredients/base-nano.cfg # A base system
|
||||
%include ../ingredients/base-initial-setup.cfg # Includes initial-setup so on first-boot a new user can be created
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
26
recipes/virtual-desktop-hypervisor.cfg
Normal file
26
recipes/virtual-desktop-hypervisor.cfg
Normal file
@ -0,0 +1,26 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop hypervisor meant to be installed inside a virtual machine.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c virtual-desktop-hypervisor.cfg -o ../dishes/virtual-phyllome-desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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 that ships with virtual machine manager
|
||||
%include ../ingredients/base-desktop-virtual-machine-manager.cfg # the virtual machine manager
|
||||
%include ../ingredients/base-hypervisor.cfg # A base hypervisor
|
||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
24
recipes/virtual-desktop.cfg
Normal file
24
recipes/virtual-desktop.cfg
Normal file
@ -0,0 +1,24 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
|
||||
# What ? This kickstart file bootstraps a desktop machine using GNOME Shell meant to be used as a virtual machine.
|
||||
|
||||
# In order to be fed to virt-install or software like livecd-creator, this file needs to be flatten or merged into one.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c virtual-desktop.cfg -o ../dishes/virtual-desktop.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%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
|
||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||
%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
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
23
recipes/virtual-server.cfg
Normal file
23
recipes/virtual-server.cfg
Normal file
@ -0,0 +1,23 @@
|
||||
# __ ____ ____ _____
|
||||
# ____ / /_ __ __/ / /___ ____ ___ ___ / __ \/ ___/
|
||||
# / __ \/ __ \/ / / / / / __ \/ __ `__ \/ _ \ / / / /\__ \
|
||||
# / /_/ / / / / /_/ / / / /_/ / / / / / / __/ / /_/ /___/ /
|
||||
# / .___/_/ /_/\__, /_/_/\____/_/ /_/ /_/\___/ \____//____/
|
||||
# /_/ /____/
|
||||
#
|
||||
# What ? This kickstart file bootstraps a server-oriented system.
|
||||
|
||||
# In order to be fed to virt-install or a software like livecd-creator, this file needs to be flattened.
|
||||
# Here is how you can do it with the ksflatten tool provided by the pykickstart package on Fedora :
|
||||
# ksflatten -c virtual-server.cfg -o ../dishes/virtual-server.cfg
|
||||
|
||||
# to flatten all the files in the recipes repository, to the following
|
||||
# for filename in *.cfg; do ksflatten -c "$filename" -o "../dishes/$filename"; done
|
||||
|
||||
%include ../ingredients/base-fedora-repo.cfg # Offical repositories for Fedora
|
||||
%include ../ingredients/base-storage.cfg # A base storage
|
||||
%include ../ingredients/base.cfg # A base system
|
||||
%include ../ingredients/base-guest-agents.cfg # Guest agents
|
||||
%include ../ingredients/base-initial-setup.cfg # Includes initial-setup so on first-boot a new user can be created
|
||||
|
||||
poweroff # Shut down the system after a successful installation
|
Loading…
x
Reference in New Issue
Block a user