Close

UEFI RANT

A project log for Potentially Useful/Obscure Linux Stuff

Things that I've found useful/hard-to-find in my Linux endeavors...

eric-hertzEric Hertz 05/26/2019 at 04:4217 Comments

I give up, seriously!

This be another rant...

Seriously, when I was 15, I was so good at Intel/Windows/Linux systems that i was granted the highest-level admin privileges for a business with so many users MS-Outlook's contact-list system couldn't even handle them all. It, literally, stated that there were too many users to load... As I recall, that was something like 30,000.

At the time, I was mostly handling lower-level stuff; loading OS's on new machines, etc.

(SUBRANT: I FINALLY located a blutooth keyboard with an ESC key, so I can use VIM on my goddamned phone, because computers are SHIT these days, and phones are SHITTER... but that's another rant, which is coming soon to a scroll-down near you. Anyhow, this damned keyboard has [forward] DELETE as the BIG button next to "+", as opposed to BACKSPACE, which is a button in the upper-right-corner next to F12... WHAT THE HELL?! I mean, seriously, I must've found myself in hell, no? ESCAPE on my other keyboard is "HOME"... BACKSPACE on this keyboard is FORWARD-DELETE. WHAT THE HELL?!)

Alright, where was I...? OH...

So, for 30 years, computers could boot the exact same way... No joke. You could literally throw a DOS 3.2 boot-floppy from the PC/XT era in my Pentium 4's floppy drive, and... it'd boot... Throw a DOS 6.22 boot/install disk in that same machine, and you could literally install an operating-system from twenty years prior on a hard-disk made twenty years later.

Sure, there may've been a few technicalities, a few limitations... Maybe greater-than 2GB was too much to ask, but I never ran into a case where FDISK wouldn't even detect the dang drive, at all! 

And, again. I worked in friggin' IT, in the level of installing friggin' operating-systems on machines of countless-vintages.

------

Now, somewhere in my college-years, when I thought I'd be getting into research instead of IT, I kinda lost-touch with the ol' computer-state-of-the-art... But, again, the state-of-the-art for the THIRTY years prior was that every new generation of [x86] computers was so much backwards-compatible with the previous generations that all you had to do was plop an older boot-disk into a newer machine and power it up...

Now, I dunno what happened in the less-than-1/4 of that intercompatibility-period that followed my leaving the field, but now I've got TWO damned x86-64 [compatible] machines which won't load WinXP. We're talking less than a decade, here... Nevermind the THREE decades DOS6.22 would load without a hitch. The THREE decades FDISK.EXE would detect your drive, whether it was MFM, IDE, UDMA, or even SATA... Heck, given a decent BIOS or BIOS-extension, DOS would even detect SCSI drives, even in the PC/XT era.

Yet, now, even with a BIOS/UEFI-configuration-setting for SATA's Legacy-mode, nary an OS-Installer-boot-disk I've access to (From WinXP to Win7) will detect the friggin' most important piece of hardware in the machine... the friggin' hard drive. 

I'm sick of it.

Frankly...

That's all it boils down to. COMPUTERS ARE STUPID. And the designers, apparently, are getting exponentially stupider every year.

Discussions

Starhawk wrote 05/27/2019 at 02:09 point

Izzis for that system I gave you? You're gonna have fun with that. It ONLY recognizes GPT formatted shizz, and it's a 32bit UEFI on a 64bit box because China does some real strange stuff these days.

For everyone else: the mobo is a Wintel CX-08 "Mini PC" from eBay, worked over by Yours Truly into a lil PC. We nicknamed it "Antsy" or something like that cuz the build thread on Imgur was titled (by me, a bit tongue in cheek) as "what is this, a PC for ants?" HaD did a blog writeup but I can't be arsed to find it now.

  Are you sure? yes | no

Ken Yap wrote 05/27/2019 at 02:31 point

Ha. GPT tools have been available for ages. OP needs to update his toolkit. Any modern Linux rescue CD will have gdisk or parted. GPT is a good thing because it solves the 4 physical partition limit of DOS partition tables, which made OSes create a extended partition and logical partitions inside when they hit the limit.

  Are you sure? yes | no

Starhawk wrote 05/27/2019 at 02:37 point

OP is a sack of brilliance. I don't question his toolkit.

  Are you sure? yes | no

Eric Hertz wrote 05/30/2019 at 01:19 point

LOL "he needs to update his toolkit" nah, today's brats need to quit reinventing the hammer!

Those limitations are nothing that couldn'ta been handled via other means. And, I'm sorry, but seven partitions to load Windows is utterly absurd (on a friend's dead hard drive)

Antsy, indeed, also won't boot WinXP install CD... But I figured that'd be a long-shot since all the UEFI weirdness you [@starhawk] told me about. Still, thought maybe BIOS mode was a plausibility. I gotta give you a ton of props for figuring out how to get this tiny beast running. I can't even get a machine with a fresh hard disk to install a fresh winblows these days! I used to be pretty good at this shizzle!

As far as TFTP, they still use that for netboot?! I'd've figured it to be far too trivial for today's alleged needs... I've had 8-bitters booting off that!

  Are you sure? yes | no

Ken Yap wrote 05/27/2019 at 02:41 point

😜 Gotcha.

  Are you sure? yes | no

Eric Hertz wrote 05/31/2019 at 02:37 point

LOL, Grandpa Simpson!

You might be onto something, there... some folk gotta give up smoking, others sugar, me computers(?!)

i'd better ask a doctor...

  Are you sure? yes | no

Eric Hertz wrote 05/30/2019 at 01:22 point

BTW, if I keep up with my latest feelings toward computers of this generation, maybe I should change Antsy's name to Rantsy?

  Are you sure? yes | no

Starhawk wrote 05/30/2019 at 01:28 point

Antsy isn't the one ranting tho :P

  Are you sure? yes | no

Eric Hertz wrote 05/30/2019 at 01:30 point

good call... Computers don't rant at people, people rant at people! maybe it's time I change my screenname...

  Are you sure? yes | no

Ken Yap wrote 05/30/2019 at 02:01 point

Maybe give up desktop computers to reduce your blood pressure? 😜 It's all about economics. Manufacturers have zero desire to spend money supporting legacy technologies (which have to be tested, etc) when their competitors are breathing down their neck.

Either hoard computers from dumpster diving, or move to the new unexplored lands of other CPU architectures.

I reckon there are a bunch of kindred souls for you at Distrowatch, whinging about how systemd is evil and their distro dropped 32-bit support. Waiting for someone to rant for the return of ST-506.

https://i.kym-cdn.com/entries/icons/original/000/019/304/old.jpg

  Are you sure? yes | no

Daren Schwenke wrote 05/26/2019 at 04:57 point

This is a linux tip... how?  :)  Also, Control [ is what the ESC ultimately sends.  You can do that on most any keyboard.

  Are you sure? yes | no

Eric Hertz wrote 05/26/2019 at 23:44 point

Oh, right, I got sidetracked... this was supposed to be about linux... Well, Linux was never "easy" to install... It always took some low-level knowledge of your hardware configuration... I can only imagine it's worse, now. At least for a very brief period there were machines whose *BIOS*es supported USB booting, and during that brief period, the machines were still compatible with BIOSes... Now I hear there are machines with 32bit UEFIs that require special installations to run linux in 64-bit mode, and at least, again, during that brief period, it didn't matter whether your hard disk was IDE, UDMA, or SATA, it still had a default compatibility mode which was detectable without having specific drivers (and knowledge of the chipset, etc.)

Frankly, it seems to me, the ARM-brats who couldn't even standardize on a memory-mapping scheme nor even register-location/settings for the lowest-level I/O necessary to boot a machine, requiring a custom-kernel for each different ARM board, are now in charge of x86, as well. Weee!

So, now, rather'n having one x86 boot-image, we need an x86, x86-64-UEFI-32, x86-64-UEFI-64, and so-on?! And somewhere in there pray that they've got the right drivers for the friggin' hard drive to even be detectable?!

And what on earth does one do with a blank hard drive on a UEFI machine?!

----

Thankya for CTRL-[

I'll rip the HOME key-cap off the board so's I don't forget!

  Are you sure? yes | no

Ken Yap wrote 05/27/2019 at 00:02 point

You need to get onto the forums for the distro you are using for help.

The ones to blame are the manufacturers shipping buggy UEFI firmware. Sometimes Linux is also going where nobody expected it to, like 64-bit Linux on a machine that was only intended to run 32-bit Windows, but has a 64-bit capable CPU (practically all new x86 CPUs are these days).

  Are you sure? yes | no

Daren Schwenke wrote 05/27/2019 at 01:53 point

You could also type ANY character by holding ALT, and typing the three digit code on the numpad once upon a time, including null.

You load the drivers at boot, before setup continues, just like on a Windows machine.  Difference is, Linux has supported like 85% of everything I've ever needed, at boot.  They actually did recently (8 y ears ago?) drop embedded kernel support for some of the older stuff.  The very last time I tried to boot my Toshiba palmtop from 1997, I actually did have to go load a driver now to support it.

UEFI is still a mess.  You are correct.  But it is the logical progression here and for the most part, I believe it is what needs to happen.  Let me provide a very 'real world' example.

I 'grew up' with System V and BSD style booting.  I can write those scripts from memory and know exactly how things work, and it's all very safe and convenient.  Now along comes SystemD (which I still currently loath), and screws everything I ever knew up, changes the format of all the files, and puts things all over the filesystem instead of in just a couple of directories...  Why?  

Well, because the way we had been doing things frankly... sucked.  You ended up writing your own routines to handle when things die in certain ways and they had to do write your own checks, networking was seemingly an afterthought outside of entire runlevels, and starting in a particular order which was almost always required could be really hard.  The solution to all of this is all built right into the idea behind System D, and even though I still don't like it, it is the logical progression and it needs to happen.  The author behind System D 'just did it', showed it was better in the long run, and eventually even stubborn bastards like me have been forced to admit defeat and acquiesce.  :)

As for what works and what doesn't at boot, it's just a numbers game.    You write the minimal kernel, and then put the most used things in it.  What can't fit in your initial boot image, people will need to manually load.  Yes, you could for the longest time, just load up any > 386 compatible boot image on whatever processor you had, and the built in legacy emulation would kick in, so things would just work.  Is it worth forcing all your hardware to switch to emulating a 20 year old PC every time it boots just so we can have a single image?  I don't believe so.

  Are you sure? yes | no

Eric Hertz wrote 05/29/2019 at 21:26 point

'is it worth forcing....'

Absolutely!

Because, at one time it wasn't 'emulation' at all! From the 8-bit bus of the 8088 to the 64bit bus of the pentium, and was it 128bits on the P4? Still, every x86 started in a simply-defined manner. Switching to 32-bit execution was an *option* not a requirement. Had they stuck with a similar scheme when switching to 64-bit processors, switching from 16-bit execution to 32-bit, to 64 would've been an option, as well. Continuing that line-of-thought, a very simple [say 16-bit] "Basic" Input/Output system could be created for each differing motherboard's simplest components, especially things necessary for later 'options' like a simple IDE/SATA driver where a more complex [and later] boot-option could be executed from a more complex [e.g. 32/64-bit] environment [e.g. TCP/IP for booting from a network]. Such more-sophisticated "basic" input/output *extensions* could be loaded from a simply-accessed environment, ala FLASH-ROM, which could, for instance, be attached to such devices as need them [e.g. on a network card]. Such that, wherever that network card may be installed, it will bring a basic set of operational ability along with it, a sort of 'universal' driver interface that works with [sorta] any OS... including *none* [e.g. before loading an OS]. Kinda handy, eh? Then, once the OS is loaded, a more sophisticated driver may be loaded for that device, if necessary/desired, to, e.g. enable a faster interface, or special options specific to that device/OS.

One interesting function of this hypothetical 'extendable' 'basic input/output system' is that, for instance, it will be possible to enable a somewhat-universally-accepted/understood interface environment on even a system which has little more than a CPU and the afore-mentioned FLASH-ROM chip... like, for instance, a brand-new motherboard with a factory-fresh blank hard disk.

Imagine a system wherein even with no drivers, and only the most rudimentary of software [could it even be called an OS?], a blank hard disk could be partitioned and formatted, an operating-system copied to the new partition, and booted on the next reboot, with little to no specialized hardware/driver configuration [or knowledge thereof!]..

Now, the above may be a bit of a pipe-dream, but I could take it further... Imagine, e.g. an extension to the basic input/output system that contained the rudimentary software necessary for basic system-setup such as formatting a blank drive and making it bootable! None of this should be too complex as to require 64-bit execution, heck, even 32-bit is unnecessary. And interesting side-effect of said basic input/output system is the possibility to develop such rudimentary software with *no* knowledge of the underlying hardware... Develop said software one time, and distribute it to all machines with this somewhat universally-standardized basic input/output system, and maybe even include it on the system's motherboard itself, such that even if the system's main hard disk fails, another, from any manufacturer, could be installed and properly-formatted for booting.

The list of potential benefits of such an extendable universal basic input/output system go far beyond those mentioned here...

But, they appear to be some high-hopes... pipe-dreams, maybe.

  Are you sure? yes | no

Ken Yap wrote 05/29/2019 at 23:28 point

Network booting doesn't use TCP/IP but UDP/IP in the form of DHCP and TFTP. As for the rest good luck with those.

  Are you sure? yes | no

Daren Schwenke wrote 05/31/2019 at 08:21 point

I lived and worked in the days you mention here, at the level you mention here.  What you speak of was attempted to some extent.  Even limited to the realm of a single OS on the mostly known hardware of that day, I still had to load drivers to move beyond the most basic functionality.  Yes, it would boot.  Yes,  I could access the hard disk.  Yes, I could even access the network (some of the time).  But, it sucked.  Performance sucked.  The very next step after bootstrapping the system was always to undo what the bootstrapping had done, and then to actually load the proper stuff.

I had a workstation farm which we needed to re-image nightly.  Customers would come in and screw them up in extremely creative ways, but whatever they did it always needed to be ready to go the next morning.  The simplest solution for this was to re-image every machine, every night, to a set point based on that point in the current curriculum.  Then I had the bright idea of using this large quantity of otherwise un-tapped processors as a render farm.  Just loading a proper driver beyond the legacy interface provided such a massive speed increase that we could easily re-image the machines twice per day and still provide 9 hours of usage as a render farm during the off hours.

I'm relatively happy I usually no longer need to worry about these things unless I'm dealing with ancient or brand new hardware. However when it happens that I do need to load a driver for certain things to work, I'm not really annoyed anymore.  I just remember how terrible the reality of everything just working actually was.  :)

  Are you sure? yes | no