How to create a FreeBSD distro?

ralphbsz

Daemon

Reaction score: 1,553
Messages: 2,488

I want to create something like FuryBSD.
Sorry, but that statement is still not sufficient.

Are you (a) trying to install ONE machine, with something like FuryBSD, or (b) create an installation system similar to FuryBSD (in function) and then distribute it to many machines, perhaps the public?

And: If you want something like FuryBSD, why don't you just install FuryBSD? What does "like" mean in this context? What differences from FuryBSD are you after?

Here is my answer to you: If it is (a), you want to install one machine, then either just install FuryBSD if you want that. If you don't want FuryBSD but instead you want a FreeBSD installation with a GUI, then install FreeBSD, then install the GUI of your choice. On the other hand, if it is (b) you are after, you want to create a new installation system, then that's outside my skill base, and I have no advice on how to do it.

I'm thankful if someone tell me step by step. For example, 1- download...2- download... 3- read...
I am happy to answer that question. It is very easy. Read the FreeBSD handbook. It is trivial to find, just a web search for "FreeBSD handbook". When reading it, there are some chapters you can skip, but it will be obvious which ones, because the beginning of each chapter or section explains what its purpose is.

After reading the handbook, installing FreeBSD will be easy. I would actually advice to mix reading, installing and testing. For example, read everything up to the installing section, then grab a computer, and install a text-based (command line) setup, and start using it for a little bit. Once you have experience with that, continue reading about X windows and GUI, and then reinstall. And so on.
 

Sevendogsbsd

Aspiring Daemon

Reaction score: 471
Messages: 947

You weren't technically wrong: Mate` is a fork of Gnome 2.x The horrific marraige between some dev at Gnome and systemd has brought about the Gnome 3.x disaster, which I do not use at all. For that matter, I only use a window manager on FreeBSD - chiefly Fluxbox. I have been a GTK guy since the late 90's. Doesn't matter though - Plasma is a very capable and easy to use desktop, albeit I have never used it on FreeBSD. There is just something about the simplicity of FreeBSD and when I try to add a desktop environment or login manager, it feels wrong. That's just me though...
 

mjollnir

Aspiring Daemon

Reaction score: 334
Messages: 749

Well, yes. KDE suffers from featuritis somehow. It's great, but e.g. I can't get Kontact (KDE's Personal Information Management suite=mail, notes, contacts book, tasks & calendar, journal/log book, news) to show it's common INBOX correctly for my four INBOXes... that's not important, but nasty. KMail is great, Kontact and all it's componets are great, but the configs are splattered around at various places... s/o called that ClickyBunty. The principle of simplicity is not the highest ranked throughout KDE developers... ;)
 

garry

Member

Reaction score: 70
Messages: 81

Thank you so much for great advice and I'm sorry if I couldn't explain my goal.
I want to create something like FuryBSD.
I'm thankful if someone tell me step by step.
Thanks for your patience. Any steps of actually building something on your own are good steps, and I understand that you're asking "what the heck is the first step?"

First a simple answer (I thought my previous reply was simple, although the first paragraph was sarcasm ;)
1. Download and install what is probably the most well-developed and simplest of the ready-to-go FreeBSD desktop systems, https://nomadbsd.org/
2. It installs to and can run off a USB stick. You don't have to touch your hard drive yet. You can use it off the USB just like any bare-metal install -- add packages, change configs in /etc, whatever.
3. When you're comfortable with nomadbsd and have done some preliminary customization install your nomadbsd system to a fast hard drive / ssd so that your further experiments will have plenty of drive space and run faster. You install nomadbsd from any running nomadbsd. Start Openbox menu -> System -> NomadBSD Installer and follow the instructions.
4. Download the source code for the nomadbsd live iso build system.
5. Follow the instructions in the file build.hlp to build a new live iso. You now know how to make your own FreeBSD derivative.
6. Make some changes in which packages get installed, change some configs, add your own wallpapers, etc. Build your own iso and test it.

The longer answer:
I've built a couple of Linux From Scratch systems. LFS exists to document the tedious process of building a basic linux operating system from the pile of source tarballs for the base system. This is a challenge in linux, but not in bsd, because every part of linux is developed separately and released as a source package separately for the kernel, the C library, the compiler, the linker/loader, the core utilities, the shell. You need all of these pieces at once to build even one package of application software. And of course to even build the first piece you have to have a compiler running somewhere so it is assumed that you have some kind of operating system already running on your hardware with an appropriate compiler and then you start build your new LFS system in a chroot. The LFS book explains nicely what this bootstrap problem is and one way to work around it to get a complete system built at last from the big pile of independently developed source tarballs (at least a thousand such tarballs for a minimal base linux o.s.).

This is one part of the overall problem of bootstrapping a system. Unix got started by hand translating some assembly code into hexadecimal and getting that code into the computer via mechanical switches on the front panel of the machine, that got the machine into a state where more hexadecimal could be loaded via tape, which eventually got it able to translate B code, and so and so on for the next 50 years. I have twice brought up an operating system (that I had to write) on new, bare hardware and did a similar process of writing some assembler code, storing the resulting hexadecimal code directly into the boot ROM, and getting it to bring up my small virtual machine (Forth) that was then capable of translating more assembly code out of ROM, which eventually had enough functionality to compile higher-level code, which eventually loaded the network drivers, scsi driver, serial drivers, graphic drivers, machine control process, and on and on.

Once we have a complete running system we have holy grail, the answer to all computing problems, because you can build any kind of computer system if you have any kind of computer system to start from. Only a genius with a long life could build a system starting from logic gates and wires. The make any computer system, a Linux distro or BSD variant or embedded system for the Starship Enterprise, you must start with a computer system. So you first decide what system to start with, and then how to transform it into what you want.

So the next, less simple answer:
1. Download and install the most portable unix operating system, NetBSD.
2. Read the cross-building instructions at Crosscompiling with build.sh
3. Practice cross-building from x86 to x86, making small changes in the features of your system, until confidant in your process. Test each image you make to make sure it runs ok.
4. Now cross-build from x86 to some other architecture, say ARM or RISCV, and using everything you've learned get that image loaded onto and running an ARM development board -- now you know how to evolve a system onto new hardware.

Good journey. Pick something from our suggestions, do it, enjoy.
 
OP
H

hack3rcon

New Member


Messages: 6

GhostBSD is GNOME, if you want that, it might be ok for you. They are mature (exist for years/decades?). I can not comment because I use KDE. FuryBSD is a one-man-show... bypasses the FBSD installer, junk left over from the live media in the fresh installation,... Maybe in a year FuryBSD is much better. For the time beeing, I can not recommend it. Better get a bloody nose early by getting FBSD up & running yourself, than to rely on others pre-configuration while what you're actually doing is to help them finding their bugs ;)
one-man-show == performed by one person only.
No developer team?
 

mjollnir

Aspiring Daemon

Reaction score: 334
Messages: 749

This is solely my personal impression, i.e. a guess based on some very limited experience & observations. Go there and ask yourself! Beeing a one-man-show does not mean it's going to fail, though. This guy has some background assembled from his participation at PC-BSD/TrueOS. It's just that at this early stage there are some essential issues, basically done wrong IMHO. I'd be happy if some day I can install BSD on my mother's tablet -- she's over 70. A grandmasBSD. But it's a long route leading there...
 

TheUser

New Member

Reaction score: 1
Messages: 6

Thanks for your patience. Any steps of actually building something on your own are good steps, and I understand that you're asking "what the heck is the first step?"

First a simple answer (I thought my previous reply was simple, although the first paragraph was sarcasm ;)
1. Download and install what is probably the most well-developed and simplest of the ready-to-go FreeBSD desktop systems, https://nomadbsd.org/
2. It installs to and can run off a USB stick. You don't have to touch your hard drive yet. You can use it off the USB just like any bare-metal install -- add packages, change configs in /etc, whatever.
3. When you're comfortable with nomadbsd and have done some preliminary customization install your nomadbsd system to a fast hard drive / ssd so that your further experiments will have plenty of drive space and run faster. You install nomadbsd from any running nomadbsd. Start Openbox menu -> System -> NomadBSD Installer and follow the instructions.
4. Download the source code for the nomadbsd live iso build system.
5. Follow the instructions in the file build.hlp to build a new live iso. You now know how to make your own FreeBSD derivative.
6. Make some changes in which packages get installed, change some configs, add your own wallpapers, etc. Build your own iso and test it.

The longer answer:
I've built a couple of Linux From Scratch systems. LFS exists to document the tedious process of building a basic linux operating system from the pile of source tarballs for the base system. This is a challenge in linux, but not in bsd, because every part of linux is developed separately and released as a source package separately for the kernel, the C library, the compiler, the linker/loader, the core utilities, the shell. You need all of these pieces at once to build even one package of application software. And of course to even build the first piece you have to have a compiler running somewhere so it is assumed that you have some kind of operating system already running on your hardware with an appropriate compiler and then you start build your new LFS system in a chroot. The LFS book explains nicely what this bootstrap problem is and one way to work around it to get a complete system built at last from the big pile of independently developed source tarballs (at least a thousand such tarballs for a minimal base linux o.s.).

This is one part of the overall problem of bootstrapping a system. Unix got started by hand translating some assembly code into hexadecimal and getting that code into the computer via mechanical switches on the front panel of the machine, that got the machine into a state where more hexadecimal could be loaded via tape, which eventually got it able to translate B code, and so and so on for the next 50 years. I have twice brought up an operating system (that I had to write) on new, bare hardware and did a similar process of writing some assembler code, storing the resulting hexadecimal code directly into the boot ROM, and getting it to bring up my small virtual machine (Forth) that was then capable of translating more assembly code out of ROM, which eventually had enough functionality to compile higher-level code, which eventually loaded the network drivers, scsi driver, serial drivers, graphic drivers, machine control process, and on and on.

Once we have a complete running system we have holy grail, the answer to all computing problems, because you can build any kind of computer system if you have any kind of computer system to start from. Only a genius with a long life could build a system starting from logic gates and wires. The make any computer system, a Linux distro or BSD variant or embedded system for the Starship Enterprise, you must start with a computer system. So you first decide what system to start with, and then how to transform it into what you want.

So the next, less simple answer:
1. Download and install the most portable unix operating system, NetBSD.
2. Read the cross-building instructions at Crosscompiling with build.sh
3. Practice cross-building from x86 to x86, making small changes in the features of your system, until confidant in your process. Test each image you make to make sure it runs ok.
4. Now cross-build from x86 to some other architecture, say ARM or RISCV, and using everything you've learned get that image loaded onto and running an ARM development board -- now you know how to evolve a system onto new hardware.

Good journey. Pick something from our suggestions, do it, enjoy.
The best answer.
Sometimes trying to obtain a good solution is "complicated" but you got it. I was finding this before, until a guy created NomadBSD with iso creation method and now, i can create my own ISO ready to use and install, with my own configs, with custom dot files, window managers, and programs pre-installed, in a pure FreeBSD base with basic Desktop settings ready to use. Thanks. 👍
 

Jose

Well-Known Member

Reaction score: 159
Messages: 307

...There is just something about the simplicity of FreeBSD and when I try to add a desktop environment or login manager, it feels wrong. That's just me though...
I get the same feeling. I call it "Linux desktop PTSD". I've looked at trying to test Shkhln excellent work on Steam for Freebsd, and my PTSD kicks in. I'm so happy running xinit on a text console to bring up Openbox. I don't want to ruin that experience.
 

mjollnir

Aspiring Daemon

Reaction score: 334
Messages: 749

I had to "dd: PTSD" in my browser... and it reminded me there used to be small utilities on GNOME/Mate & KDE to prevent RSI. make -C /usr/ports search key=RSI | egrep '^(Port|Info):' | less search for RSI, pkg install rsibreak. There are more such utilities when you search for the term key=break and maybe key=pause or mouse. Thx for the indirect reminder!
 

rebQQtz

New Member


Messages: 2

First of all: I LOVE FREEBSD :D (having been an happy user since 4.1 ...)
Now, please let me "steal" this thread for asking what may seem a trivial question
but i think that it's somehow related to the argument of this thread.

I know that there are many ways (nano*, pico*, etc ...) to skin this cat but i would ask for some guru
(plenty of those people here ;) ...) if there is a "quick and dirty" way to:

Install FreeBSD (just plain command line os, no desktop ...)
Install your preferred tools, bells & whistles ...
Move the whole thing "as is" to a CD or better to an USB key ...

My humble konwledge of FreeBSD suggests ... "dd" or "dump/restore"
but i remember to have been very frustrated when trying this one, some years ago ...
(8.* releases)

Nowadays ( being "jailed" most of the time because of what you know ... )
i am trying to increase my intelligence (of al least my knowledge) please help :confused: ...

Kind best regards, all the best ...
Paolo
 
Top