About22 years old developer with something like 10+ years of experience in C.
SkillsC, Bash, Linux
LocationIn a Galaxy far far away.
Joined devRant on 5/13/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
People really need to come up with crazy shit all the time ?
We invent ARM. Then people decide to do Device trees instead of what we had on x86.
We get ARM64 and it becomes the standart.
And now comes the point where it all fucks up.
OEMs start creating 1 DT file for each node. Now they include them all together.
That we can live with. Sorta EZ to follow.
But nooooo thats not enough. We have to be able to change device trees from bootloader.
So we get fucking device tree overlays.
And now you get overlays that overlays another overlay that overlays the base DT. WHAT THE
FUCK. Why. And you get multiple of such cases
Dont get me wrong. Overlays are cool and useful when used right. AKA for what they were made for. Fixing issues in DT. Not adding stuff over working DT. NO.
And ofc in the end you have those overlays compiled into multiple DTBOs that apply over the DTB.
Welcome to ARM64 linux kernel development.12
Welp i was assigned a project of transfering some code that was made in PHP to Go. Neither of which i worked with that closely.
Go seems quite alright.
PHP tho. Like how can you even read this people ?
Dammit brainfuck is simpler and easier to understand then this. And C has less bracket types.
So this will be fun surely.
(I was asked and agreed to do this project since i worked with stuff this is based on before)6
I just realized a weird thing. It will soon be 6 years since i joined devRant. And while i havent been as active as i was before its still sometimes fun to come and rant or read some rants :)
And for those who know me. Yes i still fuck around with Linux kernel development :)
If you are from the 2016-2018 join time come chat a little in comments :) Wondering how many people still hang out here and how many people names i will recognize :P
Well one thing that became obvious today is that companies that make wifi routers really dont want you flashing other firmware on it.
For example i got a new router cause it was time.
Ofc fully compatible with OpenWRT. The thing tho ? The GUI flashing process accepts only encrypted binaries. And surprise we as customers cant encrypt it like they do.
So the next thing that comes to mind instantly is UART. They cant break that right ? Well turns out they can. They just disallow key inputs from console. So you cant make the damn device load into TFTP mode.
And D-Link has this lovely recovery utility that accepts unencrypted firmware. EZ way to flash it right ? WRONG. The garbage doesnt load second time after you load it once in 1 boot. And even if you get it to start loading the firmware. It wont really flash it.
Luckily there was an exploit :)
And joining via telnet and enabling http server on PC and wget-ting the binary from there. And flashing.
Honestly now. I pay money for this garbage. I own the hardware. Let me do what i want with it.
At least it runs kernel 5.10 now and is super fast :) Worth the trouble honestly
(Should be noted im not new to flashing firmware on routers. But this is the first one that really didnt want me to flash it. Like nuking my freaking UART access ? Taking it too fucking far)7
Its been around a year or even more since i switched to Gentoo from Arch.
Dont regret a thing. Made my experience of using my system and working better and faster.
Dont try it just because you want to be part of some gentoo gang or whatever. Its a system. Its a tool. Not some badge you wear. And this tool is a tool you never knew you needed. Takes time to set it up. But once you do. You dont need to reinstall nearly ever. And it will take care of you if you do the same sometimes.
Advice i wish i had when i went into this: Read the news. If you have your config and you get a ton of conflicts. Best chances are that it will be there with explanation how to resolve it all.
There is ofc FAR more i could say. But i doubt anyone wants to hear me talking for entire char limit about the experience.. Tho if people want it i can *shrug*. Its been mostly positive either way.17
Recommending coworkers to use proper git commit messages at meeting.
"We would love to do it but most of the time there aint time for it"
Is it really so fucking hard to follow:
filechanged.ext: What i did
This change was made BECAUSE blah blah.
Seriously it takes seconds at most. When you get used to it you dont even think about it anymore. It just happens.32
So as usual by this point im looking trough some android device tree files. power_profile.xml HMMMMMMM.
I look inside and what dont i find. Battery capacity.
And i wondered for ages why the fuck the app i use for checking hardware capability (Dev Check. Really amazing app for Android ROM developer) reports like 600mAh lower then its supposed to be. I always thought its via the battery. Like we are in 2021. We really didnt yet figure out how big the freaking battery is automatically?
Yes it wont really cause any issues except battery remaining time will be inaccurate but still WTF.2
I just spent entire day soldering stuff onto the PCB for the phone im making (yes a phone you read that right) (Yes im absolutely crazy).
Not because i would suck at soldering but because the project i based the board on (prototype only and future version will be fully from scratch) has PDFs of where the each component goes. BOM and that PDF do not match at all. Yet the names i guess in KiCad match up with BOM. So i used those as reference. Only finished half of it cause i had to redo the entire soldering cause it didnt match up at first. Also turns out im missing some freaking resistors which aint good.18
Fuck you qtwebengine. The most bloated thing to compile on gentoo. Why does a package take 5 hours to build on Ryzen 7 3700X ? Freaking full blown android ROM takes 1.5 hours to build on my machine. So they wanna tell me this thing does more then full blown entire OS ?9
Easy enough. Electrician.
Im already certified to handle voltages upto 1KV while being watched and scored 100% on the test.
If that didnt go too well then probably hardware designed. Like making PCBs and etc.4
Today i got probably the stupidest and fucking coolest idea ever.
And i aint joking.
So what is the idea ?
Well i was wondering when im mainlining devices why dont i build my own board
I mean could be fun right ? RIGHT ?
Why ? Well i was casually looking around aliexpress and Allwinner V3s showed up. Its a tiny SoC with 64MB RAM and some other things.
So i was like why not build board about it. Seems like it runs mainline already. Less job for me. Uboot is ported. Again less work for me. I will need to get some memory for the thing. Cause you bet i will run some crap on it.
Well i will keep you all updated on how its going. Im busy with school and other things so progress will be slow
But in the end i would like to build a board that has Wifi+BT and SDcard slot. Possibly making it into a card size you know for that sweet handing out of cards so you could so it would be a bussiness card. Yes i know about the guy who did this. But his card uses completely different SoC which is far slower.10
What do you do when you are bored?
Normal People: I watch some movie while eating some food.
Haxk20: I mainline phones B)
(Yes i was bored and mainlined another phone :) )11
//Haxk20 question sort of
So i have been bored today and i wanted to give Google Foobar challenges a try again. I did have access to them and i wanted to start clean from scratch on them. "Delete all your data in Foobar" Yeah sounds about right. I type deleteme. Y
Google why the F dont you tell "Hey you idiot you will loose access to this page. So dont do this"
So yeah i lost access to it sadly.
Does anyone have an invite please ?
You can generate one by going to google.com and searching for Arraylist java. I would do it but apparently google hates me.
//Haxk20 going on monitor adventure.
WOW just wow.
I just bought a new monitor. Gaming one so 144Hz and all that crap. Cause you cant find a normal monitor with high refresh rate but oh well.
IPS. So i boot it up and oh good dear WTF are those colors ? Thats not white. Thats freaking shade of yellow.
Oh look FPS profile was selected.
Hmmmmmmm sRGB profile. So it must be accurate right ? WRONG. Horrible colors once again.
Im lucky enough to have a panel thats 97% sRGB calibrated so i could just by eye go and change until it fits. Truly took less than freaking 10 minutes. Worst part ? OEMs dont need to do this for every single monitor. They just need to add "Color accurate sRGB" profile based on 1 model. It wont be perfect but god dammit it wont be yellow.
Also who the freaking hell wants speakers inside monitor ? Dont pack useless shit inside to bump the price please.
But hey at least it can do vertical position and all the adjustments you would need.
All in all after calibration im very happy with it.
Asus VG294Q BTW7
OK so about a week ago i got a job offer. They basically said they are VERY VERY interested. The money looks amazing. Its 50K a year (Yes not a lot for programmer but here its a LOT of money and way above what programmers here get).
But small issue. I cant be in school and work there. While its fully remote its a startup and they need someone fully focused on it.
So they asked me to pause school and work there. If i dont like it or etc i can always return back to Uni without a problem.
After some talk they offered me fully paid trial for 2 weeks or so where i can be in school. But i have to decide 100% after that.
But as you can imagine pausing school is always a big deal. So do i take it ? (I will get paid way more than i would even if i finish Uni. And if i hate it after some time i can return back to school) Or i dont take it ?31
So i was just using my Mi Band 4 and while its cool i dont like having crap like that on my hand. Heck it cant even fucking run Linux kernel. AKA its useless.
Yes that means im going to build the top of the line smartwatch. And actually do the name "SmartWatch" a freaking justice. Android Watch ? HAHAHAHAHAHAHAHAH. Android watch is shit. It can run Linux kernel but its still useless. Its not running mainline linux kernel. And to the new people. If you are going to build anything running Linux. Make sure its fucking Mainline linux or dont bother releasing it.
So while all the plans arent fully done yet. I have some parts ordered and when it all arrives you can expect some pics and probably a writeup on github on how exactly to do it all blah blah.
Obv all the files i will use will be opensource. Except the things i cant control like the firmware of the hardware which is required.16
I just spent 3 hours debugging my 3D printer.
The issue was that the lines extruded werent the exact size as i needed. So the first thing. Esteps for extruder are wrong. I checked 4 times. They were spot on. So i continued searching for the issue. Some belts were looser than i liked. Fixed that. Some bolts were loose. Fixed that. I retry the print. Still same issue. At this point i had no clue what could be wrong. Then i checked esteps again with metal meter. That old ones. Not the electric ones. HOLY SHIT.
5mm off underextruding. I fix it. Reprint and its absolutely perfect.
Now how can a tool that i paid 80$ for thats supposed to have 0.01mm+- accuracy be 5mm off ?
Weird thing is that its exactly 5mm. So now i will never use those ones for precise things cause damn thats a lot of slack.
Point being triple check that the tool you are using is actually correct and precise when doing something like this.
So i just learnt that Cyberpunk 2077 will release with Proton support and it will work out of the box.
Great fucking job Valve.
See you in Night City people !6
Phone CPU on mainline now boosts up to 2.2Ghz. i have arch installed on it as one should and i must damn say im compiling mesa on it and snap its faster than i expected.8
Soooo finally. Day 2 of installing gentoo cane to an end. Right before midnight my first ever freaking gentoo install booted up just fine.
Yes first ever. I did install LFS before and Arch (which i used for 7 years) but never gentoo until now.
TBH only kernel changes are needed and this system will work perfectly. I used bare minimum config i made to get it at least running without GPU first. And yeah well first boot and yeah. I love it.
Its running without GPU and its nearly as fast with it.
Now i see why people say gentoo is the speed. Hell yeah it is.
But yes. The install did take me 2 days. I was aiming for that first ever boot to be a success boot. So i went slow and careful.
Did not use many guides as to learn as much as possible. And to make it more hard i did install systemd amd gnome.
Yeah thats all for today.5
I recommend people who are running linux-next (i know there isnt many of you) Dont update. There is a null pointer dereference. If you updated then have a backup kernel ready cause it will fail to boot.6
So i have little bit of time today between classes. Grabbed old Xperia P.
Tried U-boot again nothing from UART.
Friend suggested hey that kernel base adress seems not correct change it.
I boot it up.
Display says nothing as expected.
I plug in UART.
ITS FUCKING ALIVE
ITS FUCKING ALIVE
OK for those who dont know what u-boot is well.
Im not fucking google. You are programmers. Go fucking search what it is jeez.
OK with that out of the way. What does this mean ?
Well since one guy was so nice and already did most of the work for U8500 chip then well USB should work.
It doesnt exactly but thats small issue cause EMMC works.
Since EMMC works i can check all the partitions and actually flash mainline kernel on this shit.
And well once Mainline shows me some output oh BOI.18
There are too many but let's see.
When I was doing xperia P development I had this issue that it would not install via TWRP cause it would not recognize the phone.
For 2 months I was releasing a manually edited zip file with the hack to fix that bug until I finally fixed it.
Or when I had to hex edit the camera blob cause it was sending a command that new HAL and driver in kernel interpreted as hard reset. I didn't know where the F and why the fuck it's doing it so for like a week I had hacked blob on my phone.
And sadly many many more.
So the bug i posted about last day has been fixed. Fucking variable had 0x465f7 instead of 0x465e7.
In other news tho CP2077 system req are out. And im gonna play it.1
Well what i fucking shitty day today was.
I wake up at 5AM to go to uni to grab some papers.
I miss the bus by few seconds.
The second bus is also late by 3 minutes.
Luckily it arrived with only the 3 minute delay. I grab the papers. Go on train and i pull out my laptop. 15% battery. FUCK. I go charge it in train. I plus in the charger and laptop screen goes black. And laptop is not turning on anymore.
OK i pulled my phone out. That was luckily fine.
I get back home and had to reset CMOS because IDK how a fucking unstable power can do something like this. Like realistically. If somebody can explain it please do.
So it now turns on.
I get spammed by friends to fix a bug i was working on. I thought i had a fix but nope.
Then one of the friends. (One of the best C devs i ever saw) says hey look at this line.
It was LITERALLY 1 fucking letter typo.
I fix it. Oh the bug isnt fucking fixed.
I want to pull my hair out.
The best is that i cant really fucking debug it because its a kernel bug on a phone and there shit is 3x harder then whatever i worked with.
But i bet i will tomorrow send a rant saying that it was some fucking stupid thing i missed totally.2
Who ever thought that creating WCN3980 was a good idea i hate you.
So lets see the story shall we ?
Naive me jumps on the mainline tree.
Everything goes well with the phones we ported.
We have touch and all that jazz.
Now came Bluetooth.
Then the all mighty QCOM decided that downstream they will use some shitty driver to make this piece of shit work.
While the more smart people of upstream (mainline) decided that hey lets do the driver the proper way.
So they did.
Now comes the funny part.
The BT chip isnt connected to SoC normally as one would expect.
It is via UART.
Which is fine you think. Until you take a look how downstream and upstream handle it.
On upstream we have it the proper way of assigning BT node as a subnode of UART.
On downstream ? Just define the BT node as normal node. Driver will figure it the fuck out.
Now on this SoC we have 4 UARTs.
2 of which are crashing\freezing our phones when we enable them.
So lets try the other 2.
1: It boots up which is good but ultimately fails that frame reassembly failed with -84 aka illegal byte sequence.
Yea thats not good.
2: It also boots up and now doesnt throw -84 error on me.
What it does do tho is throw at me timeout error for the chip turning on sequence. (-110)
Then i figure out that 1 vreg (Voltage Regulator) is incorrect. So i fix that.
I left it like this for a while.
I got back to it week or so ago.
The vreg was wrong noticed one of the other guys im working with on this.
So we implement the new regulator type.
I pass it to the driver hoping we get BT but no. Same error.
Today i made the ultimate discovery.
That vreg we set ?
Yes i know by this time its getting crazy but this is making me go nuts
The downstream didnt set VDDIO they set chip power.
I looked in one place. Found the real 10000000% correct regulator for it. Turned it on anddddddd BT still not working.
OK hmmm what if i try setting all the voltages to as the chip wants them to be to be turned on.
BT still not working.
And this is where im right now. Stuck on this piece of shit thing.
I have some ideas what can be wrong. Most of them have been proven wrong by me from testing already tho.2
Yesterday i said i need to make Android 11 building.
Well today i spent literally deleting and reorganizing shit because hey google once again decided that it would be AMAZING if hey LOCAL_COPY_HEADERS would be deprecated completely.
Oh hey you need that in your projects ? SIKE FUCK YOU. We are gonna deprecate it and you cant do shit.
It is building for now. If it will continue and if it will finish (Highely unlikely) is unknown at the moment.
But its building so far.4