mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-04-28 11:31:19 +00:00
Add support for HyperV Gallery images
This commit is contained in:
parent
0fac541fb6
commit
335470331c
@ -108,8 +108,8 @@ Expire-Date: 0
|
|||||||
|
|
||||||
lb bootstrap "$@"
|
lb bootstrap "$@"
|
||||||
|
|
||||||
case $PROJECT in
|
case $PROJECT:${SUBPROJECT:-} in
|
||||||
ubuntu-server|ubuntu-cpc)
|
ubuntu-server:*|ubuntu-cpc:*|ubuntu:desktop-preinstalled)
|
||||||
# Set locale to C.UTF-8 by default. We should
|
# Set locale to C.UTF-8 by default. We should
|
||||||
# probably do this for all images early in the
|
# probably do this for all images early in the
|
||||||
# 18.10 cycle but for now just do it for
|
# 18.10 cycle but for now just do it for
|
||||||
|
@ -120,7 +120,7 @@ add_binary_hook ()
|
|||||||
|
|
||||||
if [ -z "${IMAGEFORMAT:-}" ]; then
|
if [ -z "${IMAGEFORMAT:-}" ]; then
|
||||||
case $PROJECT:${SUBPROJECT:-} in
|
case $PROJECT:${SUBPROJECT:-} in
|
||||||
ubuntu-cpc:*)
|
ubuntu-cpc:*|ubuntu:desktop-preinstalled)
|
||||||
if [ "$SUBARCH" = "raspi3" ]; then
|
if [ "$SUBARCH" = "raspi3" ]; then
|
||||||
# For now only raspi3, but others are soon to follow
|
# For now only raspi3, but others are soon to follow
|
||||||
IMAGEFORMAT=ubuntu-image
|
IMAGEFORMAT=ubuntu-image
|
||||||
@ -273,6 +273,13 @@ if [ "$PREINSTALLED" = "true" ]; then
|
|||||||
;;
|
;;
|
||||||
ubuntu-core|ubuntu-base|base|ubuntu-touch|ubuntu-touch-custom|ubuntu-cpc|ubuntu-desktop-next)
|
ubuntu-core|ubuntu-base|base|ubuntu-touch|ubuntu-touch-custom|ubuntu-cpc|ubuntu-desktop-next)
|
||||||
;;
|
;;
|
||||||
|
ubuntu)
|
||||||
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
||||||
|
add_package live ubiquity-slideshow-ubuntu
|
||||||
|
if [ "$SUBPROJECT" = "desktop-preinstalled" ]; then
|
||||||
|
add_package live language-pack-en-base
|
||||||
|
fi
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
add_package live oem-config-gtk ubiquity-frontend-gtk
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
||||||
add_package live ubiquity-slideshow-ubuntu
|
add_package live ubiquity-slideshow-ubuntu
|
||||||
@ -1058,8 +1065,8 @@ EOF
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
ubuntu-touch:*|ubuntu-touch-custom:*|ubuntu-core:system-image|ubuntu-desktop-next:system-image|ubuntu-cpc:*|ubuntu-server:live)
|
ubuntu-touch:*|ubuntu-touch-custom:*|ubuntu-core:system-image|ubuntu-desktop-next:system-image|ubuntu-cpc:*|ubuntu-server:live|ubuntu:desktop-preinstalled)
|
||||||
cp -af /usr/share/livecd-rootfs/live-build/${PROJECT}/* \
|
cp -afL /usr/share/livecd-rootfs/live-build/${PROJECT}/* \
|
||||||
config/
|
config/
|
||||||
|
|
||||||
if [ "$PROJECT" = "ubuntu-cpc" ]; then
|
if [ "$PROJECT" = "ubuntu-cpc" ]; then
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# vi: ts=4 expandtab syntax=sh
|
# vi: ts=4 expandtab syntax=sh
|
||||||
|
|
||||||
#imagesize=${IMAGE_SIZE:-$((2252*1024**2))} # 2.2G (the current size we ship)
|
# default imagesize = 2252*1024**2 = 2.2G (the current size we ship)
|
||||||
imagesize=${IMAGE_SIZE:-2361393152} # 2.2G (the current size we ship)
|
imagesize=${IMAGE_SIZE:-2361393152}
|
||||||
fs_label="${FS_LABEL:-rootfs}"
|
fs_label="${FS_LABEL:-rootfs}"
|
||||||
|
|
||||||
rootfs_dev_mapper=
|
rootfs_dev_mapper=
|
||||||
|
@ -9,8 +9,17 @@ case $ARCH in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
case ${PROJECT:-} in
|
||||||
|
ubuntu)
|
||||||
|
IMAGE_STR="# DESKTOP_IMG: This file was created/modified by the Desktop Image build process"
|
||||||
|
FS_LABEL="desktop-rootfs"
|
||||||
|
IMAGE_SIZE=12884901888 # 12G
|
||||||
|
;;
|
||||||
|
*)
|
||||||
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
|
IMAGE_STR="# CLOUD_IMG: This file was created/modified by the Cloud Image build process"
|
||||||
FS_LABEL="cloudimg-rootfs"
|
FS_LABEL="cloudimg-rootfs"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
. config/binary
|
. config/binary
|
||||||
|
|
||||||
|
1
live-build/ubuntu/hooks/033-disk-image-uefi.binary
Symbolic link
1
live-build/ubuntu/hooks/033-disk-image-uefi.binary
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../ubuntu-cpc/hooks.d/base/disk-image-uefi.binary
|
128
live-build/ubuntu/hooks/040-hyperv-desktop-images.binary
Normal file
128
live-build/ubuntu/hooks/040-hyperv-desktop-images.binary
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
#!/bin/bash -eux
|
||||||
|
|
||||||
|
echo "Creating Hyper-V image with Desktop..."
|
||||||
|
|
||||||
|
case ${SUBPROJECT:-} in
|
||||||
|
minimized)
|
||||||
|
echo "We don't create minimized images for $0."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "${ARCH}" in
|
||||||
|
amd64)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Hyper-V only supports amd64";
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
IMAGE_STR="# DESKTOP_IMG: This file was created/modified by the Desktop Image build process"
|
||||||
|
FS_LABEL="desktop-rootfs"
|
||||||
|
|
||||||
|
. config/functions
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
create_derivative uefi hyperv
|
||||||
|
scratch_d=$(mktemp -d)
|
||||||
|
mount_disk_image "${derivative_img}" "${scratch_d}"
|
||||||
|
|
||||||
|
cleanup_hyperv() {
|
||||||
|
umount_disk_image ${scratch_d}
|
||||||
|
rm -rf ${scratch_d}
|
||||||
|
}
|
||||||
|
trap cleanup_hyperv EXIT
|
||||||
|
|
||||||
|
# Perform customisations
|
||||||
|
|
||||||
|
chroot "${scratch_d}" apt-get update -y
|
||||||
|
chroot "${scratch_d}" apt-get -y install xrdp linux-tools-virtual linux-cloud-tools-virtual
|
||||||
|
|
||||||
|
cat > ${scratch_d}/etc/modules-load.d/hyperv.conf << EOF
|
||||||
|
${IMAGE_STR}
|
||||||
|
hv_sock
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat << EOF >> "${scratch_d}/etc/fstab"
|
||||||
|
LABEL=$FS_LABEL / ext4 defaults 0 0
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Customise xrdp
|
||||||
|
|
||||||
|
CHANGED_FILE_SUFFIX=.replaced-by-desktop-img-build
|
||||||
|
|
||||||
|
# use vsock transport.
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/use_vsock=false/use_vsock=true/g' "${scratch_d}/etc/xrdp/xrdp.ini"
|
||||||
|
# use rdp security.
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/security_layer=negotiate/security_layer=rdp/g' "${scratch_d}/etc/xrdp/xrdp.ini"
|
||||||
|
# remove encryption validation.
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/crypt_level=high/crypt_level=none/g' "${scratch_d}/etc/xrdp/xrdp.ini"
|
||||||
|
# disable bitmap compression since its local its much faster
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/bitmap_compression=true/bitmap_compression=false/g' "${scratch_d}/etc/xrdp/xrdp.ini"
|
||||||
|
|
||||||
|
# Add script to setup the ubuntu session properly
|
||||||
|
cat > "${scratch_d}/etc/xrdp/startubuntu.sh" << EOF
|
||||||
|
#!/bin/sh
|
||||||
|
${IMAGE_STR}
|
||||||
|
export GNOME_SHELL_SESSION_MODE=ubuntu
|
||||||
|
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
|
||||||
|
exec /etc/xrdp/startwm.sh
|
||||||
|
EOF
|
||||||
|
chmod a+x "${scratch_d}/etc/xrdp/startubuntu.sh"
|
||||||
|
|
||||||
|
# use the script to setup the ubuntu session
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/startwm/startubuntu/g' "${scratch_d}/etc/xrdp/sesman.ini"
|
||||||
|
|
||||||
|
# rename the redirected drives to 'shared-drives'
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/FuseMountName=thinclient_drives/FuseMountName=shared-drives/g' "${scratch_d}/etc/xrdp/sesman.ini"
|
||||||
|
|
||||||
|
# Changed the allowed_users
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's/allowed_users=console/allowed_users=anybody/g' "${scratch_d}/etc/X11/Xwrapper.config"
|
||||||
|
|
||||||
|
# Blacklist the vmw module
|
||||||
|
cat > "${scratch_d}/etc/modprobe.d/blacklist_vmw_vsock_vmci_transport.conf" << EOF
|
||||||
|
${IMAGE_STR}
|
||||||
|
blacklist vmw_vsock_vmci_transport
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Configure the policy xrdp session
|
||||||
|
cat > ${scratch_d}/etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla << EOF
|
||||||
|
${IMAGE_STR}
|
||||||
|
[Allow Colord all Users]
|
||||||
|
Identity=unix-user:*
|
||||||
|
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
|
||||||
|
ResultAny=no
|
||||||
|
ResultInactive=no
|
||||||
|
ResultActive=yes
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} -e 's|After=|ConditionPathExists=!/var/lib/oem-config/run\nAfter=|g' "${scratch_d}/lib/systemd/system/xrdp.service"
|
||||||
|
|
||||||
|
# End xrdp customisation
|
||||||
|
|
||||||
|
# Don't run gnome-initial-setup from gdm
|
||||||
|
sed -i${CHANGED_FILE_SUFFIX} "s|#WaylandEnable=false|#WaylandEnable=false\nInitialSetupEnable=false|" "${scratch_d}/etc/gdm3/custom.conf"
|
||||||
|
chroot "${scratch_d}" /usr/sbin/useradd -d /home/oem -m -N -u 29999 oem
|
||||||
|
chroot "${scratch_d}" /usr/sbin/oem-config-prepare --quiet
|
||||||
|
touch "${scratch_d}/var/lib/oem-config/run"
|
||||||
|
|
||||||
|
chroot "${scratch_d}" apt-get clean
|
||||||
|
|
||||||
|
# End customisations
|
||||||
|
|
||||||
|
cleanup_hyperv
|
||||||
|
trap - EXIT
|
||||||
|
|
||||||
|
raw_img=binary/boot/disk-hyperv-uefi.ext4
|
||||||
|
vhd_img=livecd.ubuntu-desktop-hyperv.vhdx
|
||||||
|
|
||||||
|
qemu-img convert -O vhdx "$raw_img" "$vhd_img"
|
||||||
|
rm "$raw_img"
|
||||||
|
|
||||||
|
apt-get install -y zip
|
||||||
|
zip "$vhd_img.zip" "$vhd_img"
|
||||||
|
rm "$vhd_img"
|
9
live-build/ubuntu/includes.chroot/etc/hosts
Normal file
9
live-build/ubuntu/includes.chroot/etc/hosts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
127.0.0.1 localhost.localdomain localhost
|
||||||
|
::1 localhost6.localdomain6 localhost6
|
||||||
|
|
||||||
|
# The following lines are desirable for IPv6 capable hosts
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
ff02::1 ip6-allnodes
|
||||||
|
ff02::2 ip6-allrouters
|
||||||
|
ff02::3 ip6-allhosts
|
Loading…
x
Reference in New Issue
Block a user