Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "disassembly"
-
Fuck all those shitdesigns that interface with their LCD using flat graphite cables!
USE FUCKING COPPER WIRES ALREADY!!! At least those things can take a small fucking tug of gravity during disassembly, unlike that micron-thick graphite junk which fractures even more easily than my goddamn toe did!!!
And as mentioned on Hackaday (https://hackaday.com/2012/09/...), repairing it is hell. How much does it cost to make a decent copper wire.. I can buy those things for like 20 cents from AliExpress, so don't tell me motherfuckturer that you can't. And these copper ribbon wires last on ya, AND can be repaired with a simple soldering job. Unlike this FUCKING GARBAGE!!!7 -
I have this little hobby project going on for a while now, and I thought it's worth sharing. Now at first blush this might seem like just another screenshot with neofetch.. but this thing has quite the story to tell. This laptop is no less than 17 years old.
So, a Compaq nx7010, a business laptop from 2004. It has had plenty of software and hardware mods alike. Let's start with the software.
It's running run-off-the-mill Debian 9, with a custom kernel. The reason why it's running that version of Debian is because of bugs in the network driver (ipw2200) in Debian 10, causing it to disconnect after a day or so. Less of an issue in Debian 9, and seemingly fixed by upgrading the kernel to a custom one. And the kernel is actually one of the things where you can save heaps of space when you do it yourself. The kernel package itself is 8.4MB for this one. The headers are 7.4MB. The stock kernels on the other hand (4.19 at downstream revisions 9, 10 and 13) took up a whole GB of space combined. That is how much I've been able to remove, even from headless systems. The stock kernels are incredibly bloated for what they are.
Other than that, most of the data storage is done through NFS over WiFi, which is actually faster than what is inside this laptop (a CF card which I will get to later).
Now let's talk hardware. And at age 17, you can imagine that it has seen quite a bit of maintenance there. The easiest mod is probably the flash mod. These old laptops use IDE for storage rather than SATA. Now the nice thing about IDE is that it actually lives on to this very day, in CF cards. The pinout is exactly the same. So you can use passive IDE-CF adapters and plug in a CF card. Easy!
The next thing I want to talk about is the battery. And um.. why that one is a bad idea to mod. Finding replacements for such old hardware.. good luck with that. So your other option is something called recelling, where you disassemble the battery and, well, replace the cells. The problem is that those battery packs are built like tanks and the disassembly will likely result in a broken battery housing (which you'll still need). Also the controllers inside those battery packs are either too smart or too stupid to play nicely with new cells. On that laptop at least, the new cells still had a perceived capacity of the old ones, while obviously the voltage on the cells themselves didn't change at all. The laptop thought the batteries were done for, despite still being chock full of juice. Then I tried to recalibrate them in the BIOS and fried the battery controller. Do not try to recell the battery, unless you have a spare already. The controllers and battery housings are complete and utter dogshit.
Next up is the display backlight. Originally this laptop used to use a CCFL backlight, which is a tiny tube that is driven at around 2000 volts. To its controller go either 7, 6, 4 or 3 wires, which are all related and I will get to. Signs of it dying are redshift, and eventually it going out until you close the lid and open it up again. The reason for it is that the voltage required to keep that CCFL "excited" rises over time, beyond what the controller can do.
So, 7-pin configuration is 2x VCC (12V), 2x enable (on or off), 1x adjust (analog brightness), and 2x ground. 6-pin gets rid of 1 enable line. Those are the configurations you'll find in CCFL. Then came LED lighting which required much less power to run. So the 4-pin configuration gets rid of a VCC and a ground line. And finally you have the 3-pin configuration which gets rid of the adjust line, and you can just short it to the enable line.
There are some other mods but I'm running out of characters. Why am I telling you all this? The reason is that this laptop doesn't feel any different to use than the ThinkPad x220 and IdeaPad Y700 I have on my desk (with 6c12t, 32G of RAM, ~1TB of SSDs and 2TB HDDs). A hefty setup compared to a very dated one, yet they feel the same. It can do web browsing, I can chat on Telegram with it, and I can do programming on it. So, if you're looking for a hobby project, maybe some kind of restrictions on your hardware to spark that creativity that makes code better, I can highly recommend it. I think I'm almost done with this project, and it was heaps of fun :D12 -
Recently I got into contact with the supplier of that 500W power supply that I've been servicing earlier, as I lost my pictures of the disassembly process with that craptacular Nexus 6P (didn't back them up.. terrible sysadmin, am I not?) and wanted to get the circuit diagrams of this thing in order to repair it. Sales girl wanted to give it to me but she'd have to ask the factory people.. and of course those people denied. As if I wanted to use this for anything but to repair my own bloody unit.. pieces of shit.
So I started considering buying a second one, in order to repair my current supply that I've already spent half a week on to document its components, desolder it, clean it up and resolder it (and replace some resistors here and there with better ones from my own assortment). And the project had to be paused because I lost the stupid pictures and couldn't for the love of God figure out how there's supposed to be a jumper near BD2.
Just now going through my notifs..
"Someone ++'d your rant!"
*clicks notif*
A rant that I completely forgot about.. https://devrant.com/rants/1757297. It's a perfect picture of the supposed jumper near BD2 that I was scratching my head about for so long. Turns out that it's just a dupe of the LF2 lines that I erroneously wrote down twice. DevRant, it's good for more than just venting, haha! Time to restore from a cloud backup XD3 -
FUCK! agshdklgdahgisdahl;k!
I just spent 45 FUCKING MINUTES debugging try to figure out WHY THE HELL a function that is supposed to return either a pointer to a valid object OR ZERO if a valid object is not found, was RETURNING FUCKING EIGHT!
Then I saw it... I typed:
nodeList[index];
instead of:
return nodeList[index];
It took me looking at a stack trace and a disassembly of the function to realize this.
Can't wait for this three-day weekend...18 -
Bad thing: I spilled booze on my fabrics yet again. I probably shouldn't drink from the couch or the bed anymore.
Good thing: I found out how to disassemble my tablet and removed its cameras.
Bad thing: front cam couldn't be removed without damaging some traces for a coax connection.
Bad thing: during disassembly I noticed significant amounts of corporate "fuck you" and certified enganeering. Like allowing the rubber back plates of the tablet to come off, but not get back on without percussive maintenance!!! FUCKING CERTIFIED PIECES OF SHIT!!!
Good thing: even after a lot of Tappy-tap-tap, the tablet still works without a problem. Hopefully I can now save some others from the shitstains by posting about it on the XDA thread 🤔
Overall verdict: FUCK!!!12 -
Upgrading RAM in a customer's laptop, pretty easy, right?
Well not in the Asus VivoBook Max. You have to disassemble everything just to get to the slot under the motherboard because it was too hard to put a fucking hole in the bottom for that. 20 minutes to complete the job and you know what? I also managed to break a flex cable so now I have to fix that or buy a replacement for the whole keyboard/mousepad assembly.
FUUUUUUUUUUUUUCK3 -
It bothers me that tablet/computer disassembly videos are trending toward being labelled "take-apart guides" instead of "disassembly guides"6
-
I wanted to update my previous rant in the comment but what happened is such a fucking nonsense I think it deserves its own.
For those who don't want to look what it is, just another C++ noob (aka me) complaining about how the language was a bitch to him by throwing a random SEGFAULT on release while it didn't show up on debug. Welp.
Half an hour and a ton of std::cout later (thought I would try to read a disassembly ? Think again) I figured out what was the problematic section of code. And guess what ? It was a section I didn't even modify and I never had problems with. Something completely unrelated to what I was rightly imagining causing the issue.
To identify which exact subsection was throwing the error to my face I added more tag code.
Rubbing my hands and ready to fix the fuck out of this damn shit, I built it, launched it…
And all of a sudden the code worked.
All I did. Was to add more cout to know which line fucked up. And now it works.
So. Serious question now: is it a clear sign from heaven I should stop working with such languages and should go back in my shitty high level languages kindergarten ?10 -
"No website is as good as a good book. And no good book is as good as a disassembly output."
http://fabiensanglard.net/c/ -
Ranted earlier about how my debugger was fucking up. Jokes on me, it's now the only thing that works well.
The fucking C++ code behaves normally in debug build, but when in release build throws a SEGFAULT out of nowhere. Bet it's tellg() or my unsigned to signed conversion that fuck things up (while they work perfectly in debug, I repeat). But I can't tell, since the only way I have to trace back the issue is the disassembly ¯\_(ツ)_/¯7 -
I was introduced to disassembly/reverse engineering today. It's amazing how many production applications use isLicenseValid() or other helpful function signatures to assist in my practical learning :p I'm looking at you sublime text
-
I work on my high school's tech team but all we do is hardware replacement work which I've been doing since I know how to read disassembly instructions. (I was a bored destructive kid)
I thought I was going to enjoy work and learn. Now all I do is work with immature children who know nothing and learn programming on my own when we don't have parts in
Also attempt to educate my 'coworkers' when we do have software issues I know about -
!rant
Error codes are better than exceptions, because they are faster and easier to get right.
O'Rlly? Did you measure that? How does the disassembly look like? Well ... go and fucking measure it!