Fatdog64 ISO Builder

A home for all kinds of Puppy related projects
Message
Author
fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

Fatdog64 ISO Builder

#1 Post by fatdog »

As previously alluded in Fatdog64 702 thread, here comes the Fatdog64 ISO Builder. It enables you to build custom Fatdog64 700 series with your own selected packages.

____________________


You can make a customised Fatdog64 ISO in few ways.

You can:
a) use the remaster
b) extract basesfs, unsquashfs it, add/remove packages, and re-build the SFS.

And now you have 3rd option: use the Fatdog64 ISO Builder.
It enables you to build a custom ISO from the ground up, from a given list of packages. No remastering is involved. It is the same builder that we use ourselves to build the official ISO.

Another way to explain it: Fatdog64 ISO Builder is the Fatdog's version of Woof. If you have seen how the "next-generation" branch of Woof-CE (aka woof-ng), you would see a lot of similarities since the woof-ng builder was originally based from this.

_______________________________

Thank you for early testers - you know who you are.

Builders and package lists available here: http://distro.ibiblio.org/fatdog/iso/builder
Last edited by fatdog on Sun 04 Dec 2016, 08:01, edited 3 times in total.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

#2 Post by fatdog »

Ingredients:
1. The Fatdog64 ISO Builder: http://distro.ibiblio.org/fatdog/iso/bu ... .02.tar.xz
2. fatdog-initrd, get it from the latest Fatdog64 official ISO.
3. efiboot.img, get it from the latest Fatdog64 official ISO.
4. The package list for the Fatdog version you're trying to build. for 702 it's here: http://distro.ibiblio.org/fatdog/iso/bu ... ist.tar.xz

Item 2-4 is optional.
If you forgot to get 2) - you will be gently reminded at boot.
If you forgot to get 3) - your ISO will not boot on UEFI systems
If you forget to get 4) - it will use built-in pkglist which builds command-line only minimal ISO.

How does the tool work - I'm attaching here the output of README.md from the builder package.
Fatdog64 ISO Builder README wrote:Fatdog ISO Builder
==================

This is the Fatdog ISO Builder. This package enables you to build custom Fatdog ISO from the list of packages that you specified. The result of this script, when run properly, is an triple-hybrid ISO that will boot as an ISO, or when `dd`-ed into a USB flash drive, on BIOS and UEFI systems.

This is the same set of scripts that is used to build the official Fatdog64 ISO - so if you supply an identical initrd and identical package list (see below for details) - this script would create an ISO that is functionally identical with the official Fatdog64 ISO.

This script has been tested to run only on Fatdog64. It relies on certain tools that is known to exist and work on Fatdog64. It may work on other systems - but if you do that and you have problems, I don't want to hear about it.

This tool is a great alternative to remaster. Remaster more or less does the same thing; this one builds the ISO from the ground-up.

-------------------------------



Main usage
----------

The master script is called build-iso.sh. This script drives all other scripts. You can create a file called `build-iso.conf` and put that in this directory; that file will be sourced and all variables will be used instead of the ones specified in the script.

A default `build-iso.conf` is supplied with the default values given. You can change them to suit your needs.

`build-iso.sh` is capable of producing an ISO, and initrd, or standard Fatdog SFS-es (base sfs, devx sfs, and nls sfs). For the ISO, you can choose the standard humongous initrd, or small initrd, or "micro" initrd.

All the working files will be created in this directory unless you specify otherwise (via `build-iso.conf`). Thus make sure that you put this in a filesystem large enough to contain all the downloaded
packages and the final output.

It will use `tmp` as temporary directory by default; so you will also need plenty of space there. How big the space is needed depends on how many packages you want to build.

-------------------------------



Output
------

By default the output will be placed in the `iso` directory. Inside that directory, there are two scripts - `runiso.sh` and `runsfs.sh`. Both of these will use qemu-system-x86_64 to run the ISO (or fd64.sfs) you have created for testing purposes.

-------------------------------



Notes
-----

Five main ingredients are **not** supplied in this packages.

1. There are no actual packages inside. This will be downloaded by the build scripts.

2. There is no kernel inside. This will be downloaded by the build scripts.

3. There is no initrd inside. The supplied one is a dummy and must be replaced from an existing Fatdog ISO: get a recent ISO, extract out its initrd, put it in a folder called `fatdog-initrd` and use that folder to replace the one here.

If you forgot to do this you will be gently reminded when you boot the resulting ISO ☺

Make sure you remove `kernel-modules.sfs` and `fd64.sfs` from the extracted initrd to save space as they are not used and will be replaced with by the build process anyway.

4. There is no package list. The supplied package lists are dummy ones. They will build a CLI-only system with bash and a few common utilities.

You can start customising your system from here, or you can get a current Fatdog package list and work your way up from there.

5. `efiboot.img`, Fatdog's UEFI bootloader is not included. Grab it from any recent Fatdog ISO distribution, and put it in `fatdog-iso-root`. If you don't have it, you can still build the ISO but it will be built as standard isohybrid and will only boot on BIOS systems (or UEFI with legacy support enabled).

The reasons why these are not included is because they change often. `efiboot.img` is not included because of its size.

-------------------------------

Copyright (C) 2016 - The Fatdog Team.
License: GNU GPL version 2 or later.
Warranty: None. Use it at your own risk.
PS: FatdogArm has a "builder" like this since its beta1 release in 2014. It's located here: http://distro.ibiblio.org/fatdog/arm/im ... ta.tar.bz2
Last edited by fatdog on Sun 14 Feb 2016, 11:16, edited 2 times in total.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

#3 Post by fatdog »

Please don't expect too much support on this. It's targeted at people who knows what they're doing, although everyone is welcome to try. You are encouraged to look into the scripts to figure out how it works, and please feel free to edit it to suit your own needs.

Patches welcome, though.

EDIT: An example of the steps to do the build inside qemu is illustrated here: http://www.murga-linux.com/puppy/viewto ... 603#938603.
Last edited by fatdog on Mon 09 Jan 2017, 18:04, edited 2 times in total.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

User avatar
drunkjedi
Posts: 882
Joined: Mon 25 May 2015, 02:50

#4 Post by drunkjedi »

Whoa...

is this a tool that a noob like me can use.
I mean I just select the major names from different type of programs like graphical, multimedia, network, and it will take care of all other things?

Or am I getting too much ahead.

Any way I will give it a noobish try.

Thanks a lot.

quirkian2new
Posts: 152
Joined: Tue 06 Oct 2015, 14:10
Location: on the inter-planet train

#5 Post by quirkian2new »

OH !

Looking forward to this new toy as I do not want SeaMonkey to be the default browser but I just don't know how to remove it from FD701.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#6 Post by jamesbond »

@drunkjedi - sorry to disappoint you. This is not aimed a noob level. There is no GUI, no selection of anything. It a fully command-line tool. You populate the package list, edit some config files, and away it runs making a new ISO. You are still welcome to try, post comments, ask for help, suggestions, etc.

@quirkian - that's exactly what this is for. Don't like seamonkey, just remove it from the list and replace with palemoon or whatever stuff of your choosing, then run it.

I don't have the time to write the details yet, I'll do that asap. Note that since the Fatdog repo is (sort of) a rolling repo, an ISO built from 701 package list may not be the same as the real 701 because the packages that comprise 701 have been updated in between.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

User avatar
drunkjedi
Posts: 882
Joined: Mon 25 May 2015, 02:50

#7 Post by drunkjedi »

Ahh, no worries mate, this is still a good news, and I will try it no matter what, I will learn something in the process.

Thanks.

fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

#8 Post by fatdog »

Bump. Main post updated.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

User avatar
Ted Dog
Posts: 3965
Joined: Wed 14 Sep 2005, 02:35
Location: Heart of Texas

#9 Post by Ted Dog »

I Thought it goes smoothly.

fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

#10 Post by fatdog »

702-pkglist is updated to build with new glibc (build number -2). The new glibc is patched to avoid CVE-2015-7547.
Fatdog64 702 ISO and SFS are all being re-uploaded, they will be announced in the 702 thread when the re-upload is completed.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

fatdog
Posts: 104
Joined: Wed 17 Apr 2013, 03:12

#11 Post by fatdog »

Package list for Fatdog64 710 Final with new builder (dated 2016.12) is released.
-= The Fatdog Team (kirk, jamesbond, SFR and step) =-
[url=http://murga-linux.com/puppy/viewtopic.php?p=794748#794748]Contributed Fatdog64 packages thread[/url]
This account is used for announcements only. Send PM directly to members' handle.

proebler
Posts: 178
Joined: Tue 24 Jan 2012, 11:15
Location: TAS

#12 Post by proebler »

.. so I have tried to build my own customized version using the latest builder and a modified sfs-baselist.
All seemed to go well, a fatdog.iso and the fd64.sfs were created.
The problem is, that when I try to run my creation, it presents me with a login prompt for 'bulldog' [in the case of savefile=none] or for 'fatdog64-9e6' [ln the case of (existing) savefile=ram:device:sda3:/710b2/fd64save.ext4].

These are the Grub menu.lst entries:

asks for login
title myFD_27-12-16
root (hd0,0)
kernel /myFD/vmlinuz savefile=none
initrd /myFD/initrd

works ok with standard issue
title 710_final_4-12-16 SAVEFILE
root (hd0,2)
kernel /710b2/vmlinuz savefile=ram:device:sda3:/710b2/fd64save.ext4
initrd /710b2/initrd

How can I fix this?
Any help appreciated with thanks
proebler

User avatar
SFR
Posts: 1800
Joined: Wed 26 Oct 2011, 21:52

#13 Post by SFR »

Are you using so-called "small initrd"?
In such a case you need to specify the location of fd64.sfs using 'basesfs=...' boot option, just like you've done with 'savefile=...'.

Greetings!
[color=red][size=75][O]bdurate [R]ules [D]estroy [E]nthusiastic [R]ebels => [C]reative [H]umans [A]lways [O]pen [S]ource[/size][/color]
[b][color=green]Omnia mea mecum porto.[/color][/b]

proebler
Posts: 178
Joined: Tue 24 Jan 2012, 11:15
Location: TAS

#14 Post by proebler »

Are you using so-called "small initrd"?
no, normal large initrd with fd64.sfs inside.

edit: attached picture
Attachments
IMG_3472.JPG
login prompt for 'bulldog'
(190.63 KiB) Downloaded 703 times

User avatar
drunkjedi
Posts: 882
Joined: Mon 25 May 2015, 02:50

#15 Post by drunkjedi »

Could you please tell the size of initrd file.
Last edited by drunkjedi on Tue 27 Dec 2016, 22:25, edited 1 time in total.

User avatar
drunkjedi
Posts: 882
Joined: Mon 25 May 2015, 02:50

#16 Post by drunkjedi »

proebler wrote:All seemed to go well, a fatdog.iso and the fd64.sfs were created.
Where did you put that sfs file?
Extracted and packed again in initrd?

proebler
Posts: 178
Joined: Tue 24 Jan 2012, 11:15
Location: TAS

#17 Post by proebler »

a fatdog.iso and the fd64.sfs were created
they were created in the builder's iso directory, no extraction/packing on my behalf necessary.
initrd is 177MB
fd64.sfs is 118MB
NOTE please that I did not include the Libre Office and Gimp packages in my modified sfs-baselist, therefore the modest size.

I can run the fatdog.iso through isobooter [splash screen enabled] from USB, I get the splash screen correctly with all the option/help screens available but end up with the login prompt as described/shown in my previous post.

As a test, I have also inserted the fd64.sfs into the initrd of my standard issue FD710, which then fails to boot normally and instead prompts for the 'bulldog' login.
This seems to indicate that fd64.sfs is causing the problem.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#18 Post by jamesbond »

1. Did you try building with the default sfs-baselist?
- If yes, did it work?
- If no, try that first.
2. Please post your modified sfs-baselist.
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

Wognath
Posts: 423
Joined: Sun 19 Apr 2009, 17:23

#19 Post by Wognath »

Fatdog team, this is very cool, thanks for publishing it.

@proebler I had the same problem you described. In my case, I had forgotten to change owner of fatdog-iso-builder to root. (browser runs as spot)

proebler
Posts: 178
Joined: Tue 24 Jan 2012, 11:15
Location: TAS

#20 Post by proebler »

I have made some progress.
My build-iso attempts were initially made on an acer C720 with 2GB RAM, running the latest FD with savefile.
I did try and use the default sfs-baselist and ended up with the same booting trouble as with my modified sfs-baselist.
I noted that the size of the iso created [using the default sfs-baselist] was <200MB. That seemed strange because the normal size is 360MB.

I moved to a different machine that has 4GB RAM, booting FD without savefile and then repeated the iso building.
As before, all seemed to go well.
It produced a 306MB iso when using the default sfs-baselist and a 278MB one with my modified list [no libreoffice, no gimp].

The disappointment came when I tried to use them.
They fail with kernel panic; both when running through isobooter [on the 4GB RAM machine] or through qemu [on the 2GB RAM C720].
qemu is really a handy tool for testing, I have learned.
btw. I increased qemu default RAM setting from 500MB to 1000MB.

Now I am at a loss again and hope for some further help.
I attach:
a screen shot of the 'panicked' boot process,
the end part of the terminal output from the build process,
plus my modified sfs-baselist.

thanks
proebler
Attachments
kernel-panic-in-qemu.jpg
panicked boot process
(134.19 KiB) Downloaded 478 times
FD_forum.tar.gz
build process and sfs-baselist
(20.27 KiB) Downloaded 501 times

Post Reply