HassanElDessouki Posted May 13, 2021 Share Posted May 13, 2021 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-r130nxIntel Core i5-4210U12 GB Ram (DDR3 - 1600 Mhz)1 TB Sandisk SSD + 500 GB Sandisk SSDIntel HD Graphics HD 4400 + Nvidia Geforce 820M (disabled)Realtek Wireless (incompatible) Realtek 8100 10/100 Ethernet (working) Thanks in Advance, Hassan. Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 13, 2021 Author Share Posted May 13, 2021 Let me know if my EFI is needed. Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 13, 2021 Author Share Posted May 13, 2021 (edited) 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? you adjust/reduce pipe count, port count and FB memory count 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: leave Pipe count to 3 reduce Port count to 2 reduce FB memory count to 2 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 May 13, 2021 by HassanElDessouki Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 13, 2021 Author Share Posted May 13, 2021 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? you adjust/reduce pipe count, port count and FB memory count 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: leave Pipe count to 3 reduce Port count to 2 reduce FB memory count to 2 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? Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 13, 2021 Author Share Posted May 13, 2021 21 minutes ago, Hervé said: I was not talking about USB port mapping but about USB port power settings. Can't comment more until you post your EFI folder. okay. PS: i have deleted my ROM, MLB, Serial Number & UUID for privacy. hopefully that's okay :-) Here you go: EFI.zip Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 13, 2021 Author Share Posted May 13, 2021 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. Quote Link to comment Share on other sites More sharing options...
HassanElDessouki Posted May 14, 2021 Author Share Posted May 14, 2021 Thanks @Hervé, I got my sleep working too. I only have that MAC Address issue, my question about it is can it break my iMessage? also, sometimes it says that ethernet is connected but no internet connection! Hassan. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.