Episode Transcript
Untitled Linux Show 223 Transcript
Oct 5th 2025
Please be advised this transcript is AI-generated and may not be word for word. Time codes refer to the approximate times in the ad-supported version of the show.
onathan Bennett [00:00:00]:
Hey, folks. This week Torvalds rants over the completely crazy Rust format checking, and we're talking about bcachefs and its life outside of the kernel. Google has backed up slightly on the developer verification for upcoming Google Android releases. Wine finally supports NTSync. Alpine is doing a user merged file system. Stay tuned to find out what that and more even means. You don't want to miss it. Podcasts you love from people you trust.
Jonathan Bennett [00:00:36]:
This is Twit. This is the Untitled Linux show, episode 223, recorded Saturday, October 4, doing what Windows never could. Hey folks, it is Saturday and you know what that means. It is time for the Untitled Linux Show. We're going to get geeky with hardware and software. We're going to talk Linux and open source, probably some gaming, some other stuff. It's going to be fun. Fun.
Jonathan Bennett [00:01:01]:
So let's dive into it. It is not just me, of course. I've got the guys, we've got Jeff and we've got Ken. We've got stories to talk about. But first off, how are you guys doing?
Jeff Massie [00:01:15]:
Doing all right. Definitely interested in that Raspberry PI 500.
Jonathan Bennett [00:01:19]:
It's right over there. We'll talk about it here in just a minute.
Ken McDonald [00:01:24]:
No, I'm. I'm doing pretty good. And things have been going good. Cash is still going good. Yeah, I've been one, you know.
Jonathan Bennett [00:01:36]:
Okay.
Ken McDonald [00:01:37]:
It's not.
Jeff Massie [00:01:37]:
How's your relationship with Firefox?
Ken McDonald [00:01:41]:
Well, it's a little hit or miss. So before the show here, I was playing with it and I was telling people I'm on Chromium right now for restream because I can't get Firefox working with the Loopback camera and it has before. So I don't know what's going on. I started Firefox first. I've started OBS first, I've rebooted. I've, you know, done a bunch of things and once in a while you.
Jeff Massie [00:02:08]:
Get a chance, go into Firefox and clear your camera settings for all your websites.
Ken McDonald [00:02:16]:
Okay.
Jonathan Bennett [00:02:16]:
It's worth a try.
Ken McDonald [00:02:19]:
I even thought about what I need to try is it didn't work before, but it's been about a couple of months. Is the loop back with the pipe wire? So then I could maybe even get in there and directly just. No, let me unplug this and put it in here.
Jonathan Bennett [00:02:38]:
OBS has an open. I think there is a pull request even that is essentially the pipewire virtual camera. Yeah, well, there's multiple pull requests, pipewire related pull requests in obs, but the one that I've been following is a pipewire virtual camera and it kind of stalled for the longest time and it's got activity on it once again in the last week. And the sort of the latest semi official word is that they are waiting for things in the XDG desktop portal to happen to be able to support. So the XDG desktop portal, that is the thing that basically pops up and says this app is asking for permissions to do something. That's what pops up when you go to do screen sharing in Linux under Wayland. And so they are waiting for this feature to land there and once that happens then it's going to be much easier to land the pipewire virtual camera in OBS because they want to make that work from within like Flatpak or within Snap. And so you've got to have this permissions bit of it worked out.
Jonathan Bennett [00:03:53]:
So I am still hopeful that sooner or later we will get this because it would be extremely nice to be able to dump the old video for Linux 2 loopback. That is a, you know, a kernel driver and an out of tree kernel driver. By the way, the whole thing is a little janky, so being able to do it with Piper, it would be really quite nice.
Ken McDonald [00:04:14]:
So this show really is literally held together with duct tape and a little bit of masking tape and positive thinking.
Jonathan Bennett [00:04:23]:
Yeah, not quite as bad as Floss is because that one I literally do the entire thing from obs, whereas here we use Restream to help out. But yeah, it's lots of pipewire, lots of ffmpeg, lots of obs. I think that's what holds the entire streaming world together. Those three technologies.
Jeff Massie [00:04:45]:
Well, and the underlying one being FFmpeg.
Jonathan Bennett [00:04:48]:
FFmpeg does everything. Yeah.
Ken McDonald [00:04:51]:
I actually though could do this without obs. It's just the chroma key in Restream isn't very good.
Jeff Massie [00:04:59]:
Right.
Jonathan Bennett [00:04:59]:
Yeah, there's a lot of things like that that work better with your hosting it yourself.
Ken McDonald [00:05:04]:
But my youngest son did move out so I'm going to be probably in couple months moving my studio into making an office. And then I might not even have a background. I might just have a night or a chroma. I just have a nice background. Kind of like Jonathan where yeah, he doesn't have to worry about green screens and chroma keying and any of that.
Jonathan Bennett [00:05:25]:
Share Share pictures of the studio build as you do it. That'll be fun.
Ken McDonald [00:05:29]:
All right, I will.
Jeff Massie [00:05:31]:
Or set them up behind so they do a slideshow behind you during the show.
Jonathan Bennett [00:05:38]:
Please don't. All right, so I've got a new gizmo that finally came in. I am excited about it. I've already started playing with it. I've got the Raspberry PI 500 Plus. It's over there on the desk. It's actually in use. That's why I'm not dragging it over here to actually show it to you.
Jonathan Bennett [00:05:54]:
Look, no, I've been trying to do a compilation of meshtasticd from Source on it today. That's one of the things I've been poking at because we've had some people that have complained about problems on Trixie. So that's the other thing I am testing out. I figured I would come and give you a quick review of meshtasticd. Excuse me. Now, a quick review of Trixie and a quick review of the PI 500 plus and what my experience has been and the one thing that I wish they would change. So the 500 Plus, I've had a great experience with it so far. The keyboard is really nice, the 16 gigs of RAM is really nice, and the NVME is really pretty good.
Jonathan Bennett [00:06:49]:
The NVME it comes with is 256 gigs. And so that is the one thing that I wish they would change is I wish there was an option to have it to ship with no NVMe. So you could bring your own storage and, you know, they could knock a good 35 doll off the price, I think. And then, you know, I could put a one terabyte micron or whatever in there and be good to go with that. But other than that, I have no complaints about it. I've really had a good experience now. It came out of box with The Raspberry PI OS 12 installed on it and that was fine. But then like the day after it came, they announced or the day before, very, very soon, around the same time, they announced the availability of 13 of Trixie, the Trixie based Raspberry PI OS.
Jonathan Bennett [00:07:40]:
And so I said, well, people are having trouble with this. I need to go test it. Let's see what it's like on there. It'd be great to be able to talk about it on this show as well. And so did the install. We're going to talk at the end of the show about that install, by the way, because I learned a very cool trick. But I threw Raspberry PI OS Trixie on there, booted it up. Everything just works.
Jonathan Bennett [00:08:07]:
I don't know if it's confirmation bias or not, but like the whole system felt just a Little bit more responsive, like it was just a little bit better. It pretty much looks the same. You know, they've got a couple of new features in there, like the ability to add printers more easily. There's some other things have been touched up, but so far, I mean, it's been kind of a boring experience going to the Debian 13 base, which is what you want. Yeah, I don't really have any. I don't have any complaints about it. Wizardling in our chat says I wish they could have made the M2 slot more easily accessible. And I would agree with that.
Jonathan Bennett [00:08:45]:
I think it would have made sense, put a little, you know, access panel on there that unscrew and just pop to be able to get to it. But it's not a deal breaker.
Ken McDonald [00:08:54]:
Well, and if you have an M2 slot, you can put an adapter to a U2 because basically it's almost the same thing. And then that opens you up for. You could put like a 30 terabyte SSD on that. Baby talk about Media Server or bigger.
Jonathan Bennett [00:09:13]:
It is basically a full fat 1x PCI Express 3. 3, I think lane. And so you can do. There's a lot of stuff that you can do with that. If you want to see someone just absolutely go nuts. Check out Jeff Geerling's channel. And of course he has been. In fact just today he was live streaming, rotating through various GPUs, like full size desktop GPUs hanging off of that port.
Jonathan Bennett [00:09:37]:
And you know, of course he was running Crysis on it and all kinds of other stuff and having pretty good success with it. He ran one of the LLMs, I think it was ChatGPT's open source LLM. So it's running on the Raspberry PI on this big desktop GPU. And he asked the LLM, can you run on a Raspberry PI? And the LLM's response was no way, there's no way to do that. It was fun.
Ken McDonald [00:10:06]:
Side note too, you had Trixie on there and we're not talking about it today, but Mint released their Debian edition because they're actually. Normally they're based off Ubuntu, but that now they have a lmde, which is just in case something happens or Ubuntu gets too locked down. They're able to still continue with Mint, so it just seems like since Trixie, Debian is really gaining some momentum, I've noticed.
Jonathan Bennett [00:10:40]:
Yeah, well, you know, so the whole thing with Debian is that they, they weren't willing to include certain things like the Nvidia packages, they weren't willing to include any of that closed source stuff by default. And they've kind of softened their stance on that. I think some of their firmware packages as well changed what they were willing to include. And so that really stole a lot of the thunder out of say, Ubuntu. It's one of the big differences between Ubuntu and Debian. So yeah, there has been sort of a walk back towards, yeah, maybe Debian's not so bad after all. Just run Debian. It's been interesting to see.
Jonathan Bennett [00:11:16]:
Yeah.
Ken McDonald [00:11:16]:
Because now that they allow the non free, you took a big chunk of what Ubuntu, what made it special. Yeah. But I, you know, I still would recommend Ubuntu as one of the, you know, newbie distributions, that and Fedora. Because just going with cache, I have noticed when I've looked things up, it's a little harder to find. It's not terrible, you know, and being a experienced Linux user, I kind of know what rocks to turn over.
Jonathan Bennett [00:11:44]:
Right.
Ken McDonald [00:11:44]:
But you know, mom or grandma or somebody or grandpa, you know, you, you put Ubuntu space question. Oh, here you go, Cache. A little more digging so I can.
Jeff Massie [00:11:57]:
I may touch on one of the reasons why in one of my articles later.
Jonathan Bennett [00:12:02]:
Yeah.
Ken McDonald [00:12:02]:
Oh, okay.
Jonathan Bennett [00:12:04]:
All right, here in a minute we're going to talk to return over to Jeff and he's going to talk about some completely crazy stuff going on in the kernel. But before we get there, we're going to take a quick break and be right back.
Leo Laporte [00:12:17]:
Hey, Everybody, it's Leo Laporte. You know about MacBreak Weekly, right? You don't? Oh, if you're a Macintosh fan or you just want to keep up what's going on with Apple. And this is the show for you. Every Tuesday, Andy Anako, Alex Lindsey, Jason Snell and I get together and talk about the week's Apple news.
Jonathan Bennett [00:12:35]:
It's an easy subscription.
Leo Laporte [00:12:36]:
Just go to your favorite podcast client and search for Mac Break Weekly. Or visit our website, Twitter, TV mbw. You don't want to miss a week of Mac Break Weekly.
Ken McDonald [00:12:47]:
Okay. You know, we don't have a real week in Linux unless we have some strong opinions or decisions from Linus Torvalds. For example, this, you know, this discussion we've talked about in the past regarding bcache FS file system, you know, we, we've just covered that in the last few weeks, last maybe couple months when they had those big decisions of what are they going to do with the file system well, this week though, we have a couple of crazy items on the docket. The first article linked in the show notes is about a computer completely crazy Rust format checking. Now this has to do with how the Rust code submission was formatted. So I'm just going to read what Linus had to say. He says notice how there are multiple sub areas, alloc, dma, scatterless comma, DRM and Rust, but it's all just random jumble because you've apparently pasted it into your editor or MUA or whatever and drop the indentation process or something. What kind of broken editor are you using? I'm not trying to start an Emacs or VI war here, but you seem to be using something truly broken Edlin.
Ken McDonald [00:14:02]:
Now for those that don't know, Edlin is the line text editor that was found on early versions of PC DOS and Ms. Dos. That's, that's me saying that, not Linus. Back to Linus, look again, no logic and you've completely corrupted any multi level indentation that presumably existed at some point. Judging by the organization wth, that's what the heck. Yes, please make the explanations readable and not just a random jumble of words. And in the article Linus goes on to a second enthusiastic opinion on some of the style guide formatting for Rust. I'll let the listener take a look for at the article in the show notes for full details.
Ken McDonald [00:14:47]:
But the short synopsis is he has problems with the formatting small items and this is specific to Rust. Specifically multiple use of crate, colon, colon, XYZ semicolon statements which he said there's several of them in there. But he thought it was better to turn it into use space, crate, colon colon open curly brace, XYZ comma and then a new line, ABC, new line and then closing curly brace semicolon. So instead of having all the different statements, you know, just the use crate each line, you know, use crate, use crate, use crate. You just use one use crate and then you list all of them of your uses. And he, he says that's, he thought that's much better. And he looked at the style guide and then he used the Rust format check program and it seemed to disagree in this case. And Linus says the, the Rust format check is wrong because it tried to condense everything into one line and he, he did not like that at all.
Ken McDonald [00:15:57]:
But like I said, check out the article for all the nuances of that issue because he, he goes into quite a bit of where he looked and he checked and back and forth of what should or shouldn't be correct. And he's not happy with the rust particular formatting thoughts in that case, he says they conflict. But there's a second article which Linus has a strong opinion of and dealing with the RISC dash V chips and the Edian format or Endian format. So just so people know, chips are either big or little endian format, which means if you have a value such as 1, 2, 3, 4 4, so 1234, big endian would have one which is in the thousands place or you know, or the largest part of the number stored in memory position 0 and the 2 for in the hundreds, hundreds place would be stored in memory position 1 and so on. Little Endian flips that and goes in. In the case of 1, 2, 3, 4, the 4 which is in the ones position is stored in memory position 0 with 3 which is in the tens position going into position 1 and so on. And just so everybody's aware, the x86 CPUs are little endian. Now from what I can see, that decision was based on the very first chips intel made.
Ken McDonald [00:17:22]:
And having the smallest value in the lowest memory position made for easier math. It made the carries easier and things like that. That's, that's what most people speculate. There wasn't a real definitive answer. But you know, keep in mind, we're talking about how, you know, 40 to 50 year old chips work. This, this is predating actually the X86. It was like an 8080 or something like that, or it was even something I think maybe before that. So we're talking, you know, I think it was like eight bit chips kind of thing that we're, you know, where this is in the 70s and you know, things weren't as refined as they are now.
Ken McDonald [00:17:57]:
But going back to the article, here's what Linus had to say about the Indian issue today. He said, and I quote, oh Christ, is somebody seriously working on BE support in 2025? That's big Indian.
Jonathan Bennett [00:18:14]:
Why?
Ken McDonald [00:18:15]:
Seriously, that sounds just stupid. And I'm, I'm putting a enthusiastic emphasis on the words he highlighted in here. Is there actual some real reason for this or is it more of a risc V is used in academic design classes? So people just want to, want to do endianess for academic reasons. Because I'd be more than happy to draw the line in the sand and say new endianness problems are somebody else's problem. Then tell people to stop being silly. Let's not complicate things for no good reason. And there is no reason to add New Indian ness. RISC V or Risc V is enough of a mess without the millions of silly configuration issues already.
Ken McDonald [00:19:01]:
Don't make it worse. Tell people to talk to their therapists instead. That's much more productive now. Later on, Linus also further added okay, I just google this and I'm putting my foot down all caps yelling we are not preemptively supporting Big Endian on Risk V. The documented reasoning for that craziness is too stupid for words, but since riskv.org did put it in words, I'll quote it for those I'll quote those words here. There are still applications where the way data is stored matters, such as the protocols that move data across the Internet, which are defined as Big Indian. So when a Little Endian system needs to inspect or modify a network packet, it has to swap the Bing Endian values to Little Endian and back, a process that can take as many as 10 to 20 instructions on a RISC V target which doesn't implement the ZBB extension. In other words, it's suggesting that RISC V adds a Big Endian mode due to a Internet protocols where byte swapping is not an issue.
Ken McDonald [00:20:16]:
B Using some Risk V implementation don't do existing ZBB extension as an excuse. And he says this is plain insanity. First off, even if byte swapping was a real cost for networking, it's not. The real costs tend to be in all the memory subsystems. Just implement the damn ZBB extension and don't go we're too incompetent to implement zbb, so we're now asking that everybody else feel the pain of a much worse extension and fragmenting RISC V further. I was hoping that this was some April Fool's joke, but the page is dated March 10, 2025. Close, but not close enough. This is the kind of silly stuff that makes RISC V look bad now.
Ken McDonald [00:21:10]:
I trimmed out the rest of his comments and shortened that a little bit so the segment didn't go too long. But then he goes into more details and continuing to say that no big ending this I in in the kernel take you know and basically so mo a lot. Most CPUs now a big a big chunk of them are little Indianess. Internet protocols are defined with big endiness. What he's saying is there's already basically there's hardware that takes care of this there we don't have to. We've got special instructions that trigger hardware that automatically automatically does it so fast it's not an issue. So that's why he's saying what he's saying. There were big Endian processors.
Ken McDonald [00:21:58]:
The one that comes to the top of my mind is the old Motorola 68000 series was big Indian, but X86 and a lot of them now are little. And that's just kind of what, what a lot of, you know, it's not total, but a lot of silicon is kind of settled on that outside of network. But you know, if you want to see all the full details, take a look at the article. Both articles linked in the show notes. He goes into a little more detail, goes into some more reasoning, but that's kind of the highlight of it. So, you know, Linus is just so exciting.
Jonathan Bennett [00:22:39]:
So what's really funny about this is both ARM and RISC V can run in either Indianness. They can run in either form. And really that surprises me every time that I come across that fact. But you're right, it's almost, we've almost completely come to a little Indian world.
Ken McDonald [00:23:00]:
Yeah. And, and I actually looked why they settled on, you know, I kind of did a little bit of research. I mean not a ton, but I spent a while looking and everything I could find was it, it just makes the math better. Especially back in the old days when chips were a lot simpler. It was, it was a lot harder to do the carries and stuff when you didn't have all the, the registers and the built in functions and just, it just made the math easier. So that's, that's kind of why it, I mean it resulted in that.
Jonathan Bennett [00:23:31]:
Let's be honest. The reason why we use Little Indian is because the X86 uses little Indian.
Ken McDonald [00:23:37]:
Well, but I mean, I'm saying that's why they picked it originally.
Jonathan Bennett [00:23:40]:
I, I mean there's probably some truth to that, but I think we're, we're also, we're pushing on the rope a little bit with that explanation. No, it's just like they could have used Big Indian and we'd all be using Big Indian. And people would then argue that, well, it would have been slightly better if we had chosen Little Indian back in the day. You know what I mean? So I'm sure that yes, when they wrote the x86 architecture, they chose Little Indian because it was slightly easy. But the reason that we all use Little Indian is because that's what x86 uses. And x86 totally ran the world for a couple of decades.
Ken McDonald [00:24:17]:
Oh yeah. And if the 68,000 had taken over, we would have all been on Big Indian. I'm just saying originally why the intel picked it, it was pre. Pre x86. They kind of just got in the habit of here's the way we're doing it and they intel kind of standardized on it. So therefore we kind of standardized on it.
Jonathan Bennett [00:24:36]:
Yep.
Jeff Massie [00:24:37]:
And you had all that software already written for it.
Ken McDonald [00:24:41]:
Yeah.
Jonathan Bennett [00:24:43]:
I mean who wants to have to do bit swaps?
Ken McDonald [00:24:47]:
I mean a lot of that though was, I would even say it was the hardware. And a lot of times when you make. So when you're doing silicon there's a lot of times you're taking like we'll say a one bit adder and you just go, oh, I'm just going to copy that eight times. I'm going to have an eight bit chip. Well, oh, I want a 16 bit chip. Oh, we're going to copy it 16 times. I'm going to take that eight bit and I'm just going to do it twice. So there's a lot of reuse stuff.
Ken McDonald [00:25:16]:
When you start out with a new chip you don't always wow. We started with a clean slate. There's a lot of copy and paste going on. Just because there's a lot of things like we got to talk to the memory modules. We already have a design in this chip. We don't have to redo it from scratch. We can copy it over. I could see why it would have on the x86 pre.x86 silicon in, you know, does layouts in there because it's just easy to copy and paste and that's what everybody was used to.
Jeff Massie [00:25:48]:
And are the Snapdragon chips Little Indian or Big Indian?
Jonathan Bennett [00:25:52]:
They are ARM chips and so therefore they can do both. But almost everyone runs them in Little Indian. ARM can technically. Oh yeah, ARM can technically run either way. But I don't, I don't know of any major operator or even not major operating system that runs in Big Indian mode these days. Little Indian is taking over the world.
Ken McDonald [00:26:15]:
And you know, a lot of it is realistically it's kind of like driving on this. Which side of the road you drive on. If that's kind of what the standard is, it doesn't really matter as long as everybody's doing it the same, you know. So if you say okay, everybody's not doing it everywhere. Yeah, but I mean as long as x86 all says okay, this is what we're gonna do. Doesn't matter if, if they, if they suddenly switch to a new processor and it had big Endian, okay. You know it. I Mean, it's at this point with hardware and the software technology we have, I don't think it's even really an issue other than just keeping everything straight.
Ken McDonald [00:26:57]:
It's not. Oh, we're going to get more performance one way or the other.
Jeff Massie [00:27:02]:
So, Jonathan, as a developer, which is easier to develop for little Indian or Big Indian?
Jonathan Bennett [00:27:11]:
Little Indian, just because that's what everything uses. And it was just pointed out to me that this sounds like the word Indian, like as in a Native American or someone from India. We are saying Indian pronounced exactly the same.
Jeff Massie [00:27:24]:
E N D I A N E N D. Yes.
Jonathan Bennett [00:27:28]:
And it's which end of the word is the smallest bit and, and it's.
Jeff Massie [00:27:36]:
Late 8 bit Indian or 16 bit Indian or 64 bit Indian.
Jonathan Bennett [00:27:42]:
Yeah, there's, there's a whole lot of different wrinkles to this. Thankfully though, everyone is sort of, sort of come to agree on what our software is going to be written in. There is something that everyone has not come to agree on and that is what you have to do to be able to write that software. Particularly if you're talking about Android. And we've talked about this before, that Google has come down and said every Android developer must be registered. Dang it. Android dev verification. That's what they're calling it.
Jonathan Bennett [00:28:16]:
And there is a, you know, there is an argument to be made here that it is a security feature that you don't want just anyone to be able to distribute binaries for Android because people do get malware through that. That is one of the leading ways that you get malware on Android is by side loading apps from sketchy sources. So I acknowledge that. I have, however, said that one of the reasons that I am on Android and not on iOS is because you don't have to do this dev verification on Android. On iOS, not only do you have to do the verification step, you also have to pay them a hundred dollars a year, I think, to be able to come become one of their trusted developers. It's a huge pain. Well, Google has heard our collective anger and they've put out some statements about what they're actually doing and they are not stepping back from their verification process. But, but they are making it obvious that there are going to be free tiers of this.
Jonathan Bennett [00:29:22]:
You do not have to pay to be able to generate APKs to put on your own Android devices, which was one of the things that really, really bothered me and I think a lot of people about what was coming. So the Android developer verifier is the new system component that's coming with Android 16. And phones must ensure that apps have package names and signing keys that have been registered with Google at the time of installation. And this is still going to make things difficult for F Droid. I'm not sure what F Droid is going to do, but there is going to be a free tier to be able to get into this so that you don't have to pay the yearly registration fee. And so I'm less salty about it now. I still think that there are problems here and I really think this is not a great idea when Google is still in the middle of trying to figure out if they've got antitrust and anti competitive problems in various countries. But it's not as bad as it could be.
Jonathan Bennett [00:30:34]:
So like, good for Google for. Good for Google for not going completely evil. They've just gone a little bit evil. So one diet evil. Diet evil. Yeah, there you go. Diet evil.
Ken McDonald [00:30:51]:
You guys, Austin Powers, all the. We're just mini evil. Diet evil. Half the evil of normal evil, you know, that's.
Jeff Massie [00:31:00]:
So the free tier would let you side load on your own devices.
Jonathan Bennett [00:31:06]:
So it's not clear exactly how this is going to work, but it should at least let you compile firmware and sideload on your own devices. The thing over with Apple is if you're not a paid developer, if you go to sideload, your install only lasts for, I think it's a week. It's like a week or a month. Because I've looked into doing this to get things like Kodi running on my iPad and the process is just you go to the Kodi webpage and you're like, how do I install this on an iPad? And you know the author there, you can just hear it in the way that it's written. The author goes, this is not going to be any fun. But here you go. These are the three. None of them are any good, but these are the three ways that you can make this happen.
Jonathan Bennett [00:31:56]:
It's like you can jailbreak your iPad, you can pay Apple $100 a year to be a developer, or you can install a device package every seven days. And it's like none of these are great options.
Jeff Massie [00:32:09]:
Well, at least Apple's not asking you to pay 30% of your profits to them.
Jonathan Bennett [00:32:15]:
I mean, if you make money through the Play Store, through the App Store, that is how that works. It's just kind of insulting when you have to also pay money to publish a free app. Just stings a little bit. So anyway, we've talked about that with Android in the past. And I wanted to bring an update that it's not as bad as it sounded, although I'm still not super happy about it.
Ken McDonald [00:32:44]:
Why is this thing Wizardling says, how is this even going to stop malware? And I'm thinking, well, once they have all your information, you're going to be so bombarded with advertisements that nothing else is going to run.
Jeff Massie [00:32:57]:
You don't have to worry about malware because of all the adware.
Jonathan Bennett [00:33:01]:
Yeah. So to Wizards Link's question, from what I understand, there is actually something. There is a verification step to the verification. And so that may mean taking a picture holding your ID card or something along those lines, proving that you are a real person. And it's unclear whether Google is going to be individually scanning APKs before it confirms them. But if your developer account is tied to it like an actual person, then as soon as they catch malware being published from that developer, they can just cut that out, you know, delist that developer's account. And so it'll potentially help to some extent.
Jeff Massie [00:33:50]:
And just hope that the malicious developer doesn't steal your ID and use it for publishing with.
Jonathan Bennett [00:33:57]:
Well, yeah, that is, of course, what, what will be attempted. So Wizardly also goes on to say Google needs to put large loud warnings against sideloading and then shut up when a user decides to sideload. I would agree with that, except what's actually happening here is users are not deciding to sideload. Users are seeing a malicious advertisement that says, you know, your phone has malware, click here to fix it. And when you click it downloads an apk and then you try to fix your phone and it installs the malicious apk. Right. So it's, it's like you have to keep in mind it's not people that know that they're side loading. There's the problem.
Jonathan Bennett [00:34:36]:
It's Grandma that has no clue what's going on. And it's just trying to click the buttons to make her phone behave.
Jeff Massie [00:34:42]:
I just want to make this call.
Jonathan Bennett [00:34:44]:
I just want to play Bejeweled. That's all she wants to do. She just wants to play Bejeweled. And it told her that she had to upgrade or lose access to bejeweled in 15 days.
Ken McDonald [00:34:56]:
Yeah, grandma's running the Bitcoin through the gambling app. She's, she's doubling down. And I mean, gotta, gotta make that money.
Jonathan Bennett [00:35:06]:
Not my grandma.
Ken McDonald [00:35:08]:
Pinochle earnings aren't enough.
Jonathan Bennett [00:35:13]:
All right, Ken, let's talk about Alpine and what's up with this merged file system.
Jeff Massie [00:35:20]:
Well, this week we can thank Marius Nester for writing about an announcement by the Alpine development team. They have decided to adopt a user merged file system layout for future Alpine Linux releases. Now, what is a user merged file system layout? It is where several traditional top level directories are moved into their corresponding locations. Under the user directory you will see bin, sbin, lib64 and if you're running Ubuntu 25.04 you'll even see a/lib32 be replaced by symbolic links to the user, user bin, user sbin, userlib and user slablib64. For the Alpine Linux, it's going to be lib, bin and sbin that will be symbolic links to their user counterparts in the future. According to the Alpine Linux divs, this will mean reduced packaging maintenance and the containerization of more distribution provided data under user. With the release of Alpine Linux 3.23, any new Alpine installations of this and future releases will be user merged Users will be able to upgrade from older releases to 3.23 without being forced to slash user merge their systems or the user merge causing breakage. However, from this point forward, users are encouraged to migrate existing installs.
Jeff Massie [00:37:21]:
After Alpine Linux 3.22 is end of life, non slash user merged systems will be considered a officially unsupported the following stable release, which is probably going to be either 3.26 or 3.27 will make the user merge compulsory and non merged installations upgrading to it will break. Now I have read that the user merge setup is becoming the standard in most of the Linux ecosystem and I even confirmed that. As I said, Ubuntu 2504 that I'm running on is already using that. Now Marius provides more details in his article, including a link to the announcement for those of you who want to take a deeper dive into this.
Jonathan Bennett [00:38:12]:
Yeah, so do you know why we have a bin and an S bin?
Jeff Massie [00:38:18]:
One's for local binary applications that you may create yourself and the S bins for system binaries, correct?
Jonathan Bennett [00:38:27]:
No.
Jeff Massie [00:38:31]:
Or is it because you couldn't fit it all in one partition?
Jonathan Bennett [00:38:34]:
That's exactly what it was. This goes back to the early days of Unix and it was one of the. I've seen comments from one of the original creators like Ken Ritchie or one of those guys about this and of course the community has come up with all of these backwards explanations as to what system binaries and other binaries, sbin is obviously for your system binaries and bin is for everything else, and they're just like no, no, no, no, no, the root, the root disks were not big enough to put all the binaries in. And so we had to come up with a second folder to put the other binaries in. And I don't remember what the S stands for, whether they actually wanted it to stand for system or maybe it just was second, like secondary binaries. But yeah, it's literally just because on the machines that they first started doing UNIX on, the disks were not very big and so they had to have a second place to put stuff.
Jeff Massie [00:39:24]:
Well, at least they didn't go with bin 2.
Ken McDonald [00:39:27]:
I mean, not, not, not space big, but physically they were big. I knew a guy that worked at Control Data years ago talking about the size. The disks were the size of dishwashers and just huge platters that you took, you took in and out of the drive and.
Jeff Massie [00:39:45]:
No, this was discs or core memory.
Jonathan Bennett [00:39:48]:
Disks would have been discs. Yeah, we're a little after the days of core memory. Although that's fun stuff too.
Ken McDonald [00:39:56]:
I, I do have an old computer book that I've kept that I got from one of my college professors. He was going to get rid of it and I think it's out of the 60s or maybe in the 50s. And it talks about how you wind core memory and how to do it and, you know, really old stuff that is like. This is kind of cool.
Jonathan Bennett [00:40:16]:
One of the, one of the coolest YouTubers I've watched doing retro computing is Usagi Electric and he's got an old Bendix G15, I think, and it has vacuum tubes in it and it has a magnetic drum memory. And so the way the memory works is it's, it's, it is a drum that spins and it's got multiple read and write heads across it and it's got the same kind of magnetic medium like you would get well on a hard drive. Also like what they put on cassette tapes and as it spins, it's just constantly reading those values off and then writing them back onto it. And then if you're familiar with the old story about Hal the real programmer, like the last real program, I forget what that story is actually called, but it's, it's. Let's see if I can find it real quick.
Jeff Massie [00:41:12]:
I know it was the title of a chapter from Hack the book Hackers by Stephen Levy.
Jonathan Bennett [00:41:18]:
Hal, the real Programmer. Yeah, I don't know if Stephen Levy had it or if that was part of ESR stuff, but yeah, how the real programmer, he worked on one of these Bendix G15s. It's like all of the crazy technologies that he had to make that. What was it, a blackjack program? I think work was on one of these magnetic drums. And so, you know, it's fun to see these different guys, they get a hold of their old retro computing hardware, and what's really fun is when they make it work, you know, rebuild stuff and get things working again. I enjoy that quite a bit.
Jeff Massie [00:41:55]:
And you have a separate disk operating system for these.
Jonathan Bennett [00:42:00]:
I mean, something like a Bendix was. Before the time of having a disk operating system at all, you wrote machine code on paper, punch tape, and you ran that into the machine.
Ken McDonald [00:42:14]:
Yeah, and I was going to say the old control data disks that I was talking about the size of a dishwasher. So one meter by one meter by maybe one and a half meters for the actual drive assembly. I want to say. I thought he said it was like 1k or 2k per disk or something like. I mean, it was something real small, and I can't remember how many disks you could stick in there, but it was really, really, you know, that's, that's the point of this stuff is that your. Your drives were so small.
Jonathan Bennett [00:42:50]:
But we finally got back around to what we were actually talking about. The slash bin sbinsplit. All right, well, we've got more news. Jeff has another Linus Torvald story and the kernel. And we will talk about that in just a second.
Leo Laporte [00:43:10]:
Hey, everybody, it's Leo laporte. Are you trying to keep up with the world of Microsoft? It's moving fast, but we have two of the best experts in the world, Paul Thurat and Richard Campbell. They join me every Wednesday to talk about the latest from Microsoft on Windows Weekly. It's not a lot more than just Windows. I hope you'll listen to the show every Wednesday.
Jonathan Bennett [00:43:29]:
Easy enough.
Leo Laporte [00:43:30]:
Just subscribe in your favorite podcast client to Windows Weekly or visit our website at TWIT tv. Ww Microsoft's moving fast, but there's a way to stay ahead. That's Windows Weekly every Wednesday on Twitter.
Ken McDonald [00:43:44]:
Well, this week I have another set of two. Two articles. I mean, you're. You're getting a lot of value out of this show, I'm telling you. What. And this actually even has Linus in it again. So the first article is Linus removing the bcache fs code from the kernel. This is for the 6.6.18 kernel.
Ken McDonald [00:44:05]:
Now, this isn't a surprise. We knew it was happening. The only reason it wasn't removed in 6:17 was, was to allow users to be able to Have a smoother transition over to the new, a new file system or get Ready to use BCache FS as a DKMS module, which I mean other file systems such like zfs, you know, is used that way as well. So, so it's not unheard of to have a file system in the DKMS module. Now the second article, which is kind of the meat of the story, is a blog from Kent Overstreet, who's the lead developer on BCAP B cache fs, talking about the change from entry to the DKMS module. Now he first talks about what it would take to get the file system into your distribution. You know, it's just going to be a make and a make install of the bcache fs-tools and that'll install the kernel sources and you know, but, but he does go on to say, you know, for most people it should be handled by your distribution maintainer. So this shouldn't have to be anything you'd worry about normally unless you're doing like a Linux from scratch or maybe a gen 2 or something where you really got your fingers into it.
Ken McDonald [00:45:24]:
But for most people shouldn't, shouldn't even be an issue. Now you can Even use BCAF BCache FS as your root file system as long as you have an intra ramfs. Now this is an initial RAM disk and I found a couple different variations of what intra RAMFS stands for, but it basically it's a initial RAM disk which, it works like a normal file system but lets the system load in the needed drivers and support modules, you know, in this case the module to read the bcache FS file system. And before, before everything really gets started. It's not uncommon, you know, it's actually pretty common. So this intra RAM FS isn't an odd thing. It just, it's the first bootstrap for the kernel, the root file system, the, you know, any other device drivers, things like that that you, you need to load in right away before you actually start hitting your actual root file system. So Kent does make sure to say that the in kernel software is going to be aging and so I mean not even talking about it being removed in 66 18, but if you stay on 617 a while there's going to be no updates for it.
Ken McDonald [00:46:44]:
So you should not rely on that. And you should be going with the module just to make sure you're getting the latest greatest. Now, right now to get the code, they're going to be two channels, there's going to be a nightly which as it sounds, it gets updated every day, but probably unstable as changes are added. And they, you know, as, as they get rolled into the, the tree, they're going to be, need debugging. Reliability, right, Reliability testing. So this, this is the kind of constant rolling developer release and they, they could, even on a nightly you, you could wind up with a non functioning system as well because maybe all the code didn't go in right or something like that. So that's only for the active developers. Now there's also going to be a release which as it sounds is going to be updated slower and have much more stable code in it.
Ken McDonald [00:47:41]:
Can't. Can't. Now can't does go on to say when they're able to remove the experimental flag from the project, they're going to add a third channel. And these, these, you know, they're thinking this experimental flag is going to drop in a few months. It's, it's not that far away they're thinking. But, but when they do, then they'll have the stable channel which as it sounds is going to be even slower moving and going to be the rock solid version of the file system. So bug fixes will come fairly quickly, but features will move slowly so nothing gets added to the stable until it's really tested and make sure that it's not going to disrupt anything. So you know, the, the release is probably more of what you might have, an arch or something like that or something with a little more cutting edge.
Ken McDonald [00:48:30]:
And then the stable was going to be your like server type releases where you just, you want stability over everything else. Now Kent says he has been working with distributions to have them provide packages for both of the channels. And he said the goal is to get the widest range of testers they can so most people can get pounding on the file system. And so they, they want it to make it as solid as they can for the initial stable release. Now that will also tie in. They have automated testing which they have in place and he feels they've got a lot of test cases covered. But he does mention the, the random human element is something they're wanting. You know, the broader audience for those things that no one ever thought to try except for that one sysadmin or user who just thought this would work better or you know, the developers never thought to turn those dials to those particular settings.
Ken McDonald [00:49:25]:
You know, it's, it's like we never envisioned somebody would do that. Well, that's where the, the, the human element comes. The human element comes in. Now Kent does go on to describe the support status in many different distributions. For example, like Debian, Ubuntu, they're going to provide an external repository to the. So Kent and the BCash FS team will provide an external repository to Debian and Ubuntu so which has both channels. And you know, he, he has a lot more detail in there. But like he, he mentions things like in the Debian world, the nightly build, they refer to it as a snapshot.
Ken McDonald [00:50:05]:
Same code, just different, different vernacular. So there's, there's a lot more detail in there. He goes over a lot of different distributions, how they're handled, some slight nuances with them, but I'll, I'll leave that for the listener to go look at the article in the show notes for all that. But I hit a lot of the basic highlights and so, you know, you get a feel what's going on. And you know, honestly time, time will tell if BCash FS is going to be the next big thing or you know, it'll be left to the historical archives, but time will tell. We'll wait and see.
Jonathan Bennett [00:50:39]:
Yeah, it kind of brings to mind that you, you really want to make sure that your grub ability to boot an old kernel is working the way that you expect it to. Just in case you go to boot and DKMS is not working quite right.
Ken McDonald [00:50:57]:
Yes.
Jonathan Bennett [00:50:59]:
I've run DKMS with the Nvidia drivers on a machine and one of the interesting things there was that it seemed like you would build the driver after the boot. Like you would boot into the kernel then as part of. Part of the boot up process. That's when the driver would actually build. I'm trying to. Like that won't work for a. If, if the driver that you're building is your root file system driver. Like there's a right.
Jonathan Bennett [00:51:31]:
There's a real chicken and. Chicken and egg problem here and I'm trying to figure out how that's going to work.
Ken McDonald [00:51:35]:
Yeah, and for those people that are unsure, video cards have a kind of a basic mode they all can run at. There's kind of a default low level. We support this basic stuff. So you, you can even have graphics going on while you build your full driver and then jump into that. So you. Then you have all your full, full resolution and all the 3D and everything like that where the file system.
Jonathan Bennett [00:52:03]:
File system does not have a basic driver.
Ken McDonald [00:52:05]:
It does not. It's like a different language. And that file system is the translator. That's your Rosetta stone to go oh I see what's on the drive here, but that's where that intra intra RAM FS comes in. So you kick off into that, then it loads that. It kind of has that built in because you have a little section that you can. It's like a bootstrap that's not in bcache FS that it kind of says, oh, okay, we can load this, get this going. Okay, now we can understand the root drive.
Ken McDonald [00:52:43]:
Then it loads from there. So it, it's kind of the glue that holds it together. Yeah, and like I said, it's fairly common. I think. I think actually Cashios might have that, because I think I might see that come up when. When it first boots up some of the messages.
Jonathan Bennett [00:53:03]:
I think basically every Linux distro uses, uses interim FS at this point. That has just become part of the very standard way to boot Linux.
Ken McDonald [00:53:13]:
And it makes it easy, right, because no matter what file system, whatever you're doing, you kind of just look, you know, I got this weird hardware. Okay, we just handle it from the outset. Now we can just take off with the actual drive and, you know.
Jeff Massie [00:53:33]:
And with all of that going on, do you still have to like with the Raspberry PI and other ARM 64, worry about the. I want to say tree.
Jonathan Bennett [00:53:47]:
When you say tree, which. Oh, oh, oh, I know what you're talking about. The device tree binaries. Yeah, yeah. That is less of a thing, particularly on x86 because it uses. I can't remember the name of the technology at the moment, but basically the BIOS hands over to the booting kernel a kind of a chart of here's all of the hardware that we know about and then the kernel picks that up. Whereas the device tree is more for when you don't have a really smart BIOS that's going to do that. So you kind of have to build in that ahead of time.
Jonathan Bennett [00:54:23]:
Here's the hardware to expect.
Jeff Massie [00:54:27]:
And BIOS has been replaced by efi.
Jonathan Bennett [00:54:33]:
It's still.
Ken McDonald [00:54:35]:
But you're still getting that handshake.
Jonathan Bennett [00:54:37]:
In my vernacular, EFI is just another kind of a bios. I know that may not technically be correct, but it's the firmware that runs on the system that helps boot everything up. I still think you could say it's.
Ken McDonald [00:54:51]:
Kind of the same thing. It's just got a little more features and handles a few things differently, but the very high level function is the same.
Jeff Massie [00:55:02]:
Now if you want to run bscastfs, that function's been moved out of the kernel.
Jonathan Bennett [00:55:11]:
Well, it's out of tree. You still have to compile it into your kernel. It's just not there by default.
Jeff Massie [00:55:18]:
Fortunately, you can compile it in the kernel.
Jonathan Bennett [00:55:21]:
Yes, yeah, yes.
Ken McDonald [00:55:23]:
It's actually the way they've designed it. It's supposed to go in pretty easily.
Jonathan Bennett [00:55:27]:
Acpi, by the way, is the term that I was trying to come up with just then. ACPI is what desktops use and some ARM machines. Actually, if you see an ARM machine that's branded as server ready, ARM server ready, it actually uses ACPI to hand over a. I think it does use device tree as well, but it hands over like a device tree binary to the kernel as it boots and says, here's the hardware that you need to care about. I've wasted many hours of my life on ARM devices that do not have great Linux support trying to get them to boot. And so I know way more about device tree than I ever wanted to.
Ken McDonald [00:56:02]:
Well, and I am assuming that if the bios, whatever format it is, has a device, it doesn't know what it is, it still has some kind of ID to it. And then when you boot up, you can have the OS go, oh, I understand what this is. And then it knows what driver or module or whatever it has to do to load into that intra RAM fs. So the next time you boot, in.
Jeff Massie [00:56:30]:
Other words, it's got a.
Ken McDonald [00:56:31]:
What's going on?
Jeff Massie [00:56:31]:
Generic driver that it can fall back to.
Ken McDonald [00:56:34]:
Well, depends what the hardware is, whether it has a generic driver or not. But it would, it would at least say, I recognize a device here, hands it to the operating system. When you boot up, the operating system then can go, oh, I need to patch my bootstrap to handle X device so it can load. So that.
Jonathan Bennett [00:56:56]:
Yeah, well, it just has a lookup and it loads drivers because, oh, I've got this piece of hardware that means I need to load this driver into memory. I've got this piece of hardware. I have something on the pci, something on the PCI bus, has this vendor and ID on it. Okay, I'm going to look that up in the table. Oh, here's the driver that needs to come up and in some cases, here's the configuration info that needs to go to that driver. And because it's got that list and.
Jeff Massie [00:57:24]:
Then on rare occasions you come across, I don't recognize this at all.
Jonathan Bennett [00:57:28]:
Well, yeah, and that's when you'll have, you know, you run LSPCI and you see something that's on there that's like, I don't know, something. Is there something on your PCI Express bus, but we don't know what it is.
Jeff Massie [00:57:40]:
Or that's hopefully can update your firmware to recognize it later.
Ken McDonald [00:57:45]:
Well, or sometimes you load the driver in and it knows what to look for. It's like, what is this? Oh, that's what I'm looking for. I'm the driver for that. And the driver takes over and handles it.
Jonathan Bennett [00:58:00]:
When you get into really sort of esoteric hardware, you have to load the module with configuration data. So like, I've seen some modules that you have to give. I don't remember if it used environmental variables or what, but you know, you would say, okay, load this module and pass these arguments to it. When you load it, you force it to look at this particular place for this particular bit of hardware. And then your network card or whatever would come up and work. It's fun, lots of fun.
Jeff Massie [00:58:34]:
Then you try to access certain video features through Vulkan.
Jonathan Bennett [00:58:40]:
I mean, that's a thing too. Before we get to oh yeah, we are. It is time for Vulcan. He's ahead of me. Ken is ahead of me by a step. Or I tried to be ahead of him by a step and got too far ahead. Anyway, so there was this interesting story that I came across. It's a pharaonic story, but it is getting reported other places as well.
Jonathan Bennett [00:59:03]:
And that is that Red Hat has been getting some information from Nvidia for the NVK driver. And interestingly, some of these specifications, bits of information are not available publicly. But Red Hat has signed an NDA, a non disclosure agreement with Nvidia to get some of this data. And I thought that was really interesting that Nvidia sort of went out of their way to go to Red Hat and say, okay, look, we want this stuff supported in the kernel, but we can't just. So this is, this is, at some level, this is the way the conversation went. We want to give you this information, but for whatever reason, we can't just publicly release this document. But we want you to be able to look at this document and release source code based off of it. And so, you know, there's likely some, some way that they clear when they write source code, maybe they hand it back over to Nvidia and say, make sure we didn't leak any of, you know, secret sauce in this.
Jonathan Bennett [01:00:12]:
Because essentially when you have one of these NDAs, that's what that means, that there's some piece of information that's considered confidential. There's something in there that Nvidia says, this cannot be released publicly. And maybe it's because NDA designed this hardware while they were under an NDA with another company. And so, you know, to not break their own NDA, they have to make sure that the person they're working with is also under NDA. And then they have their legal team that goes back and reviews the code and goes, okay, nothing that's protected under NDA is in here directly. You know, this code is not going to directly violate the NDA. Therefore it's good to go ahead and release out to the public. And I think for people that have not dealt with this stuff before, if you read this, it's going to seem really weird to you.
Jonathan Bennett [01:00:58]:
This is fairly typical for doing hardware support, particularly if you're not like just reverse engineering it. So in the past, that's one of the things that we've had engineers will do is they just reverse engineer. So they, you do something like you can actually run programs like wireshark and have them watch the PCI Express bus. And so that way you can reverse engineer. Okay, this is the bytes that you need to push over the PCI Express bus to initialize the card. You go, right, the open source driver and you just push the same bytes and the card comes up, it gets initialized. Well, so in this case, the, there's actually a document that says to bring up the Blackwell is the specific card that they're looking at. It's that generation.
Jonathan Bennett [01:01:46]:
There's a document that says these are the bytes that you push to initialize a Blackwell card. And it's going to go into a lot more detail. Like there may be, if you want to bring it up in this mode, you use this byte. If you want to bring it in some other mode, you use this other byte. And it may be that what exactly those modes are and what they do are part of what's protected of the NDA. But the engineers working on it can go, we don't care about any of that. We just want to bring it up as a desktop card. This is the byte sequence that we want to send it.
Jonathan Bennett [01:02:18]:
And then Nvidia looks at it and goes, oh, yeah, fine. You can release that byte sequence out to the public under an open source license. We don't care. And so there's just this kind of, it's going to be between these two teams. This constant going back and forth between of, you know, okay, here's the part that we need. Can we open this to the public and then there may be pushback on it. Yes, you can. But you have to get rid of this Comment because it gives too much away or yeah, that's fine.
Jonathan Bennett [01:02:41]:
Release that. It's, it's not, it is a pain, it's work, but it's not terribly surprising. And there, you know, there's no grand conspiracy going on here that it's under NDA. So in my opinion, good for both of them, for both Red Hat and Nvidia for being a good, being willing to do the work and get these drivers working for everybody. I think it's, I think it's a great thing.
Ken McDonald [01:03:05]:
Yeah. And you can also possibly, like if AMD saw some of this, they could maybe determine some hardware, you know, secrets, you know, then it's not even counting. Nvidia said also that they've had other third party licenses that they've used that they built in their driver. And then you can't, I mean they.
Jonathan Bennett [01:03:31]:
Don'T own the code so they can't open source the code.
Ken McDonald [01:03:34]:
Right. It gets weird when you have a.
Jeff Massie [01:03:38]:
Chip that somebody else might have created.
Jonathan Bennett [01:03:41]:
No, they're like a piece of technology like video decode. There's probably part of the code in there that's video decode. Well, that thing, video decode is one of the worst. Decode is the worst. So it's covered by patents, it's covered by licenses, all kinds of stuff. And so they sign an agreement that says you get to use this, but you don't own the code. And here are all the rules that it's under.
Ken McDonald [01:04:06]:
See? And it gets really weird when you do this because, and I've been party to this personally.
Jonathan Bennett [01:04:11]:
I figured you would.
Ken McDonald [01:04:12]:
Okay, Ken, you make a video decode that's like really awesome. Jonathan's like Nvidia and he licenses that and I'm Red hat. Yeah, well, Jonathan can release information to me, but it can't contain anything about your decoder. Even if I, Red Hat, say, oh, hey, I'm going to have an agreement with you, Ken, so you can share what you're, you know, you can share your information with me. We've got an NDA. Jonathan still cannot release anything on that to me because we don't have a three way NDA. Even though you say, well, everybody's got an NDA, not as like a group. So I can talk to you about your decoder.
Ken McDonald [01:04:53]:
Ken, I can't say anything what Jonathan's telling me and I can talk to Jonathan about his hardware, but I can say nothing about what we've talked about about your stuff, Ken. It gets really, it gets really weird.
Jonathan Bennett [01:05:06]:
And it depends upon the exact wording of the NDA because some of them do have clauses that say you can, you can share this information with contractors to be able to do X, Y or Z. And so then you have a lot more liberty to be able to make that sort of thing work.
Jeff Massie [01:05:22]:
And if you want this clause to go in the. Give me a little bit more money.
Ken McDonald [01:05:28]:
You got to get past the lawyers, which is just. Yeah, that's a train wreck in and of itself. Once, once legal's involved, nothing goes anywhere. But, but no, even, even with the clause you can maybe the contractors, but you cannot talk about a separate entity. So for all of us, so for like Jonathan, I. To talk to each other about what your stuff is, Ken, we have to have an agreement where all three of us have signed an NDA between all of us, not just, you know, one between me and you, you and Ken, you know, it, it doesn't work that way. It turns into nightmare because when you have three companies together and you can't like I can't tell you what they said, you got to ask them what this is because I can't tell you. And, and a three way NDA can be brutal to get.
Jonathan Bennett [01:06:21]:
None of this is legal advice. If you're in one of these situations, go get your own business lawyer and do what they tell you to do. Do not rely upon us for legal advice because none of us are lawyers. Yeah.
Ken McDonald [01:06:32]:
Other than. Yeah. Just don't tell anybody.
Jeff Massie [01:06:34]:
It's just I can think of one prime example of how this is messing up a certain over the air broadcast system that we've been talking, we've talked about in the past that's starting to come out at CSE3.3.
Jonathan Bennett [01:06:54]:
Oh well, again, audio and video codecs are just the worst because they've got patents and they've got software licenses.
Jeff Massie [01:07:00]:
Oh, and I think you've probably. Did you have a home HD home run that handles the new ATSC3 yet?
Jonathan Bennett [01:07:10]:
I don't know if it does or not. I've honestly I've been doing so much streaming, I've watched very little over the air broadcasting for, for years now.
Ken McDonald [01:07:17]:
I don't. And there's basically nobody around that really has it. I think it might be 1 Station.
Jeff Massie [01:07:24]:
HD Home Run Connect 4K and I've got it set up so I can use Plex to record the over the air broadcasts that are still in ATSC 1. I can watch some of the ATSC 3 on newer TV that I got through my sound bar. Yeah, for the audio.
Jonathan Bennett [01:07:56]:
That's the kind.
Jeff Massie [01:07:57]:
But I was sitting up in the older TV and it kept coming back with an error mess and saying this hardware doesn't support this.
Jonathan Bennett [01:08:07]:
I don't know what this fancy audio coding is.
Ken McDonald [01:08:10]:
Hey Ken, maybe if you used Curl that would work.
Jeff Massie [01:08:16]:
Maybe. As long as it's not also having any slop being thrown in.
Jonathan Bennett [01:08:22]:
So these two yahoos are trying to tease the next story, which is the Curl project and its stance on AI. We're gonna let Ken cover that.
Jeff Massie [01:08:34]:
And yes, we're actually seeing where there may be some opinions changing because this week Thomas Claiborne wrote about the exception to the AI slop rule for the Register. According to Thomas, over the past two years the open source Curl project has been flooded with bogus bug reports generated by AI models. I keep wanting to say ow. For some reason this has been a problem for other projects including the Python Community, Community, Open Collective, and the MESA project. The problem isn't that AI generates the misinformation, but rather like with phishing scams, people are not doing due diligence and vetting the information either due to a lack of training or time before submitting it. Last month the Curl project received dozens of potential issues from Joshua Rogers, a security researcher based in Poland. Rogers identified assorted bugs and vulnerabilities with the help of various AI scanning tools, and his reports were not only valid, but appreciated. In fact, last month Daniel Steinberg posted actually truly awesome findings.
Jeff Massie [01:10:01]:
Last week's Daniel Steinberg said in his mailing list update, we have now at last gone through the entire list and as I write this, we have given credit to Joshua's list of issues for no less than 49 commits or bug fixes merged in Curl's Git repository. Of course most of them were tiny mistakes and nits in ordinary static code analyzer style, but they were still mistakes that we are better off having addressed. Several of the found issues were quite impressive findings. Just 16 days since the previous core release and we have already merged 133 bug fixes. Now I'm going to let you read Thomas's article to find out Daniel and Thomas's opinion on AI tools tools as well as which tools Joshua used.
Jonathan Bennett [01:10:59]:
Yeah, I love, I love the the comment on the mastodon thread. Somebody wolf480.pl says so this is what AI can do when wielded by a competent human? Steinberg says, yes, absolutely.
Jeff Massie [01:11:15]:
And it just goes to prove the weakest link in any chain is the human.
Jonathan Bennett [01:11:21]:
No, I mean this is what we found too in the projects I work on, my lead firmware dev Uses copilot all the time for dumb refactoring things like, oh, hey, all of this code is in one file and it's 5,000 lines of code. Hey, copilot. Split this up into five different files so that it's easier to read. Copilot can do that reasonably well. I closed a pull request just the other day that somebody's like, I use copilot to do these five different things. And oh, by the way, we also changed the name of the project. Pull my code in. Go away.
Jonathan Bennett [01:12:04]:
If you really want to do this, break it up into individual PRs and don't try to rename the project.
Jeff Massie [01:12:09]:
Time to fork it. If you're going to rename it.
Jonathan Bennett [01:12:11]:
Well, I mean, sure, if somebody wants to. It's like your AI is showing. I shouldn't. When I read a pull request or a bug report, if it's obviously written by AI, then it's probably not going to go anywhere. You need to have done at least a little bit. I like what Mesa says about this. We don't care if AI wrote it, but you need to understand it. And it's obvious that that is not the case in a lot of these PRs and bug reports and security reports, etc.
Jonathan Bennett [01:12:41]:
But I, I really. Yeah, it's a personal problem. It really is.
Ken McDonald [01:12:44]:
I was gonna say it's a personal pet peeve of mine. The people that use AI and don't really understand what they're saying and try to. Well, AI told me this. Well, AI is wrong. You know, this is just not how this works. Is. You know, it's drives me. It's drives me nuts.
Jonathan Bennett [01:13:01]:
It kind of reminds me of that old saying about how that, like, sufficiently advanced technology is indistinguishable from magic. And we're at the point now to where some normal people think that AI is magic. But then, like those of us that actually write code for a living, we look at it, the results of it, and go, no, definitely not magical. Your AI is not magical. It's just raw.
Jeff Massie [01:13:26]:
If it was, it could make that work, even the way it was written.
Jonathan Bennett [01:13:30]:
Yeah. Yeah.
Ken McDonald [01:13:32]:
Well, the thing is too, is whenever you truly use AI, like professional AI, there's an art to actually writing the prompt. It's not just, hey, just do this for me.
Jonathan Bennett [01:13:41]:
Yes.
Ken McDonald [01:13:41]:
No, you're going to have. I want this in this language, in this format, and do it this certain way and use this. And, you know, there's a lot of.
Jonathan Bennett [01:13:50]:
I've talked to some people that, like, know what they're doing. Randall Schwartz I've had a couple of shows with Floss weekly with him on it. We've talked about this and he's come up with a flow and he will actually have the AI write the prompt for itself. And I believe that's useful because he has a conversation with the tool about what exactly he wants done and he corrects it when it's making. Essentially what he's having it do is write like the spec for the changes it's going to make. And so he actually describes it as though he's treating the AI tool as if it's a junior developer, you know, a very zealous, but oftentimes wrong junior developer. And so his, his initial like he will give it a, a very like brief scope of work and say, you know, turn this into an actual scope of work. And then he looks at the scope, you need more detail here or you know, this is the wrong approach here and actually flesh that out to where you've got a scope of work with details on it that you can then check.
Jonathan Bennett [01:14:56]:
And then you have the AI take that scope of work and actually implement. And so you give it a lot of guardrails and you're checking it as you go along to make sure that it's not making dumb mistakes as it's planning things out. And he's had reasonably good success with in the end getting the AI to write working programs. But his, his take on it is like I've got to be the senior developer and it is the very junior developer and I get to hold its hand as we're doing things. But if you treat it like that, you can get good results to of it out of it.
Ken McDonald [01:15:25]:
I sometimes looking at it, I look at it like a genie or a deal with the devil where okay, you better specify everything because whatever little loophole you left, it's going to do it to try to mess things up. I at work I use it quite a bit and I've had a lot of training too on here's, here's what you write, here's what you don't write, here's you know, scope this, now constrain it here.
Jeff Massie [01:15:48]:
Do you know, because remember with all those stories about genies, they invariably end up with a genie doing something malicious to you.
Jonathan Bennett [01:15:58]:
Run amok. Yes, Genies run amok.
Ken McDonald [01:16:02]:
So you have to write your prompt kind of. Okay, it's in this box and they can't get out.
Jonathan Bennett [01:16:08]:
Yeah, good luck. All right, up next, Jeff is going to talk about something completely non controversial systemd and tell us this is after the break. Yes, yes, this is coming right after this.
Leo Laporte [01:16:23]:
Hey everybody, Leo Laporte here and I'm going to bug you one more time to join Club Twit. If you're not already a member. I want to encourage you to support what we do here at Twit. You know, 25% of our operating costs comes from membership in the club. That's a huge portion of and it's growing all the time. That means we can do more, we can have more fun. You get a lot of benefits ad free versions of all the shows. You get access to the Club Twit discord and special programming like the keynotes from Apple and Google and Microsoft and others that we don't stream otherwise in public.
Leo Laporte [01:17:02]:
Please join the club. If you haven't done it yet, we'd love to have you find out more at TWIT tv Club to it and thank you so much.
Ken McDonald [01:17:11]:
Systemd has been talked about from time to time on the show, and most the time we talk about how systemd isn't in some new distribution because they're either going with some previous system int or a different solution altogether. You know, it's been rather controversial, but it's been around for quite a while now and most distributions use it, but some people still are fighting it. But, and if you don't know, systemd is the core chunk of software that, you know, is kind of the initial starting point for user space. It provides a system and service manager and runs as process ID number one and kind of starts the rest of the system. There's a lot of other things it does, but suffice to say it's very core to a Linux system and changing out. Changing it out is not a trivial task. I mean, yes, it can be done, but it isn't like just loading in a different application. You know, systemd is plumbed in at very low levels.
Ken McDonald [01:18:04]:
So to change out of systemd, it's a very large undertaking. Now, I bring this up because the latest version of systemd was released version 258 and it has some changes that are going to affect what kind of computer system can support the software. The biggest is the removal of the C group V1. Now this means legacy and hybrid hierarchies have been removed. It requires the features in Cgroup version 2. Now the original Cgroup version 1 was put into the kernel in 2007 with kernel 2.6.2. Version 2 didn't show up until 2016 with Linux kernel 4.5. Now that sounds good, but there's Another change which now also says the minimum kernel version that systemd will support is 5.4, which was released in 2019, and kernel 5.7 is the actual recommended version.
Ken McDonald [01:19:07]:
So this means that older kernels are not going to run with systemd 258. Now, just to be 100% clear, the C groups that we're talking about, these are inside the kernel. This is not talking about the CPU levels, which we sometimes talk about when we, and we say, oh, this is version 1, version 2, version 3 of the instructions supported by the CPU. That is not what we're talking about. So hardware is not limited directly by this upgrade, just by the kernel version, which can run on the hardware. So if kernel version 5.4 can't run on your hardware, then you can't run the new systemd or the distribution using it. Now, along with that, support for, excuse me, along with that, support for System V style INIT scripts is officially deprecated and it's totally scheduled for removal in in system D259. The same goes for the legacy run slash run slash lock directory and for iptable support in Network D and N spawn, which will now it's going to solely rely on NF tables for the next release.
Ken McDonald [01:20:27]:
There are security changes going in as well, such as open SSL has become the only supported back end for systemd resolved and systemd import D. They're dropping support for both GNU TLS and Lib Gcrypt. So there's a lot more things going into 258 and what's going to be standard in 259. So take a look at the article linked in the show notes for the full list of changes and a link to the GitHub change log which will have every single change in there. So happy booting.
Jonathan Bennett [01:21:05]:
Yeah. I have trouble being too mad at systemd because almost everything in it works really well. The only part of systemd that I really hate is when it takes over DNS just drives me nuts.
Ken McDonald [01:21:21]:
Yeah, I mean, you don't have any.
Jeff Massie [01:21:22]:
Problems with the way it's handling, does your keyboard handling?
Jonathan Bennett [01:21:27]:
It doesn't do keyboard handling on my machines.
Jeff Massie [01:21:29]:
I don't know, because I've seen in the full release notes that it was talking about working around limitations of X11's keyboard handling. Systemd's keyboard mapping hardware database. One of those has to do with mapping the microphone mute and the touchpad on off toggle keys to the function keys F20, F21, F22 and F23 instead of the Correct key codes.
Ken McDonald [01:22:04]:
Looks like it's time to get off x11.
Jonathan Bennett [01:22:07]:
I mean, yeah.
Jeff Massie [01:22:10]:
One more reason.
Jonathan Bennett [01:22:11]:
Something you have to remember though is like there are parts of systemd that the vast majority of distros don't use because it's not written for normal distros to use. Some parts of systemd are written specifically for immutable Linux. Some parts of it are written explicitly for something even more locked down than that, like a real kiosk mode or something. So not everything that's in there, not everything that you see in the notes is something that's actually going to affect your machine. There's just a couple of pieces of systemd that I. Additional pieces that I wish fell into that and the DNS handling is one of them. I want my old DNS system back. It's not annoyed me enough that I've gone and done it on any of my machines because I know it's possible to go back to the old resolve edc resolve.com rather than.
Jonathan Bennett [01:23:05]:
I forget what Resolve D I think is what they call it when you let System D be your DNS resolver. Yeah, it's not annoyed me enough to go do it yet, but there's been a couple times I've been pretty close.
Jeff Massie [01:23:20]:
And another one I noticed has to do with the journal ctl. The dash dash follow flag now exits with success on a SIGTERM or sigint and when the pipe it is writing to is disconnected, I use that follow.
Jonathan Bennett [01:23:40]:
Quite a bit actually in debugging stuff. So probably I probably don't care what it exits with most of the time. That sounds like that would be sort of a scripting thing. But yeah, interesting.
Ken McDonald [01:23:51]:
I don't know, I just know it's sometimes originally it caused a lot of controversy, but it kind of won the standards war. That's what we got now. Tell somebody to make something better.
Jonathan Bennett [01:24:01]:
I mean, there's a few distros still hanging around that are not systemd and that's sort of their. Their headline feature. But man, pretty much all the big ones, all the standard ones use systemd and it just works for them.
Ken McDonald [01:24:12]:
Yeah, and you know, the thing is I don't know enough about it. I don't get into System D enough. And realistically, you know, people have arguments, I've read some of them, but at least my experience on the hardware side, I listen to forum stuff, people talking and like 75 have no clue, you know, then of that you have about 20% that have a clue, but they kind of miss points. They Kind of get it wrong and you got like 5% that actually, actually really understand what's going on. So anymore I just kind of assume every controversial thing of whether, you know, X11 versus Wayland or systemd versus some other init system or file system X versus file system Y. It's like, yeah, most people don't get deep enough into the weeds, well the technological enough to.
Jonathan Bennett [01:25:00]:
I really suspect that like in, at least in the early days of systemd, why a lot of people didn't like it is because all of the institutional knowledge was for SSV in it. And so you would go to Google a problem and you know, or you'd ask a buddy about the answer to a problem and the answer would be there for a while at least it was the SYSV answer. Okay, go, go look at your SYSV INIT script and here's what you change in the script or here's a sysv in IT script to make this thing work. And when the world went systemd, it's like none of that stuff worked. And so there was, there was a time period, probably a couple years there where it was difficult to find the answer to these questions because, because there just wasn't that body of knowledge about how to fix things under systemd. We've been at it enough now though that like you can find it and you, you know, you find now on Stack overflow. Well, here's how you do that weird thing that you want to do inside of system D. So everybody's kind of happy once again.
Ken McDonald [01:25:53]:
Yeah, well, I'm just even referring to some of the, well, technically or the technical reason for doing this is not good enough compared to this other reason.
Jonathan Bennett [01:26:02]:
Then.
Ken McDonald [01:26:04]:
I don't know.
Jeff Massie [01:26:07]:
What'S really interesting looking through the release notes is the minimum versions that's going to be required as of version 259.
Jonathan Bennett [01:26:20]:
What is the minimum version in there for Linux kernel?
Jeff Massie [01:26:24]:
It's got to be 5.10 greater and they're recommending 5.4 14.
Jonathan Bennett [01:26:28]:
That's not terribly new.
Ken McDonald [01:26:32]:
No, but, but you know, we're looking a lot of Linux is getting rid of 32 bit. They're looking at going to V3. There's, I mean we're, we're getting the point. There's a lot of different parts of the whole Linux distribution that are kind of just saying we're going to start dropping some of this old hard way.
Jonathan Bennett [01:26:49]:
Yeah, yeah, yeah.
Jeff Massie [01:26:52]:
And if you work with Python, then it's going to be version 3.9.0 or better. What's the latest version?
Ken McDonald [01:27:01]:
Now it's like 3.13, I think.
Jonathan Bennett [01:27:04]:
I thought I was going to say 13 or 14. Yeah, let's see. I'm sure we can find out latest Python release because I know I've got.
Jeff Massie [01:27:16]:
To find time to do an update to my octopi.
Jonathan Bennett [01:27:23]:
The Py Python 3.14 is slated to come out this upcoming week, so on the 7th. So there you go. I was thinking 3.13 or 3.14 and we are right there in between the two.
Jeff Massie [01:27:37]:
So we may have a story next week about that.
Jonathan Bennett [01:27:40]:
Somebody might bring it. Might bring it. There's another release that just happened that's got something pretty cool in it that I'm excited about, and that is Wine just did the 10.16 release and it landed officially finally in mainstream Wine support for NT Sync. And that is the synchronization code that originated in the Windows NT kernel. And the way that Linux has done synchronization, this synchronization primitive has been very different for years and years. And people said, why don't we just add a primitive, a new system call to the Linux kernel that lets us do this sync like Windows does. It took a while to convince everybody that that was a good idea, but we are now there. Most of our Linux kernels run this and it is now officially in wine with version 10.16.
Jonathan Bennett [01:28:34]:
And so it will take a bit for this upstream code to land in places like Proton, as well as Glorious Egg Roll and all of those. But there are ways that you can go ahead and try this out if you would like to. It's been in Wine staging for a bit. I'm actually pretty impressed how quickly, now that things have landed other places, how quickly this came to Wine and they were able to get it mainlined inside of Wine. There's a couple of other interesting things. In 10.16, six bit apps are supported in the new Wow. 64 mode, which that's Wine on Windows On. I know Wow 64 used to stand for Windows on Windows 64.
Jonathan Bennett [01:29:21]:
I'm not sure what it stands for in the Wine context. Maybe the same thing, but it's, you know, it's 64 bit wine essentially. But it's really interesting because you can't run 16 bit apps on a 64 bit Windows install. So like on Windows 11 right now, if you're running a 64, which I think basically all of the Windows 11 installs are 64 bit now, you can't run 16 bit apps, but you can now in Wine in Wow, 64. So the 64 bit versions of Wine, it supports 64 bit, it supports 32 bit and it now also supports 16 bit, which is really pretty interesting. It's, you know, doing what Windows never could. And then one other thing that really is potentially important in there is support for the D3D KMT objects. And I went and I looked that up and that is basically kernel calls where a program can talk directly to the 3D driver.
Jonathan Bennett [01:30:24]:
It's for things like perhaps changing the screen resolution or other things of that nature. And I'm sure there are some games over the years games and other programs that have used that and so good on them for adding support for all of those things. Wine 1016, it looks like it might be a pretty good one, a pretty impressive release of Wine. And again, it'll be pretty cool when Proton and the rest of them use that or a newer version for the upstream.
Ken McDonald [01:30:56]:
I bet it won't take too long because if it's been in staging a lot of times, I think doesn't Glorious at least grab a lot of that staging?
Jonathan Bennett [01:31:05]:
Yeah, I think, I think that is essentially what the Glorious Egg Roll build is. Is it is. It's Proton rebased on top of Wine staging, I think. And so in fact there's a GE Proton 1017 just released. Let's see. Trying to see if I can tell which Wine version that's based on. I don't see it. But yeah, it won't be long before you can get it in at least.
Jonathan Bennett [01:31:37]:
Glorious Egg Roll.
Ken McDonald [01:31:40]:
I'll see if I can find it.
Jonathan Bennett [01:31:42]:
Yeah, it's definitely out there. Or if it's not, it will be soon. So.
Jeff Massie [01:31:49]:
But if you play Wolfenstein, the Ode Blood looks like they fixed an issue where it failed to start with EGL. OpenGL backend.
Jonathan Bennett [01:32:00]:
Yeah, you know, there's a bunch of fixes that land in every version of Wine for various different things. I saw that one. You know, there's things where they fixed Flickering Grand Theft Auto Vice City. The intros were playing with a black screen and they got that fixed. Sim Sim City 2000 doesn't launch in Wow, 64 mode. You can get your SimCity 2000 fixed now. You know, all kinds of. All kinds of fun stuff in there if you go look through them all.
Ken McDonald [01:32:28]:
I. I don't know what version this specifically is, but Gloria Seg Roll Roll Proton 1016, which was released two weeks ago, they said Wine updated to the latest Bleeding edge.
Jonathan Bennett [01:32:42]:
Right. I don't know what that means. That probably would have been the version before this.
Jeff Massie [01:32:47]:
10.15.
Jonathan Bennett [01:32:49]:
Yeah, I think so.
Jeff Massie [01:32:50]:
Because the odds of bleeding edge, I don't. And the evens, the. The stable version, isn't it? No, it's the other way around.
Jonathan Bennett [01:33:03]:
It's a little, it's a little different from that. I don't remember. Wine has their own sort of special formula for which one is. Is stable and which one is not. Maybe it, maybe it is that the odds are the stable ones or the evens. I don't remember. You're right, they have their own. It's a, it's a kind of a weird thing.
Ken McDonald [01:33:22]:
No wine you have, you have like the stable, you have the testing, then you have the staging. Or maybe it's development and they don't go off numbers as much as you have three different channels.
Jonathan Bennett [01:33:40]:
Yeah. So stable is 10.0 and development is 10.16. That's what it is. So the dot zero is the stable. And so it's possible that they'll do like a 10.0.1 at some point, but when they're ready to mint another stable, it'll be 11.0. I knew it was different. I knew it was different than what basically everybody else does.
Ken McDonald [01:34:06]:
Oh, well, I'm not seeing the.
Jonathan Bennett [01:34:10]:
We can look into that after the show. We got one more story that we're going to cover though, that is Ken talking about the Linux foundation and something new there.
Jeff Massie [01:34:20]:
Yeah, we've got this. George Whitaker writing this week about the Linux foundation contributing Newton as a fully open community governed project. Now according to George, Newton is a next generation GPU accelerated physics simulation engine designed specifically for roboticists. Try saying that one three times fast. And simulation researchers who want high fidelity performance and extensibility. Now According to the GitHub organization for Newton, the project is governed under the Linux foundation, is community built and is licensed under Apache 2.0. The repository README describes it as aiming to supersede Warp SIM with a more general open architecture. If you're asking what Warp SIM is, it's the module that was used before Newton.
Jeff Massie [01:35:28]:
Newton benefits from neutral governance, community oversight and long term sustainability by being housed under the Linux Foundation. George also writes about Newton's technical highlights and capabilities, use cases and challenges which I'll leave for you to read about.
Jonathan Bennett [01:35:52]:
Yeah, interesting. So this is, this is what for people that are designing robots, actually building physical robots to be able to simulate.
Jeff Massie [01:36:00]:
Them after they've done simulation to see how everything's going to work in the physical world.
Jonathan Bennett [01:36:09]:
Yeah.
Jeff Massie [01:36:10]:
I just hope Newton never Meets Al. Or is it AI?
Jonathan Bennett [01:36:17]:
It's, it's funny. So on. On Hackaday, one of our, one of our writers, his name is Al, It's Al Williams. And it's always. You always have to do a double take because of the font we use. The L and the I is, you know, the, the lowercase L and the uppercase I are written the exact same. And so, you know this article brought to you by AI? Oh, no, it's just Al all the time.
Jeff Massie [01:36:40]:
Let's just start calling AI Al.
Jonathan Bennett [01:36:42]:
I mean, we do, we do tease him about that from time to time. It's, it's a lot of fun.
Jeff Massie [01:36:48]:
But is this the beginning of the end? I doubt it if you're a Terminator fan yet. Might be.
Jonathan Bennett [01:36:57]:
Nah. I've seen, I've seen the videos of what robots and AI can do, and it's still not entirely inspiring when they meet the real world.
Jeff Massie [01:37:09]:
So 100 years down the road, hopefully.
Jonathan Bennett [01:37:12]:
Maybe. We'll see. We will see. All right, that's our news story is that we've got some fun command line tips. I'm actually going to lead off with, with something also related to the raspberry PI, the 5, the 500 and the 500 plus. And we will cover that right after this. All right, so this week I was in a position where I was shipped the Raspberry PI 500 plus and it came with Debian 12. Raspberry PI OS 12 based on Debian 12 came with 12 on it.
Jonathan Bennett [01:37:44]:
And then about the time that it showed up, the announcement came out that 13 was out. And I said to myself, how am I going to put 13 on this? I really don't want to open the thing up. I mean, they give you a spudger. That's the plastic tool to open the case. And it is now considered to be user openable. You're not voiding your warranty, I don't think you did on the previous ones, but you're not voiding your warranty to open up the 500 plus. You can get in there and do stuff which you have to, to be able to get to the nvme. But still I was thinking through this going, man, this does not sound like any fun.
Jonathan Bennett [01:38:14]:
If only there was an easier way to install the new version. And, and then I realized I remembered that I saw something about this. So I went and looked and the, the pi5, the pi500 and the pi500 plus. So basically the fifth generation PI and probably newer. I think this is something that's going to Stick around has the Raspberry PI Imager built into the device firmware, and you can access it by turning the machine off, making sure you have an ethernet cable plugged in, and then holding the Shift button on the keyboard while you plug it back in and turn it on. When you do that, it's going to boot up to what looks exactly like the Raspberry PI Imager that you'd run on your desktop. And it gives you the options to choose your platform, choose which distro you want, choose your, your heart, you know, the, the, what media storage you want to put this on, you can go through and you can customize it with username and password, whether you want SSH turned on, all of that stuff that you're used to from the Raspberry PI Imager and you can just say go. And it will sit.
Jonathan Bennett [01:39:26]:
They will download the whatever image you tell it to and put it right onto that machine's SD card or NVME card. I think it probably would do USB as well. And then we'll automatically reboot and bring you up into whatever system that you wanted to use. And I was really, really impressed by that. For particularly the PI 500 plus with the NVMe inside of it. It was really useful because I didn't want to have to take the thing apart. I just want to be able to use it. And so hold the shift key, boot it up, and then you're right there in the Raspberry PI Imager and it is ready to go.
Jonathan Bennett [01:40:02]:
So quite the. Quite the nifty little feature set.
Jeff Massie [01:40:07]:
So I've got an easier way to update my SD card if you're on.
Jonathan Bennett [01:40:12]:
A PI 5 or newer. Yes.
Jeff Massie [01:40:14]:
Yeah, the Raspberry PI 5 I have. It's a shame the Octopi is not on Raspberry PI 5. Maybe I need to move it to that.
Jonathan Bennett [01:40:23]:
You buy another one. Buy a, buy a PI 550. Use that for it.
Jeff Massie [01:40:29]:
Buy a button PI 500 plus and delegate that one to the Raspberry PI.
Jonathan Bennett [01:40:37]:
There you go.
Jeff Massie [01:40:38]:
Or Octopi.
Jonathan Bennett [01:40:39]:
That is the way to do it. All right, Jeff, what is Image?
Ken McDonald [01:40:45]:
Image. Well, all right, this is going to be a little different command line tip. And not less of a command line and more of a useful program tip. Now, I, this really stuck in my head because I first heard about this from a programmer at work. You know, he and I were chatting, you know, doing the water cooler, talking, and we were, we were going over Linux things and, you know, I talking about various things and I said, oh, I used Plex in the past to host images for the family, you know, like photographs and stuff. But you know, it's kind of a clunky interface and doesn't do it very well. I needed to find something better. He told me about this program Image I M M I C H and it's one he uses and swears by.
Ken McDonald [01:41:30]:
So he, he's all into on this. And then I just happened, you know, what was my command line for the tip and I just saw this came up and it hit stable release at 2.0 and I thought, you know, this might be a good time to pass it along. And Image is a self hosted photo and video management solution. So there this is, this is for when you don't want to pay, you know, the Googles and you know, Amazons and whatever to host, host and so you can share your files. You just want to do it all yourself. Now one possible downside, you know, is there's not a desktop app for displaying the pictures as it was more designed for phones. But now there is a web app. So it's not like desktop users are totally out in the cold.
Ken McDonald [01:42:18]:
It's just if you prefer a standalone app versus the web, you know, you, you depending on your proclivities, that may or may not be a deal breaker. But for me, I'm okay with a web view. Now I'm not going to go into detail on how you install it because here's another little bump in the road is you run it in a Docker container or portainer or use something like unraid or true NAS scale to actually run it. So it's, it's designed to be containerized from the get go. It's not just a regular program that you just load up. Now they do have different, you know, they have all those listed out. So you can run it in whatever you, you can download the package to get it in your Docker container, whatever you're going to use. And they also, for like mobile apps they have the app which is in the Play Store, the Apple Store, you can get it on F Droid or you can just download the APK and run it wherever you choose to.
Ken McDonald [01:43:24]:
And if you're curious about everything it can do rather than go into tons of features, if you look at the documentation page on the website linked in the Show Notes, there's actually a comparison page so you can view what it does and doesn't support along with other similar programs and they give a rating on how well they feel a particular program supports the Feature. So, you know, yeah, maybe it has this feature that you know, image doesn't have, but you look at it and goes, they don't do a good job of it. Or maybe it's really good, but it also lacks a feature that image has. And then you can, you can make a educated decision. But take, you know, take a look at the article linked in the show notes. It goes into more detail and you know, even talks about future plans so that you can see where the program is going to go into the future. And if you want to get a self hosted program and like I said, you want to get out from under paying big tech for hosting your media, you know, definitely check it out and you know, let me know what you think. You know, I, I personally haven't used it yet.
Ken McDonald [01:44:28]:
I, you know, I've never set up a Docker container. I guess it's maybe time I learned. But like I said, a couple of programmers, I know it works, swear by it. So take, take a look and let me know what you think.
Jonathan Bennett [01:44:39]:
Yeah, this has some really, this has actually some really cool stuff in it. I have to make a note to my scheduler that we, we need to talk to these guys on False Weekly.
Ken McDonald [01:44:49]:
Yeah, I mean there's, there's a lot in there. So I didn't want to really go through all the, oh, here's the 300 things. It does. You know it, but it's, it's pretty powerful.
Jonathan Bennett [01:44:59]:
Yeah.
Jeff Massie [01:45:00]:
Does it support the DLNA standards so that you could, if you've got a DL, DLNA compliant device that you could use it to stream from?
Ken McDonald [01:45:13]:
I don't believe it does.
Jonathan Bennett [01:45:16]:
I know it will. They talked about streaming to Chromecast. Chromecast, so it's got some of that. I don't know. I don't know if DLNA is one of them. But you know, that's a great, that is a great question to ask them if we have them on the show. So we try to do that.
Jeff Massie [01:45:32]:
Let me know a couple of weeks in advance and maybe I could arrange a day of vacation or two. Get on that one.
Jonathan Bennett [01:45:39]:
Yeah, it'd be fun.
Jeff Massie [01:45:41]:
Would be fun if I still have vacation left by then.
Ken McDonald [01:45:45]:
And it looks like if I can see by the discord, Jonathan's wife's already looking into it.
Jonathan Bennett [01:45:49]:
So yes, we'll try to get him on the show. It'd be fun. We get a lot of fun.
Ken McDonald [01:45:53]:
Research ongoing.
Jonathan Bennett [01:45:55]:
Yes. All right, Ken, you ready to talk about more wire plumber configuration stuff?
Jeff Massie [01:46:02]:
I'm gonna talk about trouble troubleshooting, wire plumber configurations. In fact, let me go ahead and bring up my terminals. I've got three of them today to demonstrate the command that I'm going to be covering. That, as I said, may help you troubleshoot your pipe, wire and wire plumber systems. It is wp, CTL space, sit, log level. Now, instead of diving deeply into debug logging, which I've got a link to, if you really want to look into this more, I'm just going to demonstrate how you can set the log level for a particular client device, sync, source, filter or stream so that you can log fatal errors, informational message, debug messages, all or even traces. For those of you all watching or listening, I've got three terminals. Up on your top left is one that I've got the journal ctl space dash dash, user space dash B space dash F, which I think sometimes is referred to as F follow.
Jeff Massie [01:47:25]:
Correct, Jonathan?
Jonathan Bennett [01:47:26]:
Yep, sometimes. Sometimes you want to use follow rather than dash F, particularly if you're going to then right away specify the unit because that's dash U and dash fu just doesn't always look right, particularly when you're telling people to use it.
Jeff Massie [01:47:42]:
Yeah, but then I'm piping that into grip so I can look for either pipe, wire or wire plumber. I'm going to go ahead and start that. And with starting that, there's nothing coming out because I don't have any log level set. So let's go ahead and bring up the terminal right below where I'm going to type in and make sure I got the right screen selected. Wp, CTL space, sit, dash, log, dash level. Now I'm going to go ahead and follow that with a dash H so you can see the help command and it tells you that it sets the log level of a client. No ID will mean wire plumb itself. Zero means the pipe wire server.
Jeff Massie [01:48:49]:
Or you can use WPCTL status to find out the command for a client device sources, sinks or streams, especially if you've got a program that you're writing that you want to troubleshoot. So let's go ahead and just set the log level for wire plumber itself to. Let's go with T. And now we're starting to see commands come through and you've got a lot of commands there. Now let's go ahead and set pipewire. So we're seeing commands for it to T, which is going to trace everything and we don't really see much change there. We do see wire plumber, and now let's go ahead and run A program. It's an example program from the pipewire documentation covering how you can access the API and be glad I'm not piping that into my audio output because otherwise you'd hear a steady tone.
Jeff Massie [01:50:13]:
Because I thought what that was an example of doing is creating a jump steady tone. As you can look, you can see that it's tracing what pipeware is doing. So let's go back in and find out the where that program is. It's client is 80. So we can go in and set the log level to trace for client ID 80. Oh.
Jonathan Bennett [01:50:53]:
Well that's cool.
Jeff Massie [01:50:55]:
And now you've got what it's doing coming through and I'm just going to do a control C to cancel that. And you see where it gave you that closure. It's about to scroll off, isn't it?
Jonathan Bennett [01:51:15]:
Oh, that's a cool idea. Though I may have to steal that to be able to put just one. One thread. One. One application into Trace instead of the whole in all of Pipe Wire or all of Wire Plumber.
Jeff Massie [01:51:26]:
Yep. But one thing I noticed is you can see where it's going through pipewire Wire Plumber with what I got set up so far. But if you go in and use inspect 80 and I don't know why, but I've gotten in the habit of always adding rna, you can go in, look to see what you may want to look for with the grip command to probably look for that PID might help.
Jonathan Bennett [01:52:21]:
Yeah.
Jeff Massie [01:52:23]:
So we'll come back up here, exit out and backslash pipe and paste that in and we don't see anything and run it again and source getting a few other things.
Jonathan Bennett [01:52:58]:
It happens. Do you know why it happens?
Jeff Massie [01:53:06]:
It's probably because it's not looking for that particular. Getting anything from that particular PID since it's going to the pipewire API.
Jonathan Bennett [01:53:16]:
Ah. I mean if you. If that's actually the program, the program id, it probably changed when you ran it a second time.
Jeff Massie [01:53:23]:
That could be that too too. So let's go back in, see if it did change. No, it didn't.
Jonathan Bennett [01:53:35]:
3413 80.
Jeff Massie [01:53:38]:
That's the program itself.
Jonathan Bennett [01:53:40]:
Oh yeah.
Jeff Massie [01:53:42]:
30414 the PID changed.
Ken McDonald [01:53:45]:
Yep.
Jonathan Bennett [01:53:49]:
That's going to be what it is. Linux tends to not to not reuse those.
Jeff Massie [01:53:59]:
And what did I say that PID was again?
Jonathan Bennett [01:54:02]:
I thought I saw 3413.
Jeff Massie [01:54:03]:
Yep. 1 3. And now let's see what we get. And looks like most of it's just pipewire doing updates.
Jonathan Bennett [01:54:27]:
Yeah, there's where there's where it ended. Yeah. Good stuff. All right. Very useful to be able to figure out how to get in there and find log line messages from individual programs. I like it. That is the show. Those are the tips.
Jonathan Bennett [01:54:55]:
We're going to let each of the guys plug whatever they want to. I will actually let Jeff go ahead and start us off with that. Any closing thoughts?
Ken McDonald [01:55:06]:
No, not anything too big. I think I shared a lot during the show this week. Week I was extra talkative, I think. So I'm just going to leave it with Poetry Corner. There was an end user named John whose desktop wouldn't respond. He called, made a fuss, send it in a rush, and they turned it off and back on. Have a great week, everybody.
Jonathan Bennett [01:55:30]:
That's great. All right, Ken, anything you want to plug?
Jeff Massie [01:55:34]:
Yeah, I just want to share an article that I thought thought was rather interesting is one way to put it by Saurav Rudra about Eric S. Raymond's thoughts on codes of conduct.
Jonathan Bennett [01:55:52]:
Yes.
Jeff Massie [01:55:53]:
Read it. You may have some thoughts of your own after reading it.
Jonathan Bennett [01:55:57]:
Yup. It is a very interesting thing. I have thoughts as well. I. I will say this. The projects that I've involved in, I've gone back and looked at their codes of conduct to see if there are problematic things in there because I think there is something to be said for codes of conduct being weaponized against people when that's not what at least most of us, when we agreed to and that wasn't what the intent was. So worth worth at least doing a double check and making sure that you're not going to have a problem. Yes.
Jeff Massie [01:56:30]:
Raising the question of have they outlived their use?
Jonathan Bennett [01:56:33]:
Yep. Yep. Could be. Could be. All right. Appreciate you guys being here. It's been a lot of fun. We went for a long time with just the three of us.
Jonathan Bennett [01:56:43]:
Goodness, imagine if Rob had been here. We'd still be going.
Jeff Massie [01:56:49]:
We'd have another hour on there.
Jonathan Bennett [01:56:50]:
Have another hour to go.
Ken McDonald [01:56:53]:
Well, we're bringing better value for the money.
Jonathan Bennett [01:56:55]:
That's right.
Jeff Massie [01:56:56]:
Yeah.
Jonathan Bennett [01:56:57]:
All right. Appreciate it. If you want to find more of me, there is, of course, Hackaday. That's where Floss Weekly lives. That's where my security column goes live every Friday morning. So make sure and check those out if you want to. We appreciate everybody that's here, those that listen, those that watch, whether you get us live or on the download. And we will be back next time for more of the Untitled Linux Show.