SolydXK MultiBoot App - Request for Comment

Contribute code to SolydXK and make it even better.
User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 06 Jul 2014 19:04

The idea is to build an application designed to
  1. User to create a bootable USB device
  2. Device to hold one or more "live" .iso images
  3. User will be able to boot into any of the .iso images on the device
  4. User to be able to specify the .iso files to be written to the device and to associate each with one of the current SolydXK release products
  5. No given source file can be used for more than one of the listed SolydXK editions
This, then, is the current state of the GUI (understanding that this is not yet a finished product). Either the "...." buttons or the file picker buttons (or some other mechanism) will prevail in the final version.
MultiBoot.jpg
The idea is to click on one of the buttons on the right to open the File Selection dialog and select a file. The path to that file will be written to the Text Entry control to the left. Space permitting, a maximum of one of each edition will be written to the USB device. When the user clicks the "Execute" button, the .iso files and some boot type code will be written to the USB device.

The "Refresh" button is to re-scan for devices to write to.

From a design standpoint, I can see two ways for the application to "obtain" the list of editions:
  1. Some sort of configuration file. This would contain the name of the edtion, a "standardized" target name for the copied .iso (that is, the source can be called anything, but it will be written to the USB device with a standardized name), and any other configuration type data. This has the advantage of the application being easily ported to other distros.
  2. All the above information "hard-coded" into the application.
Thoughts?
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

User avatar
Arjen Balfoort
Site Admin
Posts: 9219
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: SolydXK MultiBoot App - Request for Comment

Postby Arjen Balfoort » 06 Jul 2014 19:29

Hi Scott,

Good to see you started working on this!

You will need to keep the design, and code as simple as possible.
Separate selection buttons for each SolydXK version is not really needed, just one. When the user selects a previously downloaded ISO, you can mount it, and read the /boot/grub/grub.cfg file. In there you will be able to check what version was selected.

grub.cfg of the SolydK32 ISO:

Code: Select all

if loadfont /boot/grub/font.pf2 ; then
	set gfxmode=auto
	insmod efi_gop
	insmod efi_uga
	insmod gfxterm
	terminal_output gfxterm
fi

background_image /boot/grub/grubbg.png
set menu_color_normal=white/black
set menu_color_highlight=dark-gray/white
set timeout=5

menuentry "Start SolydK 32-bit 201407" {
    set gfxpayload=keep
    linux   /live/vmlinuz boot=live live-config live-media-path=/live quiet splash --
    initrd  /live/initrd.img
}
menuentry "Start SolydK 32-bit 201407 without Plymouth" {
    set gfxpayload=keep
    linux   /live/vmlinuz boot=live live-config live-media-path=/live quiet --
    initrd  /live/initrd.img
}
menuentry "Start SolydK 32-bit 201407 (compatibility mode)" {
    linux   /live/vmlinuz boot=live live-config live-media-path=/live ramdisk_size=1048576 root=/dev/ram rw noapic noapci nosplash irqpoll --
    initrd  /live/initrd.img
}
menuentry "Check the integrity of the medium" {
    linux   /live/vmlinuz  boot=live verify-checksums live-media-path=/live --
    initrd  /live/initrd.img
}
When done, you simply umount the ISO.

You can also fill a drop down box with all versions (filled from external configuration file) to download the ISO, and then burn it to the pen drive. Each time I release the new ISOs I create a symlink for each of them that never changes name. E.g.: http://downloads.solydxk.nl/solydk32_latest.iso does always point to the latest ISO.

The config file would look something like:

Code: Select all

[versions]
SolydK 32-bit,http://downloads.solydxk.com/solydk32_latest.iso
SolydK 64-bit,http://downloads.solydxk.com/solydk64_latest.iso
SolydX 32-bit,http://downloads.solydxk.com/solydx32_latest.iso
SolydX 64-bit,http://downloads.solydxk.com/solydx64_latest.iso
SolydXBE,http://downloads.solydxk.com/solydxbe_latest.iso
SolydKBE,http://downloads.solydxk.com/solydkbe_latest.iso
SolydKBO,http://downloads.solydxk.com/solydkbo_latest.iso
A comma separated list, which can be easily extended.

I've attached a drawing to give you an idea:
multi-boot-design-draft1.png
multi-boot-design-draft1.png (60.73 KiB) Viewed 5095 times


SolydXK needs you!
Development | Testing | Translations

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 06 Jul 2014 20:02

How about this:
MultiBootGUI-01_RavenLX.jpg
MultiBoot GUI Idea 1 by RavenLX
MultiBootGUI-01_RavenLX.jpg (21.2 KiB) Viewed 5092 times
I figure one tab where you can list all the ISOs (and maybe have a - by them to delete one) since you'll have multiple ISOs. Also what if someone is adding a custom or "Community" edition?

Then another tab to add to the list of ISO. That tab is shown below. That one you can put in a "Name" such as "SolydK 64-bit Home Edition" or "SolydK Medical Community Edition" or whatever.

BTW, I copied your image and GIMP'ed it. :)

(You will have to scroll the image horizontally to see it all as it seems like the forum cropped it some.)

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 06 Jul 2014 20:03

BTW, what version of Python and Glade are you using? Also can you give us a link to your GitHub again?

User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

Re: SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 06 Jul 2014 20:53

@Schoelje
I worked on it before I had that wonderful day (18MAY2014 - I'll never forget it!) .... it's just been in stasis until I could get enough energy and focus to do anything with it.

Let me see if I understand you correctly....
  1. If a user has three .iso files that he/she wants to use to create a multi-boot USB device then the application will need to be run three times and each time the application will need to determine if there is space available on the device for the "current" .iso file.
  2. If there's not enough room, then the application aborts with a warning to the user to blow away one of the .iso files on the USB device? Or, should there be a feature wherein the user can select one or more currently installed .iso images to be removed from the USB device?
  3. Should there be a feature to allow over-writing a previously installed .iso with a more recently version.
  4. Or, I have completely mis-understood and what is needed is an app more like unetbootin that will create a bootable (legacy or UEFI) USB device for only one .iso

@RavenLX
Here's the link to the github --> https://github.com/SolydXK/multi-usb-creator
Glade version is currently 3.16.1
Python version is 3.x

I like the idea of the application doing a quick query of the pen-drive to determine what might already be installed on it. Done right, this could be a short step away from a ISO maintenance feature that allows the user to delete installed items. Should also include version, and date installed on the device.

As for community editions and/or other spins and user names for all the above, well, I'll have to look at the code required. Shouldn't be too hard, but I really haven't looked so I don't know if it'll be worth the effort for a version < 2.0
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 06 Jul 2014 22:35

@Scott - Thank you for the github url.
ScottQuier wrote: Glade version is currently 3.16.1
Python version is 3.x
Ok, good, I have the same versions. I was most concerned about Glade because if we weren't using the same version, and I gave you a glade file of an idea it might not work in another version. But looks like that won't be a problem.
ScottQuier wrote: I like the idea of the application doing a quick query of the pen-drive to determine what might already be installed on it.
Why not look at the grub.config on the drive? If I remember right, wasn't there some SET commands that would determine what was on it and also maybe read the menu items?
ScottQuier wrote: Done right, this could be a short step away from a ISO maintenance feature that allows the user to delete installed items. Should also include version, and date installed on the device.
Maybe this could go into some special comments in grub.config like:

Code: Select all

#%INSTALLDATE=2014-0714%%NAME=SolydK64-bitHomeEdition%%ISO=solydk64.iso%
ScottQuier wrote: As for community editions and/or other spins and user names for all the above, well, I'll have to look at the code required. Shouldn't be too hard, but I really haven't looked so I don't know if it'll be worth the effort for a version < 2.0
I think if you have some way to look at what's on the drive and have people input the names, and iso's then it can be implemented (theoretically it would work then with *anything*, not just SolydKX).

User avatar
Arjen Balfoort
Site Admin
Posts: 9219
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: SolydXK MultiBoot App - Request for Comment

Postby Arjen Balfoort » 07 Jul 2014 08:43

@Scott
  1. No, you can make it so that the user can add the ISOs one by one. You can calculate the size remaining with every ISO added.
    I have created a comma delimted file with ISO data that you can use when downloading the ISOs: http://downloads.solydxk.nl/iso-data.csv
    This file, and the *_latest.iso files are generated each time I upload new ISOs.
  2. When there's not sufficient space remaining on the device, the user should be able to select a previously added ISO, and remove it.
  3. That's a "Nice to have", and should only be implemented if the base is good.
  4. You have not mis-understood: create a multi-boot USB application to boot directly from the ISOs.
Implementing CEs is also a "Nice to have". So, first the basis. ;)


SolydXK needs you!
Development | Testing | Translations

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 07 Jul 2014 10:45

I like Schoelje's idea better. :)

One thing I always struggle with is freezing the UI because I don't want to have to re-do it all over again if I change some way the program works (ie. hard coding version names and not adding Community versions vs. adding your own names and Community versions, for example).

NOTE: I'm just mentioning that as a way to look to the future, but I don't plan to be the one ultimately designing the UI. I'm just suggesting stuff. :mrgreen:

User avatar
Arjen Balfoort
Site Admin
Posts: 9219
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: SolydXK MultiBoot App - Request for Comment

Postby Arjen Balfoort » 07 Jul 2014 11:59

I've updated the csv file with a human readable name for the editions.
The CEs that are hosted on our server can be added to this csv, but first let's see if we can get this working without the CEs.


SolydXK needs you!
Development | Testing | Translations

User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

Re: SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 20 Jul 2014 18:11

And, I've (finally) updated the GUI to more closely match your intent. This is just a preview from glade, but how's this look to you?
MultiBoot.jpg
MultiBoot.jpg (23 KiB) Viewed 4976 times
And this is in the MATE DE (just because I can :) )
MultiBoot_Mate.png
MultiBoot_Mate.png (25.93 KiB) Viewed 4974 times
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 20 Jul 2014 18:15

Scott, I personally love the new GUI! Simple and yet looks like it's expandable/adaptable for future use (ie. CEs, etc.) You get one vote from me. :D

User avatar
Arjen Balfoort
Site Admin
Posts: 9219
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: SolydXK MultiBoot App - Request for Comment

Postby Arjen Balfoort » 20 Jul 2014 19:22

I like it, but you'll need a list to show the added ISOs.
So, you need a "Add ISO" button, A list to show the added ISOs, a "Remove ISO" button, and you'll need to calculate free space whenever that list changes.


SolydXK needs you!
Development | Testing | Translations

User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

Re: SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 20 Jul 2014 21:56

Here's take 4

Since the user can only do one thing at a time, there only one activation (Execute) button needed.

The user can:
  1. Select a USB. And, if one was not installed when the user started the application, he can click on the "Refresh" button and the list of available devices will be updated in the associated DropDown.
  2. Add an ISO that is already on his computer. If the user chooses, he can enter the path to the iso file. However, the associated button will open a Select File dialog allowing a nicer way to select the file.
  3. Download and add an ISO that is on the SolydXK site.
  4. Delete an ISO from the currently selected USB
The "Free USB Space" value will be updated when the user:
  • Selects a different USB device
  • Adds/Deletes and ISO to/from the USB device
MultiBoot_Take4.jpg
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 20 Jul 2014 22:44

If the user can only do one thing at a time, what if they have something in more than one item (ie. Add ISO and Delete ISO for example)? Then they go to execute it and what should the expected outcome be? Most users would think it should add the ISO selected and delete the other ISO selected.

Also, still looking for the List ISOs button, or will the available ISOs be in the Delete ISO drop down? Maybe add an extra button for View ISOs on USB so it can list the ISOs, the size they each take, etc.?

User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

Re: SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 20 Jul 2014 22:55

RavenLX wrote:If the user can only do one thing at a time, what if they have something in more than one item (ie. Add ISO and Delete ISO for example)? Then they go to execute it and what should the expected outcome be? Most users would think it should add the ISO selected and delete the other ISO selected.
If he has something in more than one item, only the selected item is executed. Additionally, only the selected "row" will allow inputs. If the user imputs something and selects another action, his imputs will be retained .... at least until he terminates the application. Not going to save that sort of data in an external data file.

He selects to delete an iso and hits the execute button. Then, to add an iso, he selects the iso to be added and hits the execute button. One of Schoelje's requirements (see his first post in this thread) was to keep it simple.
RavenLX wrote: Also, still looking for the List ISOs button, or will the available ISOs be in the Delete ISO drop down? Maybe add an extra button for View ISOs on USB so it can list the ISOs, the size they each take, etc.?
Yes, all that information will be in the DropDown (if I can make it multi-column). If not, then I will have to do something like you say. Another button that throws up a small dialog with the names, dates, and sizes would/should not be too difficult. But, I'll try it the DropDown list way first.
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 20 Jul 2014 23:42

I guess I'm still a bit confused at how the select/execute thing works. I'm one of those that seems to understand things when I try it rather than read about it. :)

Overall though it's looking really nice. Love the interface and the simplicty.

User avatar
ScottQuier
Posts: 1781
Joined: 18 Jul 2013 15:55
Location: Newport News, VA

Re: SolydXK MultiBoot App - Request for Comment

Postby ScottQuier » 21 Jul 2014 00:25

It really is going to be "brain-dead" easy to understand once it's in your hands. But, just because I have the time, I try again :)
  1. Select a USB device from the DropDown. Obviously, this the device that will be the target of any actions to be executed. When the user does this, the "Delete ISO" DropDown list will re-populate and the "Free Space" number will refresh. If the user started up the application and then inserted the USB device, he would click the "Refresh" button to re-query the computer system for USB devices and use that data to populate the Select USB DropDown list. No "Execute" button required for this since there's no risk of harming anything.
  2. Select a function using the RadioButtons
    • If it's "Add ISO", then click on the "File Select" button (the one at that far right of that row to open a file selection dialog. When the user selects a file, the path will be written to the associated TextEntry control. It will also be a property of the File Selection button. Now, click the Execute button and that iso is added to the USB (assuming sufficient space).
    • If it's the "Down Load" button, then the user will select the SolydXK spin to be downloaded (the URL will be in the config file for the application - no need to bother the user with this). If there's sufficient room on the USB, the user will click the execute button to start the download and, when the file download finishes, it will be added to the USB device.
    • If it's "Delete ISO", the user will select the iso to be deleted from the USB device and click the Execute button. The iso will be deleted.
  3. As part of each of the above actions, the installation code on the USB will be re-written to conform to the new configuration. In addition, the Free Space numbers will update.
  4. At this point the user can terminate the application, unmount his USB and be on his merry way or he can restart at either Step 1 or Step 2.
Scott
Quoting zerozero, "The usage of PPA's in debian-based
systems is risky at best and entails serious compatibility
problems; usually it's the best way to destroy an install"

User avatar
Arjen Balfoort
Site Admin
Posts: 9219
Joined: 26 Jan 2013 19:36
Location: Netherlands
Contact:

Re: SolydXK MultiBoot App - Request for Comment

Postby Arjen Balfoort » 21 Jul 2014 06:49

Looking good!


SolydXK needs you!
Development | Testing | Translations

Deleted User 2764

Re: SolydXK MultiBoot App - Request for Comment

Postby Deleted User 2764 » 21 Jul 2014 11:38

ohhhh..... radio buttons !!! Dang it! Why didn't I see/read that before? Because I guess I wasn't paying good attention. :oops: Now I get it! :mrgreen:

Thanks for the extra explainations, Scott. It did help to make things clearer but when I look back, I myself was suffering from PEBKAC (Problem Exists Between Keyboard And Chair - something I think I saw a cartoon from on this very forum - and weren't you the one that posted it?)

User avatar
fleabus
Posts: 1227
Joined: 16 Sep 2013 04:24
Location: Winchester, VA USA

Re: SolydXK MultiBoot App - Request for Comment

Postby fleabus » 21 Jul 2014 11:48

:oops: Sorry.. The King of OT really needs to watch himself... ;) pls delete...


Return to “Code”

Who is online

Users browsing this forum: No registered users and 2 guests