TheHobbyist

joined 2 years ago
[–] TheHobbyist@lemmy.zip 6 points 1 week ago

Indeed, Ollama is going a shady route. https://github.com/ggml-org/llama.cpp/pull/11016#issuecomment-2599740463

I started playing with Ramalama (the name is a mouthful) and it works great. There is one or two more steps in the setup but I've achieved great performance and the project is making good use of standards (OCI, jinja, unmodified llama.cpp, from what I understand).

Go and check it out, they are compatible with models from HF and Ollama too.

https://github.com/containers/ramalama

[–] TheHobbyist@lemmy.zip 19 points 2 weeks ago* (last edited 2 weeks ago) (4 children)

Great to see transparent information about framerates distinguishing AI frames from original frames.

One question is, how should one understand the GPU vram usage, when it is reported as 16.0/15.7 GB?

[–] TheHobbyist@lemmy.zip 2 points 4 weeks ago

I picked up LibrePCB almost 2 years ago and it's been a pleasant learning curve. I can highly recommend it, both for beginners and more advanced users.

It is still missing some few features like auto routing, but if you don't use it, it does a great job.

[–] TheHobbyist@lemmy.zip 3 points 4 weeks ago (1 children)

If you're talking about the latest proposal to hamper encryption, it didn't pass.

https://www.inside-it.ch/vupf-revision-faellt-in-der-vernehmlassung-komplett-durch-20250507

[–] TheHobbyist@lemmy.zip 2 points 1 month ago

Denuvo specifically costs money as it's some kind of subscription so from what I understand most games will drop denuvo one day or another the moment it costs more than the cost of piracy, which is probably once the wave of initial sales has passed.

[–] TheHobbyist@lemmy.zip 4 points 1 month ago

The imagine if their cloud runs the game using proton. The provider with the lowest overhead would have lower costs and thus a cheaper service. If Microsoft doesn't do it, someone else could.

[–] TheHobbyist@lemmy.zip 2 points 1 month ago

Oh yes the 2.0 was also great! They added the rewind feature which is pretty cool.

Both of them can work on the steam deck, though they don't out of the box.

For dirt you have to add a launch option WINE_CPU_TOPOLOGY=4

https://github.com/Open-Wine-Components/umu-protonfixes/issues/328

And for dirt 2 you need to add a fix for Xbox live.

https://www.reddit.com/r/SteamDeck/comments/10ehkot/has_any_one_gotten_colin_mcrae_dirt_2_working/

https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases/download/Win32-latest/xlive-Win32.zip

[–] TheHobbyist@lemmy.zip 4 points 1 month ago* (last edited 1 month ago) (2 children)

You're a gem of a contributor, love the style and content and thank you for making this specifically for Lemmy, much appreciated! :)

Edit: and regarding what I'm playing lately, I'm playing Colin McRae Dirt from 2007 which I recently managed to get working on the steam deck. A fun racing game!

[–] TheHobbyist@lemmy.zip 1 points 1 month ago

What issues do you encounter when you say they "don't work right"?

[–] TheHobbyist@lemmy.zip 4 points 1 month ago (3 children)

How reliable is sleep? Does it actually go to sleep? Is the battery drain in sleep acceptable? Does it come out of sleep without issue? Is it fast to go to sleep and resume from sleep?

My experience with the steam deck has been absolutely stellar regarding sleep, to the point is has been a game changer. So fast to pick up for a quick game and put back to sleep even if playing just for a minute. It's reliable and the battery drain is acceptable maybe (roughly 10% per 24h but didn't measure it explicitly).

 

Hi folks,

I had first written about my attempts here: https://lemmy.zip/post/24041939

I got to learn a lot thanks to some very helpful lemmyist (thank you @chameleon@fedia.io !), but I ran into a wall and tried to persist alone for a while.

While my initial goal is still the same, I'm right now focusing on seeing whether I can rebuild an initramfs myself, excluding any customizations.

My setup is the following:

  • OS: Alpine Linux
  • Bootloader: Grub
  • OpenRC (no systemd)
  • Root in a LUKS encrypted partition
  • EFI firmware

When booting using the default initramfs:

mytestalpine:~# lsblk -o NAME,FSTYPE,FSVER,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINTS
NAME     FSTYPE      FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                  
├─sda1   vfat                    515E-70E4                             238.9M    20% /boot
├─sda2   swap                    667a53d2-dc82-4d2a-a121-63a75da51c24                [SWAP]
└─sda3   crypto_LUKS             73cada8c-5885-4334-b72b-b09b7f919d66                
  └─root ext4                    8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18      5G     3% /
sr0                                                                                  
mytestalpine:~# blkid
/dev/sda3: UUID="73cada8c-5885-4334-b72b-b09b7f919d66" TYPE="crypto_LUKS" PARTUUID="a900120b-4b78-4164-add8-f6a88eadb219"
/dev/sda1: UUID="515E-70E4" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="83a340a7-ec05-4452-a775-178b5d3ea96e"
/dev/sda2: UUID="667a53d2-dc82-4d2a-a121-63a75da51c24" TYPE="swap" PARTUUID="cdddf0ec-5b8d-448f-a1c6-c9a97af06709"
/dev/mapper/root: UUID="8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18" BLOCK_SIZE="4096" TYPE="ext4"

Where I'm at:

  • I've created a custom dracut configuration file /etc/dracut.conf.d/base-initramfs.conf containing:
add_dracutmodules+=" crypt dm rootfs-block "
kernel_cmdline+=" rd.luks.uuid=luks-73cada8c-5885-4334-b72b-b09b7f919d66 "
  • I ran dracut --regenerate-all --force which yielded the following initramfs: -rwxr-xr-x 1 root root 10734241 Nov 27 22:56 /boot/initramfs-6.6.58-0-lts.img
  • I did not touch /etc/default/grub which contains:
GRUB_TIMEOUT=2
GRUB_DISABLE_SUBMENU=y
GRUB_DISABLE_RECOVERY=true
GRUB_CMDLINE_LINUX_DEFAULT="modules=sd-mod,usb-storage,ext4 cryptroot=UUID=73cada8c-5885-4334-b72b-b09b7f919d66 cryptdm=root rootfstype=ext4"
  • I entered my custom boot entry in /etc/grub.d/40_custom:
mytestalpine:~# cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Dracut entry' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-lts-advanced-8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18' {
	load_video
	insmod gzio
	insmod part_gpt
	insmod fat
	set root='hd0,gpt1'

	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  515E-70E4
	else
	  search --no-floppy --fs-uuid --set=root 515E-70E4
	fi

	#search --no-floppy --fs-uuid --set=root 515E-70E4
	echo	'Loading Linux lts ...'
	linux	/vmlinuz-lts root=UUID=8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18 ro  modules=sd-mod,usb-storage,ext4 cryptroot=UUID=73cada8c-5885-4334-b72b-b09b7f919d66 cryptdm=root rootfstype=ext4 rd.shell rd.debug log_buf_len=1M 
	echo	'Loading initial ramdisk ...'
	initrd	/initramfs-6.6.58-0-lts.img
}

This was closely matched to the original boot entry.

  • I then ran grub-mkconfig -o /boot/grub/grub.cfg (at this point, not sure whether normal or not, I see mention of the original initramfs, but not mine:
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-lts
Found initrd image: /boot/initramfs-lts
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
  • When attempting to boot into my entry in grub, I get a blank screen which hangs indefinitely where the only text visible is:
Loading Linux lts ...
Loading initial ramdisk ...
_
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path

I've tried looking up the message but nothing seems to be giving hints at how I can fix it.

Is there something visibly wrong with what I'm doing? I've removed the quiet parameter and added debug flags to the kernel parameters but I'm doing able to get more information from the failed boot... Thanks!

Below is my entire grub conf:

/boot/grub/grub.cfg

mytestalpine:~# cat /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if loadfont unicode ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=2
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=2
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Alpine Linux v3.20, with Linux lts' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-lts-advanced-8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18' {
	load_video
	insmod gzio
	insmod part_gpt
	insmod fat
	set root='hd0,gpt1'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  515E-70E4
	else
	  search --no-floppy --fs-uuid --set=root 515E-70E4
	fi
	echo	'Loading Linux lts ...'
	linux	/vmlinuz-lts root=UUID=8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18 ro  modules=sd-mod,usb-storage,ext4 cryptroot=UUID=73cada8c-5885-4334-b72b-b09b7f919d66 cryptdm=root rootfstype=ext4
	echo	'Loading initial ramdisk ...'
	initrd	/initramfs-lts
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
	menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
		fwsetup
	}
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry 'Dracut entry' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-lts-advanced-8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18' {
	load_video
	insmod gzio
	insmod part_gpt
	insmod fat
	set root='hd0,gpt1'

	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  515E-70E4
	else
	  search --no-floppy --fs-uuid --set=root 515E-70E4
	fi

	#search --no-floppy --fs-uuid --set=root 515E-70E4
	echo	'Loading Linux lts ...'
	linux	/vmlinuz-lts root=UUID=8613c4fe-dbc2-4a4e-9d41-3e7eaa8acf18 ro  modules=sd-mod,usb-storage,ext4 cryptroot=UUID=73cada8c-5885-4334-b72b-b09b7f919d66 cryptdm=root rootfstype=ext4 rd.shell rd.debug log_buf_len=1M 
	echo	'Loading initial ramdisk ...'
	initrd	/initramfs-6.6.58-0-lts.img
}
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Edit: corrected tagged user & formatting

29
submitted 9 months ago* (last edited 9 months ago) by TheHobbyist@lemmy.zip to c/linux@lemmy.ml
 

Hi folks,

I have Alpine Linux installed in an encrypted LUKS partition. I came across this tutorial which shows how to setup a key in a USB drive and when the drive is inserted and the computer booted, the LUKS partition auto-unlocks with the key on the USB drive.

https://askubuntu.com/questions/1414617/configure-ubuntu-22-04-zfs-for-automatic-luks-unlock-on-boot-via-usb-drive

I would like to setup the same thing but I do not have Alpine linux installed on ZFS, so I'm looking for ways to adapt the instructions.

So far, what I've done is:

  1. I've setup the key on the usb stick and I can unlock the LUKS partition with that key.
  2. create a /etc/mkinitfs/features.d/usb-unlock.sh script with the following content:

(the echo to /dev/kmesg was to check whether the script did indeed run at boot by trying to print to the kernel messages but I can't find anything in the kernel messages).

#!/bin/sh

echo "usb-unlock script starting..." > /dev/kmsg

USB_MOUNT="/mnt/my-usb-key" # The USB stick mounting point
LUKS_KEY_FILE="awesome.key"  # The name of your keyfile on the USB stick

# Search for the USB stick with the key
for device in $(ls /dev/disk/by-uuid/*); do
    mount $device $USB_MOUNT 2>/dev/null
    if [ -f "$USB_MOUNT/$LUKS_KEY_FILE" ]; then
        # Unlock the LUKS partition
        cryptsetup luksOpen /dev/sda3 cryptroot \
            --key-file "$USB_MOUNT/$LUKS_KEY_FILE" && exit 0
    fi
    umount $USB_MOUNT
done
echo "No USB key found, falling back to password prompt." # this message never appears, despite not having found the key on the usb stick

echo "usb-unlock script ending." > /dev/kmsg
  1. I added usb-unlock to the features in mkinitfs.conf:
mytestalpine:~# cat /etc/mkinitfs/mkinitfs.conf 
features="ata base ide scsi usb virtio ext4 cryptsetup keymap usb-unlock"
  1. run mkinitfs to rebuild the initramfs. Then reboot to test the implementation, which was unsuccessful.

What am I missing / doing wrong? Thank you for your help!

Edit: forgot to add step 4

 

Hi folks,

I'm seeing there are multiple services which externalise the task of "identity provider" (e.g. login with Facebook, google or what not).

In my case, I am curious about Tailscale, a VPN service which allows one to chose an identity provider/SSO between Google, Microsoft, Github, Apple and OIDC.

How can I find out what data is actually communicates to the identity provider? Their task should simply be to decide whether I am who I claim to be, nothing more. But I'm guessing there may be some subtleties.

In the case of Tailscale, would the identity provider know where I'm trying to connect? Or more?

Answers and insights much appreciated! The topic does not seem to have much information online.

 

Hi folks, I'm considering setting up an offsite backup server and am seeking recommendations for a smallish form factor PC. Mainly, are there some suitable popular second hand PCs which meet the following requirements:

  • fits 4x 3.5" HDD
  • Smaller than a regular tower (e.g. mATX or ITX)
  • Equipped with a 6th of 7th gen Intel CPU at least (for power efficiency and transcoding, in case I want it to actually to some transcoding) with video output.
  • Ideally with upgradeable RAM

Do you know of something which meets those specs and is rather common on the second hand market?

Thanks!

Edit: I'm looking for a prebuilt system, such as a dell optiplex or similar.

 

Yesterday, there was a live scheduled by Louis Grossman, titled "Addressing futo license drama! Let's see if I get fired...". I was unable to watch it live, but now the stream seems to be gone from YouTube.

Did it air and was later removed? Or did it never happen in the first place?

Here's the link to where it was meant to happen: https://www.youtube.com/watch?v=HTBYMobWQzk

Cheers

Edit: a new video was recently posted at the following link: https://www.youtube.com/watch?v=lCjy2CHP7zU

I do not know if this was the supposedly edited and reuploaded video or if this is unrelated.

 

I was exploring the fps and refresh rate slider and I realized that when setting the framerate limiter to 25, the refresh rate was incorrectly set to 50Hz on the OLED version, when the 75 Hz setting would be a more appropriate setting, for the same reason 30 fps is at 90 Hz and not 60 Hz. Anyone else seeing the same behavior? Is there an explanation I'm missing here?

 

Hi folks, I'm looking for a specific YouTube video which I watched around 5 months ago.

The gist of the video is that it was comparing the transcoding performance of an Intel iGPU when used natively, compared to when passed through to a VM. From what I recall there was a significant performance hit and it was around 50% or so (in terms of fps transcoding). I believe the test was performed on jellyfin. I don't remember whether it was using xcpng, proxmox or another OS. I don't remember which channel published this video nor when it was published, just that I watched it sometime between April and June this year.

Anyone recall or know what video I'm talking about? Possible keywords include: quicksync, passthrough, sriov, iommu, transcoding, iGPU, encoding.

Thank you in advance!

 

Hi y'all,

I am exploring TrueNAS and configuring some ZFS datasets. As ZFS provides with some parameters to fine-tune its setup to the type of data, I was thinking it would be good to take advantage of it. So I'm here with the simple task of choosing the appropriate "record size".

Initially I thought, well this is simple, the dataset is meant to store videos, movies, tv shows for a jellyfin docker container, so in general large files and a record size of 1M sounds like a good idea (as suggested in Jim Salter's cheatsheet).

Out of curiosity, I ran Wendell's magic command from level1 tech to get a sense for the file size distribution:

find . -type f -print0 | xargs -0 ls -l | awk '{ n=int(log($5)/log(2)); if (n<10) { n=10; } size[n]++ } END { for (i in size) printf("%d %d\n", 2^i, size[i]) }' | sort -n | awk 'function human(x) { x[1]/=1024; if (x[1]>=1024) { x[2]++; human(x) } } { a[1]=$1; a[2]=0; human(a); printf("%3d%s: %6d\n", a[1],substr("kMGTEPYZ",a[2]+1,1),$2) }'

Turns out, that's when I discovered it was not as simple. The directory is obviously filled with videos, but also tiny small files, for subtitiles, NFOs, and small illustration images, valuable for Jellyfin's media organization.

That's where I'm at. The way I see it, there are several options:

    1. Let's not overcomplicate it, just run with the default 64K ZFS dataset recordsize and roll with it. It won't be such a big deal.
    1. Let's try to be clever about it, make 2 datasets, one with a recordsize of 4K for the small files and one with a recordsize of 1M for the videos, then select one as the "main" dataset and use symbolic links for each file to the other dataset such that all content is "visible" from within one file structure. I haven't dug too much in how I would automate it, but might not play nicely with the *arr suite? Perhaps overly complicated...
    1. Make all video files MKV files, embed the subtitles, rename the videos to make NFOs as unnecessary as possible for movies and tv shows (though this will still be useful for private videos, or YT downloads etc)
    1. Other?

So what do you think? And also, how have your personally set it up? Would love to get some feedback, especially if you are also using ZFS and have a videos library with a dedicated dataset. Thanks!

Edit: Alright, so I found the following post by Jim Salter which goes through more detail regarding record size. It clarifies my misconception about recordsize not being the same as the block size, but also it can easily be changed at any time. It's just the size of the chunks of data to be read. So I'll be sticking to 1M recordsize and leave it at that despite having multiple smaller files, because the important will be to effectively stream the larger files. Thank you all!

view more: next ›