fl42v

joined 2 years ago
[โ€“] [email protected] 12 points 2 weeks ago (2 children)

Any of them. I'd just write a program that interprets a sequence of keypresses as Morse code beforehand ๐Ÿคท

[โ€“] [email protected] 3 points 2 weeks ago

I guess I misunderstood the meme, then: to me it looked like a jab at nerds that ignore "simpler" solutions when they themselves have a problem, rather than said nerds giving overcomplicated advice

[โ€“] [email protected] 2 points 2 weeks ago (1 children)

The hammers look more like those wooden foot thingeys used to make shoes, tho...

[โ€“] [email protected] 3 points 2 weeks ago

GuixSD then /jk

[โ€“] [email protected] 7 points 2 weeks ago (3 children)

Sometimes it's easier to assemble what you need from parts than go adding/removing stuff from somewhat monolithic solutions, tho.

[โ€“] [email protected] 1 points 2 weeks ago (13 children)
[โ€“] [email protected] 22 points 2 weeks ago (1 children)

Yap, not a demon, just a core. You'll also need an init and a set of coreutils to make one.

[โ€“] [email protected] 1 points 2 weeks ago

I mean, it might be interesting. To be clear, I don't dislike French, it's quite fun, just weird at times

[โ€“] [email protected] 23 points 2 weeks ago (6 children)

At least it's not as f-d up as French where dudes casually ignore like half of the letters in a sentence.

[โ€“] [email protected] 8 points 3 weeks ago

Sigh. I was hoping for an ARG at least.

[โ€“] [email protected] 8 points 3 weeks ago

a message

Or 6

[โ€“] [email protected] 2 points 3 weeks ago

Neither can we, little system. Neither can we.

 
15
submitted 4 months ago* (last edited 2 months ago) by [email protected] to c/[email protected]
 

Basically, a collection of notes on building and running libreboot on t480. Hope it helps sb avoid a few pitfalls I've personally encountered. Corrections/other ways to do stuff are welcome.

  1. If you're building libreboot from source like I did, you may want to replace repo URLs with mirrors in config/git/grub, as gnu repos are slow AF;
  2. To boot your system, you'll need it to either be bootable via legacy bios (libreboot uses seabios by default), or, more realistically, have grub bootloader. On NixOS, I've changed the bootloader config to:
boot.loader.grub = {                          
  enable = true;                  
  device = "nodev"; # generate grub.cfg without installing grub itself  
  theme = lib.mkForce null;       
  font = lib.mkForce null;        
  splashImage = lib.mkForce null; 
};                                

Notice the disabled theming/fonts/background image: in my case, libreboot's grub would only show the blank screen 'til I disabled them, so you may want to trim your config to only menu entries or something. Then when booting, you simply press ESC, choose grub, and select either loading the OS or searching for bootloader configs on NVMe.

  1. If you didn't do [2], and are unable to boot your system, you may have some trouble with seabios not seeing your live USB you're bringing to fix that. In this case, try again a few times: as far as I can tell, that happens when you press ESC too early.
  2. Having seabios auto-start grub: echo '/rom@img/grub2' > bootorder && cbfstool libreboot.rom add -f bootorder -n bootorder -t raw (slightly modified command from here). Dumping and re-flashing libreboot without an external programmer is done with flashprog -p internal and requires iomem=relaxed in kernel cmdline;
  3. Annoying stuff: FnLock turns on when booting or waking up from sleep; unsure on how to disable this as nvramtool refuses to work (mb a skill issue). Also, disconnecting the external battery while the laptop is powered on seems to cause a reboot.
  4. Libreboot's grub can be themed: see this for how it's currently done (although, note, that we need config/grub/xhci/config/payload and not config/grub/default/config/payload) and this for an example of how it can look.
  5. Battery stuff, probably related to the Embedded Controller's firmware: charge thresholds don't seem to work (and the corresponding files are missing), ~~/sys/class/power_supply/BAT1/energy_{now,_full{,_design}} are now charge_full{,_design}, new option current_now~~ [Edit 3: this seems to be related to changes in the kernel or something]

[Edit] 2 more bugs:

  1. ~~Charge cycles are always 0 [mb an issue with my batteries, tho]~~ [Edit 4: at least one person reports their batteries reporting charge cycles as intended; likely the problem with my batteries];
  2. ~~The laptop constantly tries to power on if it dies due to depleted battery.~~ ~~[Edit 4: Possibly a one-off or a different reason altogether, couldn't trigger it again.]~~ [Edit 5: reproduced it; seems to happen when both batteries are present and upower is not installed; works fine with upower, tho]

[Edit 2]:

  1. charge measurements don't play well with cosmic-epoch on nixos in my particular case: the percentage doesn't seem to get updated, but looks somewhat correct upon reboots;
  2. Reduced backlight brightness range: /sys/class/backlight/acpi_video0/max_brightness is now 15, and not ~1515 as it was before.

[Edit 5]:

  1. Mute/micmute indicators not working;
  2. Monitors connected via the dock aren't detected when hot-plugged (works fine on {re,}boot, mb distro-related?)
350
submitted 4 months ago* (last edited 4 months ago) by [email protected] to c/[email protected]
 

Well, technically anywhere from 5 to 40, but I still have a nice chance to grow old before libreboot starts building. Also, still slower than dial-up.

 

So, yet another "if you're in the middle of nowhere and can't/don't_want_to wait for proper tools to arrive" kind of post.

Firstly, there's pico-serprog with quite good instructions from the libreboot project. Unfortunately, it didn't want to detect the chip at all in my case (in hind sight, likely due to the board pinouts being different between my board and a regular pico and them providing pico pins and not gpio numbers)

What worked, albeit rather slowly, was pico-dirtyjtag. If using this one, the connections are as follows:

  • cs - gp19
  • miso - gp17
  • mosi - gp16
  • clk - gp18
  • gnd - gnd
  • 3v3 - 3v3

The chip pinouts can be sourced from the libreboot guide/a laptop schematic/ic datasheet. Flashing with sudo flashprog -p dirtyjtag_spi -w rom.rom (or flashrom instead of flashprog). It may complain that there are multiple definitions matching the chip, in which case you manually choose one of the mentioned with -c (in my case -c W25Q32FV and -c W25Q64BV/W25Q64CV/W25Q64FV for top and bottom chips respectively).

Also applicable to stm boards with the main dirtyjtag repo.

 

So, I've dug up my corebooted t440p and decided to check if it'll work with the battery from my t480, and it did! Well, sort of.

Since coreboot also replaces the embedded controller firmware (mb sometimes they keep blobs of it, idk, but certainly not in case of t440p), we won't get those nasty "battery not supported, pay me" messages even if they've changed the verification since then.

However, I suspect some batteries may be unprepared for the power draw of earlier models. I've tested it on 2 batteries, one was a 22wh โ†’ 72wh conversion with BMS built on top of a cheap controller with rather unpleasant feedback from battery repair people; the other one was a more trustworthy 72wh clone powered by bq8050. The latter one worked ootb, while the former somewhat worked: fine in uefi, fine in grub, drop voltage to 0 as soon as the os starts loading โ†’ poweroff. If the power supply is plugged in during boot, the battery works fine (may drop voltage again under load, haven't tested it myself).

Soo, basically the use case is that you can try to retrofit the guts of a newer battery into older thinkpads if those run core/libreboot.

 

I've replaced cells in my fake battery a few days ago, and while recalibrating the bms I noticed what looked like it trying to overcharge the cells -- the voltage went up to above 12.6v and stabilized at around 12.9 (which amounts to ~4.3v per cell and is 0.1v above what cell manufacturers generally recommend). Idk if that's the intended behavior or clone manufacturers trying to shorten the lifetime of said batteries, so if the owners with genuine batteries can provide that info, I'd really appreciate it.

On linux, you can check this with cat /sys/class/power_supply/BAT*/voltage_now (as your usual user, those files are world-readable); not sure about windows, tho.

 

Decided to share an older "project" of mine - ms sculpt wireless to wired conversion (also, it runs qmk, so we get all its features). A sensible person would order a custom pcb (such projects exist on the web, take a look if you're interested), but I went with removing all the components except from the ribbon cable connector, sending the PCB smooth, gluing a piece of discount card to isolate the traces, gluing a Chinese rp2040 on top, and wiring all the necessary traces to it. No, it wasn't fun. Yes, it works.

Bonus: when I disassembled it now I found out the type-c wasn't soldered well and decided to separate from the board:

ResizedImage_2024-04-08_18-20-32_2

So, here we go: using phone as a poor man's microscope (note: also, still works)

ResizedImage_2024-04-08_18-20-32_1

The end result kinda doesn't give it out, so whatever (insert your frontend -- backend jokes here)

ResizedImage_2024-04-08_18-36-32_1

 
 

So, a while ago I bought a cheapest oneplus 6 available in my area to subject it to a few experiments with running Linux. Among the other issues that came for that price, the power button was almost flush to the frame, hard to press, and had almost no feedback.

Today I finally got tired of it and decided to check what's wrong. The button itself turned out to be just fine, but the thingy that presses it looked weird:

ResizedImage_2024-03-12_23-02-59_1

After a few tries of gluing smth to extend the middle pin, I found out that I can just cut off a piece of plastic from the blister of my favorite headache pills and place it between the button and said thingy. Works wonders ๐Ÿคฃ

ResizedImage_2024-03-12_23-07-45_1

Btw, the actual problem is that it was missing a few rubber spacers, as far as I understand, but whatever

ResizedImage_2024-03-12_23-11-42_2008

 

Tinkering is all fun and games, until it's 4 am, your vision is blurry, and thinking straight becomes a non-option, or perhaps you just get overly confident, type something and press enter before considering the consequences of the command you're about to execute... And then all you have is a kernel panic and one thought bouncing in your head: "damn, what did I expect to happen?".

Off the top of my head I remember 2 of those. Both happened a while ago, so I don't remember all the details, unfortunately.

For the warmup, removing PAM. I was trying to convert my artix install to a regular arch without reinstalling everything. Should be kinda simple: change repos, install systemd, uninstall dinit and it's units, profit. Yet after doing just that I was left with some PAM errors... So, I Rdd-ed libpam instead of just using --overwrite. Needless to say, I had to search for live usb yet again.

And the one at least I find quite funny. After about a year of using arch I was considering myself a confident enough user, and it so happened that I wanted to install smth that was packaged for debian. A reasonable person would, perhaps, write a pkgbuild that would unpack the .deb and install it's contents properly along with all the necessary dependencies. But not me, I installed dpkg. The package refused to either work or install complaining that the version of glibc was incorrect... So, I installed glibc from Debian's repos. After a few seconds my poor PC probably spent staring in disbelief at the sheer stupidity of the meatbag behind the keyboard, I was met with a reboot, a kernel panic, and a need to find another PC to flash an archiso to a flash drive ('cause ofc I didn't have one at the time).

Anyways, what are your stories?

view more: next โ€บ