Posts
4438
Following
315
Followers
469
Linux kernel hacker and maintainer etc.

OpenPGP: 3AB05486C7752FE1

Jarkko Sakkinen

I made lsiommu as I just wanted to get rid of the shitty combination of bash and python I had before:

~/work/staging/lsiommu master*
❯ build/lsiommu
IOMMU Group 0
	00:07.1 Class 060400: Vendor 8086 Device 9a25 [8086:9a25] (rev 01)
IOMMU Group 1
	00:07.0 Class 060400: Vendor 8086 Device 9a23 [8086:9a23] (rev 01)
IOMMU Group 2
	00:02.0 Class 030000: Vendor 8086 Device 9a49 [8086:9a49] (rev 01)
IOMMU Group 3
	00:00.0 Class 060000: Vendor 8086 Device 9a14 [8086:9a14] (rev 01)
IOMMU Group 4
	00:04.0 Class 118000: Vendor 8086 Device 9a03 [8086:9a03] (rev 01)
IOMMU Group 5
	00:0a.0 Class 118000: Vendor 8086 Device 9a0d [8086:9a0d] (rev 01)
IOMMU Group 6
	00:0d.0 Class 0c0330: Vendor 8086 Device 9a13 [8086:9a13] (rev 01)
	00:0d.2 Class 0c0340: Vendor 8086 Device 9a1b [8086:9a1b] (rev 01)
IOMMU Group 7
	00:0e.0 Class 010400: Vendor 8086 Device 9a0b [8086:9a0b] (rev 00)
IOMMU Group 8
	00:14.0 Class 0c0330: Vendor 8086 Device a0ed [8086:a0ed] (rev 20)
	00:14.2 Class 050000: Vendor 8086 Device a0ef [8086:a0ef] (rev 20)
IOMMU Group 9
	00:14.3 Class 028000: Vendor 8086 Device a0f0 [8086:a0f0] (rev 20)
IOMMU Group 10
	00:15.0 Class 0c8000: Vendor 8086 Device a0e8 [8086:a0e8] (rev 20)
IOMMU Group 11
	00:16.0 Class 078000: Vendor 8086 Device a0e0 [8086:a0e0] (rev 20)
IOMMU Group 12
	00:1d.0 Class 060400: Vendor 8086 Device a0b0 [8086:a0b0] (rev 20)
IOMMU Group 13
	00:1f.0 Class 060100: Vendor 8086 Device a082 [8086:a082] (rev 20)
	00:1f.3 Class 040100: Vendor 8086 Device a0c8 [8086:a0c8] (rev 20)
	00:1f.4 Class 0c0500: Vendor 8086 Device a0a3 [8086:a0a3] (rev 20)
	00:1f.5 Class 0c8000: Vendor 8086 Device a0a4 [8086:a0a4] (rev 20)
IOMMU Group 14
	55:00.0 Class 010802: Vendor 144d Device a808 [144d:a808] (rev 00)

Perhaps the most interesting implementation note is that it uses libudev for PCI discovery, instead of traversing sysfs (because the latter sucks).

Right and I made my own shitty teardown manager framwork:

/* SPDX-License-Identifier: GPL-3.0-or-later */
/*
 * Copyright(c) Opinsys Oy 2025
 */

#ifndef TEARDOWN_H
#define TEARDOWN_H

#include <libudev.h>

#define teardown(func) __attribute__((cleanup(func)))

void teardown_udev(struct udev **udev);
void teardown_udev_device(struct udev_device **dev);
void teardown_udev_enumerate(struct udev_enumerate **enumerate);

#endif /* TEARDOWN_H */

Dependencies:

❯ ldd build/lsiommu 
	linux-vdso.so.1 (0x00007f083ccd5000)
	libargtable2.so.0 => /lib/x86_64-linux-gnu/libargtable2.so.0 (0x00007f083cc8a000)
	libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f083cc5c000)
	libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f083cb8c000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f083c9ab000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f083ccd7000)
	libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f083c99f000)
	libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f083c856000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f083c827000)
	libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f083c76b000)
	liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f083c745000)
	libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f083c71d000)

I can throw this to some Git repository if anyone is interested any of this. It’s really just “by me for me”, but I neither mind sharing it.

#linux #kernel #iommu

2
2
2

Jarkko Sakkinen

consolidated my linux pr process to a a repo, so that i can improve it over time :-) i tried printf first to generate substitutions for the mustache based email template but jq is needed here just purely for escaping the summary generated by git request-pull.

https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-pull-request.git/tree/?h=main

0
0
0
@thomasmey i'm aware of this stuff but yeah i'm talking about something much more simple and stupid (see my respnoses) :-)

I even have developed this small function to my shell config number of years ago that pulls tag from any git repository to another that I've sometimes found convenient:

function git-fetch-tag
git fetch --no-tags "$argv[1]" "refs/tags/$argv[2]:refs/tags/$argv[2]"
end

(currrently a fish version of it :-) )
0
0
0

Jarkko Sakkinen

Edited 15 days ago
Also you might want to keep your account files for command-line tools in a different private repository even if it does not contain passwords (as it shouldn't but instead use pass). It still contains e.g., email addresses and stuff like that.

Without a special Git feature you need to fix the problem in your configuration. I.e copy the files from a clone, which is incovenient.
0
0
0
I explained myself badly.

Git as GIT_DIR and --git-dir for specifying location of the ".git".

What would be nice if there was also something like --git-dir-alias or similar for specifying non-standard name for that directory.

Then I could along the lines of

git clone <project URL>
cd <project>
export GIT_DIR_ALIAS=".git-private"
git init && git remote -add origin <private data URL> && git fetch origin && git reset --hard origin/main
unset GIT_DIR_ALIAS

It's not uncommon to initialize Git repositories to populated directories. E.g. that is how I clone my home directory skeleton on a new system:

git clone https://codeberg.org/jarkko/skeleton
git reset --hard origin/main

This is just extension to it. Home directories are great example use case also because then you could have separate Git repositories, if you want to isolate settings of a particular program but still have means to deploy them under the same root where they are cloned.
1
0
1

Jarkko Sakkinen

Sometimes it would be useful if you could have multiple Git repositories in the same clone as long as they don't share files. E..g, for separating private data.

#git
3
0
0

Jarkko Sakkinen

There is an alternative for Rocksmith, which also plays its '.RS files: https://tonelib.net/jam-overview.html

This not only fixes the issue macOS but there is also a native Linux version. Further, it happened to be 60% discount :-)
0
0
0
this motivates to work on my zmodem2 crate again (it is still more than a useful protocol in the modern world e.g., with FPGAs). i think i expand the test programs as utilities having tuis.

https://codeberg.org/jarkko/zmodem2
0
0
1

Jarkko Sakkinen

Cool, my PR for rust-hex was merged:

https://github.com/KokaKiwi/rust-hex/pull/83

It adds decode_in_slice() function, which decodes the hex string within the input buffer overwriting the contents. It is with ugly but still useful for e.g., fast and constrained protocol implementations.

Just came as surprise because the PR was made almost two years ago...

#rust #rustlang
1
1
6

Jarkko Sakkinen

I enjoyed responding this:

https://lore.kernel.org/linux-integrity/aGffUrDSjNH6w6rB@kernel.org/

Enjoyment did come like e.g, for "winning the argument". Instead it s fun to do this type of comparisons for the cause and effect of choices to the resulting binary :-) I did honestly did not know the correct answer beforehand.

Reviewing random day-by day patches can be boring. If I have some extra bandwidth this how I usually spice it up just a bit.

#linux #kernel #arm
0
0
1
@lkundrak lol i immediately decided to drop it
0
0
0

Jarkko Sakkinen

The fact that the issue is so trivial makes me doubtful of myself in this one:

https://github.com/himmelblau-idm/himmelblau/pull/592

#systemd #himmelblau
0
0
0

Jarkko Sakkinen

Himmelblau is the "new Samba" really, but how fast the situation needs to be addressed is on the other hand more like in the metrics of "EFI secure boot", which was an edge case 10+ years ago.

https://www.youtube.com/watch?v=gHnG8KZpYg4

Intune is a technology where open source community needs to be clear on that "no, microsoft, edge + a shitty daemon running on a subset of linux distributions is not acceptable".

#microsoft #intune #himmelblau #samba
0
0
0

Jarkko Sakkinen

experienced this today on a machine running debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1078608

fixed up by:
sudo rm -rv /var/lib/apt/lists/*

#debian
0
1
0

Jarkko Sakkinen

Linux Foundation should take Himmeblau under its Umbrella.

As of today, the project is based on reverse engineering Apple and Windows clients, as the Intune API for Linux that Edge uses in tandem with intune-portal service does not have machine authentication.

"Microsoft Intune App" is based on chain of Microsoft binaries scavenging requested data from a system (Edge and intune-portal).

This blocks essentially the management tools for organization Linux machines by large.

Himmelblau on the other hand is a piece of middleware that manages the computer through the power cycle system-wide for the whole system, and thus can provide both boot-time initialization (himmelblaud) and reoccuring updates needed to maintain the trust (himmelblaud-tasks), such as Kerberos ticket and that kind of stuff.
0
1
0
So... I think for Audio CrossOver is not a great idea. I came to this conclusion after trying out if it could re-enable Rocksmith in macOS.

It's much better idea to run it on an emulated VM for the sake of USB passthrough. Graphics is not high-end in that game and then it will work with audio with best possible quality of service.
0
0
0
@spubby what there is to convince in insecure url? i don't understand what you are talking about. insecure URL is a fucking insecure url. that's it.
0
0
0

Jarkko Sakkinen

Edited 20 days ago
a checkpatch error that provides an insecure URL as guidance lol:

WARNING: unnecessary cast may hide bugs, see http://c-faq.com/malloc/mallocnocast.html

Tried to fix it but also https is broken. It's also quite common mistake, meaning that it pushes insecure in volumes to developers.

#linux #kernel
1
0
0

Jarkko Sakkinen

finnish electro classic from 25-26'ish years ago: https://www.youtube.com/watch?v=xZpZWm5GRXo

i.e. when the electroclash boom was ongoing with lots of stuff coming from i-f, parallax corporation, miss kittin and the hacker, dmx krew and others. stuff like that was playing a lot at venues. good times :-)
0
0
0
Show older