I'm not Angry. Just Passionate.
13:01
Пікірлер
@EdwardBean-x5l
@EdwardBean-x5l 21 сағат бұрын
Sauer Haven
@mavirek
@mavirek Күн бұрын
Have no idea what you've said. Sadly it is so complicated.
@RENO_K
@RENO_K Күн бұрын
I don't like saying "I'm hacking ____" I like "I'm reverse engineering _____"
@AlbertaGiles-p2j
@AlbertaGiles-p2j 2 күн бұрын
Weissnat Ridge
@YouTubeExpertZesan
@YouTubeExpertZesan 2 күн бұрын
waiting for new video
@KnottyDoctor
@KnottyDoctor 3 күн бұрын
👍
@michaelgleason4791
@michaelgleason4791 3 күн бұрын
Linux is as difficult as Windows. People want to compare their 20 years of Windows experience to 20 minutes of Linux and say "Linux is too hard."
@tomazzaman
@tomazzaman 3 күн бұрын
Spot on.
@llamasaylol
@llamasaylol 3 күн бұрын
If you're recompiling the Linux kernel a lot, you might want to consider CCache to speed up the builds. Just be sure to manually set "KBUILD_BUILD_VERSION" and "KBUILD_BUILD_TIMESTAMP", otherwise you won't see any advantage.
@fusca14tube
@fusca14tube 3 күн бұрын
Awesome!!! Just one advice: use a larger terminal font size because its very difficult to resd from mobile device. Tks.
@tomazzaman
@tomazzaman 3 күн бұрын
Noted, thank you for the suggestion!
@JCRMatos
@JCRMatos 3 күн бұрын
Have you considered Ubuntu IoT? Also consider IPFire.
@foobar9761
@foobar9761 3 күн бұрын
Great vid, well done!
@cristinelcostachescu9585
@cristinelcostachescu9585 3 күн бұрын
So, here we are: Linux. It wasn't that hard, at all, I only needed a Tomaz to make a 30 minute tutorial and post it on KZbin, 15 years later than when I was breaking my system. Better later than never! 🎉 Jokes apart, nice job! I'm still eager to see more hardware hacking though :)
@wolfgangpreier9160
@wolfgangpreier9160 3 күн бұрын
Up until centos i always had to make my own kernel. Since DLD 1.0 somewhere in the beginning of the 1990s.
@bastian775
@bastian775 3 күн бұрын
ahh yes this reminds me somewhat of the good old days of installing Gentoo linux while manually compiling the kernel with just the hardware you run on, and compiling all software....
@tompointdll
@tompointdll 4 күн бұрын
As Jeff Geering would say "It has been 0 days since i've recompiled the linux kernel"
@mworld
@mworld 4 күн бұрын
The video title is true.
@SweetAdair-o4p
@SweetAdair-o4p 4 күн бұрын
Jettie Stravenue
@h.i.t.m.a.n_47_911
@h.i.t.m.a.n_47_911 4 күн бұрын
what a nightmare
@gh975223
@gh975223 4 күн бұрын
come on you really should build Linux From Scratch then you will know rock hard! normal Linux distributions are easy peasy! NB Android is a Linux Distrution!
@Yasen6275
@Yasen6275 4 күн бұрын
Why use systemd on embeded system? Why not using Devuan, which is Debian with good old systemV init scripts?
@tomazzaman
@tomazzaman 4 күн бұрын
Perfectly valid choice too!
@marcogenovesi8570
@marcogenovesi8570 3 күн бұрын
Why use a downstream distro when you can use Debian? Who cares about the init system
@Yasen6275
@Yasen6275 3 күн бұрын
@@marcogenovesi8570 Because of less resources used. While on PC it's less relevant, on embedded it is a valid concern.
@marcogenovesi8570
@marcogenovesi8570 3 күн бұрын
@@Yasen6275 Afaik not in this case, they have 1-2GB of RAM, using a few MB more isn't significant and not worth the tradeoff of losing systemd features. We are reaching a point where even routers have GBs of RAM, just because that's the smallest RAM chip they can buy at all.
@Yasen6275
@Yasen6275 3 күн бұрын
@@marcogenovesi8570 What features exactly are so important on embedded system?
@oliverer3
@oliverer3 4 күн бұрын
Ooo! Impecable timing! I've somehow found myself designing two different custom SoM-esque boards at once that I'll eventually need to figure out how to run some form of embedded linux on. I have a bad habit of just going for it and hoping I'll be able to learn what I'm lacking on the way. xD
@tomazzaman
@tomazzaman 4 күн бұрын
Same hahaha
@sasjadevries
@sasjadevries 4 күн бұрын
I like Linux as a desktop, mobile and cloud OS. But for embedded applications I probably wouldn't use it everywhere, and look at different options per usecase.
@bigpod
@bigpod 4 күн бұрын
you really dont need to know how to put togehter a linux distro(or build your own rootFS from scratch) to be using it also debootstrap is correct way to build a debian system from scratch
@DeadlyDragon_
@DeadlyDragon_ 4 күн бұрын
Here is a good question for you. JunOS from Juniper has this concept of snapshot partitions. Where the OS creates a snapshot of everything needed to run the OS. Should something go wrong with the primary partition it will boot from the secondary. This saves you from a bad update that wrecks the primary partition. However it also goes a step further allowing the creation of a bootable USB based snapshot partition. Can this kind of functionality be worked into your vision?
@tomazzaman
@tomazzaman 4 күн бұрын
A good question indeed. This tutorial was a bit more, let's say _general_ in scope/approach, rather than highly specific for our board. We are reviewing how other devices of a similar class and functionality are solving this issue, because we need to support both, so tinkerers like myself, who prefer more hands on, as well as people that just want it to, well be a router, and don't care what's under the hood.
@rnts08
@rnts08 4 күн бұрын
I miss working with junos, the snapshots were a nice feature if something happened to the main configuration. You can probably achieve something similar with lvm2 or xfs/btrfs. Snapshots should be thin anyway.
@DeadlyDragon_
@DeadlyDragon_ 4 күн бұрын
@@rnts08 agreed, I also recently learned that juniper devices have 2 different storage devices one for recovery based partition slices and your main storage where normal slices are contained. Should your primary fail it’ll try the backup flash chip. Should that fail theres a USB recovery slice.
@DeadlyDragon_
@DeadlyDragon_ 4 күн бұрын
@@tomazzaman i strongly recommend looking at JunOS / junipers SRX/MX series devices for sure they have some absolutely incredible hardware / software. Can pick up an srx-300 series device off of fleabay for a decent price.
@bigpod
@bigpod 4 күн бұрын
@@tomazzaman i recommend also looking at how steamOS on steamdeck works and how coreOS and how android works. With CoreOS providing basically best customizability in conjunction with best recoverability/ability not to break RootFS
@worgle123
@worgle123 4 күн бұрын
I still reckon anybody can learn Linux. Avoid Arch for a couple years, and figure out package-managers/CUPS and you're set.
@Mooooov0815
@Mooooov0815 4 күн бұрын
Absolutely. I think it entirely depends on you want to do. I feel like a person whose main computing experience consists of using a Webbrowser and a mail program will have an easier time switching than a person who is very experienced using Mac or windows
@AnnatarTheMaia
@AnnatarTheMaia 4 күн бұрын
That time would be better spent mastering illumos and one of the distributions based upon it.
@shapelessed
@shapelessed 4 күн бұрын
"It has been 0 days since I recompiled the linux karnel"
@MelroyvandenBerg
@MelroyvandenBerg 4 күн бұрын
Kernel*
@shapelessed
@shapelessed 4 күн бұрын
@@MelroyvandenBerg Are you annoyed yet?
@AchievedZeus574
@AchievedZeus574 4 күн бұрын
Arch users
@MelroyvandenBerg
@MelroyvandenBerg 3 күн бұрын
@@shapelessed yes xD
@MelroyvandenBerg
@MelroyvandenBerg 3 күн бұрын
@@AchievedZeus574 Linux Mint actually
@bastian9945
@bastian9945 4 күн бұрын
I want to establish the 80/30 rule. getting the feeling to understand a topic up to 80% after watching your 30 minute video. I love it. 😂
@TheAleksanderB
@TheAleksanderB 4 күн бұрын
In case you need to build for different architecture(s) and to decouple your test (build) driven environment from the dependencies of your main (work) machine, it will be more suitable to use either Docker image or virtual environment with caching. Also, you could integrate your build-release process with GitHub Actions more reliably and consistently as they rely on images.
@pahnazd
@pahnazd 4 күн бұрын
"Linux, it's easy!" then spends 3 hours troubleshooting one of the many issues when building a distro from scratch
@sanjikaneki6226
@sanjikaneki6226 4 күн бұрын
hmm at this point you should be able to have internet access and be able to run MII command for HW debug and even test Ethernet speed. Did you do this already? how are the preliminary results?
@tomazzaman
@tomazzaman 4 күн бұрын
Can you clarify? Preliminary results of?
@sanjikaneki6226
@sanjikaneki6226 4 күн бұрын
@@tomazzaman as in test those special fancy package routing periferals in your mpu. Or if you can get an acceptable speed in practice with x sfp.
@PugnaEnjoyer
@PugnaEnjoyer 4 күн бұрын
Your explanations and body language are top tier
@lumarel
@lumarel 4 күн бұрын
The "easy" at the end caught me :D Awesome video! Already have quite a bit of knowledge about building Linux but learning here about Embedded stuff! Did you already work with yocto/yoctobuild? Hearing frequently it being used to build embedded system images
@tomazzaman
@tomazzaman 4 күн бұрын
Nope, but it's been on my to-do list for a while. Afraid of starting, because it'll pull me in for sure! :) And buildroot is so easy to get started with :)
@jhirschma
@jhirschma 4 күн бұрын
Why not use buildroot, or perhaps yocto? I'd love to see tutorials for either or both <hint>
@bigpod
@bigpod 4 күн бұрын
dont both of those basically force you to use binaries which you might need to build yourself, why going with something like debian, you can rely on already existing ecosystem
@oliverer3
@oliverer3 4 күн бұрын
From my admittedly limited understanding Yocto is more meant for the use case where you need to target many different hardware architectures or configurations, so it's more flexible but requires much more upfront configuration and has a learning curve reminiscent of a cliff from my dabbling. Build root is essentially the other end of the spectrum, target a single platform and get from zero to a running system as fast as possible, it's also much easier to pick up. Another major difference is that neither of these tools use an existing distro as I understand it, they instead essentially make their own from the kernel and the packages of your choice giving you a lot of control but also more homework.
@jhirschma
@jhirschma 3 күн бұрын
@@oliverer3 I'm pretty sure that buildroot allows you to create a customized Debian install.
@marcogenovesi8570
@marcogenovesi8570 3 күн бұрын
Why use buildroot or yocto when you can just use Debian? There is a reason if not a lot of people do buildroot and yocto tutorials
@marcogenovesi8570
@marcogenovesi8570 3 күн бұрын
@@jhirschma the point of buildroot is to automate the creation of a LFS (linux from scratch) system. Debian has its own image building infrastructure
@PuOop-j9l
@PuOop-j9l 4 күн бұрын
man if you buy a threadripper you could compile this stuff in a quarter of the time your m1 studio does, just use vscode remotely to it
@capability-snob
@capability-snob 4 күн бұрын
For a few bucks per hour you can get something 2-3 times the size in the cloud. I've definitely learned my lesson from buying pricy workstations that spend 95% of their time doing nothing but running Emacs.
@PuOop-j9l
@PuOop-j9l 4 күн бұрын
@@capability-snob cloud is the worst solution ever for compiling linux kernel. Must there be a reason for Torvaldis to have a threadripper system instead of going cloud
@bigpod
@bigpod 4 күн бұрын
@@PuOop-j9l because he is building them all the time and by all the time i do mean all the time
@sasjadevries
@sasjadevries 4 күн бұрын
How does crosscompiling an ARM kernel on an AMD CPU compare to compiling an X86 kernel on the same CPU?
@bigpod
@bigpod 4 күн бұрын
@@sasjadevries honestly slower idk (of the top op my head) how much but slower. There will always be some slowdown but depending on implementation of cross compilation can be extremely small
@Nec89
@Nec89 4 күн бұрын
I built a whole linux once. I'm now on blood pressure medication and at increased risk for a stroke!
@monad_tcp
@monad_tcp 4 күн бұрын
I was trying to build Debian from scratch, then I notice the problem is Debian, not Linux. Now I'm a recovering addict, I only use Linux from scratch or Arch.
@EFazy
@EFazy 4 күн бұрын
Also: making /boot read only after you finished is a nice touch of security, since if someone get in, the only way to mess with the kernel is became root somehow. I've managed servers, where the /usr/ was read-only by default, and you had to run a command as root (or sudo) to remount rw, and upgrade the system.
@bigpod
@bigpod 4 күн бұрын
personnaly im of opinion that most of linux filesystem should be RO (with exception of /etc /var /home) and in fact should be updated trough images like android is
@EFazy
@EFazy 4 күн бұрын
Copying 252GB of nothing sounds fun :D
@tomazzaman
@tomazzaman 4 күн бұрын
I prefer eating pizza as a way of having fun :D
@padraigconnolly2991
@padraigconnolly2991 4 күн бұрын
What does 0x80000000 represent in your tftp command?
@tomazzaman
@tomazzaman 4 күн бұрын
Memory address where I store the file into. See my previous video, it's all explained there.
@georgehooper429
@georgehooper429 4 күн бұрын
Very well done teaching the basics and knowing all of the parts needed to build a linux OS. I'm sure you will dive into buildroot next since almost all of the steps you did can be automated. But if you don't know the basics when buidlroot goes wrong, you will not know how to fix it. So this post will be very helpful. Not saying that it wrong or not, but I can see if you are an x86 cross compiling an ARM OS, I don't think when you change rooted into the disk structure of the target system and ran the phase 2 of the debian install, for x86 folks that would not have ran because you are executing ARM code on an x86 processor. Since you are on an M1 processor of course it worked. I don't know for a fact it wouldn't work, I can just picture it not working very well. Also for an embedded system, does kernel loadable modules really help, hur, or adds no valuet? Your router is not a general purpose computer so the overhead of the loadable module support may not add value. You won't have random hardware showing up in your dev tree, other than a usb drive (maybe). I've built embedded kernels in the 8MB range, with the initrd about 200MB for a complete (targeted) x86 system.
@tomazzaman
@tomazzaman 4 күн бұрын
Regarding your second point, I actually included stage two *because* most people work on x86. If you work on arm64 and build the filesystem for arm64, then stage two is not needed! As for the modules, I tried to be a more "general" in approach, rather to work specifically for our router, I think that makes it more interesting for a broader audience.
@georgehooper429
@georgehooper429 4 күн бұрын
@@tomazzaman I don’t know if your intent was to provide a step by step tutorial or just give a high level overview, but if it was a step by step well done! I must have missed your comment about if you were not cross compiling stage 2 wasn’t necessary. Because your video is so good I can see people trying to parrot your success step by step. As soon as they chroot’d into the ARM files system they leave x86 world and enter ARM world. Right there is where the wheels fall off if they are compiling on x86 and they should understand why. I only wanted to make people aware if they cross compile there may be an issue here. TBH: I did learn several things I never knew, so once again well done. As for the loadable module support, in the development phase its OK when you hit production you don’t want anything on your finished product you don’t absolutely need. Every extra “thing” you include could become a vulnerability so you need to chose wisely. I’ve worked on projects where we had 4MB of flash storage with 8MB of ram, so you have to count every byte in your app (i.e. Do I use punctuation in a warning message or not). In your finished system, you will know what hardware is there an what should not be there. So really loadable module support isn’t needed. From a security standpoint you don’t want the ability for a hacker to add/change a kernel module and then load it. For a KZbin video it doesn’t matter. Once again keep your content coming it is a valuable resource.
@tomazzaman
@tomazzaman 4 күн бұрын
Thanks for the kind words and feedback - all is appreciated! 🙌 And I agree regarding the modules, in fact, regarding our product in development, you just nudged me into taking a closer look at what is _really_ needed.
@TokkanFX
@TokkanFX 4 күн бұрын
You Sir are a star.
@RandomUser2401
@RandomUser2401 4 күн бұрын
You and your videos really have a unique vibe that I kinda got addicted to. Even though I am very familiar with embedded systems, you also always manage to teach me a lot of new stuff and to go deeper in fields that I thought I knew a lot about, like bootloaders.
@tomazzaman
@tomazzaman 4 күн бұрын
Thank you for the kind comment. It's these that keep me going! 🙌
@RandomUser2401
@RandomUser2401 4 күн бұрын
@@tomazzaman It's a pleasure :)
@winsucker7755
@winsucker7755 4 күн бұрын
I run Debian btw
@MelroyvandenBerg
@MelroyvandenBerg 4 күн бұрын
I run Linux Mint btw
@mullvaden83
@mullvaden83 4 күн бұрын
Is the plan to have a web interface on the router when its done to do configs? Or will it be command line only? I really hope you make a web interface like for ex Unifi
@tomazzaman
@tomazzaman 4 күн бұрын
Yes, actually it's the end goal for me, in a manner of speaking.
@thehady1
@thehady1 4 күн бұрын
Why not use something like armbian
@tomazzaman
@tomazzaman 4 күн бұрын
You could, definitely. It's not one or the other, both are equally valid options.
@jirihoogeveen3775
@jirihoogeveen3775 4 күн бұрын
LinuxFromScratch ♥♥♥
@laser-sj
@laser-sj 4 күн бұрын
Agree 100% with you about Linux. 😂
@ksenchy
@ksenchy 4 күн бұрын
Wooping 200MB... While I'm downloading a 130GB game 😂
@tomazzaman
@tomazzaman 4 күн бұрын
As long as it's not CoD, we can be friends. 😂
@ksenchy
@ksenchy 4 күн бұрын
@@tomazzaman God of war Ragnarok 😂
@tomazzaman
@tomazzaman 4 күн бұрын
I approve. Already bought it, but haven't had the time to play it yet. Trying to Escape from Tarkov ATM. 😅
@ksenchy
@ksenchy 4 күн бұрын
@@tomazzaman it does use 175GB after it's uncompressed. This is insane 😭 Tarkov is good but it demands a huge time investment if you want to fully complete a wipe / season
@tomazzaman
@tomazzaman 4 күн бұрын
My 6th wipe. But don't tell anyone. 🫡
@MrBigbanan
@MrBigbanan 4 күн бұрын
I need to my IQ 220 to contribute significantly ? I dont have all the peptides atm.
@zrizzy6958
@zrizzy6958 4 күн бұрын
Linux+One of your videos it's just a perfect fit for me
@JenniferBrown-n3r
@JenniferBrown-n3r 5 күн бұрын
Walker Sandra Clark Timothy Brown Betty