Jump to content
XPEnology Community

Tutorial: Install/Migrate to DSM 7.x with TinyCore RedPill (TCRP) Loader


flyride

Recommended Posts

3 hours ago, gadreel said:

@flyride Since the first TinyCore release I have my DS918+ up and running. Recently I came into the possession of a X550-T2 (2 ports) and I would like to use it.

My DS918+ it's not a baremetal but a VM. I know how to pass-through 1 of the ports. The question here is how do add the ixbe driver to loader in order to identify the new network card without messing everything up. Any particular commands that I need to run?

 

I prefer not to rebuild the loader because a lot of stuff have change in TCRP since then... for example Jumkey's ACPI used to work on DS918+ not it does not.

Any advice is much appreciated...

 

Have you built the Redfill Loader only once for the DS918+?

Building a new loader is probably the easiest and most convenient way to add ext.

 

If not, I think you have to code to include only the desired ext in the zImage and rd.gz files separately, wouldn't it be too complicated a process?
Rebuilding the loader does not damage the data partition.

 

If you are concerned about any damage,
It is recommended to build one more set of the same test environment in the VM and test it by building a loader including ixgbe ext.

 

In using ixgbe as a duel, there was a discussion with @pocopico and the rp-ext issue about the ext duplication problem in junior.

It seems that this problem can be avoided if only one of the two ports is passed through.

 

Please see the issue below.
The user on this issue switched to the ds3622xs+ and took advantage of the vanilla ext built into this model.

 

https://github.com/pocopico/rp-ext/issues/103

 

Edited by Peter Suh
Link to comment
Share on other sites

@Peter SuhIndeed, I built the loader only once and my image file is "tinycore-redpill.v0.4.4.img" ofcourse during the course of DSM updates I run the commands to update the rploader.sh and fullupgrade but I never run the "build" command again.

 

I open the loader img with OSFMount and I found in partition 1(0) the "custom.gz" which contains the existing .ko of my loader. But that file contains a ReadMe file saying that you should NOT temper with that file, do not add, remove or edit any extensions. Unless this is not how you add an extension manually.

 

What I am worrying is that when building the loader again it will try and take the extensions from the sources that I used at my 1st build, as said, for example the ACPID for some reason Jumkey removed DS918+, I have no idea why but I know that during build if an extensions is not found for the model and version you are building it, it will not build the loader. It will cause an error. Correct me if I am wrong.

 

Yes I will pass a single port. I created another TEST VM with the DS918+ and I pass-through a single port and it works just fine.

 

DS3622xs+ nope, I do not want to migrate... :(

Edited by gadreel
Link to comment
Share on other sites

@Peter Suh

Update: I did as you said. I recreated the loader with the extensions that I needed.

I had to fork redpill-virtio and redpill-acpid to my own repos in order to add support for DS918p-42661.

I had a mini heart-attack because after the build I stuck in a recovery loop but going back to tiny core and run the postupdate command it detected update 2 and now everything is back to normal.

 

But unfortunately it seems that even if I connect a 10Gbe post when I am passing-through my drives I only get 130Mbytes write speeds. :( I guess is a waste. I should go back to virtio-net.

 

Thank you for the support.

Link to comment
Share on other sites

38 minutes ago, gadreel said:

@Peter Suh

Update: I did as you said. I recreated the loader with the extensions that I needed.

I had to fork redpill-virtio and redpill-acpid to my own repos in order to add support for DS918p-42661.

I had a mini heart-attack because after the build I stuck in a recovery loop but going back to tiny core and run the postupdate command it detected update 2 and now everything is back to normal.

 

But unfortunately it seems that even if I connect a 10Gbe post when I am passing-through my drives I only get 130Mbytes write speeds. :( I guess is a waste. I should go back to virtio-net.

 

Thank you for the support.

 

Is your VM ESXI?

 

Yesterday, a user in Korea mentioned the LRO(Large Receive Offload) issue of vmxnet3 ext.
This part is said to be closely related to vm-tools.


The point is that pocopico's vmxnet3 operates with LRO enabled by default.

When copying files from Windows to XPE, most of the large buffer packets are lost, so the normal speed of 10G nic cannot be guaranteed.
The speed, as you said, is at the level of 130 Mbytes.

 

Since I do not have a 10G nic, I am preparing an attempt to disable LRO by modifying check-vmxnet3.sh of this user and vmxnet3.

https://github.com/PeterSuh-Q3/rp-ext/blob/main/vmxnet3/src/check-vmxnet3.sh

 

If I succeed in this test, I will post again.

 

Edited by Peter Suh
Link to comment
Share on other sites

36 minutes ago, Peter Suh said:

 

Is your VM ESXI?

 

Yesterday, a user in Korea mentioned the LRO(Large Receive Offload) issue of vmxnet3 ext.
This part is said to be closely related to vm-tools.


The point is that pocopico's vmxnet3 operates with LRO enabled by default.

When copying files from Windows to XPE, most of the large buffer packets are lost, so the normal speed of 10G nic cannot be guaranteed.
The speed, as you said, is at the level of 130 Mbytes.

 

Since I do not have a 10G nic, I am preparing an attempt to disable LRO by modifying check-vmxnet3.sh of this user and vmxnet3.

https://github.com/PeterSuh-Q3/rp-ext/blob/main/vmxnet3/src/check-vmxnet3.sh

 

If I succeed in this test, I will post again.

 

 

No. I have Unraid. It's KVM... When I tried iperf3 with vmxnet I was getting 2.5Gigabit that is just iperf3 has nothing to do with the disks.

I thought maybe the 10G nic might help. iperf3 now I am getting 5Gigabit but still the write speeds are the same.

 

I do not know if that will help in anyway. Maybe is the way the KVM SATA controller works...

Edited by gadreel
Link to comment
Share on other sites

2 hours ago, Peter Suh said:

 

Is your VM ESXI?

 

Yesterday, a user in Korea mentioned the LRO(Large Receive Offload) issue of vmxnet3 ext.
This part is said to be closely related to vm-tools.


The point is that pocopico's vmxnet3 operates with LRO enabled by default.

When copying files from Windows to XPE, most of the large buffer packets are lost, so the normal speed of 10G nic cannot be guaranteed.
The speed, as you said, is at the level of 130 Mbytes.

 

Since I do not have a 10G nic, I am preparing an attempt to disable LRO by modifying check-vmxnet3.sh of this user and vmxnet3.

https://github.com/PeterSuh-Q3/rp-ext/blob/main/vmxnet3/src/check-vmxnet3.sh

 

If I succeed in this test, I will post again.

 

 

It was impossible to use modprobe in the above script, and the test failed in the end.

 

Redpill-load FAQ has already explained this.

 

https://github.com/pocopico/redpill-load/blob/master/FAQ.md

 

preboot environment contains no modprobe as it has no concept of depmods (=modprobe would be useless).

 

Link to comment
Share on other sites

Hi all!

 

Anyone else seeing this issue?

 

Im using Proxmox and passthrough a few harddrives to the VM

Upon booting... its taking its time for each disk.

 

Any workaround for this?

 

Thanks!

 

 

96.261440] <redpill/boot_shim_base.c:34> Checking if SATA disk is a shim target - id=0 channel=0 vendor="QEMU    QEMU HARDDISK   2.5+" model="QEMU HARDDISK           "
[   96.264417] <redpill/boot_shim_base.c:44> Device has capacity of ~228936 MiB - it WILL NOT be shimmed (>1024)
[   96.266575] <redpill/scsi_notifier.c:87> Calling original sd_probe()
[   96.267836] want_idx 1 index 8. delay and reget
[   97.268128] want_idx 1 index 8
[   97.268639] want_idx 1 index 8. delay and reget
[   98.269206] want_idx 1 index 8
[   98.269678] want_idx 1 index 8. delay and reget
[   99.270114] want_idx 1 index 8
[   99.270604] want_idx 1 index 8. delay and reget
[  100.271169] want_idx 1 index 8
[  100.271827] want_idx 1 index 8. delay and reget
[  101.272107] want_idx 1 index 8
[  101.272872] want_idx 1 index 8. delay and reget

Link to comment
Share on other sites

Thanks for an excellent guide @flyride.   I'm 99% of the way there but stuck on item 3) Drive Slot Mapping.

When I attempt

 

tc@box:~$ ./rploader.sh satamap

 

I'm told that....

 

Found "00:1f.2 Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 04)"
Detected 4 ports/1 drives. Bad ports: 1 3 4. Override # of ports or ENTER to accept <4>


I'm confused as to what to do next / how to add the correct port(s)? I only have the 1 drive connected atm as I'm testing my setup, as per the guide.

The hardware is a Dell Optiplex 3010 (Intel i5), with DS918+ as the selected NAS target. 

Thanks

Link to comment
Share on other sites

If you cannot figure it out by looking through the troubleshooting section of the guide, then post a question in the DSM Installation forum with details of your system, logs from the build, etc. There are plenty of examples of people requesting and receiving help there.

Link to comment
Share on other sites

  • 3 weeks later...
On 7/1/2022 at 5:23 PM, steveharman said:

Thanks for an excellent guide @flyride.   I'm 99% of the way there but stuck on item 3) Drive Slot Mapping.

When I attempt

 

tc@box:~$ ./rploader.sh satamap

 

I'm told that....

 

Found "00:1f.2 Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 04)"
Detected 4 ports/1 drives. Bad ports: 1 3 4. Override # of ports or ENTER to accept <4>


I'm confused as to what to do next / how to add the correct port(s)? I only have the 1 drive connected atm as I'm testing my setup, as per the guide.

The hardware is a Dell Optiplex 3010 (Intel i5), with DS918+ as the selected NAS target. 

Thanks

how to exclude bad ports?

  • Like 1
Link to comment
Share on other sites

In the troubleshooting section there are several strategies to mitigate bad ports.

 

It may not always be possible to resolve the problem depending upon the motherboard design.  If that is the case, consider virtualizing where individual ports can be selected and attached to a virtual SATA controller (i.e. ESXi RDM) or choose a Device Tree platform where each port is specified.

  • Like 1
Link to comment
Share on other sites

re-mapping the drive number in the Synology

Thank you @flyride for the fantastic tutorial. My configuration is an LSI-2011-8i SAS without sata controller using broadwellnk-7.1.0-42661. Everything is working fine expect the Synology drive number doesn't match the physical location. Is there a method to re-mapping the drive number in the Synology?

 

thx

  • Like 1
Link to comment
Share on other sites

Awesome guide! I kept getting a "bad ports" message when I ran the satamap command and didn't really get any useful feedback from the community - and this is probably on me but I couldn't find much on how to deal with it in the forums when doing my research.

 

I simply ignored it and manually identified how many onboard SATA ports and additional SATA ports I was using using satamap (for example, I have 5 visible onboard SATA ports and for some reason detected 6, and also said all 6 were bad; it detected my other SATA card just fine. I was about to destroy essentially my "production NAS" to put drives in a Synology DS220+, but I'm glad I backed up my important stuff and took the gamble lol.

 

Now I can return the DS220+ I just bought as my dedicated photo backup solution (I'll probably pick up the refreshed model that's supposed to come out soon). Thanks again to all the devs that brought this to us!

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   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...