cemkaya-mpi / Dell-G15-Controller

GNU General Public License v3.0
25 stars 11 forks source link

dell g15 5530 #17

Open MouseRun opened 3 months ago

MouseRun commented 3 months ago

Does this project support the Dell G15 5530?

cemkaya-mpi commented 3 months ago

Hello, not yet. If you have a 5530, could you share the output of the following?

#!/bin/bash

c(){ echo "$1" | sudo tee /proc/acpi/call >/dev/null && sudo cat /proc/acpi/call;echo;}

for mode in 0xa{0..9} 0xa{a..b}
do
    echo "Trying mode ${mode}"
    echo "\_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}"
    c "\_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}"
done
echo "Reverting to balanced."
c "\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}"

You could also try replacing AMWW with AMW3 and try again if there are no zeros in the results.

meduk0 commented 2 months ago

well i have this model and wanna share the result :

Trying mode 0xa0
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}
[sudo] password for meduko: 
0x0
Trying mode 0xa1
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa1, 0x00, 0x00}
0x0
Trying mode 0xa2
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa2, 0x00, 0x00}
0xffffffff
Trying mode 0xa3
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa3, 0x00, 0x00}
0x0
Trying mode 0xa4
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa4, 0x00, 0x00}
0xffffffff
Trying mode 0xa5
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa5, 0x00, 0x00}
0x0
Trying mode 0xa6
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa6, 0x00, 0x00}
0xffffffff
Trying mode 0xa7
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa7, 0x00, 0x00}
0xffffffff
Trying mode 0xa8
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa8, 0x00, 0x00}
0xffffffff
Trying mode 0xa9
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xa9, 0x00, 0x00}
0xffffffff
Trying mode 0xaa
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xaa, 0x00, 0x00}
0xffffffff
Trying mode 0xab
\_SB.AMWW.WMAX 0 0x15 {0x01, 0xab, 0x00, 0x00}
0x0
Reverting to balanced.
0x0

NOTE : the version i have is an i5 13450hx and rtx 3050 with a while backlight keyboard i personnally poweroff entirely my dgpu when working so just configuring the fan speed is still my only problem (as it can be a pain sometimes )

cemkaya-mpi commented 2 months ago

Good. The zeros give me the list of supported power modes. Could you also share the result of

c "\_SB.AMWW.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}"

meduk0 commented 2 months ago

@cemkaya-mpi it is : 0x0 from what i understand :
0xa0: Balanced mode 0xa1: Performance mode 0xa2: Cool mode (seems to be unsupported you even commented it in main.py) 0xa3: Quiet mode 0xa4: Full Speed mode 0xa5: Battery Saver mode 0xa6 to 0xab: Results seem to be consistent with unsupported from my model
btw the bios offer 4 modes (quiet , battery , balanced and performance ) and the AWC offer battery quiet balanced and G mode for the keyboard my version only have white backlight which is easy to take care of (as i can controll it with a 4 lines bash script in hypr )

cemkaya-mpi commented 2 months ago

Well, if this returns 0, we need another way of finding out that the device is a 5530. On other models, this command returns the laptop model so that the correct acpi calls can be chosen.

Could you share your dsdt?

Dias-Gabs commented 2 months ago

Hey bro, I'm almost going mad because, once again, I can't stand Windows. I have a Dell G15 5530 i7 13gen, RTX 3050 6Gb. Is there any chance of at least being able to turn on the fans? The Dell g15 gets very hot even with the Alienware OC controls in use, imagine without...

Result of the commands you requested:

done echo "Reverting to balanced." c "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}" Trying mode 0xa0 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa1 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa1, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa2 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa2, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa3 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa3, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa4 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa4, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa5 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa5, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa6 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa6, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa7 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa7, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa8 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa8, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xa9 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa9, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xaa _SB.AMWW.WMAX 0 0x15 {0x01, 0xaa, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Trying mode 0xab _SB.AMWW.WMAX 0 0x15 {0x01, 0xab, 0x00, 0x00} tee: /proc/acpi/call: No such file or directory

Reverting to balanced. tee: /proc/acpi/call: No such file or directory

Last one: c "_SB.AMWW.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}" tee: /proc/acpi/call: No such file or directory

meduk0 commented 2 months ago

@Dias-Gabs install acpi my bro sudo pacman -S acpi (for more info check the arch wiki ) @cemkaya-mpi sorry for late response . sudo dmesg | grep DSDT gives : [ 0.008939] ACPI: DSDT 0x0000000061748000 09F811 (v02 DELL Dell Inc 00000002 01000013) [ 0.009044] ACPI: Reserving DSDT table memory at [mem 0x61748000-0x617e7810] [ 0.371248] ACPI: \_SB_.PC00.LPCB.ECDV: Boot DSDT EC used to handle transactions [ 1.263432] ACPI: \_SB_.PC00.LPCB.ECDV: Boot DSDT EC initialization complete

cemkaya-mpi commented 2 months ago

Hi, the following command(s)

c "\_SB.AMWW.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}"
c "\_SB.AMW3.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}"

are used in other G15 models to determine the laptop model. It should return the laptop model number for the 5530, which is used to determine the correct acpi calls. In case both of the above return 0 or an error for both of you, I need to use another way to determine that the current laptop is the 5530. Could you please share the whole dump of the dsdt, and not just sudo dmesg | grep DSDT ? The procedure can be found here.

Dias-Gabs commented 2 months ago

I managed to manipulate the fans in Fedora, but unfortunately not with your app. I made a brief .py to run and added it via command. But I ended up having some major problems with Fedora and didn't get used to it. I'm not very experienced with Linux, but I've used Ubuntu on my desktop before, so I went for it. But this is the first time I've used Linux on a laptop that has controllable fans.

Sorry if I'm not being very helpful, but I understand that the commands are different for each model of laptop, so they should work on Ubuntu too since I haven't changed my laptop model, right?... But every time I try to use the same commands that worked on Fedora, I get an ‘Invalid Argument’. I even tried to understand a bit more about the ACPI, but I don't have the knowledge to risk testing anything. If you need any more specific help, I'm happy to help. I don't know if different arguments should be used for each Linux distro, but if there is something I'd love to test. I just wanted to be able to work and play without windows consuming almost all my RAM, and without my dell catching fire in Linux lol.

I got the DSDTs dump (dsdt.dat & dsdt.dsl) and they are ok, but i'm not being able to upload/send it, not even PasteBin or others. I also tried copying to a .txt but didn't work. I can perfectly read these files, but It seems they won't leave my pc lol. I will try something else soon.

The result of the last two commands you asked for was also Invalid Argument. But well... I'm sure mine is the 5530. c "_SB.AMWW.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}" c "_SB.AMW3.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}"

Worked on Fedora: " echo "- Testing mode: 0xa0" echo "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}" | sudo tee /proc/acpi/call && sudo cat /proc/acpi/call

echo "- Testing mode: 0xa1" echo "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa1, 0x00, 0x00}" | sudo tee /proc/acpi/call && sudo cat /proc/acpi/call

echo "- Testing mode: 0xa3" echo "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa3, 0x00, 0x00}" | sudo tee /proc/acpi/call && sudo cat /proc/acpi/call

echo "- Testing mode: 0xa5" echo "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa5, 0x00, 0x00}" | sudo tee /proc/acpi/call && sudo cat /proc/acpi/call

echo "- Testing mode: 0xab" echo "_SB.AMWW.WMAX 0 0x15 {0x01, 0xab, 0x00, 0x00}" | sudo tee /proc/acpi/call && sudo cat /proc/acpi/call "

Ubuntu result: " root@dias-Dell-G15-5530:~# #!/bin/bash

c(){ echo "$1" | sudo tee /proc/acpi/call >/dev/null && sudo cat /proc/acpi/call;echo;}

for mode in 0xa{0..9} 0xa{a..b} do echo "Trying mode ${mode}" echo "_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}" c "_SB.AMWW.WMAX 0 0x15 {0x01, ${mode}, 0x00, 0x00}" done echo "Reverting to balanced." c "_SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00}" Trying mode 0xa0 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa0, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa1 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa1, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa2 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa2, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa3 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa3, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa4 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa4, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa5 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa5, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa6 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa6, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa7 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa7, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa8 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa8, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xa9 _SB.AMWW.WMAX 0 0x15 {0x01, 0xa9, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xaa _SB.AMWW.WMAX 0 0x15 {0x01, 0xaa, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Trying mode 0xab _SB.AMWW.WMAX 0 0x15 {0x01, 0xab, 0x00, 0x00} tee: /proc/acpi/call: Invalid argument

Reverting to balanced. tee: /proc/acpi/call: Invalid argument "

meduk0 commented 2 months ago

@Dias-Gabs i don't use ubunto (never did the most close i got was debian for 2 years )make sure you have acpi installed in your system (it might be the reason for tee: /proc/acpi/call: Invalid argument ) i don't know about your version of the laptop (mine i5 13450hx rtx 3050 ) but i figured out how to conrol the fans https://wiki.archlinux.org/title/fan_speed_control#Dell_laptops
you can contact me if you need some help :)

cemkaya-mpi commented 2 months ago

Yes, acpi_call module is a dependency and should be installed from ubuntu repositories.

Since both laptop model calls

c "\_SB.AMWW.WMAX 0 0x1a {0x02, 0xa02, 0x00, 0x00}"
c "\_SB.AMW3.WMAX 0 0x1a  {0x02, 0xa02, 0x00, 0x00}"

return 0, the call might be different for the 5530, which is why I need the dsdt to check which acpi call has to be made.

cemkaya-mpi commented 1 month ago

Any progress with dsdt.dsl?

meduk0 commented 1 month ago

for me nah i just found out my way (thx for the inspiration and the info i was able to make the necessary changes ) i guess i will close the issue @Dias-Gabs plz confirm

meduk0 commented 1 week ago

@cemkaya-mpi can we end this by getting the 5530 added to the list of compatible devices :)