Jump to content
XPEnology Community
  • 0

What model to use for a i5-1240P with transcoding support


Mirano

Question

Hello,

 

i've recently started using XPEnology and i've been loving it so i want to move my production unraid server to synology.

 

I have a few questions for it:

 

First of all the stats of the machine:

  1. CPU: i5 1240P (16 threads)
  2. RAM: 64GB 3200Mhz
  3. Storage: 1TB 980 nvme ssd
  4. Storage: 500GB Sata ssd

 

So my questions:

  1. What model should i use, to get 64GB RAM working + 16 threads and be able to use transcoding on Plex docker
  2. If i build my redpill loader and replace a HDD, will that just detect and work?
  3. If i add a new HDD and boot the machine, will it be able to detect?

 

Thank you in advance for answering!

 

Used: https://github.com/fbelavenuto/arpl

Edited by Mirano
added way of instalation
Link to comment
Share on other sites

Recommended Posts

  • 0
3 hours ago, Mirano said:

Hello,

 

i've recently started using XPEnology and i've been loving it so i want to move my production unraid server to synology.

 

I have a few questions for it:

 

First of all the stats of the machine:

  1. CPU: i5 1240P (16 threads)
  2. RAM: 64GB 3200Mhz
  3. Storage: 1TB 980 nvme ssd
  4. Storage: 500GB Sata ssd

 

So my questions:

  1. What model should i use, to get 64GB RAM working + 16 threads and be able to use transcoding on Plex docker
  2. If i build my redpill loader and replace a HDD, will that just detect and work?
  3. If i add a new HDD and boot the machine, will it be able to detect?

 

Thank you in advance for answering!

 

Also looking for around 8 disks to add!

Link to comment
Share on other sites

  • 0
7 minutes ago, IG-88 said:

ohh okay! that sounds promising.

 

So if i would make a build with a 11600k (6c 12T) and running Plex transcoding with 8 Disks and 64Gb RAM. Would SA6400 suffice for that? of will i run into limitations?

Link to comment
Share on other sites

  • 0
21 hours ago, Mirano said:

So if i would make a build with a 11600k (6c 12T) and running Plex transcoding with 8 Disks and 64Gb RAM. Would SA6400 suffice for that? of will i run into limitations?

SA6400 can do up to 24 threads

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/?do=findComment&comment=441436

 

11600k

https://ark.intel.com/content/www/us/en/ark/products/212275/intel-core-i511600k-processor-12m-cache-up-to-4-90-ghz.html

GPU ID -> 0x4C8A

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/?do=findComment&comment=440411

or jim ma's blog (table with gpu id's ins not in chinese, also its possible to use google translate to read most of whats there)

https://blog.jim.plus/blog/post/jim/synology-sa6400-with-i915

 

4c8a is in the list (rocket lake)

as plex does not need anything else beside the i915 driver there should be no limitations with that (synolgy's own videostation would need a synology codec pack that has protections that need to be circumvented)

 

8 disks is even below the 12 default disks the original hardware has and even >>64GB is a supported scenario on the original (i dont recall any limit with ram size coming from synologys kernel config so no limit imho, the original comes with 1x32GB and supports extending with 32GB and 64GB DIMM's with up to 16 DIMM's slots so up to 1TB RAM might be synology's official support for SA6400)

Edited by IG-88
Link to comment
Share on other sites

  • 0
45 minutes ago, IG-88 said:

SA6400 can do up to 24 threads

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/?do=findComment&comment=441436

 

11600k

https://ark.intel.com/content/www/us/en/ark/products/212275/intel-core-i511600k-processor-12m-cache-up-to-4-90-ghz.html

GPU ID -> 0x4C8A

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/?do=findComment&comment=440411

or jim ma's blog (table with gpu id's ins not in chinese, also its possible to use google translate to read most of whats there)

https://blog.jim.plus/blog/post/jim/synology-sa6400-with-i915

 

4c8a is in the list (rocket lake)

as plex does not need anything else beside the i915 driver there should be no limitations with that (synolgy's own videostation would need a synology codec pack that has protections that need to be circumvented)

 

8 disks is even below the 12 default disks the original hardware has and even >>64GB is a supported scenario on the original (i dont recall any limit with ram size coming from synologys kernel config so no limit imho, the original comes with 1x32GB and supports extending with 32GB and 64GB DIMM's with up to 16 DIMM's slots so up to 1TB RAM might be synology's official support for SA6400)

 

Hello, first and foremost thank you for the full answer that you have provided.

Since i am using https://github.com/fbelavenuto/arpl and since SA6400 is still being worked on, i need a safe route.

 

I would like to purchase a 10700k instead of 11600k (which is in the i915 driver) and use the following:

 

Model 920+ (CPU HT disabled)

Use 4 Disks for now (18TB each)

Using the model 920+ synology includes the i915 driver which enables me to use plex transcoding right?

 

 

Then when the 6400 is worked out more, i would switch to that config, enable HT and add the remainder 4 18TB disks and 6X 2TB SSD

 

Also, is it better to use UEFI or BIOS?

 

Stating the above, would that be a functional route to go by? or am i missing some critical stuff?

 

Regards,

 

Mirano!

Edited by Mirano
Link to comment
Share on other sites

  • 0
2 hours ago, Mirano said:

I would like to purchase a 10700k instead of 11600k (which is in the i915 driver) and use the following:

 

Model 920+ (CPU HT disabled)

Use 4 Disks for now (18TB each)

Using the model 920+ synology includes the i915 driver which enables me to use plex transcoding right?

yes, there is a extended driver (for kernel 4.x based uits like 918/920/dva1622)  that can do up to 10th gen

you can have more disks the default number of disks, i use a dva1622 installation with 5 disks (also a device tree model like 920)

the loader should factor that in when building the loader

you would need to activate the 10th gen i915 driver addon in arpl loader, that should make the 10th gen gpu work

 

2 hours ago, Mirano said:

Also, is it better to use UEFI or BIOS?

bios would be seen as exotic, uefi is the normal way

 

2 hours ago, Mirano said:

Stating the above, would that be a functional route to go by? or am i missing some critical stuff?

should be working

you might consider a smaller cpu with lower power consumption (less heat equals less noise for cooling and also less money per year)

 

you could also use 918+ if you want, with dsm 7.1 and 7.2 (still beta atm) there is no real difference as they use the same kernel, no difference with plex, 918+ might not get dsm 7.3 in the future but if you going for sa6400 anyway that might not make any difference for now, so if you have any trouble with 920 then try 918

 

 

Link to comment
Share on other sites

  • 0
9 hours ago, IG-88 said:

yes, there is a extended driver (for kernel 4.x based uits like 918/920/dva1622)  that can do up to 10th gen

you can have more disks the default number of disks, i use a dva1622 installation with 5 disks (also a device tree model like 920)

the loader should factor that in when building the loader

you would need to activate the 10th gen i915 driver addon in arpl loader, that should make the 10th gen gpu work

 

Ohh that's amazing, will the drives that extend the normal capacity of the 918/920 be configurable through the UI or will that be through CLI?. I have activated the i915 driver, so that should work.

 

Without the patch, the i915 works until 10th gen? So, 4th – 9th?

 

9 hours ago, IG-88 said:

bios would be seen as exotic, uefi is the normal way

Switching to UEFI as we speak, thank you for clarifying

 

9 hours ago, IG-88 said:

should be working

you might consider a smaller cpu with lower power consumption (less heat equals less noise for cooling and also less money per year)

 

you could also use 918+ if you want, with dsm 7.1 and 7.2 (still beta atm) there is no real difference as they use the same kernel, no difference with plex, 918+ might not get dsm 7.3 in the future but if you going for sa6400 anyway that might not make any difference for now, so if you have any trouble with 920 then try 918

 

That might be an idea, I will monitor my current server and see my usage during peak hours. Running around 60~ dockers on it, so usage is quite there.

 

Is 918+ more stable than 920+ that you would recommend switching to it?

 

 

Also, I want to thank you for keep answering to my questions, some might've been answered before, but this will help me through the last parts of configuration!

Is there a way for me to donate to you or xpenology to help support this project?

Link to comment
Share on other sites

  • 0
On 4/21/2023 at 9:52 AM, Mirano said:

Ohh that's amazing, will the drives that extend the normal capacity of the 918/920 be configurable through the UI or will that be through CLI?. I have activated the i915 driver, so that should work.

 

the real 10th gen driver was made for 7.x here

https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3/

i never checked but i guess that driver is in arpl as 10th gen support (at least it would be the best option), the old method of just changing the id of a 9th gen unit into a 10th gen has limits (see link below about what was done in 6.2.3), the newer driver does have real backported code for 10th gen

arpl comes with a gui/menu and there is a section for addon's

 

On 4/21/2023 at 9:52 AM, Mirano said:

Without the patch, the i915 works until 10th gen? So, 4th – 9th?

yes syno's own ootb driver in platform apollolake (918+) and geminilake (920+/dva1622) can do up to 9th gen (when the needed firmware files are added)

the i915 driver in dsm 7.1 is still the same as in 6.2.3 (synology backported a newer i915 driver in 2020 for 920+ and has not released any intel qsv hardware since, dva1622 is also just geminilake)

i documented the device numbers here

https://xpenology.com/forum/topic/28321-driver-extension-jun-103b104b-for-dsm623-for-918-3615xs-3617xs/

"iGPU device ID's supported by synology's i915 driver (Reveal hidden contents)"

 

you could check the gpu id in a intel cpu on ark intel (just google "ark intel" and the cpu)

 

On 4/21/2023 at 9:52 AM, Mirano said:

Switching to UEFI as we speak, thank you for clarifying

for about 10 years all "BIOS" in new hardware are uefi and have a added  module named Compatibility Support Module aka "CSM" to add classic BIOS support

https://en.wikipedia.org/wiki/UEFI#CSM_booting

csm was only needed with dsm 6.2.3 (3615/3617)

you might have used uefi already as for using CSM you need to enable that "option" in bios but also would need to boot from the "non-uefi" (or legacy) usb boot device, when using the uefi usb boot device then csm is not used (as it is just an option)

some systems of the last 2-3 years might not even have CSM module anymore (seen on some NUC's from intel)

 

On 4/21/2023 at 9:52 AM, Mirano said:

That might be an idea, I will monitor my current server and see my usage during peak hours. Running around 60~ dockers on it, so usage is quite there.

if you have real need like that dont bother about my comment, lots of people put in way to much cpu power just in case

 

On 4/21/2023 at 9:52 AM, Mirano said:

Is 918+ more stable than 920+ that you would recommend switching to it?

no real diffrence, same kernel/driver/software, the kernel config for 920+ (geminilake is slightly different ) main difference is in sata disk handling, 920+ uses device tree that made some issues in the beginning with the loaders, as 920+ will get 2 years longer updates from synology it would be the starting point if there are problems that can't be solved or it gets to frustrating to solve 918+ is a option thats easy to try

https://en.wikipedia.org/wiki/Devicetree#Linux

https://xpenology.com/forum/topic/61634-dsm-7x-loaders-and-platforms/

 

 

On 4/21/2023 at 9:52 AM, Mirano said:

Also, I want to thank you for keep answering to my questions, some might've been answered before, but this will help me through the last parts of configuration!

Is there a way for me to donate to you or xpenology to help support this project?

support the coders of the loaders, they do the heavy lifting

https://github.com/pocopico

https://github.com/fbelavenuto

https://github.com/jim3ma (he is doing the sa6400 stuff and i915 driver for sa6400)

Edited by IG-88
  • Like 1
Link to comment
Share on other sites

  • 0
On 4/21/2023 at 10:14 PM, IG-88 said:

the real 10th gen driver was made for 7.x here

https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3/

i never checked but i guess that driver is in arpl as 10th gen support (at least it would be the best option), the old method of just changing the id of a 9th gen unit into a 10th gen has limits (see link below about what was done in 6.2.3), the newer driver does have real backported code for 10th gen

arpl comes with a gui/menu and there is a section for addon's

Found that! thank you.

 

On 4/21/2023 at 10:14 PM, IG-88 said:

if you have real need like that dont bother about my comment, lots of people put in way to much cpu power just in case

Can imagine, these types of builds are easily overbuild which causes a lot more power than they need.

 

On 4/21/2023 at 10:14 PM, IG-88 said:

support the coders of the loaders, they do the heavy lifting

https://github.com/pocopico

https://github.com/fbelavenuto

https://github.com/jim3ma (he is doing the sa6400 stuff and i915 driver for sa6400)

 

Donating some this afternoon, Thank you!

 

 

I've tried to add more than 4 disks using ARPL but it doesn't seem to get detected in de UI of DSM. Am i suppose to do that part through CLI?

Link to comment
Share on other sites

  • 0
2 minutes ago, Mirano said:

Found that! thank you.

if the driver in arpl is not that one its still possible to replace the i915.ko file with the one from that thread

 

5 minutes ago, Mirano said:

Can imagine, these types of builds are easily overbuild which causes a lot more power than they need.

i've seen setups like old gaming board/cpu going into a nas and thats often some high power consumption cpu's (no one case about that in a gaming setup, just use a potent cooler and you are done)

 

8 minutes ago, Mirano said:

I've tried to add more than 4 disks using ARPL but it doesn't seem to get detected in de UI of DSM. Am i suppose to do that part through CLI?

did you look at the list of disks (the graphic only shows the original state of the housing wit its possible disks)

image.png.27eb82885f99c2c56d2fce09124e2c48.pngimage.png.e71197faa0ef8f120158e7b632e863fe.png

if the disks are listed in hdd you should be able to add them

depending on the configuration of the hardware it might be needed to renew the device tree files to get the disks, going into the loader and use build loader might be needed

there is also a option to show disks detected in arpl (in advanced options?) if not detected at this point its not going to work in dsm

 

 

Link to comment
Share on other sites

  • 0
On 4/23/2023 at 1:34 PM, IG-88 said:

if the driver in arpl is not that one its still possible to replace the i915.ko file with the one from that thread

 

i've seen setups like old gaming board/cpu going into a nas and thats often some high power consumption cpu's (no one case about that in a gaming setup, just use a potent cooler and you are done)

 

did you look at the list of disks (the graphic only shows the original state of the housing wit its possible disks)

image.png.27eb82885f99c2c56d2fce09124e2c48.pngimage.png.e71197faa0ef8f120158e7b632e863fe.png

if the disks are listed in hdd you should be able to add them

depending on the configuration of the hardware it might be needed to renew the device tree files to get the disks, going into the loader and use build loader might be needed

there is also a option to show disks detected in arpl (in advanced options?) if not detected at this point its not going to work in dsm

 

 

I indeed had to rebuild the tree to get the disks visible.

 

Thank you so much for the answers you have been providing to me! (now it's time to wait for ARPL to get 7.2 update)

Link to comment
Share on other sites

  • 0
On 4/23/2023 at 1:34 PM, IG-88 said:

if the driver in arpl is not that one its still possible to replace the i915.ko file with the one from that thread

 

i've seen setups like old gaming board/cpu going into a nas and thats often some high power consumption cpu's (no one case about that in a gaming setup, just use a potent cooler and you are done)

 

did you look at the list of disks (the graphic only shows the original state of the housing wit its possible disks)

image.png.27eb82885f99c2c56d2fce09124e2c48.pngimage.png.e71197faa0ef8f120158e7b632e863fe.png

if the disks are listed in hdd you should be able to add them

depending on the configuration of the hardware it might be needed to renew the device tree files to get the disks, going into the loader and use build loader might be needed

there is also a option to show disks detected in arpl (in advanced options?) if not detected at this point its not going to work in dsm

 

 

Hello,

 

For testing i purchased a a HP mini desktop with i5 10500t. It got a UHD 630 in it, but video accerelation doesn't seem to be working:

 

I get this result:

image.png

 

This shows me the output required. But no /dev/dri.

image.png

 

i used ARPL V1.1-beta2a with model 920+ and build 42962

 

also lspci -tvnnq is showing the videocard (igpu):

image.png

 

 

Do you know what perhaps is going wrong?

 

 

 

what should i do next to try and figure this out?

Link to comment
Share on other sites

  • 0

did you activate the addon for 10th gen cpu in the loader?

 

check the log with "dmesg |grep i915" that the i915 driver is loaded and is loading the firmware

might look similar like this (this is a log from 9th gen, afair 10th gen might need a cnl_dmc_*.bin as firmware

[   28.854600] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[   29.149691] [drm] Initialized i915 1.6.0 20171222 for 0000:00:02.0 on minor 0
[   29.244885] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

 

also check if the needed firmware is present

"ls /usr/lib/firmware/i915"

Edited by IG-88
Link to comment
Share on other sites

  • 0
21 hours ago, IG-88 said:

did you activate the addon for 10th gen cpu in the loader?

 

check the log with "dmesg |grep i915" that the i915 driver is loaded and is loading the firmware

might look similar like this (this is a log from 9th gen, afair 10th gen might need a cnl_dmc_*.bin as firmware

[   28.854600] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[   29.149691] [drm] Initialized i915 1.6.0 20171222 for 0000:00:02.0 on minor 0
[   29.244885] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

 

also check if the needed firmware is present

"ls /usr/lib/firmware/i915"

Yes i have just verified it that i loaded the addon.

 

The commands as specified above:

 

image.png.0d632396915c9280511dd4f1ba110b14.png

Link to comment
Share on other sites

  • 0
1 hour ago, Mirano said:

 

image.thumb.png.3399bdb7a626785a523945477da926bd.png

the driver here is not loaded as its a wrong version from a older dsm version the kernel version of 7.0 and 7.1 is 4.4.180 and the driver needs to be compiled for that kernel version

 

from above its there is nothing about the log after you manually loaded the driver and you could also check if there is something in /dev/dri as alternative

but when just loading manually it would be gone after  a reboot

i also checked the driver in arpl and its "only" a patched driver the way i did it in dsm 6.2.3, the "real deal" is the extended driver that is specifically compiled from extended source that take 10th gen stuff into account (the old patch method is just changing a device id from 9th gen into one from other/newer hardware and that does not worked with all 10th gen afair)

 

earlier in this thread

https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3/

there was this patch for the i915 source code that would not need any patching for device id's like seen later in the thread or in arpl, you x9BC8 would just be part of the "better" i915 driver (not 4 different driver files, just one for all)

 

Spoiler

--- linux-4.4.x/include/drm/i915_pciids.h    2021-07-01 22:41:51.000000000 +0800
+++ linux-4.4.new/include/drm/i915_pciids.h    2022-04-10 00:46:45.589172181 +0800
@@ -406,13 +406,40 @@
     INTEL_VGA_DEVICE(0x3EA7, info), /* ULT GT3 */ \
     INTEL_VGA_DEVICE(0x3EA8, info)  /* ULT GT3 */
 
-#define INTEL_CFL_IDS(info)       \
-    INTEL_CFL_S_GT1_IDS(info), \
-    INTEL_CFL_S_GT2_IDS(info), \
-    INTEL_CFL_H_GT2_IDS(info), \
-    INTEL_CFL_U_GT1_IDS(info), \
-    INTEL_CFL_U_GT2_IDS(info), \
-    INTEL_CFL_U_GT3_IDS(info)
+/* Adding CML PCI IDs */
+/* CML GT1 */
+#define INTEL_CML_GT1_IDS(info)    \
+    INTEL_VGA_DEVICE(0x9B21, info), \
+    INTEL_VGA_DEVICE(0x9BAA, info), \
+    INTEL_VGA_DEVICE(0x9BAB, info), \
+    INTEL_VGA_DEVICE(0x9BAC, info), \
+    INTEL_VGA_DEVICE(0x9BA0, info), \
+    INTEL_VGA_DEVICE(0x9BA5, info), \
+    INTEL_VGA_DEVICE(0x9BA8, info), \
+    INTEL_VGA_DEVICE(0x9BA4, info), \
+    INTEL_VGA_DEVICE(0x9BA2, info)
+
+/* CML GT2 */
+#define INTEL_CML_GT2_IDS(info)    \
+    INTEL_VGA_DEVICE(0x9B41, info), \
+    INTEL_VGA_DEVICE(0x9BCA, info), \
+    INTEL_VGA_DEVICE(0x9BCB, info), \
+    INTEL_VGA_DEVICE(0x9BCC, info), \
+    INTEL_VGA_DEVICE(0x9BC0, info), \
+    INTEL_VGA_DEVICE(0x9BC5, info), \
+    INTEL_VGA_DEVICE(0x9BC8, info), \
+    INTEL_VGA_DEVICE(0x9BC4, info), \
+    INTEL_VGA_DEVICE(0x9BC2, info)
+
+#define INTEL_CFL_IDS(info)       \
+    INTEL_CFL_S_GT1_IDS(info), \
+    INTEL_CFL_S_GT2_IDS(info), \
+    INTEL_CFL_H_GT2_IDS(info), \
+    INTEL_CFL_U_GT1_IDS(info), \
+    INTEL_CFL_U_GT2_IDS(info), \
+    INTEL_CFL_U_GT3_IDS(info), \
+    INTEL_CML_GT1_IDS(info), \
+    INTEL_CML_GT2_IDS(info)
 
 /* CNL U 2+2 */
 #define INTEL_CNL_U_GT2_IDS(info) \
--- linux-4.4.x/drivers/gpu/drm/i915/i915_pci.c    2021-07-01 22:30:21.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_pci.c    2022-04-10 00:48:35.859172808 +0800
@@ -636,6 +636,8 @@
     INTEL_CFL_U_GT1_IDS(&intel_coffeelake_gt1_info),
     INTEL_CFL_U_GT2_IDS(&intel_coffeelake_gt2_info),
     INTEL_CFL_U_GT3_IDS(&intel_coffeelake_gt3_info),
+        INTEL_CML_GT1_IDS(&intel_coffeelake_gt1_info),
+        INTEL_CML_GT2_IDS(&intel_coffeelake_gt2_info),
     INTEL_CNL_U_GT2_IDS(&intel_cannonlake_gt2_info),
     INTEL_CNL_Y_GT2_IDS(&intel_cannonlake_gt2_info),
     {0, 0, 0}
--- linux-4.4.x/drivers/gpu/drm/i915/intel_i2c.c    2021-07-01 22:30:24.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/intel_i2c.c    2022-04-10 00:50:24.599173426 +0800
@@ -107,8 +107,10 @@
     else
         size = ARRAY_SIZE(gmbus_pins);
 
-    return pin < size &&
-        i915_mmio_reg_valid(get_gmbus_pin(dev_priv, pin)->reg);
+    return pin < size && get_gmbus_pin(dev_priv, pin)->name;
+        /* Remove for CML
+         *i915_mmio_reg_valid(get_gmbus_pin(dev_priv, pin)->reg);
+         */
 }
 
 /* Intel GPIO access functions */
--- linux-4.4.x/drivers/gpu/drm/i915/i915_drv.h    2021-07-01 22:30:35.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_drv.h    2022-04-10 00:52:03.709173989 +0800
@@ -782,7 +782,7 @@
     PCH_LPT,    /* Lynxpoint/Wildcatpoint PCH */
     PCH_SPT,        /* Sunrisepoint PCH */
     PCH_KBP,        /* Kaby Lake PCH */
-    PCH_CNP,        /* Cannon Lake PCH */
+    PCH_CNP,        /* Cannon/Comet Lake PCH */
     PCH_NOP,
 };
 
@@ -2844,6 +2844,8 @@
 #define INTEL_PCH_KBP_DEVICE_ID_TYPE        0xA280
 #define INTEL_PCH_CNP_DEVICE_ID_TYPE        0xA300
 #define INTEL_PCH_CNP_LP_DEVICE_ID_TYPE        0x9D80
+#define INTEL_PCH_CMP_DEVICE_ID_TYPE            0x0280 /* PCH IDs CML */
+#define INTEL_PCH_CMP2_DEVICE_ID_TYPE           0x0680 /* PCH IDs CML */
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE        0x7100
 #define INTEL_PCH_P3X_DEVICE_ID_TYPE        0x7000
 #define INTEL_PCH_QEMU_DEVICE_ID_TYPE        0x2900 /* qemu q35 has 2918 */
--- linux-4.4.x/drivers/gpu/drm/i915/i915_drv.c    2021-07-01 22:30:29.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_drv.c    2022-04-10 00:53:46.579174574 +0800
@@ -252,7 +252,16 @@
                 DRM_DEBUG_KMS("Found Cannon Lake LP PCH (CNP-LP)\n");
                 WARN_ON(!IS_CANNONLAKE(dev_priv) &&
                     !IS_COFFEELAKE(dev_priv));
-            } else if (id == INTEL_PCH_P2X_DEVICE_ID_TYPE ||
+            } else if (id == INTEL_PCH_CMP_DEVICE_ID_TYPE) {
+                        dev_priv->pch_type = PCH_CNP;
+                        DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
+                        WARN_ON(!IS_COFFEELAKE(dev_priv));
+                    } else if (id == INTEL_PCH_CMP2_DEVICE_ID_TYPE) {
+                        dev_priv->pch_type = PCH_CNP;
+                        DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
+                        WARN_ON(!IS_COFFEELAKE(dev_priv));
+                    }
+              else if (id == INTEL_PCH_P2X_DEVICE_ID_TYPE ||
                    id == INTEL_PCH_P3X_DEVICE_ID_TYPE ||
                    (id == INTEL_PCH_QEMU_DEVICE_ID_TYPE &&
                     pch->subsystem_vendor ==
--- linux-4.4.x/drivers/gpu/drm/i915/intel_bios.c    2021-07-01 22:30:27.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/intel_bios.c    2022-04-10 01:12:10.759180850 +0800
@@ -1198,7 +1198,8 @@
 
 static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
 {
-    if (HAS_PCH_CNP(dev_priv)) {
+    /*
+        if (HAS_PCH_CNP(dev_priv)) {
         if (vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map)) {
             return cnp_ddc_pin_map[vbt_pin];
         } else {
@@ -1206,6 +1207,15 @@
             return 0;
         }
     }
+    */
+    if (HAS_PCH_CNP(dev_priv)) {
+        if (vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
+            return cnp_ddc_pin_map[vbt_pin];        
+        if (vbt_pin > GMBUS_PIN_4_CNP) {    
+            DRM_DEBUG_KMS("Ignoring alternate pin: VBT claims DDC pin %d, which is not valid for this platform\n", vbt_pin);
+            return 0;
+        }
+    }
 
     return vbt_pin;
 }
@@ -1218,7 +1228,7 @@
     uint8_t hdmi_level_shift;
     int i, j;
     bool is_dvi, is_hdmi, is_dp, is_edp, is_crt;
-    uint8_t aux_channel, ddc_pin;
+    /*uint8_t aux_channel, ddc_pin; */
     /* Each DDI port can have more than one value on the "DVO Port" field,
      * so look for all the possible values for each port.
      */
@@ -1254,8 +1264,10 @@
     if (!child)
         return;
 
+    /* Removed for CML
     aux_channel = child->aux_channel;
-    ddc_pin = child->ddc_pin;
+        ddc_pin = child->ddc_pin;  
+    */
 
     is_dvi = child->device_type & DEVICE_TYPE_TMDS_DVI_SIGNALING;
     is_dp = child->device_type & DEVICE_TYPE_DISPLAYPORT_OUTPUT;
@@ -1302,13 +1314,22 @@
         DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
 
     if (is_dvi) {
-        info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
-
-        sanitize_ddc_pin(dev_priv, port);
+        /*info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
+            sanitize_ddc_pin(dev_priv, port); */
+        u8 ddc_pin;
+        ddc_pin = map_ddc_pin(dev_priv, child->ddc_pin);
+        if (intel_gmbus_is_valid_pin(dev_priv, ddc_pin)) {
+                info->alternate_ddc_pin = ddc_pin;
+                sanitize_ddc_pin(dev_priv, port);
+        } else {
+                DRM_DEBUG_KMS("Port %c has invalid DDC pin %d, "
+                            "reverting to defaults\n",
+                            port_name(port), ddc_pin);
+     }
     }
 
     if (is_dp) {
-        info->alternate_aux_channel = aux_channel;
+        info->alternate_aux_channel = child->aux_channel;
 
         sanitize_aux_ch(dev_priv, port);
     }
@@ -1878,7 +1899,7 @@
 
     if (port == PORT_A || port >= ARRAY_SIZE(port_mapping))
         return false;
-
+    
     if ((child->device_type & DEVICE_TYPE_DP_DUAL_MODE_BITS) !=
         (DEVICE_TYPE_DP_DUAL_MODE & DEVICE_TYPE_DP_DUAL_MODE_BITS))
         return false;

 

Edited by IG-88
Link to comment
Share on other sites

  • 0
13 minutes ago, IG-88 said:

the driver here is not loaded as its a wrong version from a older dsm version the kernel version of 7.0 and 7.1 is 4.4.180 and the driver needs to be compiled for that kernel version

 

from above its there is nothing about the log after you manually loaded the driver and you could also check if there is something in /dev/dri as alternative

but when just loading manually it would be gone after  a reboot

i also checked the driver in arpl and its "only" a patched driver the way i did it in dsm 6.2.3, the "real deal" is the extended driver that is specifically compiled from extended source that take 10th gen stuff into account (the old patch method is just changing a device id from 9th gen into one from other/newer hardware and that does not worked with all 10th gen afair)

 

earlier in this thread

https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3/

there was this patch for the i915 source code that would not need any patching for device id's like seen later in the thread or in arpl, you x9BC8 would just be part of the "better" i915 driver (not 4 different driver files, just one for all)

 

  i915.patch (Reveal hidden contents)

--- linux-4.4.x/include/drm/i915_pciids.h    2021-07-01 22:41:51.000000000 +0800
+++ linux-4.4.new/include/drm/i915_pciids.h    2022-04-10 00:46:45.589172181 +0800
@@ -406,13 +406,40 @@
     INTEL_VGA_DEVICE(0x3EA7, info), /* ULT GT3 */ \
     INTEL_VGA_DEVICE(0x3EA8, info)  /* ULT GT3 */
 
-#define INTEL_CFL_IDS(info)       \
-    INTEL_CFL_S_GT1_IDS(info), \
-    INTEL_CFL_S_GT2_IDS(info), \
-    INTEL_CFL_H_GT2_IDS(info), \
-    INTEL_CFL_U_GT1_IDS(info), \
-    INTEL_CFL_U_GT2_IDS(info), \
-    INTEL_CFL_U_GT3_IDS(info)
+/* Adding CML PCI IDs */
+/* CML GT1 */
+#define INTEL_CML_GT1_IDS(info)    \
+    INTEL_VGA_DEVICE(0x9B21, info), \
+    INTEL_VGA_DEVICE(0x9BAA, info), \
+    INTEL_VGA_DEVICE(0x9BAB, info), \
+    INTEL_VGA_DEVICE(0x9BAC, info), \
+    INTEL_VGA_DEVICE(0x9BA0, info), \
+    INTEL_VGA_DEVICE(0x9BA5, info), \
+    INTEL_VGA_DEVICE(0x9BA8, info), \
+    INTEL_VGA_DEVICE(0x9BA4, info), \
+    INTEL_VGA_DEVICE(0x9BA2, info)
+
+/* CML GT2 */
+#define INTEL_CML_GT2_IDS(info)    \
+    INTEL_VGA_DEVICE(0x9B41, info), \
+    INTEL_VGA_DEVICE(0x9BCA, info), \
+    INTEL_VGA_DEVICE(0x9BCB, info), \
+    INTEL_VGA_DEVICE(0x9BCC, info), \
+    INTEL_VGA_DEVICE(0x9BC0, info), \
+    INTEL_VGA_DEVICE(0x9BC5, info), \
+    INTEL_VGA_DEVICE(0x9BC8, info), \
+    INTEL_VGA_DEVICE(0x9BC4, info), \
+    INTEL_VGA_DEVICE(0x9BC2, info)
+
+#define INTEL_CFL_IDS(info)       \
+    INTEL_CFL_S_GT1_IDS(info), \
+    INTEL_CFL_S_GT2_IDS(info), \
+    INTEL_CFL_H_GT2_IDS(info), \
+    INTEL_CFL_U_GT1_IDS(info), \
+    INTEL_CFL_U_GT2_IDS(info), \
+    INTEL_CFL_U_GT3_IDS(info), \
+    INTEL_CML_GT1_IDS(info), \
+    INTEL_CML_GT2_IDS(info)
 
 /* CNL U 2+2 */
 #define INTEL_CNL_U_GT2_IDS(info) \
--- linux-4.4.x/drivers/gpu/drm/i915/i915_pci.c    2021-07-01 22:30:21.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_pci.c    2022-04-10 00:48:35.859172808 +0800
@@ -636,6 +636,8 @@
     INTEL_CFL_U_GT1_IDS(&intel_coffeelake_gt1_info),
     INTEL_CFL_U_GT2_IDS(&intel_coffeelake_gt2_info),
     INTEL_CFL_U_GT3_IDS(&intel_coffeelake_gt3_info),
+        INTEL_CML_GT1_IDS(&intel_coffeelake_gt1_info),
+        INTEL_CML_GT2_IDS(&intel_coffeelake_gt2_info),
     INTEL_CNL_U_GT2_IDS(&intel_cannonlake_gt2_info),
     INTEL_CNL_Y_GT2_IDS(&intel_cannonlake_gt2_info),
     {0, 0, 0}
--- linux-4.4.x/drivers/gpu/drm/i915/intel_i2c.c    2021-07-01 22:30:24.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/intel_i2c.c    2022-04-10 00:50:24.599173426 +0800
@@ -107,8 +107,10 @@
     else
         size = ARRAY_SIZE(gmbus_pins);
 
-    return pin < size &&
-        i915_mmio_reg_valid(get_gmbus_pin(dev_priv, pin)->reg);
+    return pin < size && get_gmbus_pin(dev_priv, pin)->name;
+        /* Remove for CML
+         *i915_mmio_reg_valid(get_gmbus_pin(dev_priv, pin)->reg);
+         */
 }
 
 /* Intel GPIO access functions */
--- linux-4.4.x/drivers/gpu/drm/i915/i915_drv.h    2021-07-01 22:30:35.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_drv.h    2022-04-10 00:52:03.709173989 +0800
@@ -782,7 +782,7 @@
     PCH_LPT,    /* Lynxpoint/Wildcatpoint PCH */
     PCH_SPT,        /* Sunrisepoint PCH */
     PCH_KBP,        /* Kaby Lake PCH */
-    PCH_CNP,        /* Cannon Lake PCH */
+    PCH_CNP,        /* Cannon/Comet Lake PCH */
     PCH_NOP,
 };
 
@@ -2844,6 +2844,8 @@
 #define INTEL_PCH_KBP_DEVICE_ID_TYPE        0xA280
 #define INTEL_PCH_CNP_DEVICE_ID_TYPE        0xA300
 #define INTEL_PCH_CNP_LP_DEVICE_ID_TYPE        0x9D80
+#define INTEL_PCH_CMP_DEVICE_ID_TYPE            0x0280 /* PCH IDs CML */
+#define INTEL_PCH_CMP2_DEVICE_ID_TYPE           0x0680 /* PCH IDs CML */
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE        0x7100
 #define INTEL_PCH_P3X_DEVICE_ID_TYPE        0x7000
 #define INTEL_PCH_QEMU_DEVICE_ID_TYPE        0x2900 /* qemu q35 has 2918 */
--- linux-4.4.x/drivers/gpu/drm/i915/i915_drv.c    2021-07-01 22:30:29.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/i915_drv.c    2022-04-10 00:53:46.579174574 +0800
@@ -252,7 +252,16 @@
                 DRM_DEBUG_KMS("Found Cannon Lake LP PCH (CNP-LP)\n");
                 WARN_ON(!IS_CANNONLAKE(dev_priv) &&
                     !IS_COFFEELAKE(dev_priv));
-            } else if (id == INTEL_PCH_P2X_DEVICE_ID_TYPE ||
+            } else if (id == INTEL_PCH_CMP_DEVICE_ID_TYPE) {
+                        dev_priv->pch_type = PCH_CNP;
+                        DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
+                        WARN_ON(!IS_COFFEELAKE(dev_priv));
+                    } else if (id == INTEL_PCH_CMP2_DEVICE_ID_TYPE) {
+                        dev_priv->pch_type = PCH_CNP;
+                        DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
+                        WARN_ON(!IS_COFFEELAKE(dev_priv));
+                    }
+              else if (id == INTEL_PCH_P2X_DEVICE_ID_TYPE ||
                    id == INTEL_PCH_P3X_DEVICE_ID_TYPE ||
                    (id == INTEL_PCH_QEMU_DEVICE_ID_TYPE &&
                     pch->subsystem_vendor ==
--- linux-4.4.x/drivers/gpu/drm/i915/intel_bios.c    2021-07-01 22:30:27.000000000 +0800
+++ linux-4.4.new/drivers/gpu/drm/i915/intel_bios.c    2022-04-10 01:12:10.759180850 +0800
@@ -1198,7 +1198,8 @@
 
 static u8 map_ddc_pin(struct drm_i915_private *dev_priv, u8 vbt_pin)
 {
-    if (HAS_PCH_CNP(dev_priv)) {
+    /*
+        if (HAS_PCH_CNP(dev_priv)) {
         if (vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map)) {
             return cnp_ddc_pin_map[vbt_pin];
         } else {
@@ -1206,6 +1207,15 @@
             return 0;
         }
     }
+    */
+    if (HAS_PCH_CNP(dev_priv)) {
+        if (vbt_pin > 0 && vbt_pin < ARRAY_SIZE(cnp_ddc_pin_map))
+            return cnp_ddc_pin_map[vbt_pin];        
+        if (vbt_pin > GMBUS_PIN_4_CNP) {    
+            DRM_DEBUG_KMS("Ignoring alternate pin: VBT claims DDC pin %d, which is not valid for this platform\n", vbt_pin);
+            return 0;
+        }
+    }
 
     return vbt_pin;
 }
@@ -1218,7 +1228,7 @@
     uint8_t hdmi_level_shift;
     int i, j;
     bool is_dvi, is_hdmi, is_dp, is_edp, is_crt;
-    uint8_t aux_channel, ddc_pin;
+    /*uint8_t aux_channel, ddc_pin; */
     /* Each DDI port can have more than one value on the "DVO Port" field,
      * so look for all the possible values for each port.
      */
@@ -1254,8 +1264,10 @@
     if (!child)
         return;
 
+    /* Removed for CML
     aux_channel = child->aux_channel;
-    ddc_pin = child->ddc_pin;
+        ddc_pin = child->ddc_pin;  
+    */
 
     is_dvi = child->device_type & DEVICE_TYPE_TMDS_DVI_SIGNALING;
     is_dp = child->device_type & DEVICE_TYPE_DISPLAYPORT_OUTPUT;
@@ -1302,13 +1314,22 @@
         DRM_DEBUG_KMS("Port %c is internal DP\n", port_name(port));
 
     if (is_dvi) {
-        info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
-
-        sanitize_ddc_pin(dev_priv, port);
+        /*info->alternate_ddc_pin = map_ddc_pin(dev_priv, ddc_pin);
+            sanitize_ddc_pin(dev_priv, port); */
+        u8 ddc_pin;
+        ddc_pin = map_ddc_pin(dev_priv, child->ddc_pin);
+        if (intel_gmbus_is_valid_pin(dev_priv, ddc_pin)) {
+                info->alternate_ddc_pin = ddc_pin;
+                sanitize_ddc_pin(dev_priv, port);
+        } else {
+                DRM_DEBUG_KMS("Port %c has invalid DDC pin %d, "
+                            "reverting to defaults\n",
+                            port_name(port), ddc_pin);
+     }
     }
 
     if (is_dp) {
-        info->alternate_aux_channel = aux_channel;
+        info->alternate_aux_channel = child->aux_channel;
 
         sanitize_aux_ch(dev_priv, port);
     }
@@ -1878,7 +1899,7 @@
 
     if (port == PORT_A || port >= ARRAY_SIZE(port_mapping))
         return false;
-
+    
     if ((child->device_type & DEVICE_TYPE_DP_DUAL_MODE_BITS) !=
         (DEVICE_TYPE_DP_DUAL_MODE & DEVICE_TYPE_DP_DUAL_MODE_BITS))
         return false;

 

 

This explains alot why it is not working!

 

Seeing you've got the i915.patch file linked, how would i install that?

Link to comment
Share on other sites

  • 0

the alternative to this would be the next level of i915 support we've seen lately

its a modded arpl loader with sa6400 (only x64 kernel 5.x device) with a extension to use i915 driver up to 11th gen

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/

the only glitch was with realtek 8168/8111 where it cant use the nic ootb (i added a intel nic and changed something to make r8168 work on boot and then removed the intel nic)

also atm it does not come with such a rich driver set as the other loaders, it still some beta but works and it would be possible to use the *.ko files from other loaders like arpl or tcrp (they do have driver sets for epyc aka sa6400 on github)

Link to comment
Share on other sites

  • 0
6 minutes ago, IG-88 said:

the alternative to this would be the next level of i915 support we've seen lately

its a modded arpl loader with sa6400 (only x64 kernel 5.x device) with a extension to use i915 driver up to 11th gen

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/

the only glitch was with realtek 8168/8111 where it cant use the nic ootb (i added a intel nic and changed something to make r8168 work on boot and then removed the intel nic)

also atm it does not come with such a rich driver set as the other loaders, it still some beta but works and it would be possible to use the *.ko files from other loaders like arpl or tcrp (they do have driver sets for epyc aka sa6400 on github)

currently installing this! keeping you updated!

Link to comment
Share on other sites

  • 0
8 minutes ago, Mirano said:

Seeing you've got the i915.patch file linked, how would i install that?

someone would need to compile a new driver from the dsm 7.0 source with the patch and that could be (tested) and installed - i did not follow this thread for a while but a thought they where on the right path, looks like they took a different turn somewhere

anyway the best so far might be jim ma's i915 in sa6400 so far, it overcomes some of the backporting issues as the i915 in kernel 5.x can do more and a lot of that stuff was to much effort to backport into kernel 4.4 (and all the other devices of synology is still based in kernel 4.4 and that will be the same with dsm 7.2, so for at least a year there might be no better solution then sa6400 with 10th and above cpu's (for now up to 11th but he wrote that he already had code for 12th gen)

Link to comment
Share on other sites

  • 0
28 minutes ago, IG-88 said:

the alternative to this would be the next level of i915 support we've seen lately

its a modded arpl loader with sa6400 (only x64 kernel 5.x device) with a extension to use i915 driver up to 11th gen

https://xpenology.com/forum/topic/68067-develop-and-refine-sa3600broadwellnk-and-sa6400epyc7002-thread/

the only glitch was with realtek 8168/8111 where it cant use the nic ootb (i added a intel nic and changed something to make r8168 work on boot and then removed the intel nic)

also atm it does not come with such a rich driver set as the other loaders, it still some beta but works and it would be possible to use the *.ko files from other loaders like arpl or tcrp (they do have driver sets for epyc aka sa6400 on github)

got sa6400 running through the link provided. /dev/dri is working now, i ran this earlier and opted out of it because of this:

 

image.thumb.png.794e0f384ed1456b63c1c01e8f1d51c9.png

 

Since its Intel running a AMD setup (sa6400) that doesn't seem to play nice with Virtual machines within Synology's OS.

 

Do you perhaps know a way around?

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.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  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.

×
×
  • Create New...