"Redpill" to nowy loader, następca popularnego i dotychczas używanego loadera by Jun, który niestety swoje wsparcie zakończył na wersji softu DSM6.2.3.
"Redpill" wspiera softy 6.2.4, 7.x.
By w ogóle myśleć o kompilacji redpill potrzebujemy:
- linuxa, możliwie świeżego (w moim przypadku Debian Buster)
- zainstalowanego dockera
- chociaż podstawowej wiedzy z linuxa
Ściągamy plik redpill-tool-chain_x86_64_v0.11.zip (to na chwilę pisania artykułu najnowsza wersja) i rozpakowyjemy. Nadajemy uprawnienie execute dla głównego skryptu:
Available platform versions:
---------------------
bromolow-6.2.4-25556
bromolow-7.0-41222
apollolake-6.2.4-25556
apollolake-7.0-41890
gdzie apollolake to DS918+, zaś bromolow oznacza DS3615xs.
Jeżeli chcemy skompilować redpill dla 6.2.4 lub 7.0 RC to następny krok możemy ominąć. Jeżeli zaś chcemy redpill dla 7.0.1 DS918+ to ściągamy global-add-7.0.1.patch i go nakładamy komendą:
Available platform versions:
---------------------
bromolow-6.2.4-25556
bromolow-7.0-41222
apollolake-6.2.4-25556
apollolake-7.0-41890
apollolake-7.0.1-42218
2) Dane do kompilacji
Znając już platformę, pod którą chcemy skompilować musimy przeedytować plik <platforma>_user_config.json. Uzupełniamy w nim:
- pid i vid naszego pendrive`a. Uczulam, by 10x sprawdzić czy poprawnie wpisaliśmy dane. W windowsie wchodzimy do Menadżera urządzeń, Stacje dysków, odszukujemy nasz pendrive, Szczegóły, Nadrzędny i tu mamy PID i VID.
- sn - wygenerowany numer seryjny (w google wpisujemy "xpenology seria generator")
- mac1, mac2 itd - adresy mac naszej karty (kart) LAN w NASie
- dodatkowo polecam dodać pola
powyższe oznacza, że mamy jeden kontroler SATA z 6`ma portami. Jeżeli mieli byśmy przykładowo jeden kontroler z 2 portami i drugi z dodatkowymi dwoma to SataPortMap ustawiamy na 22.
./redpill_tool_chain.sh auto apollolake-7.0.1-42218
Zobaczymy, że najpierw skompiluje się redpill-lkm czyli moduł redpill a następnie redpill-load czyli loader który wygeneruje nam finalny plik ISO.
Po zakończonym procesie nasz obraz znajdziemy w katalogu "images". Teraz wystarczy "wypalić" obraz redpill na naszego pendrive programem Win32DiskImager.
4) Dodanie modułów
Jeżeli podstawowa kompilacja nie chce nam ruszyć, może okazać się konieczne dodanie modułów np do obsługi naszej karty LAN albo kontrolera SATA. Posłużyć się można tu repozytorium pocopico. Na moim przykładzie dodam moduł tn40xx do obsługi karty Edimax 10GbE.
W tym celu musimy lekko zmodyfikować redpill-load. W pliku global_config.json odszukujemy "local_rp_load_use" i zmieniamy z false na true. Następnie w głównym trzewie toolchaina ściągamy źródła redpill-load (ja używam forka by jumkey, ponieważ ma on dodaną obsługę dla 7.0.1)
[#] Downloading remote file https://raw.githubusercontent.com/pocopico/rp-ext/master/tn40xx/releases/ds918p_42218.json to /opt/redpill-load/custom/extensions/_ext_new_rcp.tmp_json
######################################################################################################################################################################################################################################################### 100.0%
[#] Filling-in newly downloaded recipe for extension pocopico.tn40xx platform ds918p_42218
[#] Downloading remote file https://raw.githubusercontent.com/pocopico/rp-ext/master/tn40xx/releases/tn40xx-4.4.180plus.tgz to /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/tn40xx-4.4.180plus.tgz
######################################################################################################################################################################################################################################################### 100.0%
[#] Verifying /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/tn40xx-4.4.180plus.tgz file... [OK]
[#] Unpacking files from /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/tn40xx-4.4.180plus.tgz to /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/... [OK]
[#] Downloading remote file https://raw.githubusercontent.com/pocopico/rp-ext/master/tn40xx/src/check-tn40xx.sh to /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/check-tn40xx.sh
######################################################################################################################################################################################################################################################### 100.0%
[#] Verifying /opt/redpill-load/custom/extensions/pocopico.tn40xx/ds918p_42218/check-tn40xx.sh file... [OK]
[#] Successfully processed recipe for extension pocopico.tn40xx platform ds918p_42218
Jeżeli potrzebnego nam modułu nie ma na liście, proponuję zwrócić się do @pocopico w temacie o redpill. Samodzielna kompilacja modułów to często wielogodzinne boje (nie wszystkie moduły są dostarczane w źródłach kernela). Przykładowo tn40xx nie dość, że nie jest w źródłach kernela, to przez prawa licencyjne źródła zostały zubożone o wsparcie dla mojej karty Edimaxa. Dobre 3 godziny zajęło mi posklejanie sterowników i ich kompilacja. Finalnie sama kompilacja odbywa się przez CROSS_COMPILE i w moim przypadku finalna komenda to:
make -C /usr/src/module_compile/tn40xx-driver-vendor-drop-v0.3.6.17.2 EXPECTED_KDIR=/usr/src/module_compile/DSM-7.0-toolkit/build CROSS_COMPILE=/usr/src/module_compile/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- MV88X3310=YES QT=YES TL=YES AQ=YES MUSTANG=YES
Czasami zamiast DSM-7.0-toolkit trzeba użyć źródeł kernela (toolchain ściąga wymagane pliki do "docker/downloads")
Edytowany przez shibby dnia 18-10-2021 08:49
Proxmox VE:i5-13400T, 64GB RAM, 2x 512GB NVMe, 3x 2TB SSD, Intel X710-DA2 SFP+ VM Router:OpenWRT 22.03.4 VM NAS:Synology SA6400 VM VPS:Debian, WWW, Home Assistant Switch:Netgear MS510TXPP Switch:Ubiquiti USW-Flex-mini - szt. 2 Wi-Fi:Ubiquiti U6-Lite - szt. 2
root@proxmox:~/redpill# ./redpill_tool_chain.sh auto apollolake-7.0.1-42218
Checking if redpill-lkm sources require pull.
Nothing to do.
Check if redpill-load sources require pull.
Nothing to do.
Lay back and enjoy the show: Magic is about to happen!
make[1]: Entering directory '/opt/redpill-lkm'
make -C /opt/toolkit_dev-apollolake-7.0.1-42218 M=/opt/redpill-lkm RP_MODULE_TARGET="prod" RP_MODULE_TARGET_VER="7" modules
make[2]: Entering directory '/opt/toolkit_dev-apollolake-7.0.1-42218'
RP-TARGET SPECIFIED AS prod v7
CC [M] /opt/redpill-lkm/compat/string_compat.o
CC [M] /opt/redpill-lkm/internal/helper/math_helper.o
CC [M] /opt/redpill-lkm/internal/helper/memory_helper.o
CC [M] /opt/redpill-lkm/internal/helper/symbol_helper.o
CC [M] /opt/redpill-lkm/internal/scsi/scsi_toolbox.o
CC [M] /opt/redpill-lkm/internal/scsi/scsi_notifier_list.o
CC [M] /opt/redpill-lkm/internal/scsi/scsi_notifier.o
CC [M] /opt/redpill-lkm/internal/override/override_symbol.o
CC [M] /opt/redpill-lkm/internal/override/override_syscall.o
CC [M] /opt/redpill-lkm/internal/intercept_execve.o
CC [M] /opt/redpill-lkm/internal/call_protected.o
CC [M] /opt/redpill-lkm/internal/intercept_driver_register.o
CC [M] /opt/redpill-lkm/internal/stealth/sanitize_cmdline.o
CC [M] /opt/redpill-lkm/internal/stealth.o
CC [M] /opt/redpill-lkm/internal/virtual_pci.o
CC [M] /opt/redpill-lkm/internal/uart/uart_swapper.o
CC [M] /opt/redpill-lkm/internal/uart/vuart_virtual_irq.o
CC [M] /opt/redpill-lkm/internal/uart/virtual_uart.o
CC [M] /opt/redpill-lkm/internal/ioscheduler_fixer.o
CC [M] /opt/redpill-lkm/config/cmdline_delegate.o
/opt/redpill-lkm/config/cmdline_delegate.c: In function 'extract_config_from_cmdline':
/opt/redpill-lkm/config/cmdline_delegate.c:413:74: warning: value computed is not used [-Wunused-value]
extract_netif_macs(config->macs, single_param_chunk) ||
^~
CC [M] /opt/redpill-lkm/config/runtime_config.o
CC [M] /opt/redpill-lkm/shim/boot_dev/boot_shim_base.o
CC [M] /opt/redpill-lkm/shim/boot_dev/usb_boot_shim.o
CC [M] /opt/redpill-lkm/shim/boot_dev/fake_sata_boot_shim.o
In file included from /opt/redpill-lkm/shim/boot_dev/fake_sata_boot_shim.c:46:
/opt/redpill-lkm/compat/toolkit/include/../drivers/usb/storage/usb.h:50:2: warning: #warning "Using compatibility file for drivers/usb/storage/usb.h - if possible do NOT compile using toolkit" [-Wcpp]
#warning "Using compatibility file for drivers/usb/storage/usb.h - if possible do NOT compile using toolkit"
^~~~~~~
CC [M] /opt/redpill-lkm/shim/boot_dev/native_sata_boot_shim.o
CC [M] /opt/redpill-lkm/shim/boot_device_shim.o
CC [M] /opt/redpill-lkm/shim/storage/smart_shim.o
CC [M] /opt/redpill-lkm/shim/storage/sata_port_shim.o
CC [M] /opt/redpill-lkm/shim/bios/bios_hwcap_shim.o
/opt/redpill-lkm/shim/bios/bios_hwcap_shim.c: In function 'GetHwCapability_shim':
/opt/redpill-lkm/shim/bios/bios_hwcap_shim.c:64:17: warning: unused variable 'ovs_fout' [-Wunused-variable]
int ovs_fout = call_overridden_symbol(org_fout, GetHwCapability_ovs, cap);
^~~~~~~~
CC [M] /opt/redpill-lkm/shim/bios/bios_hwmon_shim.o
CC [M] /opt/redpill-lkm/shim/bios/rtc_proxy.o
CC [M] /opt/redpill-lkm/shim/bios/bios_shims_collection.o
CC [M] /opt/redpill-lkm/shim/bios_shim.o
CC [M] /opt/redpill-lkm/shim/block_fw_update_shim.o
CC [M] /opt/redpill-lkm/shim/disable_exectutables.o
CC [M] /opt/redpill-lkm/shim/pci_shim.o
CC [M] /opt/redpill-lkm/shim/pmu_shim.o
CC [M] /opt/redpill-lkm/shim/uart_fixer.o
CC [M] /opt/redpill-lkm/redpill_main.o
LD [M] /opt/redpill-lkm/redpill.o
Building modules, stage 2.
RP-TARGET SPECIFIED AS prod v7
MODPOST 1 modules
CC /opt/redpill-lkm/redpill.mod.o
LD [M] /opt/redpill-lkm/redpill.ko
make[2]: Leaving directory '/opt/toolkit_dev-apollolake-7.0.1-42218'
make[1]: Leaving directory '/opt/redpill-lkm'
#############################################
filename: /opt/redpill-lkm/redpill.ko
license: GPL
depends:
retpoline: Y
vermagic: 4.4.180+ SMP mod_unload
#############################################
Using user_config.json:
{
"extra_cmdline": {
"pid": "0xxxxx",
"vid": "0xxxxx",
"sn": "xxxxxxxxxxxxx",
"mac1": "xxxxxxxxxxxxx"
"mac2": "xxxxxxxxxxxxx"
"mac3": "xxxxxxxxxxxxx"
"DiskIdxMap": "00",
"SataPortMap": "22",
"SasIdxMap": "0"
},
"synoinfo": {},
"ramdisk_copy": {}
}
#############################################
/opt/redpill-load /opt
[#] Checking runtime for required tools... [OK]
include/json.sh: line 16: 2: unbound variable
make: *** [Makefile:33: build_redpill_load] Error 1
Scalony z 17 października 2021 12:10:55:
dobra już działa, zapomniałem dać przecinki po mac w pliku <platforma>_user_config.json
Gdy ktoś pobiera pliki z https://update.groov.pl/redpill/ to zamiast
coś 918+ nie lubi się z AMD nie mogę zainstalować wywala plik jest uszkodzony na intelu idzie od razu.
Ma ktoś może 7.0-41222 dla DS3615xs. ponieważ na stronie synology nie widzę, a na AMD działało 6.2.3 z DS3617xs
Edytowany przez manius dnia 17-10-2021 12:10
Po odpaleniu otrzymuje komunikat:
"Wykryto błędy na dyskach 1,3,4,5) a porty SATA zostały wyłączone.
Wyłącz serwer DS918+, aby wymienić lub wyjąć te dyski twarde, i spróbuj ponownie"
[img][/img]
podłączony jest 1 dysk pod SATA 2 .
Aby poszło dalej muszę wyłączyć w biosie porty SATA pod które nie podpięte są dyski i skompilować na:
ale w czym widzisz problem . Ustaw SataPortMap jak chcesz :
### Jeśli masz problemy z sata, określ liczbę posiadanych portów
### umieść dyski na porcie 1,2,3,4 i umieść SataPortMap=4
### SataPortMap=4 oznacza pierwsze 4 porty pierwszego kontrolera.
### SataPortMap=44 oznacza pierwsze 4 porty pierwszego kontrolera i pierwsze 4 porty drugiego kontrolera.
### SataPortMap=422 oznacza pierwsze 4 porty pierwszego kontrolera, pierwsze 2 porty drugiego kontrolera i pierwsze 2 porty
trzeciego kontrolera.
Mam płytę AIMB-274 Advantech'a
Są tam 4 pory SATA, 1 port eSATA i obsługa dysków MINIPCIE mSATA.
Głowy nie dałbym se uciąć ale wydaje się, że te 4 gniazda SATA i eSATA obsługuje 1 kontroler.
Na poprzednim booloaderze "DiskIdxMap", "SataPortMap", "SasIdxMap" było nie zdefiniowane i wszystko śmigało bez problemu, pokazywało mi 16 gniazd i dyski lądowały w pierwszych 6 automatycznie.
Teraz nie rusza jak nie wykryje dysku na porcie SATA, dlatego jak ma podpięty 1 dysk to muszę wrzucić
"SataPortMap": "1"
Inaczej Synology Assistant przy starcie wyrzuca mi:
"Wykryto błędy na dyskach (2,3,4,5) a porty SATA zostały wyłączone.
Wyłącz serwer DS918+, aby wymienić lub wyjąć te dyski twarde, i spróbuj ponownie"
czepia się do tych portów gdzie nie ma dysku. Próbowałem z 1, 2 i 5 portem, po prostu dam gdzie jest podpięty dysk, to tej cyferki nie wypisuje
W biosie nic nie ruszałem, ustawienia są takie jak w działającym cały czas DSM 6.2.3-25426
Pobawię się jeszcze po świętach w wolnej chwili.
Problem polega też na tym, że wszelkie eksperymenty staram się robić ostrożnie, żeby nie rozwalić istniejącego systemu i nie stracić danych (3*6TB +4TB.)
Dla tego rozpinam istniejące dyski i podpinam nowe, a każda taka zabawa wyłącza mi istniejącą infrastrukturę opartą na Synology w domu.
I jeszcze ciągle rozwala mi połączenie QuickConnect na serwerze Synology i zaburza połączenia klientów Synology Drive Client
no wydaje mi się ze coś robisz źle . Ja nie rozpinałem dysków jak przechodziłem za DSM 6.2.3 na DSM 7 , podmieniłem tylko pendrive z redpill w x:\boot\grub\grub.cfg , zmieniłem tylko pid/vid ,mac-i ,serial , staportmap i tyle. Przy pierwszym uruchomieniu wykrył zainstalowany system i sie zmigrował , i wszystkie ustawienia zostały z poprzedniej wer . Nic się nie wykasowało , quickconnect żeby działał musi być mac i serial sparowany , taki z czapy nie będzie obsługiwał QC
QC chodzi bez problemu, mam zamiar nie rozpinać dysków i też tylko podmienić pena i przejść z 6.2.3 na 7.0, Ale nie podejmę tego ryzyka bez sprawdzenia nowego botloadera na innym zestawie dysków, po prostu nie chcę stracić danych. A jak widać problemy są z portami SATA.
Przypomina mi to sytuację z niektórymi Delami, w których trzeba było wyłączyć port SATA w biosie dla portów z niepodpiętymi dyskami bios nie uruchamiał systemu jak nie wykrył podpiętego dysku na porcie SATA.
żadne dane się same nie usuną do puki nie dasz takiej komendy na ich usunięcie ale ok . Podłącz serial i zobacz co się dzieje w logach , może być że twoja płyta nie jest poprawnie rozpoznawana przez nowy bootloader
Ok, migracja skończona.
Problem z portami SATA jest dziwny, jeżeli chcę używać 4 portów sata to po wpisaniu "SataPortMap": "4" podczas pierwszego uruchomienia Synology Assistant muszę podpiąć wszystkie dyski pod porty SATA, inaczej wywali mi błąd który pisałem poprzednio. Ale już po zainstalowaniu systemu mogę spokojnie odpiąć dowolne dyski i wszystko jest ok.
Nie udało mi się uruchomić eSATA W biosie mam kolejność SATA1,2,3,4, dysk MINIPCIE mSATA , i jako szósty eSATA.
Kombinowałem różnie ustawienia SataPortMap: 51, 411, 42, nie widzi eSata i już .
W poprzednim systemie lądował na 6-tym miejscu na 16 gniazd.
Kiedyś jeszcze powalczę na rasie mam dość.
Mam płytę Asus Q170T i podpięte do niej 4 dyski.
W obecnym DSM 6.2.3-25426 pokazuje mi, że te dyski zajmują 4 porty (3-6) z dostępnych 16-tu.
Z kolei próbując dopasować parametr SataPortMap w grub.cfg doszedłem do tego, że jeśli pierwsza cyfra to minimum 8, wówczas pojawia się komunikat "Wykryto błędy na dyskach (1 , 2, 7, 8) a port SATA zostały wyłączone. Jeśli ta cyfra będzie mniejsza, "nie widzi" wszystkich dysków, a dalsza część komunikatu jest taka sama.
Próbowałem też wprowadzić wartość szesnastkową (jeśli >= 10 nie można wpisać "10", ale czyta to wciąż jako wartości dziesiętne.
Wie ktoś może jak sprawdzić konfigurację kontrolerów, żeby dało się postawić DSM?
Intel® H110
Intel Pentium G4560 4x3,5GHz (skylake — 6gen)
Hynix 8GB DDR4 PC4-2400MHz (dwukanałowy)
Karta graficzna Intel® HD 610
10/100/1000 Mb/s Realtek RTL8111G
1hdd 1TB do testowania
płytka posiada 3 złącza sata.
Mapa portu Sata = 6
Nie działa, błąd dysku
SataPortMap = 4
Instalacja i konfiguracja działa w 100%
DSM_DS918+_42218.pat
Próbowałem też odpalic ten system na 4gen intela ale ciagle błedy z dyskami lub ich brak.
Zastanawiam sie tez po co każdy sam własnoręcznie powinien kompilować swój własny system? obraz który udostępnił shibby instaluje sie i działa na różnych maszynach.
Edytowany przez sts dnia 04-01-2022 08:54
Czy ktoś korzysta z Esxi ? U mnie w momencie wgrywania PAT w około 60% następuje jakiś błąd bo zapętla się to w kółko i nie instaluje do końca. Można to podejrzeć w jakieś konsoli?
· Łącznie użytkowników: 24,115 · Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.
Maniek91PL
06-11-2024 22:37
dzięki !
maxikaaz
29-10-2024 14:27
@Maniek91PL - Administration=> Admin Access, i tam masz "Allow Wireless Access" do zaznaczenia
Maniek91PL
26-10-2024 22:07
siemka! ktoś przypomni co się ustawiało jeśli nie mogę wejść od strony wifi do tomato? od lan działa
overflow2
04-10-2024 17:34
Kupowałem Asusy n10u albo n12d1 ale nie widzę ich, chyba już nie produkują, Chodzi o coś nowego i taniego. Transfery niewielkie.
maxikaaz
04-10-2024 09:38
@overflow2 patrząc po dostępności funkcji w nowych kompilacjach, to chyba nawet WRT54G/GL jeszcze ma OpenVPN, albo jakiś odpowiednik... zależy, na jakie transfery liczysz.
overflow2
30-09-2024 20:53
Jaki aktualnie najtańszy router do tomato do openvpn?
maxikaaz
27-07-2024 15:07
@servee - na początek router do rozebrania i obejrzenia, ciężko wróżyć tak tylko po objawach
maxikaaz
27-07-2024 14:55
@servee - cały kontroler nie pada tak sobie z powodu "zbiegu okoliczności", więc prawdopodobnie gdzieś przepięcie.
servee
25-07-2024 13:33
@maxikaaz: działało, aż pewnego pięknego dnia przestało działać. W tym dniu była też burza, ale to raczej zbieg okoliczności.
maxikaaz
25-07-2024 11:38
@servee - o ile problem jest w obrębie samych wyjść (dławiki, warystory), to naprawialne, ale jeśli w samym SoC - to nienaprawialne ze względu na koszta. A co było przyczyną?