The Linux Thread - The Autist's OS of Choice

  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
Thats definitely a fedora specific thing.

My recommendation to be able to tell when its actually done is pull up htop, or btop. Or a gui system resource monitor. You will be able to see if its compiling still in that.
Rereading the RPM Fusion site, it does also say to run 'modinfo -F version nvidia' and it will output the version once compiled. It could also behave differently if I did an offline update via Discovery and wait for the compile to finish.
 
what distro? Realistically it'll be corposlop like ubuntu or red hat but it would be interesting if they put Linux Mint or something insane on it.
No idea, it's something very custom with a few icons and a start menu of sorts so neither of those. Basically a glorified terminal for the specilialized software they use all day long and avaya softphone and that's it, which is a great use for Linux. As soon as I started maniacly laughing she told me to never touch the computer again. Its running kernel 6.4 and x11 that's as far as I got before she kicked me out.
 
No idea, it's something very custom with a few icons and a start menu of sorts so neither of those. Basically a glorified terminal for the specilialized software they use all day long and avaya softphone and that's it, which is a great use for Linux. As soon as I started maniacly laughing she told me to never touch the computer again. Its running kernel 6.4 and x11 that's as far as I got before she kicked me out.
I can only speak for European companies, but a lot of for-purpose Linuxes are chopped up RHEL. Weirdest place I've encountered it is in control panels for radar arrays, though you see pretty much nothing of the Linux base beneath the proprietary control interface.
 
No idea, it's something very custom with a few icons and a start menu of sorts so neither of those. Basically a glorified terminal for the specilialized software they use all day long and avaya softphone and that's it, which is a great use for Linux. As soon as I started maniacly laughing she told me to never touch the computer again. Its running kernel 6.4 and x11 that's as far as I got before she kicked me out.
>tfw no neofetch on my mystery meat corpo linux laptop
 
Phoronix: Linux 6.19 Gets Rid Of The Kernel's "Genocide" Function (archive)
While the Linux kernel has inclusive terminology guidelines for the past five years to replace phrases like master/slave and blacklist/whitelist, there has surprisingly been a "genocide" function within the kernel that was questioned when it was first submitted for inclusion but now removed in Linux 6.19.
The "genocide" term was only ever used as a function name and not displayed to end-users, but in any event with Linux 6.19 has now been removed as part of this code restructuring.
 
This has to be the stupidest fucking thing I’ve read all year. Who, in-the-fuck, cares about an internal function name?

The amount of “fuckyou” I have as a variable in my codebases is immeasurable, along with FuckYouPleaseWork();, PissOff(); and WhyDoesThisNotWorkFFS();
yeet() fuckOff() dieInAFire() are all perfectly valid function names
 
idiot of the day
I wish I could send patches. Wayland devs would just reject it since it goes against wayland philosophy and even if it got merged gnome would refuse to implement it (or accept patches that implements it), so I wouldn't be able to target wayland in my software, I would have to target specific wayland compositors. As is the case often, a lot of wayland programs aren't wayland programs, they are wlroots/kde plasma(kwin)/hyprland programs or a combination of them.
 
I wish I could send patches. Wayland devs would just reject it since it goes against wayland philosophy and even if it got merged gnome would refuse to implement it (or accept patches that implements it), so I wouldn't be able to target wayland in my software, I would have to target specific wayland compositors. As is the case often, a lot of wayland programs aren't wayland programs, they are wlroots/kde plasma(kwin)/hyprland programs or a combination of them.
The method I've seen developers starting to move to. At least the ones making desktops, and compositors. Or other larger projects, is once they submit something to become a protocol, they just go ahead, and implement it. Especially if it's something that's genuinely needed. Then once people start using it. It basically forces the wayland devs hands, by showing it does have a use case, it is needed, and people do want this.

Over time, I think the thing I want to see the most is a fork of the wayland project, that can just bypass all the gay bikeshedding, and gnome faggotry. There are some obvious problems that make it not so simple. Like one thing is it would be a ton of work, and it would be useless if it was only one or two people that wanted to do this.

I think if they did do it, then they jumped ahead and implemented protocols that have been stuck in purgatory, or that got turned down, and if people started using it instead of the current wayland project. That would help move things along. Even if it didn't end up being as big, it might actually put a little pressure on these people. But I think having wayland, without the free desktop freaks would be great. They are the worst thing about wayland in my opinion.

Don't get me wrong, I don't expect that to happen. At least not unless something extreme happens. But it would probably be the best thing for wayland's future.
 
The method I've seen developers starting to move to. At least the ones making desktops, and compositors. Or other larger projects, is once they submit something to become a protocol, they just go ahead, and implement it. Especially if it's something that's genuinely needed. Then once people start using it. It basically forces the wayland devs hands, by showing it does have a use case, it is needed, and people do want this.

Over time, I think the thing I want to see the most is a fork of the wayland project, that can just bypass all the gay bikeshedding, and gnome faggotry. There are some obvious problems that make it not so simple. Like one thing is it would be a ton of work, and it would be useless if it was only one or two people that wanted to do this.

I think if they did do it, then they jumped ahead and implemented protocols that have been stuck in purgatory, or that got turned down, and if people started using it instead of the current wayland project. That would help move things along. Even if it didn't end up being as big, it might actually put a little pressure on these people. But I think having wayland, without the free desktop freaks would be great. They are the worst thing about wayland in my opinion.

Don't get me wrong, I don't expect that to happen. At least not unless something extreme happens. But it would probably be the best thing for wayland's future.
Stuff like this makes me think at least part of Wayland’s problem is just that the protocol is not very extensible. If you want to add a new feature or new object to pass between compositor and client you have to write an XML spec and get everyone to adopt it. Historically, Unix and Unixers prefered to use text files and text streams to pass data because text files are more flexible than binary files, and text parsing especially is more flexible than binary parsing. Plan 9, for example, passed mouse events through the /dev/mouse file and keyboard events through the /dev/cons file.
There are limitations to this model, however, especially if you’re writing your programs in C with its notoriously incredible string handling features. If you look beyond traditional Unix, BeOS and now Haiku has the BMessage system, which underpins its whole IPC system. A BMessage essentially an associative array with a uint32 identifier that can be written to and read from a file. Every single application in BeOS/Haiku is essentially a collection of loops passing BMessages back and forth, with the identifiers telling each loop what to do and the values in the associative array actually passing data along.
Imagine if Wayland had a few core protocols for essential things like passing input events, window resizing, or managing core shared objects, and then a dedicated “other” message type that allowed compositors to figure out whatever they wanted to do w.r.t. decorations or clipboards, all without having to go through Freedesktop. It would be far more extensible, far more open, and would completely obviate the need for Wayland devs to sit as arbiters over whether certain features have a “use case.”

Free Software is at its best when it’s based around the model of a user-developer. If you use software regularly, you’re going to become intimately aware of everything that’s wrong with it, and if you also develop it, you’re going to be able to fix whatever you find that’s wrong with it. Free Software is at its worst when it’s being developed by people who don’t use it and have no stake in it actually being usable. Software that was designed for someone else sucks hard enough when it’s proprietary, and the companies that make those generally have to money to actually do focus tests and try and understand what people actually want to do with their stuff, the foundations that develop these big Free Software projects can’t even do that, they more or less just have to guess.
 
and then a dedicated “other” message type that allowed compositors to figure out whatever they wanted to do w.r.t. decorations or clipboards, all without having to go through Freedesktop
x11 kinda does this, mostly for properties. The examples you mentioned (decorations and clipboard) is done with x11 window properties and isn't part of the x11 protocol. This is why even gamescope, a wayland compositor uses x11 window properties instead of creating wayland protocol for it: https://github.com/ValveSoftware/gamescope/blob/master/src/steamcompmgr.cpp#L7576
This fundamental difference between x11 and wayland is called "mechanism over policy" or "mechanism not policy" (for x11) and "policy over mechanism" (for wayland). Mechanism over policy means that you create simple structures that can be used for a wide range of things, even outside the initial thought of the x11 developer while policy over mechanism means that you discuss the use-case and exact ways it could be used with a board (not the community as a whole) and decide on a design that only allows it to be used for those things. This policy difference is the only thing that really matters as a difference between x11 and wayland and is why it took 2 months for x11 and xorg server to get vr support while for wayland it took 2 years for it to get added to the protocol and then more years for it to get added to wayland compositors.
 
yeet() fuckOff() dieInAFire() are all perfectly valid function names
When I was trying to annoy my supervisor for the mandatory programming course I felt no need to attend, I used emoji as function names and variable identifiers. It turned out to be doubly amusing as he was using a Windows laptop, so while emoji were really easy to access on my touchbar Macbook, he had to scroll up and down my code when he was evaluating it. I passed the course, but apparently he mentioned me by name in the evaluation afterwards, and not favourably.
😎
 
Our multi threaded ryzen processor its just too fast and causes these issues when doing threaded operations that just do not happen on a super slow single core design cpu that the TV uses from my theory. And it would line up with the inconsistencies that we see.
Guess who just got confirmation that I was semi right that it was about timing.
and now its time to see if it worked
No old me from a few days ago your attempts did not work. But they did not go in vain thanks to the help of others.
Yeah the reason why the ioctl calls were not in order was because of timing.
If you recall previously while compiling GCC I finally went back after a short break. I want to thank @analrapist for helping me out as he scoured the entire internet and managed to compile working binarys of gcc and binutils that had everything I needed. It was not as easy as simply compiling he had to scour and do alot of stuff because they were using custom patches to enable Libc. Show this guy some love seriously hes amazing and I wish I was half as useful as him.

Anyways what was I saying oh right.

We remember how everytime I ran the program the ioctl calls that would be ran would be inconsistent and would execute out of order/randomly.
1765547950552.webp1765547967903.webp
Two different times running the binary. 2 Different execution results. Wow that sounded poetic

Well we got confirmation that this is not how its suppose to be ran(duh). If you recall I did find a old monta vista image that while a few years eariler than this version of Monta Vista still had alot of stuff that was relevant. Check the documentation. There appears to be stuff that I don't even think the MODERN linux kernel has but also confirmation that im heading in the right direction
1765548386961.jpeg
"CONFIGURING LATENCY TRACING Note: At least one latency timing options must be selected before it is possible to configure latency tracing. To enable latency tracing, use DevRocket or run make menuconfig or make xconfig to complete the following procedure: 1 Open the Kernel Hacking menu. 2 Select the Latency Tracing option. 3 Save your project. If you have enabled Project > Build Automatically, when you save your project, DevRocket automatically generates a new kernel. RUNTIME CONTROL OF LATENCY TIMING AND LATENCY TRACING Runtime control of the three available types of latency tracing is performed via a common set of control functions. RUNTIME DISABLE LATENCY TRACING Latency tracing can disabled by issuing the following command: echo '-1' > /proc/sys/kernel/trace_enabled RUNTIME ENABLE LATENCY TRACING Latency tracing is enabled during kernel boot, by default. The status of latency tracing is reported using: cat /proc/sys/kernel/trace_enabled 1 The system returns a non-zero value, if latency tracing is enabled. The following command is used to re-enable latency tracing: echo ‘X’ > /proc/sys/kernel/trace_enabled The value of X depends on the tracing mode, as discussed in the following sections. RUNTIME CLEARING OF LATENCY TRACE BUFFER Before running a test using latency tracing, it is necessary to clear the latency trace buffer with the following command: echo ‘0’ > /proc/sys/kernel/preempt_max_latency"

This means that the Monta Vista kernel that the TV uses most likely has latency options that prevent it from running these threaded ioctl operations out of order which is what is causing it to crash(may be something else but it wont hurt to fix regardless)
Sometimes its not just about knowledge but about strategy. Having a plan, you knock out one could be problem or future to be problem and you now can say "We know thats not the problem scratch one" or say "Well we now have made it even more accurate". Its not like fixing a issue with something will make your project even more unfinished if its done well.
Anyways lets discuss something else to, yeah my friend got a update file for the TV. Not analrapist but he managed to dissect SOME of it and found what appears to be the VMLINUX. Now for reference the firmware image I have is not a update image but rather a dump of the little epprom on a already installed TV. Weird that binwalk did not find the vmlinux on THAT one. But oh well. He told me that its in a file called AppKernel.TDF and this is where things get weird. .TDF appears to be a proprietary format to store files that
  1. Does not compress any data? Despite being the only reason why someone would a company would want to make there own file format for a vmlinux besides .ELF​
  2. Encrypts or obsfucates nothing.​
  3. Litterally just stores the raw VMLINUX image with no edits or cuts​
Why would you take a Linux kernel, a system that can compile for .ELF already with no problem(vmlinux) and then instead of doing that you make it store vmlinux in your own file format that does not even reduce the filesize nor encrypts or does anything basically creating the exact same thing as a .ELF without using a .ELF is beyond me. But lets inspect this shall we
1765549515467.png1765549548718.png
This is LITTERALLY just a VMLINUX image with some modules. Again there is NO point in using this format when you could have just built for .ELF which does the EXACT same thing. Its not like this obfuscates it either.

At the end of the file are a bunch of zeros
1765549624119.png
Nothing intresting there but now lets look at the very end of the file
1765549663120.png
If you don't know those first few bytes and arguments is a GZIP magic number(1F 8B 08 ). Yes that's a GZIP file it seems but its storing nothing? Its at the very end where no file could be stored. if we were to try and extract this it would show NO files in it.
Why the FUCK is there a empty gzip with NOTHING in it at the end.
Well wait a minute.
Lets look at some of the obvious strings and values in here that are not just raw binary
"3070704" Definitly means something, same with 0mb and 91F. My guess is that this is NOT a gzip archive. it would make no since to have a gzip archive with NO files at the very end of the file. But the 1F 8B 08 magic number is WAY to spefic and the fact its at the end of the file does not mean its just some compiled code. It could be reusing some gzip stuff. My guess is that its header information for this .TDF filetype.. maybe they just reused code from gzip and its stored at the start and end of the files??? I mean its obvious that the 1F 8B 08 were intentional to be a gzip magic number(or maybe there is a 1% not but it definitly ISN'T just some overlook here.)
https://files.catbox.moe/55zxkn.tdf

if you want this weird obscure .TDF shit that almost no one in the world has ever seen before here is the link.

Alright so you got all that with the end of the file and the Gzip header? Alright then now. Now throw it out the window we don't need it.

The vmlinux is contained perfectly with no compression encryption obfuscation we literally just have to cut it.
We know where it ends. We just have to search for where another file header begins(In this case .ELF) and can assume that it ends there
1765550657456.png
Alright so 7F or the symbol behind the . In .ELF is the end of the Vmlinux(I also checked a valid Vmlinux image for mipsel that despite for debain also ends similarly)
1765550676240.png
Now we need to find the Start and then just DD it.
1765550781892.png
Alright... Defusing the bomb and deciding "Which one is the starting byte of the Vmlinux"
1765551242851.png
It could be 01 here... BUT look next to it and then next to the 44 F1 26... a bunch of zeros afterwards instead of bunch of instructions... I don't think that would make since for the beginning of a kernel... It could be the thing that tells the .TDF file "This is where the File starts". If that is true this is one of the most fucking weird file formats of all time.

It starts with a magic number and then meta data and then padding which is normal, But then has on the line above it a thing saying "This is where the thing starts" and then at the end of the file a .GZIP magic number that is not acutally a gzip but further metadata that is stored at the very bottom instead of at the top?" But fuck it, it makes more sense than the first few instructions of a kernel image having 00s as padding.
So where could it start then? Well Its most likely here
1765551501557.png
K so we have a start and a end. Thats good. When I get back on my main computer ill DD it and see if we can run it in QEMU. That way we can have a kernel image with ALL the right config options and timing support.
Anyways I know I said I was going to do that GPIO stuff to the TV but amazon delivery dates a bitch. So I cant get the usb to UART adapter stuff RIGHT now.

Anyways right now im trying to use IDA instead of ghirda to see if it produces a better output.. Dont know why just have nothing to lose.
 

Attachments

  • 1765551179267.png
    1765551179267.png
    79.1 KB · Views: 18
Last edited:
Back
Top Bottom