헤놀 jumkey님의 DS920+는 새로운 PortMapping 을 시도
회사 공무팀에 부탁하여 리얼텍 랜카드를 하나 받았습니다.
물론 공짜가 아닌 비타500과 물물 교환 하였죠.
아무튼 포럼에서 jumkey님은 새로운 PortMapping으로 DS920+ 부터로드를 만들었더군요.
단순히 리얼텍 카드만 꼽으면 된다고 생각하였는데 그것이 아니라 ds920p.dtb 파일을 자신의 시스템에
맞게 수정해야했습니다. 틀리면 인식되는 하드가 없다고 나옵니다.
아마 시간이 지나면 다들 사용하기 쉽게 바뀔것같습니다.
혹시 지금 시도하실분을 위해서 제가 한 방식중 제일 어려웠던 부분을 적겠습니다.
dtc -I dtb -O dts -o output.dts model_ds920p.dtb
output.dts 파일이 생성되면 이 파일을 자신의 시스템에 맞게 수정해야합니다.
SATA포트 뿐만아니라 NVME 캐쉬도 한번에 수정가능합니다.
저는 lspci 명령어를 이용해서 sata 포트의 pcie_root를 찾아서 수정했습니다.
output.dts 파일을 메모장에서 열어보면 아래와 같습니다.
/dts-v1/;
/ {
compatible = "Synology";
model = "synology_geminilake_920+";
version = <0x01>;
syno_spinup_group = <0x02 0x01 0x01>;
syno_spinup_group_delay = <0x0b>;
syno_hdd_powerup_seq = "true";
syno_cmos_reg_secure_flash = <0x66>;
syno_cmos_reg_secure_boot = <0x68>;
DX517 {
compatible = "Synology";
model = "synology_dx517";
pmp_slot@1 {
libata {
EMID = <0x00>;
pmp_link = <0x00>;
};
};
pmp_slot@2 {
libata {
EMID = <0x00>;
pmp_link = <0x01>;
};
};
pmp_slot@3 {
libata {
EMID = <0x00>;
pmp_link = <0x02>;
};
};
pmp_slot@4 {
libata {
EMID = <0x00>;
pmp_link = <0x03>;
};
};
pmp_slot@5 {
libata {
EMID = <0x00>;
pmp_link = <0x04>;
};
};
};
internal_slot@1 {
protocol_type = "sata";
power_pin_gpio = <0x14 0x00>;
detect_pin_gpio = <0x23 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x00>;
};
led_green {
led_name = "syno_led0";
};
led_orange {
led_name = "syno_led1";
};
};
internal_slot@2 {
protocol_type = "sata";
power_pin_gpio = <0x15 0x00>;
detect_pin_gpio = <0x24 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x01>;
};
led_green {
led_name = "syno_led2";
};
led_orange {
led_name = "syno_led3";
};
};
internal_slot@3 {
protocol_type = "sata";
power_pin_gpio = <0x16 0x00>;
detect_pin_gpio = <0x25 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x02>;
};
led_green {
led_name = "syno_led4";
};
led_orange {
led_name = "syno_led5";
};
};
internal_slot@4 {
protocol_type = "sata";
power_pin_gpio = <0x17 0x00>;
detect_pin_gpio = <0x26 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x03>;
};
led_green {
led_name = "syno_led6";
};
led_orange {
led_name = "syno_led7";
};
};
internal_slot@5 {
protocol_type = "sata";
power_pin_gpio = <0x18 0x00>;
detect_pin_gpio = <0x27 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x04>;
};
led_green {
led_name = "syno_led8";
};
led_orange {
led_name = "syno_led9";
};
};
internal_slot@6 {
protocol_type = "sata";
power_pin_gpio = <0x19 0x00>;
detect_pin_gpio = <0x28 0x01>;
led_type = "lp3943";
ahci {
pcie_root = "00:17.0";
ata_port = <0x05>;
};
led_green {
led_name = "syno_led10";
};
led_orange {
led_name = "syno_led11";
};
};
esata_port@1 {
ahci {
pcie_root = "00:13.0,00.0";
ata_port = <0x03>;
};
};
usb_slot@1 {
vbus {
syno_gpio = <0x1d 0x01>;
};
usb2 {
usb_port = "1-1";
};
usb3 {
usb_port = "2-1";
};
};
usb_slot@2 {
vbus {
syno_gpio = <0x1e 0x01>;
};
usb2 {
usb_port = "1-2";
};
usb3 {
usb_port = "2-2";
};
};
nvme_slot@1 {
pcie_root = "00:1d.0";
port_type = "ssdcache";
};
nvme_slot@2 {
pcie_root = "00:14.0";
port_type = "ssdcache";
};
};
제 메인보드에 맞게 수정한것인데 단순 반복이기 때문에 이해하기 쉬울것입니다.
internal_slot이 6개인데 원래는 4개입니다. 제 메인보드가 6개 지원해서 수정한것이죠.
dtc -I dts -O dtb -o model_ds920p.dtb output.dts
수정된 output.dts 파일을 다시 model_ds920p.dtb 파일로 만들어 덮어씌웁니다.
다음 과정은 기존과 같습니다.
./redpill_tool_chain.sh build geminilake-7.0.1-42218
./redpill_tool_chain.sh auto geminilake-7.0.1-42218
제가 사용한 방법이 정확하게 맞는지은 저도 모릅니다. 아마 기다리시면 간단한 방법이 나올것 같습니다.
cmt alert