Making Simple Graphical Linux Distro from Scratch

  Рет қаралды 52,289

Nir Lichtman

Nir Lichtman

Күн бұрын

In this video I will create a simple graphical Linux distro based upon BusyBox and Nano-X and adapted to run on QEMU.
apt get deps: bzip2 libncurses-dev flex bison bc libelf-dev libssl-dev xz-utils autoconf gcc make libtool git vim libpng-dev libfreetype-dev g++ extlinux
links:
- Kernel: www.kernel.org/
- BusyBox: busybox.net/
- MicroWindows: github.com/ghaerr/microwindows
- X11 Hello: gist.github.com/nir9/098d83c7...

Пікірлер: 159
@jyothishkumar3098
@jyothishkumar3098 4 ай бұрын
The cursor trails are probably due to Nano-X running in Framebuffer mode. I observed that the mouse trails over the window disappear when the window is repainted. The trails are due to the background not being repainted as the mouse is moved. The window itself doesn't leave any traces when moved though. So it's just the mouse cursor that lacks integration with the window management.
@nirlichtman
@nirlichtman 4 ай бұрын
Interesting point 👍
@fabrilluviaofficial
@fabrilluviaofficial 4 ай бұрын
how can i fix it?
@jyothishkumar3098
@jyothishkumar3098 2 ай бұрын
​​@@fabrilluviaofficial 7:07 pick the config.linux-X11 file instead of config.linux-fb.
@jyothishkumar3098
@jyothishkumar3098 2 ай бұрын
@@fabrilluviaofficial At 7:07, choose the X11 option. My last reply got removed for some reason.
@fabrilluviaofficial
@fabrilluviaofficial 2 ай бұрын
@@jyothishkumar3098 ok, thx a lot
@8ack2Lobby
@8ack2Lobby 4 ай бұрын
lets go! I can see hundreds of new distros flooding in after this video 😂
@Aryan-de9jw
@Aryan-de9jw 4 ай бұрын
:))
@knghtbrd
@knghtbrd 2 ай бұрын
Yup, all the vegan crossfitter zennials who run Arch BTW, all use a tiling WM, think it's appropriate for config files to be literal C source code, insist the "cat" command shouldn't exist even when it's a shell builtin, and call anyone 5 years older than them or more is a "boomer"… Those people, AND YOU KNOW WHO YOU ARE, are all gonna be running their own custom microdistributions real soon. 🤣 I actually did LinuxFromScratch once before some of the above-mentioned children were born. Obviously the system is bigger now and more complex due to cgroups, systemd, EFI (which didn't exist in the real world back then), etc. But it's probably gotten less complex to build. Just more to understand now.
@ADarnSmore
@ADarnSmore 2 ай бұрын
@@knghtbrd how do you know a linux user isn't running arch? they'll immediately start complaining about arch users before you even say anything.
@4t0mic57
@4t0mic57 2 ай бұрын
@@knghtbrd what did `cat` ever do to you? qwq
@RocktCityTim
@RocktCityTim 4 ай бұрын
Excellent example of how we don't all need a fully bloated Linux distro to do real work. Thanks, Nir!
@pixobit5882
@pixobit5882 4 ай бұрын
It is shockingly simple to create your own distro. Iv'e always thought, that it is super difficult and LFS was the only option to create a custom distro. Really nice tutorial! I'm gonna try to create my own distro later. Keep up making simple and amazing videos like this!
@fakestiv
@fakestiv Ай бұрын
Nice to see that you read the comment on the last linux distro video and actually explained what the end result would be at the begonning
@faithinverity8523
@faithinverity8523 4 ай бұрын
Yesterday I freaked out because I watched your video about creating a non-graphical system. And now this! You redefine what kool is.
@kieferhendricks6680
@kieferhendricks6680 4 ай бұрын
Great videos, man! I've done two of your projects so far and have learned so much from them. Keep up the great work!
@marcusk7855
@marcusk7855 4 ай бұрын
What a great video. I have absolutely no use for this but I'm going to follow along and built it myself too.
@patrickprucha5522
@patrickprucha5522 4 ай бұрын
very cool! I think im going to try it too. Cheers. BTW i love your vids!
@benarcher372
@benarcher372 4 ай бұрын
We all love tutorials like this!
@fabrilluviaofficial
@fabrilluviaofficial 4 ай бұрын
hello nir, i was doing the past tutorial of busybox to make a simple linux distro, and now, I watch at my laptop, at your channel, and i found this 💎. unbelievable. thx for so much
@Nunya58294
@Nunya58294 4 ай бұрын
You'll have a blast good sir
@wiseskeshom4673
@wiseskeshom4673 4 ай бұрын
Wow, What a great video. Thanks a lot for teaching us these cool stuff. 😊😊
@spacewolfjr
@spacewolfjr 4 ай бұрын
Awesome video, thanks!
@divyeshpatel9103
@divyeshpatel9103 7 күн бұрын
Very well defined tutorial 👌 Thank you.
@Artimis_the_bird.offical
@Artimis_the_bird.offical 2 ай бұрын
Amazing, from your old non-graphical distro you already earned a subscriber but this is double as cool, if i could subscribe to you twice i would.
@user-gz3zp8hw7z
@user-gz3zp8hw7z 4 ай бұрын
Awesome stuff!
@arduinoguru7233
@arduinoguru7233 4 ай бұрын
Brilliant, this isn't looks that complicated compare what I thought
@leapbtw
@leapbtw 4 ай бұрын
dropped everything i was doing to watch this lol nice content
@microsuxx
@microsuxx 4 ай бұрын
very cool nice pro stuff mate
@rickybarabba7866
@rickybarabba7866 4 ай бұрын
Thanks for sharing. Just subscribed.
@notnheavy
@notnheavy 4 ай бұрын
hey i stumbled upon your videos recently, they seem to be pretty simple and straight to the point which i think is pretty cool, neat stuff!
@nirlichtman
@nirlichtman 4 ай бұрын
Thanks!
@notnheavy
@notnheavy 4 ай бұрын
@@nirlichtman no worries! will definitely keep watching just as something to watch in my spare time
@Nunya58294
@Nunya58294 4 ай бұрын
This is really good for beginners who want their own OS or distro but don't quite have the knowledge for it; Well done!
@bramfran4326
@bramfran4326 4 ай бұрын
This looks hard, very very interesting video nonetheless!
@antoniobarbalau1107
@antoniobarbalau1107 4 ай бұрын
wow this is amazing
@ahmedabuharthieh579
@ahmedabuharthieh579 4 ай бұрын
Amazing work
@theoshaviolation
@theoshaviolation 4 ай бұрын
Pro tip: To make Cirrus an integrated part of the kernel, you need to make CONFIG_DRM integrated as well. Also, in the .config file (visible with ls -a), don't forget to replace the Certs part: # # Certificates for signature checking # CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" CONFIG_SYSTEM_TRUSTED_KEYRING=y CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_SYSTEM_EXTRA_CERTIFICATE=y CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096 CONFIG_SECONDARY_TRUSTED_KEYRING=y CONFIG_SYSTEM_BLACKLIST_KEYRING=y CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" CONFIG_SYSTEM_REVOCATION_LIST=y CONFIG_SYSTEM_REVOCATION_KEYS="" # end of Certificates for signature checking This should work in most circumstances. The main difference with this config is that it doesn't use canonical's certs.
@EzhikOFF13
@EzhikOFF13 2 ай бұрын
i understood only a half but still great video thanks man
@mzakyr342
@mzakyr342 4 ай бұрын
finally, yeah baby
@gustawitresh
@gustawitresh 4 ай бұрын
excellent video
@RealYukiSan
@RealYukiSan 2 ай бұрын
nice video!
@davidspr6938
@davidspr6938 4 ай бұрын
Mental outlaw? Is that you?
@beetledjuice3062
@beetledjuice3062 4 ай бұрын
Awesome
@suzukiaccess5022
@suzukiaccess5022 4 ай бұрын
@nirlichtman the X Window System is supposed to have a complete and transparent separation between the XServer part and the client application part. However, in most cases, both run the same machine so it is never clear how the two components works. Now that you came one tutorial with NanoX and an earlier with writing an X11 application, could you take a shot at a tutorial that clearly demonstrates the two parts? A machine that only implements the XServer part and connects over network to another machine that strictly implements the Client application part.
@nirlichtman
@nirlichtman 4 ай бұрын
That is a good idea for next video :)
@guilherme5094
@guilherme5094 4 ай бұрын
👍👍Nice!!
@caretchara
@caretchara 4 ай бұрын
hell yeah
@Tommy-mb8rm
@Tommy-mb8rm 4 ай бұрын
Hey Nir. Thanks for the video! If possible, please suggest workarounds and stuff for M1 chip users
@nirlichtman
@nirlichtman 4 ай бұрын
I plan on making a video in the future about making a distro for Raspberry Pi, since it is also ARM, it may be helpful for M1 as well
@pastaya
@pastaya 3 ай бұрын
asahi linux kernel
@Gkcrafting
@Gkcrafting 2 ай бұрын
I Had no trouble setting up Nano-X, but when trying to start the server (`nano-X`), I get an error saying: "Cannot initialize keyboard". I wonder why it does that and how can I fix it? Also, I want to use SDL2 on fullscreen with KMS/DRM, how can I do that? I can't find any helpful ressources online.
@Dan-Levi
@Dan-Levi 4 ай бұрын
Very cool! Is it possible to include chromium-browser (gpu accelerated?) and automatically start it in kiosk mode for a specific website?
@qqwui9989
@qqwui9989 4 ай бұрын
This is based on Nano-x which is severely limited in functionality. It cant run chromium and definitely doesnt havr gpu acceleration
@Dan-Levi
@Dan-Levi 4 ай бұрын
Thanks, saved me the time to try and fail 😀
@nirlichtman
@nirlichtman 4 ай бұрын
Yah Chromium would probably be quite complicated to port but it can run Dillo which is a basic text/css web browser
@ovi1326
@ovi1326 4 ай бұрын
You could also just use xorg x11 instead of nanox. Or even go for a wayland compositor instead which might be a notch simpler (I'm thinking gamescope or sway)
@sys935
@sys935 4 ай бұрын
Better localhost / localfile where src.html folder in localdisk to work offline/online
@jak2k
@jak2k 4 ай бұрын
How is that theme called that you use to mimic the look of windows?
@nirlichtman
@nirlichtman 4 ай бұрын
😂 I use Windows 10, it's not a theme
@tablettablete186
@tablettablete186 4 ай бұрын
@@nirlichtman Lol
@robinpage2730
@robinpage2730 24 күн бұрын
@@nirlichtman so you're building the distro in a vm?
@danframe02
@danframe02 13 күн бұрын
@@robinpage2730 He's using Docker to run a Debian container on Windows
@dj.yacine
@dj.yacine 4 ай бұрын
Wee want more high quality content like this 😊
@fabiosarts
@fabiosarts 4 ай бұрын
If you are using an actual linux distro for it, you can use fakeroot to simulate being root, it's pretty useful when creating the initrd for example C:
@user-ms4kd9de5l
@user-ms4kd9de5l 4 ай бұрын
Drink every time nir says actually
@nirlichtman
@nirlichtman 4 ай бұрын
Actually, I didn't notice that 😂
@AZIZ-bc6xb
@AZIZ-bc6xb 4 ай бұрын
what did you choose as a specialty after the first years in college computer science so you can understand and making distro ? i like ur content btw
@nirlichtman
@nirlichtman 4 ай бұрын
Thanks! I am actually now on my first year in college, these kinds of stuff I learned by myself for fun, programming is my hobby from a young age.
@skydivertyler
@skydivertyler 2 ай бұрын
Would this have been affected by the XZ/Libzma backdoor vulnerability?
@Paolog_
@Paolog_ 4 ай бұрын
Very Cool !!! I'm asking myself how do you know all this things. And can you make a tuto of making a mini-DE for Linux?
@nirlichtman
@nirlichtman 4 ай бұрын
Yes, I plan on eventually making a video in the future about setting up either Xorg or a Wayland Compositor and with that a desktop environment as well
@Paolog_
@Paolog_ 3 ай бұрын
Very cool!!!
@tzebruh
@tzebruh 4 ай бұрын
yo! i've been waiting for this one!
@GameBacardi
@GameBacardi 4 ай бұрын
👌
@bob-007
@bob-007 4 ай бұрын
thx nice video. I was inspired to create a simple BusyBox distro with networking. Every time I try post a link or ref, my post seems to get removed. 😭
@bob-007
@bob-007 4 ай бұрын
GitHub EN10/BusyBoxLinux
@anirudhsharma2003
@anirudhsharma2003 4 ай бұрын
You skipped the hardest part, internet connectivity 🤣.
@milasudril
@milasudril 2 ай бұрын
LFS spends a lot of steps on the host before the target is bootable. Can we keep going from busybox and nanox as a way to get self-hosting earlier?
@TheAio
@TheAio 2 ай бұрын
If im not mistaken, wasn't xz-utils recently part of a major exploit? Would it still be safe to use xz-utils?
@IdioticMath
@IdioticMath 4 ай бұрын
how would you add smth like git to this? Would it be to /usr and binaries?
@theSoberSobber
@theSoberSobber 4 ай бұрын
same way you added nanox man, they are just packages, any package needs itself (the binary), and the shared libs it might depend on (.a or .so's), more often than not they'll have a `make install` or similar.
@IdioticMath
@IdioticMath 4 ай бұрын
@@theSoberSobber thanks man
@jackkendall6420
@jackkendall6420 4 ай бұрын
chad behaviour
@sirk3v
@sirk3v 4 ай бұрын
any chance you could do one on making android custom rom?
@nirlichtman
@nirlichtman 4 ай бұрын
That could be interesting, I'll consider that for a future video, I think it should be possible to do it pretty quickly using buildroot
@Quadalarm
@Quadalarm 4 ай бұрын
@@nirlichtman So far I know, you have to use software or packages to build it for every smartphone separately. How difficult is it to get these packages or software?
@comosaycomosah
@comosaycomosah 4 ай бұрын
it would be cool to see a custom rom build i havent thought about grapheneos and the like for awhile but wanna play with some soon @@nirlichtman
@rmassink
@rmassink 4 ай бұрын
Pretty cool, but I could not help but notice you copied libc and some other libs from the debian docker distro instead of compiling them from source. Which is fine of course, but why not compile those too, if you go the length of compiling busybox and nanox. Or do you recon that would be a video in itself, to show how to link all programs against a source-build libc version?
@RealYukiSan
@RealYukiSan 2 ай бұрын
15:44 why you use /dev/sda instead of / ? I confuse because in the previous video, the root parameter is /
@rullypratama
@rullypratama 4 ай бұрын
Making a GUI Linux distro in Windows? Sounds legit.
@jreallyrean8208
@jreallyrean8208 4 ай бұрын
He used docker
@interrrp_with_three_rs
@interrrp_with_three_rs 4 ай бұрын
it's WSL
@maksimmuruev423
@maksimmuruev423 4 ай бұрын
How we should trust guy with windows in linux setup?
@user-3bs8jd83js
@user-3bs8jd83js 3 ай бұрын
Additional info: while make menuconfig, you can directly press y, n, or m, instead of pressing `space` again and again.
@darkraven4207
@darkraven4207 Ай бұрын
Can you please guide me at the start of the video on CMD he ran very first command when i tried to do the same on my CMD windows 10 it says "docker is not recognized as an internal ....." On which platform should I build this?
@h4rlystesh491
@h4rlystesh491 Ай бұрын
How difficult to add package manager for this distro? For example pacman or nix.
@davidenglish3801
@davidenglish3801 4 ай бұрын
I will run it on my Android device to learn how it works, by termux. May it's possible by using X11-termux close as you did.
@18sohamkulkarni95
@18sohamkulkarni95 Ай бұрын
This is very cool but how to add a config file syslinux.cfg in this process??
@ewof
@ewof 4 ай бұрын
what keyboard/mouse do u use
@nirlichtman
@nirlichtman 3 ай бұрын
My mouse is Microsoft Intellimouse Optical and my keyboard is DELL SK-8110 (but when I am recording videos I use a more quite keyboard)
@Ooohhnvfykknjjhyfcvjiuffhhhhhh
@Ooohhnvfykknjjhyfcvjiuffhhhhhh 4 ай бұрын
Is it possible to install a de in the os?
@theoshaviolation
@theoshaviolation 4 ай бұрын
Probably, but you may need to tinker around a bit. If you can get your hands on the NanoLinux source code, then I would start looking in there for an implementation that will most likely work best.
@xhalved
@xhalved 4 ай бұрын
Could it be possible to make a package system for a distro like this?
@nirlichtman
@nirlichtman 4 ай бұрын
Yes, there a bunch of existing options for example using the Alpine package manager which is called apk-tools or maybe opkg, I may make a video in the future about making a distro with a package manager.
@manofacertainrage856
@manofacertainrage856 3 ай бұрын
When starting in qemu, I'm getting an endless stream of "can't open /dev/ttyX: No such file or directory" The X is 1 to 4. What did I miss?
@nirlichtman
@nirlichtman 2 ай бұрын
Sounds like you forgot to create the directories for the root file system, there are a couple I create in the video, including /dev
@satr14-tech
@satr14-tech 4 ай бұрын
make a sequel where you can actually do programming in this with someting like gcc, nasm, python, or any modern language bcuz this could have a lot of extensibility on the os
@komram4396
@komram4396 4 ай бұрын
Yeah, the real shit starts when you add a compiler.
@nolemretaw
@nolemretaw 4 ай бұрын
can i replace nanox with full x11 or wayland?
@pastaya
@pastaya 4 ай бұрын
you can but more complicated
@AK11020
@AK11020 4 ай бұрын
Without sounding too puritanical, curious as to why you're doing this from a Windows desktop instead of Linux
@maxscott3349
@maxscott3349 4 ай бұрын
I don't know but it's really nice that so many of these tools have been ported to Windows so you can do stuff like this on a Windows machine. There's a lot of times where it comes in handy
@nirlichtman
@nirlichtman 4 ай бұрын
My main computer is Windows and I find it comfortable to work with WSL and Docker when I need Linux stuff, more info on the welcome link on my channel
@RealYukiSan
@RealYukiSan 2 ай бұрын
13:10 what's the difference between dd and truncate?
@nirlichtman
@nirlichtman 2 ай бұрын
truncate is more intuitive for the use case in the video, it also has additional advantages, one of the comments on my previous distro from scratch vid suggested its use and elaborates more on this
@TunifyBasic
@TunifyBasic 4 ай бұрын
need some automation.
@chrisxdeboy
@chrisxdeboy 4 ай бұрын
Think you could do a FreeBSD version?
@nirlichtman
@nirlichtman 4 ай бұрын
Yes, that is a good idea :)
@chrisxdeboy
@chrisxdeboy 4 ай бұрын
@nirlichtman he'll yeha! I've kinda wanted to make my own FreeBSD "distro" with a focus on being easy enough for Grandma to use, but powerful enough that you'd want to.
@chrisxdeboy
@chrisxdeboy 4 ай бұрын
@nirlichtman well, I gave you a subscribe in case you do make a video on it!
@chrisxdeboy
@chrisxdeboy 4 ай бұрын
@@nirlichtman Also, and I hope I'm not bothering you, would it be possible for you to go over, in general, how one includes programs into their distro, like the overall idea?
@nirlichtman
@nirlichtman 3 ай бұрын
Yah I will cover that in the FreeBSD distro video :)
@moshixmainframechannel
@moshixmainframechannel 4 ай бұрын
Yofi !
@azrael-labs
@azrael-labs 4 ай бұрын
Bro... I gonna make the ultimate gaming distro out of this, starts with a console, opens a graphical application when demanded
@Vimposh
@Vimposh 4 ай бұрын
please make a video where you make a linux distro with package managers, installer, proper bootloader (grub), gnome, and stuff like that to make good distro. because there's no really much guides or videos on this topic. maximum what you could find is making really simple linux distro with busybox only, thats bad...
@nirlichtman
@nirlichtman 4 ай бұрын
Yah, that is my goal eventually :)
@JamesSmith-ix5jd
@JamesSmith-ix5jd 4 ай бұрын
Why would you want to make your own distro, the maintenance of it will take more time than any other productive usage.
@Vimposh
@Vimposh 4 ай бұрын
@@JamesSmith-ix5jdi want to do that but im too dum dum
@PAFBEAST
@PAFBEAST 4 ай бұрын
​@@nirlichtmanplz do it
@EXITISMYONLYWORD
@EXITISMYONLYWORD 3 ай бұрын
why so difficult. how do you work with vim. it is impossible.
@objectiveSquid
@objectiveSquid 19 күн бұрын
NOOOO HE HAS RECALL INSTALLED😭😭😭
@Vednier
@Vednier 4 ай бұрын
Building Linux distro from Windows. Yeah, rright.
@PAFBEAST
@PAFBEAST 4 ай бұрын
He using wsl which literally is Linux lol
@Vednier
@Vednier 4 ай бұрын
@@PAFBEAST "WSL is Linux" is so Microsoft...
@PAFBEAST
@PAFBEAST 4 ай бұрын
@@Vednier Linux in Microsoft...
@feltmacaroon389
@feltmacaroon389 3 ай бұрын
@@PAFBEAST No, it's not WSL, it's Docker.
@PAFBEAST
@PAFBEAST 3 ай бұрын
@@feltmacaroon389 its not
@bluescorpian
@bluescorpian 4 ай бұрын
Why you using windows lol?
@itscharlie0110
@itscharlie0110 2 ай бұрын
Windows is cool
@theSoberSobber
@theSoberSobber 4 ай бұрын
using nanoX is cheating :(( make one with xooooorrrggggg :(
@nirlichtman
@nirlichtman 4 ай бұрын
I tried Xorg, Weston and Sway beforehand and they all had very convoluted build and setup. There is also tinyx which comes from Tiny Core Linux but I couldn't get it to build. When I will have more time I might come back to this and try again since this is interesting :)
@Zeitgeistpionier
@Zeitgeistpionier 4 ай бұрын
Schade, dass du nicht erklärst, was du tust.
@venkysoftwarehardwarecreat2683
@venkysoftwarehardwarecreat2683 4 ай бұрын
🎉super𓽤
@iamnotmega
@iamnotmega 4 ай бұрын
HOW THE FUCK DO I WRITE IN THE CONFIG FILE
@theiaproject3467
@theiaproject3467 2 ай бұрын
"xz-utils" bum
@ronilichtman5176
@ronilichtman5176 4 ай бұрын
This is awesome!
@nirlichtman
@nirlichtman 4 ай бұрын
Thanks Bro!
Making Minimal Linux Distro with Buildroot
8:38
Nir Lichtman
Рет қаралды 21 М.
I built my own 16-Bit CPU in Excel
16:28
Inkbox
Рет қаралды 1,4 МЛН
Пробую самое сладкое вещество во Вселенной
00:41
Just try to use a cool gadget 😍
00:33
123 GO! SHORTS
Рет қаралды 85 МЛН
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 20 МЛН
The Linux Experience
31:00
Bog
Рет қаралды 333 М.
Diving into Windows Keyboard Driver
10:29
Nir Lichtman
Рет қаралды 71 М.
Making a Very Minimal Windows Executable in C
7:48
Nir Lichtman
Рет қаралды 86 М.
I Designed My Own 16-bit CPU
15:46
AstroSam
Рет қаралды 1,9 МЛН
Why Compile a Linux Kernel from Source?
13:38
DJ Ware
Рет қаралды 28 М.
Popular Technologies that Won't be Around Much Longer...
14:36
Sideprojects
Рет қаралды 144 М.
New to Linux? Yeah, DON'T Use Manjaro...
15:55
Eric Murphy
Рет қаралды 182 М.
How programmers flex on each other
6:20
Fireship
Рет қаралды 2,2 МЛН
Signals. I spent 2 years to understand this part.
21:24
kimylamp
Рет қаралды 182 М.
Игровой Комп с Авито за 4500р
1:00
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 869 М.
1$ vs 500$ ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ !
23:20
GoldenBurst
Рет қаралды 1,2 МЛН