Avoid the ASUS RoG Zephyrus GA502DU -Ryzen

Because there are always risks involved and flashing firmware is not something to be done flippantly. It is only recommended to ever do so as and when it is known to fix an issue with a computer you are experiencing. Are you 100% sure the setting you need will be restored by downgrading? If not, think twice about it.

Figured it out, they renamed it to enable or disable secure boot control. What that does is it now allows you to authorized keys that allow systems to boot. I wonder if manajro could reach out and be like hey add us. Canonical has a an authorized key listed so that's why ubuntu can boot with secure boot enable.

Manjaro would have to pay Microsoft for that to happen as Canonical, RH and SUSE have done. In the meantime, if you must use secureboot there is a way but it is a heck of a lot of hassle:

https://wiki.archlinux.org/index.php/Secure_Boot

1 Like

Freaking Microsoft, I got it boot to the live usb so we are good on that front. Now making a system image of my windows set up before I nuke it again. I rather not deal with the headache of dual booting especially if everything works which it should now that I have all the pieces to the AMD/NVIDIA puzzle.

The bios has an option to actually import keys to the trusted. Does it still need to be signed off on by Microsoft?

that's where you can add the Machine Owner Key (MOK) as described in the arch wiki I linked to.

@Swagglepuf what do you think of the GA502DU in general on Manjaro? I am looking for a laptop and this seems to fit the bill. Any complaints? Thanks

Honestly I went back to windows on that machine. For the simple purpose of being able to game with a subscription based service. The xbox game pass for pc specifically is what I have currently its not supported with linux.

It is a solid computer and works amazing, the only issue is the hybrid graphics. I have a thread on here with the solution to get it to work that I will link in the bottom. Once that is set up and working you shouldn't have to many issues. I am unsure of the other distros and getting automatic prime offloading to work. If you install on another distro it will only use the igpu this even includes pop_os in my experience.

i think the mature thing for me to do here is to respond with this :grin:

told ya so!! :stuck_out_tongue_closed_eyes:

optimus-switch for ryzen/nvidia, i made a custom repo for the setup, with install script.

sudo set-nvidia.sh for nvidia prime mode, nvidia outputs to amdgpu the same as it would modesetting on an intel/nvidia setup.

sudo set-amd.sh sets amd-only mode, nvidia can be disabled/powered down to save battery.


thats the lightdm version, i'll be making the sddm and gdm versions in the next day or two
3 Likes

Well I guess its time to make a back up image of windows and install manjaro and test this bad boy out.

Install this using git clone and makepkg -si?

What about the custom xorg.conf I need just to get a bootable system?

boot the live environment however you can and get manjaro installed first, then boot to TTY and follow the directions i posted in the linked thread.

yes

no.

right now i only have the lightdm version ready for amd/nvidia laptops. i have to make some time to port over the other versions for SDDM and GDM. the lightdm version should work for xfce, openbox, awesome, cinnamon, i3 and whatever else ISO uses lightdm as a DM

Hi I made a fork of your repo and added the Xsetup file for SDDM. I tried it out on my machine and it works.

1 Like

i decided not to make the sddm and gdm versions for amd/nvidia setups since prime sync doesnt seem to work with amd/nvidia but anyone is more than welcome to do so if they like. :+1:

Does this follow the same install instructions as the lightdm? Going to add it to my tutorial for my model laptop.

Yes it should. I only tried it on my machine, feel free to ask for help if it is not working for you.

[SOLVED]
Hi, I recently installed manjaro and break it during drivers installation. Which drivers I must have/install to use this script?

P.S. You are magicians. I've just removed all drivers, installed packages listed in script's message, convert script file to unix format and run. And it is booting successfully now!

To resolve the keyboard backlight issue patch your kernel with the following:

diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
index e6e4c841fb06..f7fa2ceb728b 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -260,12 +260,14 @@ static int asus_report_input(struct asus_drvdata *drvdat, u8 *data, int size)
 static int asus_event(struct hid_device *hdev, struct hid_field *field,
 		      struct hid_usage *usage, __s32 value)
 {
-	if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
+	/* No need to warn because it'll just spam the log until we get a proper fix.
+     *
+     * if ((usage->hid & HID_USAGE_PAGE) == 0xff310000 &&
 	    (usage->hid & HID_USAGE) != 0x00 &&
 	    (usage->hid & HID_USAGE) != 0xff && !usage->type) {
 		hid_warn(hdev, "Unmapped Asus vendor usagepage code 0x%02x\n",
 			 usage->hid & HID_USAGE);
-	}
+	}*/
 
 	return 0;
 }
@@ -415,13 +417,13 @@ static int asus_kbd_register_leds(struct hid_device *hdev)
 		return ret;
 
 	/* Get keyboard functions */
-	ret = asus_kbd_get_functions(hdev, &kbd_func);
+	/* ret = asus_kbd_get_functions(hdev, &kbd_func);
 	if (ret < 0)
-		return ret;
+		return ret;*/
 
 	/* Check for backlight support */
-	if (!(kbd_func & SUPPORT_KBD_BACKLIGHT))
-		return -ENODEV;
+	/*if (!(kbd_func & SUPPORT_KBD_BACKLIGHT))
+		return -ENODEV;*/
 
 	drvdata->kbd_backlight = devm_kzalloc(&hdev->dev,
 					      sizeof(struct asus_kbd_leds),
@@ -696,8 +698,8 @@ static int asus_input_mapping(struct hid_device *hdev,
 	if ((usage->hid & HID_USAGE_PAGE) == 0xff310000) {
 		set_bit(EV_REP, hi->input->evbit);
 		switch (usage->hid & HID_USAGE) {
-		case 0x10: asus_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
-		case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP);		break;
+		//case 0x10: asus_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
+		//case 0x20: asus_map_key_clear(KEY_BRIGHTNESSUP);		break;
 		case 0x35: asus_map_key_clear(KEY_DISPLAY_OFF);		break;
 		case 0x6c: asus_map_key_clear(KEY_SLEEP);		break;
 		case 0x7c: asus_map_key_clear(KEY_MICMUTE);		break;
@@ -755,8 +757,8 @@ static int asus_input_mapping(struct hid_device *hdev,
 		case 0xff0a: asus_map_key_clear(BTN_A);	break;
 		case 0xff0b: asus_map_key_clear(BTN_B);	break;
 		case 0x00f1: asus_map_key_clear(KEY_WLAN);	break;
-		case 0x00f2: asus_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
-		case 0x00f3: asus_map_key_clear(KEY_BRIGHTNESSUP);	break;
+		//case 0x00f2: asus_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
+		//case 0x00f3: asus_map_key_clear(KEY_BRIGHTNESSUP);	break;
 		case 0x00f4: asus_map_key_clear(KEY_DISPLAY_OFF);	break;
 		case 0x00f7: asus_map_key_clear(KEY_CAMERA);	break;
 		case 0x00f8: asus_map_key_clear(KEY_PROG1);	break;
@@ -1040,6 +1042,9 @@ static const struct hid_device_id asus_devices[] = {
 		USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2), QUIRK_USE_KBD_BACKLIGHT },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
 		USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3), QUIRK_G752_KEYBOARD },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, 
+        USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD4), 
+        QUIRK_USE_KBD_BACKLIGHT | QUIRK_NO_CONSUMER_USAGES },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
 		USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD),
 	  QUIRK_USE_KBD_BACKLIGHT },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 3a400ce603c4..e09fbc9f1e74 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -193,6 +193,7 @@
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1 0x1854
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2 0x1837
 #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
+#define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD4 0x1866
 #define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD	0x1869
 
 #define USB_VENDOR_ID_ATEN		0x0557
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 0e7b2d998395..08d0d2d4454d 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -297,6 +297,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD1) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3) },
+	{ HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD4) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_ASUS_MD_5112) },
 	{ HID_USB_DEVICE(USB_VENDOR_ID_TURBOX, USB_DEVICE_ID_ASUS_MD_5110) },
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK, USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD) },

1 Like

I have the same model of PC, I tried Ubuntu before but the battery life was just terrible (2/3 hrs) compared to windows. How does the battery perform with Manjaro?

Why not try it and find out? Creating a live environment medium is fairly trivial.

1 Like

So it depends on what video mode it's in. with AMD only It lasts around 6-7 hours of web browsing, with nvidia mode running games or something intensive, it cuts down to 2-3 hours. switching back and forth depending on your need is really helpful.

1 Like

i ended up making optimus-switch for AMD/NVIDIA for each DM over the past week. a little different from the way @gdulai did it to match the way the other versions function even though both ways are perfectly fine.

LightDM

SDDM

GDM

sudo set-amd.sh sets amd only mode.
sudo set-nvidia.sh sets nvidia prime mode.

2 Likes

Forum kindly sponsored by