Jump to content

Dell G3 3579/3779/3590


foskvs

Recommended Posts

  • Supervisor.

Era tempo di cambiare pc portatile e ho deciso di prendere questo Dell.

 

https://www.dell.com/it-it/shop/game/notebook-da-gaming-dell-g3-15/spd/g-series-15-3579-laptop

 

 

 

Specifiche hardware (in rosso quelle non compatibili con macOS):

 

 

 

CPU: i7 8750H (altri modelli montano i5 8300H, i5 9300H (2019), i7 9750H (2019))

 

GPU Integrata: Intel UHD Graphics 630

 

GPU Dedicata: Nvidia GTX 1060 Max-Q (altri modelli montano 1050, 1050Ti. I modelli 2019 montano la serie 16).

 

RAM: 8GB (4+4) DDR4 2666MHz (supporta fino a 32GB)

 

Audio: Realtek ALC 236

 

Ethernet: Realtek RTL8111 Gigabit

 

WiFi + Bluetooth: Intel 9560 (M.2 2230 Key E 1x1)

Sostituita con una Broadcom BCM94360NG

 

Archiviazione: Slot SATA3 da 2.5" (sul mio modello è montato un HDD da 1TB 5400RPM)

 

Slot M.2 2280 Key M (sul mio modello è montato un SSD SanDisk X600 da 128GB SATA, ma supporta anche SSD NVMe)

 

Li ho sostituiti con un Crucial MX 500 da 1TB SATA e con un WD Black SN750 da 500GB NVMe

 

 

 

 

 

Display Integrato FullHD da 15 pollici (17 sul 3779) da 60Hz. Ha una copertura opaca. Personalmente, mi sembra buono.

 

Touchpad I2C Synaptics. Su Windows usa i driver di precisione e supporta gestures fino a quattro dita. Funzionante su macOS.

 

Tastiera retroilluminata: Corsa dei tasti un po' corta, ma mi piace. Retroilluminazione bianca (sul mio modello, altri hanno luce blu) regolabile su tre livelli (Off, 50%, 100%). Funziona su macOS.

 

Webcam: (Funzionante)

 

Porte:

 

Due USB 3.0 Tipo A + una USB 2.0 Tipo A (Funzionano con l'ultima versione del BIOS, con avvio Legacy parzialmente abilitato non funzionano correttamente)

 

Lettore SD (Realtek USB) (Molto probabilmente non compatibile con macOS)

 

Ethernet (Funzionante)

 

Jack cuffie (Funzionante)

 

HDMI (Collegata direttamente alla Nvidia. Attenzione quando ci si collega, che consuma tanto la batteria. Poco probabile che funzioni su macOS)

 

Sensore di impronte sul tasto di accensione (Non compatibile con macOS)

 

 

 

Porte Opzionali:

 

Thunderbolt 3: su 3579 e 3779 con GTX 1060 (Non ho dispositivi Thunderbolt per provare. La USB funziona con Hot-Plug. La DisplayPort è ancora work-in-progress)

 

USB Tipo C (supporta DisplayPort): su 3590 con GTX 1650 o 1660Ti (non ho modo di provarla, ma dovrebbe essere funzionante al 100%)

 

 

 

lspci da Ubuntu per vedere gli id hardware:

00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3ec4] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07) (prog-if 00 [Normal decode])
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 630 (Mobile) [8086:3e9b] (prog-if 00 [VGA controller])
00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 07)
00:08.0 System peripheral [0880]: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model [8086:1911]
00:12.0 Signal processing controller [1180]: Intel Corporation Cannon Lake PCH Thermal Controller [8086:a379] (rev 10)
00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10) (prog-if 30 [XHCI])
00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10)
00:14.3 Network controller [0280]: Intel Corporation Wireless-AC 9560 [Jefferson Peak] [8086:a370] (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Device [8086:a368] (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Device [8086:a369] (rev 10)
00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10)
00:17.0 RAID bus controller [0104]: Intel Corporation 82801 Mobile SATA Controller [RAID mode] [8086:282a] (rev 10)
00:1b.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port 21 [8086:a32c] (rev f0) (prog-if 00 [Normal decode])
00:1d.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port [8086:a335] (rev f0) (prog-if 00 [Normal decode])
00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:a30d] (rev 10)
00:1f.3 Audio device [0403]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10)
00:1f.4 SMBus [0c05]: Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323] (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller [8086:a324] (rev 10)
01:00.0 3D controller [0302]: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] [10de:1c20] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation GP106 High Definition Audio Controller [10de:10f1] (rev a1)
02:00.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02) (prog-if 00 [Normal decode])
03:00.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02) (prog-if 00 [Normal decode])
03:01.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02) (prog-if 00 [Normal decode])
03:02.0 PCI bridge [0604]: Intel Corporation JHL6340 Thunderbolt 3 Bridge (C step) [Alpine Ridge 2C 2016] [8086:15da] (rev 02) (prog-if 00 [Normal decode])
3a:00.0 USB controller [0c03]: Intel Corporation Device [8086:15db] (rev 02) (prog-if 30 [XHCI])
3b:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
 

 

Impostazioni BIOS:

 

System Configuration:

 

SATA Operation: AHCI

 

Thunderbolt: attivare tutto, No Security

 

Security:

 

PTT Security: disabilitare PTT On

 

Secure Boot:

 

Disabilitalo, Audit Mode

 

 

Per installare macOS, seguire questa guida: https://www.macos86.it/showthread.php?3388-Preparazione-installer-gt-MacOS-gt-Clover-gt-USB

 

Metodo Apple (createinstallmedia) e installazione UEFI. Mi raccomando, leggere ATTENTAMENTE, soprattutto la parte 4 sul config.plist.

 

Modifiche necessarie al config:

 

Acpi: selezionare PluginType

 

Devices: Audio/Inject inserire 11

 

Properties inserire la patch per il DVMT e ig-platform-id

 

Schermata-2019-07-02-alle-14-21-55.png

 

Gui: Hide Volume inserire Preboot

 

Graphics: Togliere tutto

 

Kernel and Kext Patches: Togliere tutto tranne KernelPM e DellSMBIOSPatch

 

SMBIOS: selezionare MacBookPro15,1 o MacBookPro15,2

 

seguire questa guida per generare il seriale: https://www.macos86.it/showthread.php?3480-Guida-alla-configurazione-dei-servizi-Apple-(iCloud-AppStore-FaceTime-iMessage)

 

Kext da usare:

 

FakeSMC.kext , Lilu.kext , AppleALC.kext , WhateverGreen.kext , ACPIBatteryManager.kext , VoodooPS2Controller.kext , VoodooInput.kext , RealtekRTL8111.kext

 

 

 

Di default, la frequenza minima della CPU è impostata a 1300MHz. per abbassarla a 800MHz, usare CPUFriend.kext e l'injector che trovate qui nel forum in Downloads/Kexts/Injector/PM/Convertiti in Lilu plugins, fatto da @Gengik84.

 

 

 

Lo stop senza USB collegate sembra funzionare correttamente.

 

Eseguire lo script in Downloads/Applicazioni/Script/Ibernazione fix per disabilitare l'ibernazione.

 

 

 

Lascio in allegato la cartella origin con il Bios v1.10, per chi fosse interessato a curiosare.

 

 

 

Ho avuto qualche problema nel mappare i tasti Fn per il controllo della luminosità. Lascio quindi tre consigli che possono risparmiare molto tempo:

 

1) I tasti della luminosità usano metodi dell'Embedded Controller, quindi esso deve essere attivo. È sufficiente controllare che AppleACPIEC.kext sia caricato.

kextstat | grep AppleACPIEC
 

2) Probabilmente il più importante di tutti. Per avere il controllo della luminosità è necessario Windows Vista o superiore. Avviando macOS, il sistema usa quindi una versione base del controllo della luminosità. Con questa semplice patch per MaciALS possiamo far credere al PC di avviare Windows8.1 e quindi avremo pieno controllo della luminosità.

#Brightness fix for Dell Laptops
into method label OSID 
code_regex If\s\(_OSI\s\(WN81\)\) replace_matched
begin
   If ((_OSI (WN81) || _OSI ("Darwin")))
end;
 

3) Il metodo che gestisce il controllo della luminosità (in cui vanno inserite le patch per F14 e F15) è BRT6 e non uno dei _Qxx.

 

Un ringraziamento a RehabMan per ACPIDebug.kext e la relativa documentazione: https://github.com/RehabMan/OS-X-ACPI-Debug

origin.zip

origin_1.11.zip

Edited by foskvs
Aggiunta la origin della versione 1.11 del BIOS
Link to comment
Share on other sites

  • 3 months later...
  • Supervisor.

Ho provato con ACPIDebug.kext a capire meglio come viene gestito l'hot plug sulla porta Thunderbolt a livello delle tabelle ACPI. Collegando l'hub USB-C, ho un loop infinito in questo Method:

 

 

Method (WSUB, 2, Serialized)
{
   Local0 = Zero
   Local1 = Zero
   While (One)
   {
       Local1 = TSUP (Arg0, Arg1)
       If ((Local1 > 0x0001FFF1))
       {
           Break
       }
       Else
       {
           Local0 += One
           If ((Local0 > 0x03E8))
           {
               Sleep (0x03E8)
               \rmdt.p1("WSUB-Deadlock")    // Qui
           }
           Else
           {
               Sleep (0x10)
           }
       }
   }
}
 

 

Vedo che altri pc hanno loop simili, quindi probabilmente è meglio non modificare nulla, per evitare comportamenti strani su Windows. Modificandolo, il sistema riconosce perfettamente quando collego o scollego una periferica, ma questa non funziona se non viene collegata all'avvio.

Con l'impostazione BIOS Assist Mode:

 

 

Bios 1.jpg

Bios 2.png

Bios ioreg.png

Con l'impostazione Native Enumeration Mode o Auto Switch:

 

 

Native 1.png

Native 2.png

Native ioreg.png

 

In entrambi i casi, viene eseguito un Bus Check che sembra non avere effetto. Ho provato quindi a modificare le parti del DSDT che vengono chiamate per prime. Cercando gli oggetti collegati a Thunderbolt, ho applicato questa patch:

 

 

#  For USB-C hotplug

into method label _INI parent_label _SB.PCI0 code_regex If\s+\(\(TBTS\s+==\s+One\)\) replace_matched begin If ((TBTS == One) && (!_OSI("Darwin"))) end;
 

Questo è il risultato:

USB.png

La porta USB-C funziona perfettamente con hot-plug.

In modo simile ho provato ad attivare il NHI, aggiungendo

TBFP (One, One)
 

immediatamente sopra. Questo è il risultato:

NHI.png

Non ho dispositivi Thunderbolt per provare l'hot-plug. Da preferenze di sistema continua a dirmi che non c'è nessun driver Thunderbolt caricato, ma ho il sospetto che il problema ora non sia più nelle ACPI (Firmware forse?).

 

 

 

Thunderbolt.png

Usb.png

 

Link to comment
Share on other sites

  • 4 weeks later...
  • Supervisor.

Decompilando il DSDT, compare questo errore:

If ((PM6H == One))
{
    CreateBitField (BUF0, \_SB.PCI0._Y0C._RW, ECRW)  // _RW_: Read-Write Status
    ECRW (If (PM0H)
            {
                CreateDWordField (BUF0, \_SB.PCI0._Y0D._LEN, F0LN)  // _LEN: Length
                F0LN = Zero
            }) = Zero
}

È un bug di iasl, corretto nelle ultime versioni. Assicurarsi di usare una versione aggiornata di iasl.

Grazie a Erik Schmauss

  • Like 1
Link to comment
Share on other sites

  • Supervisor.

Dopo aver risolto il problema dell'hot plug sulla porta USB-C, ho notato che il portatile si riavvia al risveglio dopo lo stop. Guardando nel log di sistema

Spoiler

pmset -g log

 

sembra essere causato proprio dal controller USB. La prima soluzione a cui ho pensato è stata spegnere il controller quando il pc va in stop e riaccenderlo al risveglio. Tradotto sul DSDT è

#  Fix USB-C Sleep/Wake

into method label _PTS insert
begin
	If (_OSI("Darwin") && Arg0 == 0x03)\n
        {\n
            \_SB.TBFP (Zero, One)\n
	}\n
end;

into method label _WAK insert
begin
	If (_OSI("Darwin") && Arg0 == 0x03)\n
        {\n
	    \_SB.TBFP (One, One)\n
	}\n
end;

Al momento sembra funzionare. Sleep/Wake funzionante e l'hot plug funziona anche al risveglio.

  • Like 1
  • +1 1
Link to comment
Share on other sites

  • 1 month later...
  • Supervisor.

Provando con ig-platform-id = 0x3E9B0007 (desktop) ho notato che l'audio dalla porta Thunderbolt 3 funziona correttamente. Con ig-platform-id = 0x3E9B0000 (laptop) invece non funziona.

Dopo vari tentativi, sembra funzionare in questo modo:

  • ig-platform-id per laptop (0x3E9B0000), altrimenti non funziona il display integrato (ovviamente).
  • flags dell'ig-platform-id desktop, con cui funziona l'audio.

Tradotto sul config.plist, diventa

Spoiler

2099939292_Schermata2019-12-29alle12_19_11.png.360d73e71b6130e552fa86c151568e9f.png

76581376_Schermata2019-12-29alle12_19_18.png.0e6eb9dfb85db35378990fbdab859411.png

280682493_Schermata2019-12-29alle12_19_27.thumb.png.17d54a62dc08165a2b035e720dd619cb.png

 

  • Like 2
  • +1 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • There are no registered users currently online
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.