Where is the slideshow actually ?

Asked by Arno Le Prioux

Hi,

I am a total noob at tweaking the Ubuntu installer. I started messing with it because I wanted to automate an installation. I have successfully done so and I can automate quite a few things and am very happy with it.
For my own education I went ahead and started trying to break more things. I started modifying the slideshow and wanted to see these changes appear when I boot from my USB stick and install Ubuntu (for the thousandth time) on my test machine.
But I haven't seen the slideshow change. I've downloaded the source files, modified, tested with ./test-slideshow.py, all went great, I could see the changes. Then I figured I had to do "make" and then use "debuild" in the appropriate folders to get a .deb file.
I noticed the Ubuntu files from my usb stick had /pool/main/u/ubiquity-slideshow-ubuntu/oem-config-slideshow-ubuntu_160_all.deb, so I threw it away and replaced it with the one I had generated.
But the slideshow remains unchanged when making the bootable usb and installing Ubuntu. I unpacked the .deb file I had generated to double check its content and sure enough: the changes I made are in it.
So I went ahead and actually emptied the pool/main/uubiquity-slideshow-ubuntu folder, hoping to at least see the slideshow fail to load, but it's still there, intact, when I generate my usb and install Ubuntu.
I'm starting to think that pool/main/u/ubiquity-slideshow-ubuntu/ folder is a decoy. Where is the real slideshow ?
Thank you.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu ubiquity-slideshow-ubuntu Edit question
Assignee:
No assignee Edit question
Solved by:
Arno Le Prioux
Solved:
Last query:
Last reply:
Revision history for this message
Arno Le Prioux (arnolp) said :
#1

Tried following this recipe (but changed bionic to focal), and tried to do:
dpkg -i <myversionoftheslideshow>.deb
instead of
apt install ubiquity-slideshow-ubuntu

I successfully create a bootable stick, but still, see the "normal" slideshow

Revision history for this message
Arno Le Prioux (arnolp) said :
#2
Revision history for this message
Manfred Hampl (m-hampl) said :
#3

I think that the slideshow that is shown during installation is inside the casper/filesystem.squashfs file in /usr/share/ubiquity-slideshow/slides/

Revision history for this message
Arno Le Prioux (arnolp) said :
#4

Thank you for your reply ! I'll be sure to take a look and report if I could change the slideshow successfully.

Revision history for this message
Arno Le Prioux (arnolp) said :
#5

Ok solved it.
I assume like me, you wish to do this with Focal Fossa

Please follow this tutorial but replace every instance of "bionic" by "focal":
https://itnext.io/how-to-create-a-custom-ubuntu-live-from-scratch-dd3b3f213f81

Test it out first, I recommend doing at the end this command to wipe your usb stick:
sudo dd if=/dev/zero of=/dev/sdb bs=1M status=progress
(assuming your usb drive is /dev/sdb - be very careful that it is else you'll nuke some other device - the setting bs=1M helps go faster, but settings higher than that ended up failing to boot)
and then to put the iso:
sudo dd if=/path/to/your/iso of=/dev/sdb bs=1M status=progress

(For reference: I believe it is a simpler and more up to date version of this tutorial:
https://help.ubuntu.com/community/LiveCDCustomization)

At this stage you should be able to get it to work and install Focal Fossa after setting everything up yourself: congratulations.

Next: the file oem-config-slideshow-ubuntu_160_all.deb you see when you explore the iso you normally get by downloading Ubuntu, is actually not the one this tutorial needs, and it threw me off the tracks. The tutorial uses ubiquity-slideshow-ubuntu_160_all.deb. So:

You need to download the source code of the slideshow, do your changes to the slideshow, test it out (instructions in readme are really nice), then "make".
Note: you'll need apt install po4a; apt install python2; apt install debhelper-compat; and to be doing all of this on a Focal Fossa system, I haven't been able to run "make" successfully on bionic, I suppose it's a problem of version of debhelper-compat or whatever I can't be bothered to hunt down and fix.

Then change directory to build, and then to ubuntu, and run debuild (install it if you don't have it, you'll get a helpful error message). You'll get all of your .deb files outside of the source repository of the slideshow. As mentioned, you're interested in ubiquity-slideshow-ubuntu_160_all.deb.

Start over the tutorial at the top of this reply, but remove "ubiquity-slideshow-ubuntu" from the stuff you install with apt, bring in your ubiquity-slideshow-ubuntu_160_all.deb instead and run dpkg -i ubiquity-slideshow-ubuntu_160_all.deb. Finish all the other steps as usual.

Congratulations: you have changed the slideshow.

Whether I change the slideshow or just follow tutorial's instructions to the letter or not, I get a non fatal error message from the installer:

"Installed sudo package pre-removal script subprocess returned error exit status 1"
and then:
"An error occured while removing packages:
E:Sub-process /usr/bin/dpkg returned an error code (1)
The following packages are in a broken state:

This may be due to using an old installer image, or it may be due to a bug in some of the packages listed above. More details maybe found in var/log/syslog. The installer will try to continue anyway, but may fail at a later point, and will not be able to install or remove other packages (possibly including itself) from the installed system. You should first look for newer versions of your installer image, or failing that report the problem to your distributor"

What I usually observe as a consequence of these error messages is that dpkg is broken, and I get a suggestion of command to run to fix which is successful and fixes the issue, but as of this writing, this latest attempt has given me the usual error messages from the live installer but dpkg is fine. I get a bunch of errors for language support though, and couldn't report them.

Can someone reward me for figuring it out and tell me how to make the installer error messages go away ? (:0

Revision history for this message
Manfred Hampl (m-hampl) said :
#6

Are there any package names listed with the message

"An error occured while removing packages:
 E:Sub-process /usr/bin/dpkg returned an error code (1)
 The following packages are in a broken state:"

?

Revision history for this message
Arno Le Prioux (arnolp) said :
#7

No, it's blank

Revision history for this message
Arno Le Prioux (arnolp) said :
#8

I've reproduced the issue.
After first boot, when I try apt update && apt upgrade, I get :

dpkg was interrupted you must manually run sudo dpkg --configure -a

I run it and everything gets fixed.

I'd still really like to not have to do that and have no error in my installer, although it's a non fatal problem

Revision history for this message
Arno Le Prioux (arnolp) said :
#9

Hello again, and for the last time.
From my experience with the tutorial:
https://itnext.io/how-to-create-a-custom-ubuntu-live-from-scratch-dd3b3f213f81
and your initial reply of the slideshow being located in the squashfs, a light bulb went on in my head and I realized I could just look if there was a was to unsquash it. And of course there was !

So I unsquashed the bug-free squashfs from the .iso downloaded off of the official Ubuntu release and did my dpkg shenanigans again in there. Except this time the oem-config-slideshow-ubuntu_160_all.deb file really was the right one to use to change the slideshow.

I then regenerated the squashfs as it was done in the tutorial, the manifest, reprinted the filesystem.size, all like in the tutorial, updated the md5sum.txt file for these three files using the nifty md5sum tool and sed, then rebuilt the iso from all of that using:

sudo mkisofs -D -r -V "CARNAGE" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o carnage.iso CARNAGE && isohybrid carnage.iso

(I have named my attempts after the symbiote characters of the Spiderman comics)

I get a bug free automated installer with custom slideshow, and I also see now the door is open for tweaking Ubiquity and the UI as well, I am very happy about this.

Thank you very much for the pointer in the right direction, it really helped me figure it out.

All the best !