Jump to content

Display LAG for first 15 to 20 seconds + Sleep doesnt work + Random MAC address at every reboot.


7 posts in this topic

Recommended Posts

Hello!

Thabks to @HervéI got my HDMI working.

Now I have the following 3 problems, I will list them below.

 

A- After bootup, my display is lagging for the first 10 to 20 seconds. As per @Hervé , I need to disable con2, but i dont know how exactly to do so.

 

B- Sleep would not work. It sleeps for a second then turns back on immediately. 

 

C- at every reboot, my MAC address is changing. I've set ROM, and IIRC, its not changing

Only the MAC address is changing. 

 

Computer specs:

HP 15-r130nx
Intel Core i5-4210U
12 GB Ram (DDR3 - 1600 Mhz)
1 TB Sandisk SSD + 500 GB Sandisk SSD
Intel HD Graphics HD 4400 + Nvidia Geforce 820M (disabled)
Realtek Wireless (incompatible
Realtek 8100 10/100 Ethernet (working)

 

Thanks in Advance,

Hassan.

Link to comment
Share on other sites

11 minutes ago, Hervé said:

Early and short lagging after boot on Haswell HD4x00 is a common and known issue due to the Hack going round all ports of the framebuffer to try and enable them. To reduce this, you may indeed look at reducing the number of ports of the framebuffer to retain only those you wish/need to use.

 

In the case of mobile Azul framebuffer 0x0a260006, there are 3 ports:



ID: 0A260006, STOLEN: 32 MB, FBMEM: 19 MB, VRAM: 1536 MB, Flags: 0x0000000F
TOTAL STOLEN: 52 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 116 MB, MAX OVERALL: 117 MB (123219968 bytes)
Camellia: CamelliaDisabled (0), Freq: 2777 Hz, FreqMax: 2777 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000030 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
[2] busId: 0x04, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
00000800 02000000 30000000
01050900 00040000 87000000
02040900 00040000 87000000

 

-> If you want to keep only the LVDS connector/port (con0), you would need to suppress con1 and con2

-> If you wanted to retain LVDS + HDMI connectors/ports (con0 and con1), you would need to suppress con2

 

How do you disable/suppress unwanted connectors/ports?

  1. you adjust/reduce pipe count, port count and FB memory count
  2. you void the connectors targeted for deletion

 

Let's look at the binary code of some layouts of the Azul framebuffer kext...

  • layout 0x0d260007 (mobile, 4 ports):


0700260D 01030403 00000004 00002002
00005001 00000060 A1070000 A1070000
00000000 00000000 00000800 02000000
30000000 01050B00 00040000 07010000
02040B00 00040000 07010000 03060300
00080000 06000000 1E030000 05050900
04000000 32000000 0E000000 00000000

decoded as:

0700260D   -> ig-platform-id
01         -> Mobile=01 (true)
03         -> Pipe count=03
04         -> Port count=04
03         -> FB memory count=03
00000004   -> StolenMem=64MB
00002002   -> FBMem=34MB
00005001   -> CursorMem=21MB
00000060   -> VRAM=1536MB
A1070000   -> Freq=1953MHz
A1070000   -> Max freq=1953MHz
00000000 00000000
00000800 02000000 30000000   -> con0, BusId 00, Pipe 08, Type LVDS/eDP, Flags 30000000
01050B00 00040000 07010000   -> con1, BusId 05, Pipe 0B, Type DP, Flags 07010000
02040B00 00040000 07010000   -> con2, BusId 04, Pipe 0B, Type DP, Flags 07010000
03060300 00080000 06000000   -> con3, BusId 06, Pipe 03, Type HDMI, Flags 06000000 
1E030000   -> Flags 1E030000
05050900 04000000 32000000 0E000000 00000000

 

  • layout 0x0a260006 (mobile, 3 ports):


0600260A 01030303 00000002 00003001
00006000 00000060 D90A0000 D90A0000
00000000 00000000 00000800 02000000
30000000 01050900 00040000 87000000
02040900 00040000 87000000 FF000000
01000000 40000000 0F000000 01010000
04000000 00000000 0E000000 00000000

Decoded as:

0600260A   -> ig-platfrom-id
01         -> Mobile=01 (true)
03         -> Pipe count=03
03         -> Port count=03
03         -> FB Memory count=03
00000002   -> StolenMem=32MB
00003001   -> FBMem=19MB
00006000   -> CursorMem=6MB
00000060   -> VRAM=1536MB
D90A0000   -> Freq=2777MHz
D90A0000   -> Max freq=2777MHz
00000000 00000000
00000800 02000000 30000000   -> con0, BusId 00, Pipe 09, Type LVDS/eDP, Flags 30000000
01050900 00040000 87000000   -> con1, BusId 05, Pipe 09, Type DP, Flags 87000000 
02040900 00040000 87000000   -> con2, BusId 04, Pipe 09, Type DP, Flags 87000000
FF000000 01000000 40000000   -> empty connector entry
0F000000   -> Flags 0F000000
01010000 04000000 00000000 0E000000 00000000

 

  • layout 0x0A26000D (desktop, 2 ports):


0D00260A 00030202 00000006 00002002
00002002 00000060 99140000 99140000
00000000 00000000 01050900 00040000
07010000 02040A00 00040000 07010000
FF000000 01000000 40000000 00000000
00000000 00000000 0E040000 00050500
04000000 00000000 0E000000 00000000

Decoded as:

0D00260A   -> ig-platform-id
00         -> Mobile=00 (false)
03         -> Pipe count=03
02         -> Port count=02
02         -> FB memory count=02
00000006   -> StolenMem=96MB
00002002   -> FBMem=34MB
00002002   -> CursorMem=34MB
00000060   -> VRAM=1536MB
99140000   -> Freq=5273MHz
99140000   ->Max freq=5273MHz
00000000 00000000
01050900 00040000 07010000   -> con1, BusId 05, Pipe 09, Type DP, Flags 07010000
02040A00 00040000 07010000   -> con2, BusId 04, Pipe 0A, Type DP, Flags 07010000
FF000000 01000000 40000000   -> empty connector entry
00000000 00000000 00000000
0E040000   -> Flags
00050500 04000000 00000000 0E000000 00000000

 

  • layout 0x0D260009 (Mobile, 1 port):


0900260D 01030101 00000004 00002002
00005001 00000060 A1070000 A1070000
00000000 00000000 00000800 02000000
30000000 FF000000 01000000 40000000
FF000000 01000000 40000000 FF000000
01000000 40000000 1E000000 05050900
04000000 32000000 0E000000 00000000

Decoded as:

0900260D   -> ig-layout-id
01         -> Mobile=01 (true)
03         -> Pipe count=03
01         -> Port count=01
01         -> FB memory count=01
00000004   -> StolenMem=64MB
00002002   -> FBMem=34MB
00005001   -> CursorMem=21MB
00000060   -> VRAM=1536MB
A1070000   -> Freq=1953MHz
A1070000   -> Max freq=1953MHz
00000000 00000000
00000800 02000000 30000000   -> con0, BusId 00, Type LVDS/eDP, Flags 30000000
FF000000 01000000 40000000   -> empty connector entry
FF000000 01000000 40000000   -> empty connector entry
FF000000 01000000 40000000   -> empy connector entry
1E000000   -> Flags 1E000000
05050900 04000000 32000000 0E000000 00000000

 

  • layout 0x04120004 (empty framebuffer, 0 port):


04001204 00000000 00000002 00000000
00000000 00000060 00000000 00000000
00000000 00000000 FF000000 01000000
40000000 FF000000 01000000 40000000
FF000000 01000000 40000000 FF000000
01000000 40000000 00000000 00000000
04000000 00000000 00000000 00000000

Decoded as:

04001204   -> ig-platform-id
00         -> Mobile=00 (false)
00         -> Pipe count=00
00         -> P{ort count=00
00         -> FB memory count=00
00000002   -> StolenMem=32MB
00000000   -> FBMem=0
00000000   -> CursorMem=0
00000060   -> VRAM=1536MB
00000000   -> Freq=0
00000000   -> Max freq=0
00000000 00000000
FF000000 01000000 40000000   -> empty connector
FF000000 01000000 40000000   -> empty connector
FF000000 01000000 40000000   -> empty connector
FF000000 01000000 40000000   -> empty connector
00000000   -> Flags 00000000
00000000 04000000 00000000 00000000 00000000

 

So what do we see? That we should:

  1. leave Pipe count to 3
  2. reduce Port count to 2
  3. reduce FB memory count to 2
  4. set con3 to FF000000 01000000 40000000

 

This is done through the following properties injection that you'll simply add to your existing properties injected against iGPU device @2:



framebuffer-portcount       2    NUMBER
framebuffer-memorycount     2    NUMBER
framebuffer-con1-alldata    010512000008000087000000FF0000000100000040000000FF0000000100000040000000    DATA

where con1-all-data basically defines the last 3 x connector entries as follows:



01051200 00080000 87000000|FF000000 01000000 40000000|FF000000 01000000 40000000
con1       type  + flags  |  empty connector entry   |  emtpy connector entry

 

Thanks for the detailed information.

So if I'm correct, applying the framebuffer-con1-alldata, portcount & memorycount will let me use the con0(LVDS) & con1(HDMI), am I right?

Edited by HassanElDessouki
Link to comment
Share on other sites

1 hour ago, HassanElDessouki said:

Thanks for the detailed information.

So if I'm correct, applying the framebuffer-con1-alldata, portcount & memorycount will let me use the con0(LVDS) & con1(HDMI), am I right?

 

2 hours ago, Hervé said:

Early and short lagging after boot on Haswell HD4x00 is a common and known issue due to the Hack going round all ports of the framebuffer to try and enable them. To reduce this, you may indeed look at reducing the number of ports of the framebuffer to retain only those you wish/need to use. Or you could experiment with the possible alternative of declaring all outputs on line with WEG boot arg igfxonln=1.

 

In the case of mobile Azul framebuffer 0x0a260006, there are 3 ports:


ID: 0A260006, STOLEN: 32 MB, FBMEM: 19 MB, VRAM: 1536 MB, Flags: 0x0000000F
TOTAL STOLEN: 52 MB, TOTAL CURSOR: 1 MB (1572864 bytes), MAX STOLEN: 116 MB, MAX OVERALL: 117 MB (123219968 bytes)
Camellia: CamelliaDisabled (0), Freq: 2777 Hz, FreqMax: 2777 Hz
Mobile: 1, PipeCount: 3, PortCount: 3, FBMemoryCount: 3
[0] busId: 0x00, pipe: 8, type: 0x00000002, flags: 0x00000030 - ConnectorLVDS
[1] busId: 0x05, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
[2] busId: 0x04, pipe: 9, type: 0x00000400, flags: 0x00000087 - ConnectorDP
00000800 02000000 30000000
01050900 00040000 87000000
02040900 00040000 87000000

 

-> If you want to keep only the LVDS connector/port (con0), you would need to suppress con1 and con2

-> If you wanted to retain LVDS + HDMI connectors/ports (con0 and con1), you would need to suppress con2

 

How do you disable/suppress unwanted connectors/ports?

  1. you adjust/reduce pipe count, port count and FB memory count
  2. you void the connectors targeted for deletion

 

Let's look at the binary code of some layouts of the Azul framebuffer kext...

  • layout 0x0d260007 (mobile, 4 ports):

0700260D 01030403 00000004 00002002                0700260D   -> ig-platform-id
00005001 00000060 A1070000 A1070000                01         -> Mobile=01 (true)
00000000 00000000 00000800 02000000                03         -> Pipe count=03
30000000 01050B00 00040000 07010000   decoded as   04         -> Port count=04
02040B00 00040000 07010000 03060300                03         -> FB memory count=03
00080000 06000000 1E030000 05050900                00000004   -> StolenMem=64MB
04000000 32000000 0E000000 00000000                00002002   -> FBMem=34MB
                                                   00005001   -> CursorMem=21MB
                                                   00000060   -> VRAM=1536MB
                                                   A1070000   -> Freq=1953MHz
                                                   A1070000   -> Max freq=1953MHz
                                                   00000000 00000000
                                                   00000800 02000000 30000000   -> con0, BusId 00, Pipe 08, Type LVDS/eDP, Flags 30000000
                                                   01050B00 00040000 07010000   -> con1, BusId 05, Pipe 0B, Type DP, Flags 07010000
                                                   02040B00 00040000 07010000   -> con2, BusId 04, Pipe 0B, Type DP, Flags 07010000
                                                   03060300 00080000 06000000   -> con3, BusId 06, Pipe 03, Type HDMI, Flags 06000000 
                                                   1E030000   -> Flags 1E030000
                                                   05050900 04000000 32000000 0E000000 00000000

 

  • layout 0x0a260006 (mobile, 3 ports):

0600260A 01030303 00000002 00003001                0600260A   -> ig-platfrom-id
00006000 00000060 D90A0000 D90A0000                01         -> Mobile=01 (true)
00000000 00000000 00000800 02000000                03         -> Pipe count=03
30000000 01050900 00040000 87000000   decoded as   03         -> Port count=03
02040900 00040000 87000000 FF000000                03         -> FB Memory count=03
01000000 40000000 0F000000 01010000                00000002   -> StolenMem=32MB
04000000 00000000 0E000000 00000000                00003001   -> FBMem=19MB
                                                   00006000   -> CursorMem=6MB
                                                   00000060   -> VRAM=1536MB
                                                   D90A0000   -> Freq=2777MHz
                                                   D90A0000   -> Max freq=2777MHz
                                                   00000000 00000000
                                                   00000800 02000000 30000000   -> con0, BusId 00, Pipe 09, Type LVDS/eDP, Flags 30000000
                                                   01050900 00040000 87000000   -> con1, BusId 05, Pipe 09, Type DP, Flags 87000000 
                                                   02040900 00040000 87000000   -> con2, BusId 04, Pipe 09, Type DP, Flags 87000000
                                                   FF000000 01000000 40000000   -> empty connector entry
                                                   0F000000   -> Flags 0F000000
                                                   01010000 04000000 00000000 0E000000 00000000

 

  • layout 0x0A26000D (desktop, 2 ports):

0D00260A 00030202 00000006 00002002                0D00260A   -> ig-platform-id
00002002 00000060 99140000 99140000                00         -> Mobile=00 (false)
00000000 00000000 01050900 00040000                03         -> Pipe count=03
07010000 02040A00 00040000 07010000   decoded as   02         -> Port count=02
FF000000 01000000 40000000 00000000                02         -> FB memory count=02
00000000 00000000 0E040000 00050500                00000006   -> StolenMem=96MB
04000000 00000000 0E000000 00000000                00002002   -> FBMem=34MB
                                                   00002002   -> CursorMem=34MB
                                                   00000060   -> VRAM=1536MB
                                                   99140000   -> Freq=5273MHz
                                                   99140000   ->Max freq=5273MHz
                                                   00000000 00000000
                                                   01050900 00040000 07010000   -> con1, BusId 05, Pipe 09, Type DP, Flags 07010000
                                                   02040A00 00040000 07010000   -> con2, BusId 04, Pipe 0A, Type DP, Flags 07010000
                                                   FF000000 01000000 40000000   -> empty connector entry
                                                   00000000 00000000 00000000   -> empty connector entry
                                                   0E040000   -> Flags
                                                   00050500 04000000 00000000 0E000000 00000000

 

  • layout 0x0D260009 (Mobile, 1 port):

0900260D 01030101 00000004 00002002                0900260D   -> ig-layout-id
00005001 00000060 A1070000 A1070000                01         -> Mobile=01 (true)
00000000 00000000 00000800 02000000                03         -> Pipe count=03
30000000 FF000000 01000000 40000000   Decoded as   01         -> Port count=01
FF000000 01000000 40000000 FF000000                01         -> FB memory count=01
01000000 40000000 1E000000 05050900                00000004   -> StolenMem=64MB
04000000 32000000 0E000000 00000000                00002002   -> FBMem=34MB
                                                   00005001   -> CursorMem=21MB
                                                   00000060   -> VRAM=1536MB
                                                   A1070000   -> Freq=1953MHz
                                                   A1070000   -> Max freq=1953MHz
                                                   00000000 00000000
                                                   00000800 02000000 30000000   -> con0, BusId 00, Type LVDS/eDP, Flags 30000000
                                                   FF000000 01000000 40000000   -> empty connector entry
                                                   FF000000 01000000 40000000   -> empty connector entry
                                                   FF000000 01000000 40000000   -> empty connector entry
                                                   1E000000   -> Flags 1E000000
                                                   05050900 04000000 32000000 0E000000 00000000

 

  • layout 0x04120004 (empty framebuffer, 0 port):

04001204 00000000 00000002 00000000                04001204   -> ig-platform-id
00000000 00000060 00000000 00000000                00         -> Mobile=00 (false)
00000000 00000000 FF000000 01000000                00         -> Pipe count=00
40000000 FF000000 01000000 40000000   Decoded as   00         -> P{ort count=00
FF000000 01000000 40000000 FF000000                00         -> FB memory count=00
01000000 40000000 00000000 00000000                00000002   -> StolenMem=32MB
04000000 00000000 00000000 00000000                00000000   -> FBMem=0
                                                   00000000   -> CursorMem=0
                                                   00000060   -> VRAM=1536MB
                                                   00000000   -> Freq=0
                                                   00000000   -> Max freq=0
                                                   00000000 00000000
                                                   FF000000 01000000 40000000   -> empty connector
                                                   FF000000 01000000 40000000   -> empty connector
                                                   FF000000 01000000 40000000   -> empty connector
                                                   FF000000 01000000 40000000   -> empty connector
                                                   00000000   -> Flags 00000000
                                                   00000000 04000000 00000000 00000000 00000000

 

So what do we see? That we should:

  1. leave Pipe count to 3
  2. reduce Port count to 2
  3. reduce FB memory count to 2
  4. set con3 to FF000000 01000000 40000000

 

This is done through the following properties injection that you'll simply add to your existing properties injected against iGPU device @2:


framebuffer-portcount       2    NUMBER
framebuffer-memorycount     2    NUMBER
framebuffer-con1-alldata    010512000008000087000000FF0000000100000040000000FF0000000100000040000000    DATA

where con1-alldata basically defines the last 3 x connector entries as follows:


01051200 00080000 87000000|FF000000 01000000 40000000|FF000000 01000000 40000000
con1       type  + flags  |  empty connector entry   |  emtpy connector entry

 

 

Re: Sleep/wake, it's probably a matter of setting the correct power settings to the USB ports. You can look that up.

 

Re: MAC @ changing at each reboot, absolutely no idea on the matter. Can't say I've ever seen this.

Sorry, i just seen your sleep/wake reply.

 

I've already set up the USB mapping following the dortania guide, it didnt change anything, acually it broke my laptop doing the XHC patch broke my laptop webcam, so I had to do USB Mapping with XHC patch turned off.

 

 

Does changing MAC address make a problem for iMessage. My ROM is static though, which does iMessage depend on?

Link to comment
Share on other sites

11 minutes ago, Hervé said:

No SSDT-XHC table in your ACPI folder. Look it up on Dortania's site. The USBMap injector you use only injects ports definition (number, type, etc.) for your chosen Mac model, not their power settings.

 

Should inject stuff like this for your controller:


                "AAPL,current-available", 
                Buffer (0x04)
                {
                     0x34, 0x08, 0x00, 0x00                         
                }, 
                "AAPL,current-extra", 
                Buffer (0x04)
                {
                     0x98, 0x08, 0x00, 0x00                         
                }, 
                "AAPL,current-extra-in-sleep", 
                Buffer (0x04)
                {
                     0x40, 0x06, 0x00, 0x00                         
                }, 
                "AAPL,max-port-current-in-sleep", 
                Buffer (0x04)
                {
                     0x34, 0x08, 0x00, 0x00                         
                }

 

Also make sure to disable hibernation through Terminal commands:


sudo pmset -a hibernatemode 0
sudo pmset -a hibernatefile /dev/null
sudo rm -f /var/vm/sleepimage

 

huh?!

Can you please specify a specific link for it in the dortania guide?
PS: The patch that was breaking my webcam was the EHC01 to EH01

 

Thanks.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...