Jump to content
XPEnology Community

Building 5.0-4458 issues


VeNoM

Recommended Posts

I have set up a VM for 5.0 testing and I have some issues.

- funcSYNODiskRetryReport unknown symbol in synobios

- the checksum for pat contents fails for some reason

 

Kernel patch

--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -7414,7 +7414,7 @@
int (*funcSYNODeepSleepEvent)(unsigned int, unsigned int) = NULL;
EXPORT_SYMBOL(funcSYNODeepSleepEvent);

-#ifdef MY_DEF_HERE
+#if (defined(MY_DEF_HERE) || defined(XPENOLOGY))
int (*funcSYNOSendEboxRefreshEvent)(int portIndex) = NULL;
EXPORT_SYMBOL(funcSYNOSendEboxRefreshEvent);
#endif

--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -3706,6 +3706,7 @@
/*FIXME - Too brutal and directly, should separate into levels*/
void syno_sata_mv_gpio_write(u8 blFaulty, const unsigned short hostnum)
{
+#ifndef XPENOLOGY
	struct Scsi_Host *shost = scsi_host_lookup(hostnum);
	struct ata_port *ap = NULL;
	void __iomem *host_mmio = NULL;
@@ -3740,6 +3741,8 @@
	if (NULL != shost) {
		scsi_host_put(shost);
	}
+#endif
+END:
	return;
}
EXPORT_SYMBOL(syno_sata_mv_gpio_write);

--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -618,7 +618,9 @@
         ( pin < 0 || pin >= 96 ) ||
         NULL == pValue )
    {
+#ifndef XPENOLOGY
        printk("parameter error. gpiobase=%08X, pin=%d, pValue=%p\n", gpiobase, pin, pValue);
+#endif
        goto END;
    }


--- a/drivers/tty/vt/vt.c
+++ b/drivers/tty/vt/vt.c
@@ -2474,7 +2474,7 @@
		return kmsg_con;
}

-#ifndef MY_ABC_HERE
+#if (defined(MY_DEF_HERE) || defined(XPENOLOGY))
/*
 *	Console on virtual terminal
 *
@@ -2574,7 +2574,7 @@
}
#endif

-#ifndef MY_ABC_HERE
+#if (!defined(MY_ABC_HERE) || defined(XPENOLOGY))
static struct tty_driver *vt_console_device(struct console *c, int *index)
{
	*index = c->index ? c->index-1 : fg_console;
@@ -2942,7 +2942,7 @@

	console_unlock();

-#ifndef MY_ABC_HERE
+#if (!defined(MY_ABC_HERE) || defined(XPENOLOGY))
#ifdef CONFIG_VT_CONSOLE
	register_console(&vt_console_driver);
#endif

--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -1760,13 +1760,14 @@
	 sprintf(buf,"'%c'", (cmd>>_IOC_TYPESHIFT) & _IOC_TYPEMASK);
	if (!isprint(buf[1]))
		sprintf(buf, "%02x", buf[1]);
+#ifndef XPENOLOGY
	compat_printk("ioctl32(%s:%d): Unknown cmd fd(%d) "
			"cmd(%08x){t:%s;sz:%u} arg(%08x) on %s\n",
			current->comm, current->pid,
			(int)fd, (unsigned int)cmd, buf,
			(cmd >> _IOC_SIZESHIFT) & _IOC_SIZEMASK,
			(unsigned int)arg, fn);
-
+#endif
	if (path)
		free_page((unsigned long)path);
}

--- a/include/linux/syno_user.h
+++ b/include/linux/syno_user.h
@@ -2,6 +2,11 @@

#ifndef __SYNO_USER_H_
#define __SYNO_USER_H_
+
+/**
+ * XPENOLOGY
+ */
+#define XPENOLOGY

/**
 * Dsc: Synology multimedia server feature. For indexing video, photo,

--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -228,7 +228,7 @@
int (*funcSYNOGetHwCapability)(CAPABILITY *) = NULL;
EXPORT_SYMBOL(funcSYNOGetHwCapability);

-#ifdef MY_DEF_HERE
+#if (defined(MY_DEF_HERE) || defined(XPENOLOGY))
EUNIT_PWRON_TYPE (*funcSynoEunitPowerctlType)(void) = NULL;
EXPORT_SYMBOL(funcSynoEunitPowerctlType);
#endif

Link to comment
Share on other sites

Apparently Synology introduced a new checksum in 4458. When loaded, the synobios creates /proc/syno_cpu_arch.

 

Jan  1 00:00:01 syslog: util_fhost.c:1204 Serial number is 0 out of size
Jan  1 00:00:02 syslaog: format start, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:02 syslog: ninstaller.c:717 Dev: sda, DiskPath: /dev/sda, Check Partitions: 1
Jan  1 00:00:02 syslog: ninstaller.c:577 failed to get upnpmodelname from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:00:02 syslog: ninstaller.c:584 failed to get buildnumber from [/tmpMnt1234/etc.defaults/VERSION].
Jan  1 00:00:02 syslog: ../libsynosdk/lib/system/system_platform_get.c:35 failed to get unique from /tmpMnt1234/etc.defaults/synoinfo.conf errno=[0x0900]
Jan  1 00:00:02 syslog: ninstaller.c:600 failed to get platform from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:00:02 syslog: ../libsynosdk/lib/system/system_max_align_get.c:85 [/tmpMnt1234/.system_info/pgsql_alignment] doesn't exist, check model name for alignment
Jan  1 00:00:02 syslog: ../libsynosdk/lib/system/system_endian_get.c:61 [/tmpMnt1234/.system_info/endian] doesn't exist, check model name for endian
Jan  1 00:00:02 syslog: ../libsynosdk/lib/system/system_bit_get.c:57 [/tmpMnt1234/.system_info/bits] doesn't exist, check model name for bits
Jan  1 00:00:02 syslog: ninstaller.c:839(BlCheckSystemStatusRAID): Has Syno Partition = 1, System Status: 2 
Jan  1 00:00:02 syslog: ninstaller.c:846(BlCheckSystemStatusRAID): gszUpgradeVolDev = /dev/md0 
Jan  1 00:00:02 syslog: ninstaller.c:848(BlCheckSystemStatusRAID): gszUpgradeVolMnt = /tmpData 
Jan  1 00:00:02 syslog: ninstaller.c:849(BlCheckSystemStatusRAID): we use md0 to upgrade.
Jan  1 00:00:02 syslog: ninstaller.c:1504 gblSupportRaid: 1, gSysStatus: 2, gblCreateDataVol: 0, gblSystemRecoverable: 0
Jan  1 00:00:02 syslog: ninstaller.c:2585 CreateDataVol=[0], CheckBadblocks=[0]
Jan  1 00:00:02 syslog: ninstaller.c:2651(ErrFHOSTDoFdiskFormat) retv=[0]
Jan  1 00:00:02 syslog: ErrFHOSTTcpResponseCmd: cmd=[2], ulErr=[0]
Jan  1 00:00:02 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:02 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:02 syslog: index=[0], ulRate=[101]
Jan  1 00:00:02 kernel: [  285.784509] md1: detected capacity change from 2147418112 to 0
Jan  1 00:00:02 kernel: [  285.785248] md: md1: set sda2 to auto_remap [0]
Jan  1 00:00:02 kernel: [  285.785902] md: md1 stopped.
Jan  1 00:00:02 kernel: [  285.786493] md: unbind
Jan  1 00:00:02 kernel: [  285.793025] md: export_rdev(sda2)
Jan  1 00:00:02 kernel: [  285.798581] md0: detected capacity change from 2549940224 to 0
Jan  1 00:00:02 kernel: [  285.799750] md: md0: set sda1 to auto_remap [0]
Jan  1 00:00:02 kernel: [  285.800802] md: md0 stopped.
Jan  1 00:00:02 kernel: [  285.801735] md: unbind
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 default.hotplug[6143]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 default.hotplug[6146]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6154]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 default.hotplug[6168]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6176]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 kernel: [  285.807034] md: export_rdev(sda1)
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 default.hotplug[6221]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6234]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6224]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:02 default.hotplug[6246]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6256]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6349]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6348]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6382]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6400]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6405]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:02 default.hotplug[6407]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:04 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:04 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:04 syslog: index=[0], ulRate=[102]
Jan  1 00:00:05 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:05 default.hotplug[6463]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:05 kernel: [  289.056405] md: bind
Jan  1 00:00:05 kernel: [  289.057299] bio: create slab  at 1
Jan  1 00:00:05 kernel: [  289.057975] md/raid1:md0: active with 1 out of 12 mirrors
Jan  1 00:00:05 kernel: [  289.058692] md0: detected capacity change from 0 to 2549940224
Jan  1 00:00:05 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:05 default.hotplug[6480]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:06 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:06 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:06 syslog: index=[0], ulRate=[103]
Jan  1 00:00:08 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:08 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:08 syslog: index=[0], ulRate=[104]
Jan  1 00:00:08 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:08 default.hotplug[6496]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:08 kernel: [  292.118088] md: bind
Jan  1 00:00:08 kernel: [  292.118864] md/raid1:md1: active with 1 out of 12 mirrors
Jan  1 00:00:08 kernel: [  292.119565] md1: detected capacity change from 0 to 2147418112
Jan  1 00:00:08 syslog: raidtool.c:419 system inited on [/dev/sda1 ], [/dev/sda2 ]
Jan  1 00:00:08 kernel: [  292.121560]  md1: unknown partition table
Jan  1 00:00:08 syslog: ../libsynosdk/lib/external/external_disk_port_check.c:87 expected sdx or /dev/sdx, not md, not match any port type
Jan  1 00:00:08 default.hotplug[6513]: couldn't exec /usr/syno/hotplug/block.agent
Jan  1 00:00:08 kernel: [  292.137124]  md0: unknown partition table
Jan  1 00:00:10 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:10 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:10 syslog: index=[0], ulRate=[100]
Jan  1 00:00:12 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:12 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:12 syslog: index=[0], ulRate=[100]
Jan  1 00:00:12 kernel: [  296.111885] EXT4-fs (md0): barriers disabled
Jan  1 00:00:12 kernel: [  296.127975] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: 
Jan  1 00:00:12 syslog: ninstaller.c:2605 /bin/mount /dev/md0 /tmpRoot
Jan  1 00:00:12 kernel: [  296.186880] EXT4-fs (md0): barriers disabled
Jan  1 00:00:12 kernel: [  296.197544] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: 
Jan  1 00:00:12 syslog: ninstaller.c:2607 mount root partition failed.
Jan  1 00:00:12 syslog: ninstaller.c:2646 retv=[0]
Jan  1 00:00:14 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:14 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] ret:0
Jan  1 00:00:14 syslog: ninstaller.c:2520(ErrFHOSTUpdateMkfsProgress) gInstallStage=[3] , process=[/dev/md0]
Jan  1 00:00:14 syslog: ninstaller.c:2524(ErrFHOSTUpdateMkfsProgress) switch to PROG_FORMAT_DATA 
Jan  1 00:00:14 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[4] ret:0
Jan  1 00:00:14 syslog: ninstaller.c:2558(ErrFHOSTUpdateMkfsProgress) skip format data volume...
Jan  1 00:00:14 syslog: index=[1], ulRate=[100]
Jan  1 00:00:16 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:16 syslog: ninstaller.c:2483(ErrFHOSTUpdateMkfsProgress) gInstallStage=[4] ret:0
Jan  1 00:00:16 syslog: ninstaller.c:2558(ErrFHOSTUpdateMkfsProgress) skip format data volume...
Jan  1 00:00:16 syslog: index=[1], ulRate=[100]
Jan  1 00:00:18 syslog: pat start, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:18 kernel: [  301.805297] EXT4-fs (md0): barriers disabled
Jan  1 00:00:18 kernel: [  301.858438] EXT4-fs (md0): mounted filesystem with ordered data mode. Opts: 
Jan  1 00:00:18 syslog: ninstaller.c:1709(ErrFHOSTReceiveUpgradeFile): szUpgradeFile = /tmpData//upd@te.pat 
Jan  1 00:00:23 syslog: ninstaller.c:1740(ErrFHOSTReceiveUpgradeFile) cRead=[4], ulFileSize=[183347200]
Jan  1 00:00:24 syslog: Estimated time =[2]
Jan  1 00:00:25 syslog: ErrFHOSTTcpResponseCmd: cmd=[5], ulErr=[0]
Jan  1 00:00:25 syslog: Starting ErrFHOSTDoUpgrade()...
Jan  1 00:00:25 syslog: ErrFHOSTTcpResponseCmd: cmd=[5], ulErr=[0]
Jan  1 00:00:25 syslog: ErrFHOSTTcpResponseCmd: cmd=[5], ulErr=[0]
Jan  1 00:00:25 syslog: ninstaller.c:2702(ErrFHOSTDoUpgrade) retv=[0]
Jan  1 00:00:25 syslog: ErrFHOSTDoUpgrade() Done
Jan  1 00:00:25 syslog: Remove /tmpData/upd@te...cmd=[/bin/rm -rf /tmpData/upd@te > /dev/null 2>&1]
Jan  1 00:00:25 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:25 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:25 syslog: Create /tmpData/upd@te...cmd=[/bin/mkdir -p /tmpData/upd@te > /dev/null 2>&1]
Jan  1 00:00:25 syslog: Untar /tmpData/upd@te.pat...cmd=[/bin/tar xpf "/tmpData/upd@te.pat" -C /tmpData/upd@te > /dev/null 2>&1]
Jan  1 00:00:27 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:27 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:29 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:29 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:31 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:31 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:33 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:33 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:35 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:35 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:37 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:37 syslog: alz=[0], prg=[0], cfg=[0], retv=[0]
Jan  1 00:00:37 syslog: Verify checksum of [/tmpData/upd@te]...
Jan  1 00:00:37 syslog: ErrFHOSTCheckUpgradeFile: Fail to verify checksum of /tmpData/upd@te...(retv=0x3800)
Jan  1 00:00:37 syslog: ErrFHOSTCheckUpgradeFile: set error code cmd=[/bin/echo "A:-13:" > /tmp/update.progress]
Jan  1 00:00:37 syslog: ninstaller.c:2692(ErrFHOSTDoUpgrade) err=[-1]
Jan  1 00:00:39 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:39 syslog: alz=[0], prg=[0], cfg=[0], retv=[-13]
Jan  1 00:00:39 syslog: ninstaller.c:2197(ErrFHOSTUpdaterProgress) retv=-13
Jan  1 00:00:41 syslog: query prog, szBuf = ^R4VxSYNONI^A^D^A
Jan  1 00:00:41 syslog: alz=[0], prg=[0], cfg=[0], retv=[-13]
Jan  1 00:00:41 syslog: ninstaller.c:2197(ErrFHOSTUpdaterProgress) retv=-13
Jan  1 00:00:41 syslog: ninstaller.c:1541(ErrFHOSTNetInstaller) read socket fail, ret=[0], errno=[10]
Jan  1 00:00:41 syslog: ninstaller.c:1625(ErrFHOSTNetInstaller) retSel=[1] err=(10)[No child processes]
Jan  1 00:00:41 syslog: ninstaller.c:1640(ErrFHOSTNetInstaller)
Jan  1 00:00:41 syslog: Return from TcpServer()
Jan  1 00:00:01 syslog: util_fhost.c:1204 Serial number is 0 out of size
Jan  1 00:00:16 syslog: Return from TcpServer()
Jan  1 00:01:19 syslog: util_fhost.c:1204 Serial number is 0 out of size
Jan  1 00:01:22 syslog: ninstaller.c:717 Dev: sda, DiskPath: /dev/sda, Check Partitions: 1
Jan  1 00:01:22 syslog: ninstaller.c:577 failed to get upnpmodelname from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:01:22 syslog: ninstaller.c:584 failed to get buildnumber from [/tmpMnt1234/etc.defaults/VERSION].
Jan  1 00:01:22 syslog: ../libsynosdk/lib/system/system_platform_get.c:35 failed to get unique from /tmpMnt1234/etc.defaults/synoinfo.conf errno=[0x0900]
Jan  1 00:01:22 syslog: ninstaller.c:600 failed to get platform from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:01:22 syslog: ../libsynosdk/lib/system/system_max_align_get.c:85 [/tmpMnt1234/.system_info/pgsql_alignment] doesn't exist, check model name for alignment
Jan  1 00:01:22 syslog: ../libsynosdk/lib/system/system_endian_get.c:61 [/tmpMnt1234/.system_info/endian] doesn't exist, check model name for endian
Jan  1 00:01:22 syslog: ../libsynosdk/lib/system/system_bit_get.c:57 [/tmpMnt1234/.system_info/bits] doesn't exist, check model name for bits
Jan  1 00:01:22 syslog: ninstaller.c:839(BlCheckSystemStatusRAID): Has Syno Partition = 1, System Status: 2 
Jan  1 00:01:22 syslog: ninstaller.c:846(BlCheckSystemStatusRAID): gszUpgradeVolDev = /dev/md0 
Jan  1 00:01:22 syslog: ninstaller.c:848(BlCheckSystemStatusRAID): gszUpgradeVolMnt = /tmpData 
Jan  1 00:01:22 syslog: ninstaller.c:849(BlCheckSystemStatusRAID): we use md0 to upgrade.
Jan  1 00:01:22 syslog: ninstaller.c:1504 gblSupportRaid: 1, gSysStatus: 2, gblCreateDataVol: 0, gblSystemRecoverable: 0
Jan  1 00:01:26 syslog: /source/libsynosdk/lib/partition/partition_check_layout.c:52 sd: dont contain partition [1]
Jan  1 00:01:28 syslog: ninstaller.c:717 Dev: sda, DiskPath: /dev/sda, Check Partitions: 1
Jan  1 00:01:28 syslog: ninstaller.c:577 failed to get upnpmodelname from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:01:28 syslog: ninstaller.c:584 failed to get buildnumber from [/tmpMnt1234/etc.defaults/VERSION].
Jan  1 00:01:28 syslog: ../libsynosdk/lib/system/system_platform_get.c:35 failed to get unique from /tmpMnt1234/etc.defaults/synoinfo.conf errno=[0x0900]
Jan  1 00:01:28 syslog: ninstaller.c:600 failed to get platform from [/tmpMnt1234/etc.defaults/synoinfo.conf].
Jan  1 00:01:28 syslog: ../libsynosdk/lib/system/system_max_align_get.c:85 [/tmpMnt1234/.system_info/pgsql_alignment] doesn't exist, check model name for alignment
Jan  1 00:01:28 syslog: ../libsynosdk/lib/system/system_endian_get.c:61 [/tmpMnt1234/.system_info/endian] doesn't exist, check model name for endian
Jan  1 00:01:28 syslog: ../libsynosdk/lib/system/system_bit_get.c:57 [/tmpMnt1234/.system_info/bits] doesn't exist, check model name for bits
Jan  1 00:01:28 syslog: ninstaller.c:839(BlCheckSystemStatusRAID): Has Syno Partition = 1, System Status: 2 
Jan  1 00:01:28 syslog: ninstaller.c:846(BlCheckSystemStatusRAID): gszUpgradeVolDev = /dev/md0 
Jan  1 00:01:28 syslog: ninstaller.c:848(BlCheckSystemStatusRAID): gszUpgradeVolMnt = /tmpData 
Jan  1 00:01:28 syslog: ninstaller.c:849(BlCheckSystemStatusRAID): we use md0 to upgrade.
Jan  1 00:01:28 syslog: ninstaller.c:1504 gblSupportRaid: 1, gSysStatus: 2, gblCreateDataVol: 0, gblSystemRecoverable: 0
Jan  1 00:01:32 syslog: /source/libsynosdk/lib/partition/partition_check_layout.c:52 sd: dont contain partition [1]

Link to comment
Share on other sites

  • 4 months later...

Hi all, I find some hours to start working on building a clean kernel with Syno GPL 5.x branch.

Of course I run into the same issues as VeNoM ^^

 

- the checksum for pat contents fails for some reason

 

In my pat I just modify the hda1.tgz file and no problem.

 

- funcSYNODiskRetryReport unknown symbol in synobios

 

I check in the synobios.ko (with a disassembler) and find out that funcSYNODiskRetryReport is very simalar to funcSYNOSataErrorReport.

So in drivers/ata/libata-core.c I add:

 

int (*funcSYNODiskRetryReport)(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) = NULL;
EXPORT_SYMBOL(funcSYNODiskRetryReport);

 

I sucessfully installed my modified .pat file and access DSM.

But I can't create a volume.

In the console I have errors:

 

[  178.338114] dsmnotify.cgi[9431]: segfault at 0 ip 000000000804ccb8 sp 00000000ff97ade0 error 6
[  178.387241] storagehandler.[9432]: segfault at 0 ip 000000000809e298 sp 00000000ff8e9fe0 error 6

 

I don't know how sancome did fix this :???:

 

PS: For now I stay with 4458 build because newer versions have more protections.

Link to comment
Share on other sites

Try installing sancome's version and look in /proc/kallsyms for funcSYNODiskRetryReport. If is't there, he has the solution.

sancome's version still uses the mount for pcidevices ?

 

cat /proc/kallsyms | grep -i funcSYNODiskRetryReport

 

How did you fixed the pat file to bypass the checksum ?

Link to comment
Share on other sites

Try installing sancome's version and look in /proc/kallsyms for funcSYNODiskRetryReport. If is't there, he has the solution.

sancome's version still uses the mount for pcidevices ?

 

cat /proc/kallsyms | grep -i funcSYNODiskRetryReport

 

Return nothing :sad:

I'm not even sure that funcSYNODiskRetryReport is related to my segfault problem.

Yes he still uses the pcidevices fix.

 

How did you fixed the pat file to bypass the checksum ?

 

I rename the pat in tar, extract it, modify what you need, regenerate checksum.syno file with synochecksum.

Repack it with tar command and finally rename it to .pat :smile:

 

Do it with linux to keep files permissions.

 

cannot contact with sancome since his website down ...

 

I send him a PM, hope he will answer.

Link to comment
Share on other sites

I found some interesting stuff on GitHub today.

A guy named liwei (maybe sancome) have a interesting repo : https://github.com/liwei/xpenology-3.x

 

After some digging, I found why my kernel isn't working : it's lacking synoacl_ext4.

This little genius (BIG thumb up :mrgreen: ) have backported synoacl_ext4 from 4418 sources (because Synology doesn't release synoacl_ext4 code in 4458).

So I patched my sources with his works on synoacl_ext4 (again big big thanks to him).

 

I got a working DSM 5.0-4458 with iscsi (regular/block), nfs working :grin: ... but still have the segfault in the console:

[spoiler=segfault][ 1414.313564] PkgSynoMan.cgi[24472]: segfault at 0 ip 0000000008060618 sp 00000000ffcca330 error 6

[ 1969.301417] volumehandler.c[27222]: segfault at 0 ip 000000000809dba8 sp 00000000fffe4fb0 error 6

[ 1969.716986] storagehandler.[28669]: segfault at 0 ip 000000000809e298 sp 00000000ffd61110 error 6

[ 1971.865238] dsmnotify.cgi[29710]: segfault at 0 ip 000000000804ccb8 sp 00000000ffa5a8c0 error 6

 

 

liwei patch his sources to hide these segfault

We need investigate the root cause of those segfault instead of blindly ignore them.

 

If someone have skills for debugging segfault, please let me know :wink:

Link to comment
Share on other sites

/usr/syno/synoman/webman/modules/PkgManApp/PkgSynoMan.cgi

/usr/syno/synoman/webman/modules/StorageManager/volumehandler.cgi

/usr/syno/synoman/webman/modules/StorageManager/storagehandler.cgi

/usr/syno/synoman/webman/modules/DSMNotify/dsmnotify.cgi

all does Sanity check.

#define ENXIO 6 /* No such device or address */

Link to comment
Share on other sites

/usr/syno/synoman/webman/modules/PkgManApp/PkgSynoMan.cgi

/usr/syno/synoman/webman/modules/StorageManager/volumehandler.cgi

/usr/syno/synoman/webman/modules/StorageManager/storagehandler.cgi

/usr/syno/synoman/webman/modules/DSMNotify/dsmnotify.cgi

all does Sanity check.

#define ENXIO 6 /* No such device or address */

 

Even in the 4458 build ?

 

How to know what device/address are checked ?

 

What can we do in order to get these sanity ckecks happy ?

Link to comment
Share on other sites

I maybe find something with IDA in storagehandler.cgi:

[spoiler=]LOAD:00C274F3 cmp eax, [ebx]

LOAD:00C274F5 jnz loc_C27491

LOAD:00C274FB xchg eax, edx

LOAD:00C274FC xchg eax, ebx

LOAD:00C274FD cld

LOAD:00C274FE lodsd

LOAD:00C274FF push eax

LOAD:00C27500 mov ecx, esp

LOAD:00C27502 push eax

LOAD:00C27503 push ecx

LOAD:00C27504 push edx

LOAD:00C27505 lodsd

LOAD:00C27506 push eax

LOAD:00C27507 lodsd

LOAD:00C27508 mov [esp+40h+var_34], eax

LOAD:00C2750C push esi

LOAD:00C2750D call ebp

LOAD:00C2750F add esp, 2Ch

LOAD:00C27512 retn

LOAD:00C27512 sub_C274C6 endp ; sp-analysis failed

 

 

But I'm unable to understand anything is that sh*t :sad:

 

What's idk ?

Link to comment
Share on other sites

Thanks to XPEH and hours of testing I successfully manage to remove segfault errors (related to lspci).

For now it's done in a very ugly way.

To do it properly I need to build a kernel module. My C skills are a little bit rusty but after some hours/days of hard work I think I can do it ^^

 

EDIT : My mistake, I can't get rid rid of these segfault errors, nor keep DSM happy with my fake pci devices :sad:

Link to comment
Share on other sites

×
×
  • Create New...