Compare commits
3 commits
bdb4b46799
...
43dff877cf
Author | SHA1 | Date | |
---|---|---|---|
43dff877cf | |||
c807a0fce6 | |||
16d7eb00bf |
13 changed files with 254 additions and 91 deletions
98
README.md
98
README.md
|
@ -6,6 +6,15 @@ Kiwi descriptions for Rocky Linux 9.
|
|||
changed to deal with live images (as kiwi doesn't seem to support using the
|
||||
--kiwi-file option for iso).
|
||||
|
||||
### What can I build?
|
||||
|
||||
At the time of this writing, you can create cloud images, live images, and
|
||||
containers. You can run any of the scripts to do so:
|
||||
|
||||
* cloud-build.sh
|
||||
* container-build.sh
|
||||
* live-build.sh
|
||||
|
||||
### Can't you use the same config.xml? Why are you symlinking?
|
||||
|
||||
Yes and the reason why we're symlinking is that "name" and "displayname" are
|
||||
|
@ -30,11 +39,54 @@ fact, most builds may fail in mock due to loop devices being unusable.
|
|||
**Note**: SELinux must be set to permissive.
|
||||
|
||||
**Note**: There may be cases where a build will fail in mock. If this is the
|
||||
case, you may need to use `--isolation=simple`.
|
||||
case, you may need to use `--isolation=simple` or forego the use of mock.
|
||||
|
||||
**Note**: If you receive an error about loop devices while running in mock, run
|
||||
this on the host instead.
|
||||
|
||||
#### Live Image Example on Rocky Linux 9 without using mock
|
||||
|
||||
```
|
||||
# Use SIG/Core
|
||||
% dnf install rocky-release-core
|
||||
% dnf install kiwi-cli git \
|
||||
dracut-kiwi-live \
|
||||
kiwi-systemdeps-{bootloaders,containers,core,disk-images,filesystems,image-validation,iso-media}
|
||||
|
||||
% sudo setenforce 0
|
||||
% git clone https://git.resf.org/sig_core/rocky-kiwi-descriptions -b r9
|
||||
% cd rocky-kiwi-descriptions
|
||||
% ln -sf configs/live-xfce.xml config.xml
|
||||
% kiwi-ng --debug --type="iso" \
|
||||
--profile="XFCE-Live" \
|
||||
--color-output system \
|
||||
build \
|
||||
--description="./" \
|
||||
--target-dir /builddir/lmc
|
||||
```
|
||||
|
||||
If you wish to use EPEL instead...
|
||||
|
||||
```
|
||||
% dnf install epel-release -y
|
||||
% crb enable
|
||||
% dnf install kiwi-cli git \
|
||||
dracut-kiwi-live \
|
||||
kiwi-systemdeps-{bootloaders,containers,core,disk-images,filesystems,image-validation,iso-media} \
|
||||
distribution-gpg-keys
|
||||
|
||||
% sudo setenforce 0
|
||||
% git clone https://git.resf.org/sig_core/rocky-kiwi-descriptions -b r9
|
||||
% cd rocky-kiwi-descriptions
|
||||
% ln -sf configs/live-xfce.xml config.xml
|
||||
% kiwi-ng --debug --type="iso" \
|
||||
--profile="XFCE-Live" \
|
||||
--color-output system \
|
||||
build \
|
||||
--description="./" \
|
||||
--target-dir /builddir/lmc
|
||||
```
|
||||
|
||||
#### Live Image Example (EPEL) using mock
|
||||
|
||||
The below makes an XFCE live image using SIG/Core packages.
|
||||
|
@ -93,46 +145,6 @@ mock environment.
|
|||
```
|
||||
% bash live-build.sh --live-image XFCE --output-dir /builddir/xfce
|
||||
```
|
||||
#### SBC Images
|
||||
Profiles choices include "GenericArm-GPT", "GenericArm-MBR", "RaspberryPi"
|
||||
|
||||
#### Live Image Example on Rocky Linux 9 without using mock
|
||||
|
||||
```
|
||||
# Use SIG/Core
|
||||
% dnf install rocky-release-core
|
||||
% dnf install kiwi-cli git \
|
||||
dracut-kiwi-live \
|
||||
kiwi-systemdeps-{bootloaders,containers,core,disk-images,filesystems,image-validation,iso-media}
|
||||
|
||||
% sudo setenforce 0
|
||||
% git clone https://git.resf.org/sig_core/rocky-kiwi-descriptions -b r9
|
||||
% cd rocky-kiwi-descriptions
|
||||
% ln -sf configs/live-xfce.xml config.xml
|
||||
% kiwi-ng --debug --type="iso" \
|
||||
--profile="XFCE-Live" \
|
||||
--color-output system \
|
||||
build \
|
||||
--description="./" \
|
||||
--target-dir /builddir/lmc
|
||||
```
|
||||
|
||||
If you wish to use EPEL instead...
|
||||
|
||||
```
|
||||
% dnf install epel-release -y
|
||||
% crb enable
|
||||
% dnf install kiwi-cli git \
|
||||
dracut-kiwi-live \
|
||||
kiwi-systemdeps-{bootloaders,containers,core,disk-images,filesystems,image-validation,iso-media} \
|
||||
distribution-gpg-keys
|
||||
|
||||
% sudo setenforce 0
|
||||
% git clone https://git.resf.org/sig_core/rocky-kiwi-descriptions -b r9
|
||||
% cd rocky-kiwi-descriptions
|
||||
% ln -sf configs/live-xfce.xml config.xml
|
||||
% kiwi-ng --debug --type="iso" \
|
||||
--profile="XFCE-Live" \
|
||||
--color-output system \
|
||||
build \
|
||||
--description="./" \
|
||||
--target-dir /builddir/lmc
|
||||
```
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<user name="rocky" groups="rocky,wheel" password="thereisnopassword" home="/home/rocky" pwdformat="encrypted" />
|
||||
</users> -->
|
||||
<!-- Only for SBC -->
|
||||
<users profiles="Core-Pi">
|
||||
<users profiles="Core-Pi,CoreSBC">
|
||||
<user password="$6$ggstAnji$tPNhSHa/OG4UrJ0P77ZHlCunu.pueMXtXgAER51mTJ7bpXl/onDplJXd0usMSlFP4gOn/A7BM7cGoVw/WcCKS." home="/home/rocky" name="rocky" groups="rocky,wheel"/>
|
||||
</users>
|
||||
</image>
|
||||
|
|
|
@ -1 +1 @@
|
|||
configs/rocky.xml
|
||||
configs/rocky-sbc-genericarm-gpt.xml
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<image schemaversion="7.4" name="Rocky">
|
||||
<image schemaversion="7.5" name="Rocky-generic-gpt">
|
||||
<description type="system">
|
||||
<author>Release Engineering (SIG/Core)</author>
|
||||
<contact>releng@rockylinux.org</contact>
|
||||
|
@ -19,7 +19,7 @@
|
|||
<include from="this://./repositories/gnulab-tmp.xml"/>
|
||||
<include from="this://./components/boot.xml"/>
|
||||
<include from="this://./components/users.xml"/>
|
||||
<include from="this://./sbc/pi.xml"/>
|
||||
<include from="this://./sbc/sbc-gpt.xml"/>
|
||||
<packages type="bootstrap">
|
||||
<package name="basesystem"/>
|
||||
<package name="filesystem"/>
|
27
configs/rocky-sbc-genericarm-mbr.xml
Normal file
27
configs/rocky-sbc-genericarm-mbr.xml
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<image schemaversion="7.4" name="Rocky-generic-mbr">
|
||||
<description type="system">
|
||||
<author>Release Engineering (SIG/Core)</author>
|
||||
<contact>releng@rockylinux.org</contact>
|
||||
<specification>Rocky Linux</specification>
|
||||
</description>
|
||||
<preferences>
|
||||
<version>9</version>
|
||||
<packagemanager>dnf</packagemanager>
|
||||
<locale>en_US</locale>
|
||||
<keytable>us</keytable>
|
||||
<timezone>UTC</timezone>
|
||||
<release-version>9</release-version>
|
||||
</preferences>
|
||||
<include from="this://./repositories/core.xml"/>
|
||||
<include from="this://./repositories/altarch-common.xml"/>
|
||||
<include from="this://./repositories/gnulab-tmp.xml"/>
|
||||
<include from="this://./components/boot.xml"/>
|
||||
<include from="this://./components/users.xml"/>
|
||||
<include from="this://./sbc/sbc-mbr.xml"/>
|
||||
<packages type="bootstrap">
|
||||
<package name="basesystem"/>
|
||||
<package name="filesystem"/>
|
||||
</packages>
|
||||
</image>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<image schemaversion="7.4" name="Rocky">
|
||||
<image schemaversion="7.4" name="Rocky-rpi">
|
||||
<description type="system">
|
||||
<author>Release Engineering (SIG/Core)</author>
|
||||
<contact>releng@rockylinux.org</contact>
|
||||
|
|
|
@ -6,4 +6,7 @@
|
|||
<repository type="rpm-md" alias="gnulab_tmp_2" priority="1">
|
||||
<source path="https://rockyrepos.gnulab.org/rpir$releasever/"/>
|
||||
</repository>
|
||||
<repository type="rpm-md" alias="codedude" priority="1">
|
||||
<source path="https://sbccrazy.codedude.us/aarch64_el9/kernel-mainline-sbc/"/>
|
||||
</repository>
|
||||
</image>
|
||||
|
|
29
rootfs-expand
Normal file
29
rootfs-expand
Normal file
|
@ -0,0 +1,29 @@
|
|||
#!/bin/bash
|
||||
clear
|
||||
part=$(mount |grep '^/dev.* / ' |awk '{print $1}')
|
||||
if [ -z "\$part" ];then
|
||||
echo "Error detecting rootfs"
|
||||
exit -1
|
||||
fi
|
||||
dev=$(echo $part|sed 's/[0-9]*$//g')
|
||||
devlen=${#dev}
|
||||
num=${part:$devlen}
|
||||
if [[ "$dev" =~ ^/dev/(mmcblk|nvme[0-9]+n)[0-9]*p$ ]];then
|
||||
dev=${dev:0:-1}
|
||||
fi
|
||||
if [ ! -x /usr/bin/growpart ];then
|
||||
echo "Please install cloud-utils-growpart (sudo yum install cloud-utils-growpart)"
|
||||
exit -2
|
||||
fi
|
||||
if [ ! -x /usr/sbin/resize2fs ];then
|
||||
echo "Please install e2fsprogs (sudo yum install e2fsprogs)"
|
||||
exit -3
|
||||
fi
|
||||
echo $part $dev $num
|
||||
|
||||
echo "Extending partition $num to max size ...."
|
||||
growpart $dev $num
|
||||
echo "Resizing ext4 filesystem ..."
|
||||
resize2fs $part
|
||||
echo "Done."
|
||||
df -h |grep $part
|
16
sbc-build.sh
16
sbc-build.sh
|
@ -80,19 +80,27 @@ function switch_repo_to_peridot() {
|
|||
}
|
||||
|
||||
function main() {
|
||||
/bin/rm config.xml
|
||||
if [[ -e config.xml ]]; then
|
||||
/bin/rm config.xml
|
||||
fi
|
||||
if [ ! -f "configs/rocky-sbc-${SBC,,}.xml" ]; then
|
||||
echo "${LIVE} was not found. Is it supported?"
|
||||
exit 42
|
||||
fi
|
||||
ln -sf "configs/rocky-sbc-${SBC,,}.xml" config.xml
|
||||
#ln -sf "configs/rocky-sbc-${SBC,,}.xml" config.xml
|
||||
|
||||
if [ -n "$PERIDOTID" ]; then
|
||||
switch_repo_to_peridot "${PERIDOTID}"
|
||||
fi
|
||||
|
||||
if [[ $SBC == "GenericArm-GPT" ]]; then
|
||||
ln -s configs/rocky-sbc-genericarm-gpt.xml config.xml
|
||||
elif [[ $SBC == "GenericArm-MBR" ]]; then
|
||||
ln -s configs/rocky-sbc-genericarm-mbr.xml config.xml
|
||||
else
|
||||
ln -s configs/rocky-sbc-raspberrypi.xml config.xml
|
||||
fi
|
||||
# shellcheck disable=SC2086
|
||||
kiwi-ng $DEBUG --type="oem" --profile="SBC-$SBC" --color-output system build --description="$SCRDIR" --target-dir "$OUTPUTDIR"
|
||||
kiwi-ng $DEBUG --type="oem" --profile="SBC-$SBC" --color-output system build --description="$SCRDIR" --target-dir "$OUTPUTDIR"
|
||||
}
|
||||
|
||||
main
|
||||
|
|
39
sbc/pi.xml
39
sbc/pi.xml
|
@ -6,9 +6,6 @@
|
|||
<profile name="SBC-RaspberryPi" description="Raspberry Pi Image">
|
||||
<requires profile="Core-Pi"/>
|
||||
</profile>
|
||||
<profile name="SBC-GenericArm" description="Generic ARM Image">
|
||||
<requires profile="Core-Pi"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
<!-- RPI -->
|
||||
<preferences profiles="SBC-RaspberryPi" arch="aarch64">
|
||||
|
@ -28,25 +25,6 @@
|
|||
<bootloader name="grub2" console="serial"/>
|
||||
</type>
|
||||
</preferences>
|
||||
<preferences profiles="SBC-GenericArm" arch="aarch64">
|
||||
<type image="oem"
|
||||
filesystem="ext4"
|
||||
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="500" firmware="efi"
|
||||
kernelcmdline="root=LABEL=rootfs rootfstype=ext4 elevator=deadline rootwait console=ttyS0"
|
||||
devicepersistency="by-label"
|
||||
editbootinstall="sbc/editbootinstall_genericarm.sh"
|
||||
rootfs_label="rootfs">
|
||||
<oemconfig>
|
||||
<oem-resize>false</oem-resize>
|
||||
<oem-skip-verify>true</oem-skip-verify>
|
||||
<oem-swap>true</oem-swap>
|
||||
<oem-swapsize>500</oem-swapsize>
|
||||
</oemconfig>
|
||||
<bootloader name="grub2" console="serial"/>
|
||||
<size unit="G">3</size>
|
||||
</type>
|
||||
</preferences>
|
||||
|
||||
<packages type="image" patternType="plusRecommended" profiles="Core-Pi">
|
||||
<namedCollection name="core"/>
|
||||
<package name="rocky-release"/>
|
||||
|
@ -62,25 +40,8 @@
|
|||
<package name="NetworkManager-wifi"/>
|
||||
<package name="rng-tools"/>
|
||||
<package name="vim"/>
|
||||
</packages>
|
||||
<packages type="image" patternType="plusRecommended" profiles="SBC-RaspberryPi">
|
||||
<package name="rocky-release-rpi"/>
|
||||
<package name="raspberrypi2-firmware"/>
|
||||
<package name="raspberrypi2-kernel4"/>
|
||||
</packages>
|
||||
<packages type="image" patternType="plusRecommended" profiles="SBC-GenericArm">
|
||||
<package name="bcm2711-firmware"/>
|
||||
<package name="bcm2835-firmware"/>
|
||||
<package name="bcm283x-firmware"/>
|
||||
<package name="bcm283x-overlays"/>
|
||||
<package name="dracut-config-generic"/>
|
||||
<package name="efibootmgr"/>
|
||||
<package name="kernel"/>
|
||||
<package name="kernel-core"/>
|
||||
<package name="systemd-udev"/>
|
||||
<package name="uboot-images-armv8"/>
|
||||
<package name="uboot-tools"/>
|
||||
<ignore name="dracut-config-rescue"/>
|
||||
<ignore name="java-11-*"/>
|
||||
</packages>
|
||||
</image>
|
||||
|
|
55
sbc/sbc-gpt.xml
Normal file
55
sbc/sbc-gpt.xml
Normal file
|
@ -0,0 +1,55 @@
|
|||
<image>
|
||||
<profiles>
|
||||
<profile name="CoreSBC" description="SBC Base Packages">
|
||||
<requires profile="Core-Boot"/>
|
||||
</profile>
|
||||
<profile name="SBC-GenericArm-GPT" description="Generic ARM Image GPT">
|
||||
<requires profile="CoreSBC"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
<preferences profiles="SBC-GenericArm-GPT" arch="aarch64">
|
||||
<type image="oem"
|
||||
filesystem="ext4"
|
||||
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="500" firmware="efi"
|
||||
kernelcmdline="root=LABEL=rootfs rootfstype=ext4 elevator=deadline rootwait console=ttyS0"
|
||||
devicepersistency="by-label"
|
||||
rootfs_label="rootfs">
|
||||
<oemconfig>
|
||||
<oem-resize>false</oem-resize>
|
||||
<oem-skip-verify>true</oem-skip-verify>
|
||||
<oem-swap>true</oem-swap>
|
||||
<oem-swapsize>500</oem-swapsize>
|
||||
</oemconfig>
|
||||
<bootloader name="grub2" console="serial"/>
|
||||
<size unit="G">5</size>
|
||||
</type>
|
||||
</preferences>
|
||||
<packages type="image" patternType="plusRecommended" profiles="CoreSBC">
|
||||
<namedCollection name="core"/>
|
||||
<package name="rocky-release"/>
|
||||
<package name="rocky-release-altarch"/>
|
||||
<package name="bash-completion"/>
|
||||
<package name="chrony"/>
|
||||
<package name="cloud-utils-growpart"/>
|
||||
<package name="langpacks-en"/>
|
||||
<package name="glibc-all-langpacks"/>
|
||||
<package name="net-tools"/>
|
||||
<package name="nano"/>
|
||||
<package name="NetworkManager-wifi"/>
|
||||
<package name="rng-tools"/>
|
||||
<package name="vim"/>
|
||||
<package name="bcm2711-firmware"/>
|
||||
<package name="bcm2835-firmware"/>
|
||||
<package name="bcm283x-firmware"/>
|
||||
<package name="bcm283x-overlays"/>
|
||||
<package name="dracut-config-generic"/>
|
||||
<package name="efibootmgr"/>
|
||||
<package name="kernel-mainline-sbc"/>
|
||||
<package name="systemd-udev"/>
|
||||
<package name="uboot-images-armv8"/>
|
||||
<package name="uboot-tools"/>
|
||||
<ignore name="dracut-config-rescue"/>
|
||||
<ignore name="java-11-*"/>
|
||||
<ignore name="kernel-core-6*"/>
|
||||
</packages>
|
||||
</image>
|
56
sbc/sbc-mbr.xml
Normal file
56
sbc/sbc-mbr.xml
Normal file
|
@ -0,0 +1,56 @@
|
|||
<image>
|
||||
<profiles>
|
||||
<profile name="CoreSBC" description="SBC Base Packages">
|
||||
<requires profile="Core-Boot"/>
|
||||
</profile>
|
||||
<profile name="SBC-GenericArm-MBR" description="Generic ARM Image MBR">
|
||||
<requires profile="CoreSBC"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
<preferences profiles="SBC-GenericArm-MBR" arch="aarch64">
|
||||
<type image="oem"
|
||||
filesystem="ext4"
|
||||
bootpartition="true" bootpartsize="1000" bootfilesystem="ext4" efipartsize="500" firmware="efi"
|
||||
kernelcmdline="root=LABEL=rootfs rootfstype=ext4 elevator=deadline rootwait console=ttyS0"
|
||||
devicepersistency="by-label"
|
||||
editbootinstall="sbc/editbootinstall_rpi.sh"
|
||||
rootfs_label="rootfs">
|
||||
<oemconfig>
|
||||
<oem-resize>false</oem-resize>
|
||||
<oem-skip-verify>true</oem-skip-verify>
|
||||
<oem-swap>true</oem-swap>
|
||||
<oem-swapsize>500</oem-swapsize>
|
||||
</oemconfig>
|
||||
<bootloader name="grub2" console="serial"/>
|
||||
<size unit="G">5</size>
|
||||
</type>
|
||||
</preferences>
|
||||
<packages type="image" patternType="plusRecommended" profiles="CoreSBC">
|
||||
<namedCollection name="core"/>
|
||||
<package name="rocky-release"/>
|
||||
<package name="rocky-release-altarch"/>
|
||||
<package name="bash-completion"/>
|
||||
<package name="chrony"/>
|
||||
<package name="cloud-utils-growpart"/>
|
||||
<package name="langpacks-en"/>
|
||||
<package name="glibc-all-langpacks"/>
|
||||
<package name="net-tools"/>
|
||||
<package name="nano"/>
|
||||
<package name="NetworkManager-wifi"/>
|
||||
<package name="rng-tools"/>
|
||||
<package name="vim"/>
|
||||
<package name="bcm2711-firmware"/>
|
||||
<package name="bcm2835-firmware"/>
|
||||
<package name="bcm283x-firmware"/>
|
||||
<package name="bcm283x-overlays"/>
|
||||
<package name="dracut-config-generic"/>
|
||||
<package name="efibootmgr"/>
|
||||
<package name="kernel-mainline-sbc"/>
|
||||
<package name="systemd-udev"/>
|
||||
<package name="uboot-images-armv8"/>
|
||||
<package name="uboot-tools"/>
|
||||
<ignore name="dracut-config-rescue"/>
|
||||
<ignore name="java-11-*"/>
|
||||
<ignore name="kernel-core-6*"/>
|
||||
</packages>
|
||||
</image>
|
12
wsl/default.xml
Normal file
12
wsl/default.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<image>
|
||||
<profiles>
|
||||
<profile name="XFCE-Live" description="Rocky Linux XFCE">
|
||||
<requires profile="Live-Base"/>
|
||||
<requires profile="XFCE-Desktop"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
<packages type="bootstrap" patternType="plusRecommended" profiles="XFCE-Live">
|
||||
<package name="rocky-release"/>
|
||||
<package name="epel-release"/>
|
||||
</packages>
|
||||
</image>
|
Loading…
Reference in a new issue