dsm7-usb-serial-drivers icon indicating copy to clipboard operation
dsm7-usb-serial-drivers copied to clipboard

Failure to compile for 7.2 Broadwell

Open mircevski opened this issue 1 year ago • 6 comments

Hello,

I've followed the tutorial on how to compile, I've setup my build environment on an Ubuntu "22.04.1 LTS (Jammy Jellyfish)", as follows:

mkdir -p /toolkit cd /toolkit/ git clone https://github.com/SynologyOpenSource/pkgscripts-ng apt install cifs-utils python python-pip python3 python3-pip apt update apt install cifs-utils python python-pip python3 python3-pip apt install cifs-utils python3 python3-pip cd pkgscripts-ng/ git checkout DSM7.2 ./EnvDeploy -v 7.2 -p broadwell

I've downloaded the usb serial drivers

git clone https://github.com/robertklep/dsm7-usb-serial-drivers and only kept the 4.4.x folder into /toolkit/source/

As I can see, the first few make lines are going fine, then one tmp file is reported as missing (.ch341.o.tmp) then everything breaks. My programming knowledge is minimal. Can anyone help ?

I'm attaching the log. compile.log

mircevski avatar Jun 27 '23 10:06 mircevski

Compiling these modules is a PITA, I also get the error you're getting a lot. Sometimes just trying to compile the modules again works.

Are you trying to compile a module that's not provided? If so, I'd be happy to take a look at it.

robertklep avatar Jun 27 '23 10:06 robertklep

Actually, by removing parallelization, by inserting "MAKEFLAGS := -j 1" in Makefile, things compile perfectly. So, I just need to figure out the if the .SPK package actually contains all drivers and if they actually load into the kernel.

mircevski avatar Jun 27 '23 10:06 mircevski

The spk seems a generic build, I think it is not usable as it is. The real problem is now that the modules do not load, due to kernel mismatch: "insmod: ERROR: could not insert module /lib/modules/pl2303.ko: Unknown symbol in module"

uname -a

Linux XXXXX 4.4.302+ #64570 SMP Tue Jun 13 21:40:16 CST 2023 x86_64 GNU/Linux synology_broadwell_3617xs

At this point I think that the problem is in the environment setup and somehow I did not get correct platform/kernel headers version. But what I've prepared the environment for is the 7.2 broadwell as per the following:

git checkout DSM7.2 ./EnvDeploy -v 7.2 -p broadwell

Is the 7.2 version enough or we need to be more specific versions of the build environment that match exactly the current DSM OS version, like the minor version and/or the build number.

One note, the Ubuntu I've used to build the modules was 22.04, and it actually run under Windows WSL, which for me should not matter, but anyway.

Thanks

mircevski avatar Jun 27 '23 11:06 mircevski

... after some more research, I could find that the version od the build environment is mismatching the actual DSM version installed, by the buildnumber. While the wodnloaded packed is as follows ...

cat /toolkit/build_env/ds.broadwell-7.2/PkgVersion

majorversion="7" minorversion="2" major="7" minor="2" micro="0" buildphase="Dev" buildnumber="63133" smallfixnumber="0" nano="0" base="63133" productversion="7.2"

... my build number on the DS3617xs is a higher one: 64570

Maybe Synology didn't release the latest packages ? Any help will be much appreciated :)

Regards,

mircevski avatar Jun 27 '23 12:06 mircevski

The real problem is now that the modules do not load, due to kernel mismatch: "insmod: ERROR: could not insert module /lib/modules/pl2303.ko: Unknown symbol in module"

Are you sure that's because of a kernel mismatch and not because you didn't load the requirements (usbserial.ko)?

Also, are you getting this error with the modules that this repository provides? Or the ones you compiled yourself?

robertklep avatar Jun 27 '23 12:06 robertklep

you ar wright, loading the usbserial.ko as prerequisite worked

mircevski avatar Jun 28 '23 09:06 mircevski