Compare commits

...

25 Commits

Author SHA1 Message Date
Fabio Belavenuto
466722e7ad Actions 2022-07-10 15:20:08 -03:00
Fabio Belavenuto
dfec0accde Merge pull request #25 from fbelavenuto/dev
Fixing addons
2022-07-10 15:10:37 -03:00
Fabio Belavenuto
1185a9144d Fixing addons 2022-07-10 14:59:54 -03:00
Fabio Belavenuto
4abaef8885 wip 2022-07-10 14:11:27 -03:00
Fabio Belavenuto
a990957148 Merge branch 'main' of github.com:fbelavenuto/arpl into dev 2022-07-10 13:31:27 -03:00
Fabio Belavenuto
c79acb8a8b Fix dtbpatch addon 2022-07-10 13:30:04 -03:00
Fabio Belavenuto
47b49ac259 Merge pull request #24 from fbelavenuto/dev
Changing version number
2022-07-10 12:48:37 -03:00
Fabio Belavenuto
6fac568cfc Merge branch 'main' of github.com:fbelavenuto/arpl into dev 2022-07-10 12:45:12 -03:00
Fabio Belavenuto
97ed86cf20 Version 0.2-alpha2 2022-07-10 12:43:31 -03:00
Fabio Belavenuto
f560f402b2 Merge pull request #23 from fbelavenuto/dev
Replacing addon 'qjs-dts' to addon 'dtbpatch'
2022-07-10 12:33:31 -03:00
Fabio Belavenuto
d0b839af26 Replacing addon 'qjs-dts' to addon 'dtbpatch' 2022-07-10 12:15:07 -03:00
Fabio Belavenuto
a8fef13c64 Merge pull request #21 from fbelavenuto/dev
Added a new step to call addons scripts.
2022-07-08 22:11:15 -03:00
Fabio Belavenuto
4a85944651 Added a new step to call addons scripts. 2022-07-08 21:51:20 -03:00
Fabio Belavenuto
1458074276 Addind missing dom_szmax for DoM 2022-07-08 15:00:24 -03:00
Fabio Belavenuto
fd1f06a7f3 Merge pull request #20 from fbelavenuto/dev
More addons
2022-07-08 14:37:33 -03:00
Fabio Belavenuto
2e4d14c25d More addons 2022-07-08 14:27:05 -03:00
Fabio Belavenuto
43338b435a Merge pull request #19 from fbelavenuto/dev
merge dev
2022-07-08 13:32:28 -03:00
Fabio Belavenuto
6ea54af667 Docker changes 2022-07-08 13:31:09 -03:00
Fabio Belavenuto
012b2d72ec Little adjust 2022-07-08 12:44:48 -03:00
Fabio Belavenuto
3dc56d40fe Merge pull request #18 from fbelavenuto/dev
testing actions
2022-07-08 10:07:18 -03:00
Fabio Belavenuto
58fbdd7b7b Merge branch 'main' into dev 2022-07-08 09:24:29 -03:00
Fabio Belavenuto
e6f5a9d415 testing actions 2022-07-08 09:22:46 -03:00
Fabio Belavenuto
cf1ac2a026 testing actions 2022-07-08 09:18:23 -03:00
Fabio Belavenuto
02ab29ace7 Merge pull request #17 from fbelavenuto/dev
Fixing synoinfo DS2422+
2022-07-08 09:06:46 -03:00
Fabio Belavenuto
d48e9f9fb6 Fixing synoinfo DS2422+
Adding maxdisks addon
2022-07-07 20:49:21 -03:00
212 changed files with 145 additions and 39 deletions

View File

@@ -3,14 +3,17 @@ name: Build image
# Controls when the workflow will run
on:
# Push only in dev
# Push
push:
branches:
- dev
- main
tags:
- v*
# pull_request:
# When a release is published
release:
types: [published]
# release:
# types: [published]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

View File

@@ -6,15 +6,15 @@ It is still in alpha stage, with little documentation, but it is functional. I'm
I tried to make the system as user-friendly as possible, to make life easier. The loader automatically detects which device is being used, SATADom or USB, detecting its VID and PID correctly. redpill-lkm has been edited to allow booting the kernel without setting the variables related to network interfaces so the loader (and user) doesn't have to worry about that. The Jun's code that makes the zImage and Ramdisk patch is embedded, if there is a change in "zImage" or "rd.gz" by some update, the loader re-applies the patches. Builds 42218 and 42661 up to update5 are working. Automatic updates should still be disabled as we are not sure if this technique will work forever.
To use this project, download the latest image available and burn it to a USB stick or SATA disk-on-module. Set the PC to boot from the burned media and follow the informations on the screen. When booting, the user can call the "menu.sh" command from the computer itself, access via SSH or use the virtual terminal (ttyd) by typing the address provided on the screen (http://<ip>:7681). The loader will automatically increase the size of the last partition and use this space as cache if it is larger than 2GiB.
To use this project, download the latest image available and burn it to a USB stick or SATA disk-on-module. Set the PC to boot from the burned media and follow the informations on the screen. When booting, the user can call the "menu.sh" command from the computer itself, access via SSH or use the virtual terminal (ttyd) by typing the address provided on the screen (http://(ip):7681). The loader will automatically increase the size of the last partition and use this space as cache if it is larger than 2GiB.
The menu system is dynamic and I hope it is intuitive enough that the user can use it without any problems. Its allows you to choose a model, the existing buildnumber for the chosen model, randomly type or create a serial number, add/remove addons with a hardware detection option, add/remove/view "cmdline" and "synoinfo" entries, choose the LKM version, create the loader, boot, manually edit the configuration file, choose a keymap and exit.
The menu system is dynamic and I hope it is intuitive enough that the user can use it without any problems. Its allows you to choose a model, the existing buildnumber for the chosen model, randomly type or create a serial number, add/remove addons with a hardware detection option, add/remove/view "cmdline" and "synoinfo" entries, choose the LKM version, create the loader, boot, manually edit the configuration file, choose a keymap, update and exit.
Addons and "synoinfo" entries require re-creating the loader, "cmdline" entries do not. You can view the "cmdline" and "synoinfo" entries defined for the chosen model, with user-defined entries having higher priority.
There is no need to configure the VID/PID (if using a USB stick) or define the MAC Addresses of the network interfaces. If the user wants to modify the MAC Address of any interface, he must manually add "cmdline" entries in the corresponding menu (set "netif_num" according to "mac1..4" entries).
If a model is chosen that uses the Device-tree system to define the HDs, there is no need to configure anything. In the case of models that do not use device-tree, the configurations must be done manually and for this there is an option in the "Cmdline" menu to display the SATA controllers, DUMMY ports and ports in use, to assist in the creation of the "SataPortMap", "DiskIdxMap" and "sata_remap". There is also an option to change the maximum amount of HDs supported by the model, adjusting "maxdisks" and "internalportcfg" automatically.
If a model is chosen that uses the Device-tree system to define the HDs, there is no need to configure anything. In the case of models that do not use device-tree, the configurations must be done manually and for this there is an option in the "Cmdline" menu to display the SATA controllers, DUMMY ports and ports in use, to assist in the creation of the "SataPortMap", "DiskIdxMap" and "sata_remap".
Another important point is that the loader detects whether or not the CPU has the FMA3 instruction and does not display the models that require it. So if the DS918+ and DVA3221 models are not displayed it is because of the CPU's lack of support for FMA instructions.
@@ -25,3 +25,4 @@ Addons can be downloaded and added to the loader.
All code was based on the work of TTG, pocopico, jumkey and others involved in continuing TTG's original redpill-load project.
More information will be added in the future.

3
TODO
View File

@@ -1,5 +1,5 @@
A fazer
- Implementar update do bzimage e ramdisk online
- Descobrir como é o serial do DS2422+
Concluidos:
- Generalizar código dos addons
@@ -21,5 +21,6 @@ Concluidos:
- Limpar addons quando usuário muda de modelo
- Arrumar detecção de discos/maxdisks. 918 tem só 4 discos e dá problema com proxmox
- Melhorar opções de HD, talvez criar um menu a parte
- Implementar update do bzimage e ramdisk online
https://kb.synology.com/en-me/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have

View File

@@ -1 +1 @@
0.1-alpha7
0.2-alpha3

View File

@@ -19,7 +19,7 @@ function compile-module {
fi
echo "Compiling module for ${PLATFORM}-${KVER}..."
cp -R /input /tmp
make -C "/opt/${PLATFORM}" M="/tmp/input" modules
make -C "/opt/${PLATFORM}" M="/tmp/input" PLATFORM=${PLATFORM^^} modules
while read F; do
strip -g "${F}"
echo "Copying `basename ${F}`"

View File

@@ -74,14 +74,16 @@ EFI_BUG="`readModelKey "${MODEL}" "builds.${BUILD}.efi-bug"`"
LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
# Read SATADoM type
DOM="`readModelKey "${MODEL}" "dom"`"
if [ "${BUS}" = "ata" ]; then
SIZE=$((`df -BM | awk '/\/mnt\/p3/{print$2}' | tr 'M' ' '`+300))
# Read SATADoM type
DOM="`readModelKey "${MODEL}" "dom"`"
fi
# Prepare command line
CMDLINE_LINE=""
[ ${EFI} -eq 1 ] && CMDLINE_LINE+="withefi "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} "
[ "${BUS}" = "ata" ] && CMDLINE_LINE+="synoboot_satadom=${DOM} dom_szmax=${SIZE} "
CMDLINE_LINE+="console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 elevator=elevator root=/dev/md0 loglevel=15"
for KEY in ${!CMDLINE[@]}; do
VALUE="${CMDLINE[${KEY}]}"

View File

@@ -1,5 +1,5 @@
ARPL_VERSION="0.1-alpha7"
ARPL_VERSION="0.2-alpha3"
# Define paths
TMP_PATH="/tmp"

View File

@@ -63,6 +63,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
@@ -84,5 +85,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"

View File

@@ -13,6 +13,8 @@ modules-notneeded: &modules-notneeded
- uhci_hcd
- mv14xx
synoinfo: &synoinfo
support_disk_compatibility: "no"
support_memory_compatibility: "no"
rss_server: "http://example.com/null.xml"
rss_server_ssl: "https://example.com/null.xml"
rss_server_v2: "https://example.com/autoupdate/v2/getList"
@@ -58,6 +60,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"

View File

@@ -55,6 +55,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -77,6 +78,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -59,6 +59,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -81,6 +82,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -66,6 +66,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -88,6 +89,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -61,6 +61,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -83,6 +84,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -55,6 +55,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
@@ -76,5 +77,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"

View File

@@ -64,5 +64,6 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"

View File

@@ -61,6 +61,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -83,6 +84,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -57,6 +57,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-common-rc.patch"
- "ramdisk-common-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-common-disable-disabled-ports.patch"
@@ -79,6 +80,7 @@ builds:
patch:
- "ramdisk-common-disable-root-pwd.patch"
- "ramdisk-common-init-script.patch"
- "ramdisk-42661-rc.patch"
- "ramdisk-42661-post-init-script.patch"
- "ramdisk-common-network-hosts.patch"
- "ramdisk-42661-disable-disabled-ports.patch"

View File

@@ -24,8 +24,8 @@
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
+fi
+
+/addons/addons.sh sys
+/addons/addons.sh late
+############################################################################################
Mkdir -p /tmpRoot/initrd
Umount /proc >/dev/null 2>&1
Umount /proc >/dev/null 2>&1

View File

@@ -0,0 +1,11 @@
--- a/etc/rc
+++ b/etc/rc
@@ -247,7 +247,7 @@
/etc.defaults/AHAtasks load_network_modules_junior
fi
SYNOLoadModules ${NET_MODULES}
-
+/addons/addons.sh modules
if [ "no" != "$RUN_SYNOBIOS" ]; then
SYNOLoadModules "synobios"

View File

@@ -5,7 +5,7 @@
echo "Insert basic USB modules..."
SYNOLoadModules $USB_MODULES
+SYNOLoadModules "usb-storage"
+/addons/addons.sh rd
+/addons/addons.sh early
# insert Etron USB3.0 drivers

View File

@@ -24,7 +24,7 @@
+ _replace_in_file '^#start on' 'start on' $UPSTART/tty.conf
+fi
+
+/addons/addons.sh sys
+/addons/addons.sh late
+############################################################################################
+
Mkdir -p /tmpRoot/initrd

View File

@@ -0,0 +1,11 @@
--- a/etc/rc
+++ b/etc/rc
@@ -230,7 +230,7 @@
/etc.defaults/AHAtasks load_network_modules_junior
fi
SYNOLoadModules ${NET_MODULES}
-
+/addons/addons.sh modules
if [ "no" != "$RUN_SYNOBIOS" ]; then
SYNOLoadModules "synobios"

View File

@@ -62,18 +62,6 @@ while read f; do
(cd "${RAMDISK_PATH}" && patch -p1 < "${PATCH_PATH}/${f}") >>"${LOG_FILE}" 2>&1 || dieLog
done < <(readModelArray "${MODEL}" "builds.${BUILD}.patch")
# Temporary workaround
# LOADER_DISK="`blkid | grep 'LABEL="ARPL3"' | cut -d3 -f1`"
# BUS=`udevadm info --query property --name ${LOADER_DISK} | grep ID_BUS | cut -d= -f2`
# DT="`readModelKey "${MODEL}" "dt"`"
# if [ "${DT}" != "true" ]; then
# NUMPORTS=$((`ls /sys/class/scsi_host | wc -w`-1))
# [ "${BUS}" = "ata" ] && NUMPORTS=$((${NUMPORTS}-1))
# SYNOINFO["maxdisks"]=${NUMPORTS}
# INTPORTCFG="0x`printf "%x" "$((2**${NUMPORTS}-1))"`"
# SYNOINFO["internalportcfg"]="${INTPORTCFG}"
# fi
# Patch /etc/synoinfo.conf
echo -n "."
for KEY in ${!SYNOINFO[@]}; do
@@ -104,14 +92,17 @@ cp "${PATCH_PATH}/iosched-trampoline.sh" "${RAMDISK_PATH}/usr/sbin/modprobe"
# Addons
# Check if model needs Device-tree dynamic patch
DT="`readModelKey "${MODEL}" "dt"`"
[ "${DT}" = "true" ] && ADDONS['qjs-dtb']="" # Add system addon "qjs-dtb"
# Add system addon "dtbpatch" or "maxdisks"
[ "${DT}" = "true" ] && ADDONS['dtbpatch']="" || ADDONS['maxdisks']=""
ADDONS['misc']="" # Add system addon "misc"
ADDONS['acpid']="" # Add system addon "acpid"
mkdir -p "${RAMDISK_PATH}/addons"
echo -n "."
#/proc/sys/kernel/syno_install_flag
echo "#!/bin/sh" > "${RAMDISK_PATH}/addons/addons.sh"
echo 'export INSMOD="/sbin/insmod"' >> "${RAMDISK_PATH}/addons/addons.sh"
echo >> "${RAMDISK_PATH}/addons/addons.sh"
echo 'echo "addons.sh called with params ${@}"' >> "${RAMDISK_PATH}/addons/addons.sh"
for ADDON in ${!ADDONS[@]}; do
PARAMS=${ADDONS[${ADDON}]}
if ! installAddon ${ADDON}; then

View File

@@ -55,7 +55,7 @@ search --set=root --label "ARPL1"
if [ -s /zImage -a -s /rd.gz ]; then
menuentry 'Boot DSM' --id boot {
echo "Loading kernel..."
linux /bzImage-arpl console=ttyS0,115200n8
linux /bzImage-arpl console=ttyS0,115200n8 quiet
echo "Loading initramfs..."
initrd /initrd-arpl
echo "Booting..."
@@ -66,7 +66,7 @@ fi
menuentry 'Configure loader' --id config {
echo "Loading kernel..."
linux /bzImage-arpl console=ttyS0,115200n8 IWANTTOCHANGETHECONFIG
linux /bzImage-arpl console=ttyS0,115200n8 quiet IWANTTOCHANGETHECONFIG
echo "Loading initramfs..."
initrd /initrd-arpl
echo "Booting..."

View File

@@ -1,5 +1,6 @@
version: 1
name: acpid
system: true
description: "Flexible and extensible daemon for delivering ACPI events"
available-for:
bromolow-3.10.108:

View File

@@ -1,6 +1,6 @@
version: 1
name: 9p
description: "Driver for Plan 9 Resource Sharing Support (9P2000)"
name: atlantic
description: "Driver for aQuantia AQtion(tm) Ethernet card"
available-for:
bromolow-3.10.108:
install-script: &script "install.sh"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
version: 1
name: ax88179_178a
description: "Driver for ASIX AX88179/178A based USB 3.0/2.0 Gigabit Ethernet"
name: bnx2x
description: "Driver for Broadcom NetXtremeII 10Gb adapter"
available-for:
bromolow-3.10.108:
install-script: &script "install.sh"

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,8 @@
version: 1
name: dtbpatch
system: true
description: "Patch model.dtb"
compile-script: compile.sh
all:
install-script: "install.sh"
copy: "all"

Some files were not shown because too many files have changed in this diff Show More