Manjaro OEM ISO

What this topic is NOT

This is not for end users - it is for system builders.

The end user experience is defined by Calamares

  • Locale
  • Timezone
  • Keyboard
  • Username
  • Password

What this topic is

THIS IS ENTIRELY ABOUT SYSTEM BUILDERS
Any kind of system builder whether it is for family and friends or it is a business.

Off topic comments will be deleted

What is an OEM installation

An OEM installation is defined as an installation which is not tailored to a specific user - only a specific system - hence Original Equipment Manufacturer.

The current state of the Manjaro Tools only allows for creating edition specific OEM installers.

I am having the idea of creating an OEM tool which is self contained in one ISO and Architect is such tool but it only creates end user installation.

  • The first part is installing the system and adding oem customization.
  • The second part is end user installation (the end user install is launched automatically)

When the system is restarted for the first time the second part of the installation starts.

If you continue the installer and configure localization username password - you will be prompted to restart the system and the usual Xfce theming has been applied to the newly created user. The installer also removes the oem user and packages etc used for this.

OEM customization

When the system starts it loads the initial configuration from the folder /etc/oemskel. This is the place for any customization presented at first boot.

Install the apps and packages - you deem necessary.

If you need to make changes to theming or wallpaper which is not available as settings packages - copy the changes to the /etc/skel folder as this is the settings applied to new users created.

If you were to be a real hardware manufacturer/reseller you will create an image of the disk and use the image to preload that specific hardware model.

4 Likes

Ideas for the OEM mode

Think of this as an extended version of Architect for system builders

  • Ease pre installing of environment

You have two easy options, a minimal xfce (icluding or asking for snaps/flatpack), the rest is up to the user like which office/no office.
Second is a regular xfce, same same, but different.
I will do a test on bare metal......

  • Choose between a dark and a light theme.

I think you should provide more details on what would you expect for the end user to "finalize". How many changes and how far?
If it is only the basics, as discussed in the linked OEM related topics, have you considered (or already applied :wink:) systemd-firstboot?

Apart from systemd-firstboot, a script or application could install things, even DE.
Could you give a short view of what this new attempt does?

Just do a tutorial on how to install Arch linux as this thread will end up like all the rest of the threads on this forum on minimal installs.
With the I want Users Oops it already started i want this i want that?.

2 Likes

I didn't know of that. The OEM installation is based on Calamares.

An OEM installation is defined as an installation which is not tailored to a specific user - only a specific system - hence Original Equipment Manufacturer.

The current state of the Manjaro Tools only allows for creating edition specific OEM installers.

I am having the idea of creating an OEM tool which is self contained in one ISO and Architect is such tool but it only creates end user installation.

Nope - this is an OEM or end-user task - not installer task

This tool is not targeted end-users :slight_smile: but you already figured that out.

And it is not about creating minimal installs - this is a serious effort to provide a tool to computer resellers - delivering preloaded Manjaro systems to their endusers.

It may even be a tool for an IT-department to provide Manjaro images on company IT systems.

systemd-firstboot is the tool you want.
It changes these settings

/etc/{machine-id,localtime,hostname,shadow,locale.conf}

Have a look at the man/wiki and I'm sure you'll agree :wink:

But, as I understand it, systemd-firstboot is Command Line only.
Does not look very welcoming.
It will prompt before anything else has loaded.
It also seems it does not setup new users.

As I said

I agree cli is not pretty, but.. it's the right tool for the job :wink:
Maybe some integration with a GUI could be made?...

As in man, it can be with or without interaction, maybe some files are used to get values, I haven't tried anything yet. Just RTFMing.. :man_shrugging:

So basically you're looking for the same questions excluding user-specific ones:

  • partitioning
  • filesystem
  • swap (by the way, you may want to consider a properly configured aur/swapspace)
  • video drivers
  • network driver
  • development tools
  • etc. etc. etc.

I think this is a great idea. There are 2 options:

  1. Use calamares as base and make a module that combines the functionality of netinstall module and oem module
  2. Develop a completely separate tool

Which direction are you leaning towards @linux-aarhus? #1 has the advantage of getting to leverage calamares code base, #2 allows for a simpler tool and faster development.

I don't have time to help this year, but I might have some next year if I'm lucky.

I have been thinking of both actually.

A system builder will usually have a selection of hardware for which they would create a hardware specific installation. When the integrator is satisfied - typically they would create an image - then preload that image onto subsequent hardware.

With the Manjaro Tools the system builder could tailor their own ISOs - but the learning curve for Manjaro Tools is high - which is why I have speculated on the OEM tool.

My plan is to create a graphical tool using either a combo of bash and yad or zenity or Python and GTK or Qt.

My initial ideas goes as to create a point-n-click version of Architect without the complexity of Architect.

The first version is intended to handle

  • one-disk auto partition
    • query system-builder on partition size
      • root
      • home
      • swapsize
  • using partition types so no fstab is needed
  • using f2fs if SSD otherwise ext4
  • /boot/efi - 100M
  • /boot 500M
  • / - depending on disk size 20-64G
  • /home - the remaining

I have created a slimmed down version of Openbox - PacBang clone - intended as foundation.

I have been thinking of making a scriptable version of manjaro-architect, which could serve as a backend for manjaro-architect2. You could make an installation somwthing like this:

manjaro-deploy --profile gnome --time-zone Europe/Helsinki --keymap fi --locale fi --encrypt /dev/sda

Or

manjaro-deploy --oem --profile gnome /dev/sda

Or

manjaro-deploy -c /path/to/config.ini /dev/sda

Manjaro-architect 2 would just create a config file with tui interface and then run manjaro-deploy on it.
Would something like this be useful for this project also?

To clarify: Do you mean to create an iso creation GUI or OEM tool that could be run after installation? The former could potentially have some overlap with this

but how to show progress with manjaro-deploy ??? or trigger/retrieve a hook at each step
GUI or TUI must be able to dialogue in both directions ...

I suppose OEM will have specific hardware and decided on software, so it should be a Pro installation. I am sure cli feedback should exist to show progress or errors. :man_shrugging:

No - I mean an general ISO - with a simplified version of Architect using a point-n-click GUI to collect basic system info and perform an installation which ultimately (when end user starts for the first time) launches Calamares OEM - which only runs the end user dialog.

The tool I am planning does not include advanced setups like LVM or LUKS - just the basics - I am thinking the minimal version of any Manjaro edition pulled from the Architect branch - but ensuring that Manjaro Hello, Manjaro Application Utility and if Gnome is chosen the Gnome Layout Switcher.

I am thinking that mhwd can be used to detect and install drivers but ultimately the technician is responsible for rebooting the system and verify it all works as expected.

I am also thinking of running the OEM tool using the autostart folder - checking if the technician has finalized the installation - resulting in a cleanup and removal of the tool - ensuring the Calamares OEM part runs at next boot.

You could use systemd first-run for that, or test if it suits your needs. :wink:

Forum kindly sponsored by