How to integrate kernel-module in yocto-dunfell? #yocto #dunfell #apt #tx2 #kernel


kilian.brandt@...
 

Hey community, 

I'm trying to use this library [can-isotp][1] on a Jetson TX2 Board. The version of the running OS is: 0.0.8 (dunfell). 
 
From the docs of the library I get the following instructions:
 
```
DOWNLOAD and BUILD

1. Download repository and enter the repositories root directory

      git clone https://github.com/hartkopp/can-isotp.git

      cd can-isotp

2. Build ISO-TP kernel module

   Ensure build dependencies are installed. E.g. for Debian (or Ubuntu):

      sudo apt-get install build-essential linux-headers-$(uname -r)

   To build:

      (you need to be in the repositories root path)

      make

   To install (optional):

      sudo make modules_install


3. When the PF_CAN core module is loaded ('modprobe can') the ISO-TP module
   can be loaded into the kernel with

       insmod ./net/can/can-isotp.ko

   When the can-isotp.ko module has been installed into the Linux Kernels
   modules directory (e.g. with 'make modules_install') the module should
   load automatically when opening a CAN_ISOTP socket.
```

I have some questions about that procedure. Can anybody give me an hint on how to install this module? Do I have to create a completly new yocto image or is there any way to install kernel modules afterwards? I tried to copy the folder onto the TX2 and install it by hand, but (as to be expected) the make command is not found. 

I would really appreciate any help ! Best regards, 
 
 
  [1]: https://github.com/hartkopp/can-isotp


Marek Belisko
 

On Wed, Sep 2, 2020 at 1:13 PM <kilian.brandt@...> wrote:

Hey community,

I'm trying to use this library [can-isotp][1] on a Jetson TX2 Board. The version of the running OS is: 0.0.8 (dunfell).

From the docs of the library I get the following instructions:

```

DOWNLOAD and BUILD

1. Download repository and enter the repositories root directory

git clone https://github.com/hartkopp/can-isotp.git

cd can-isotp

2. Build ISO-TP kernel module

Ensure build dependencies are installed. E.g. for Debian (or Ubuntu):

sudo apt-get install build-essential linux-headers-$(uname -r)

To build:

(you need to be in the repositories root path)

make

To install (optional):

sudo make modules_install


3. When the PF_CAN core module is loaded ('modprobe can') the ISO-TP module
can be loaded into the kernel with

insmod ./net/can/can-isotp.ko

When the can-isotp.ko module has been installed into the Linux Kernels
modules directory (e.g. with 'make modules_install') the module should
load automatically when opening a CAN_ISOTP socket.

```

I have some questions about that procedure. Can anybody give me an hint on how to install this module? Do I have to create a completly new yocto image or is there any way to install kernel modules afterwards? I tried to copy the folder onto the TX2 and install it by hand, but (as to be expected) the make command is not found.
PLease take a look at :
https://www.yoctoproject.org/docs/2.6/kernel-dev/kernel-dev.html#working-with-out-of-tree-modules
where it is described how to compile out of tree modules.

I would really appreciate any help ! Best regards,


[1]: https://github.com/hartkopp/can-isotp
marek


Khem Raj
 

On Wed, Sep 2, 2020 at 4:32 AM Marek Belisko <marek.belisko@...> wrote:

On Wed, Sep 2, 2020 at 1:13 PM <kilian.brandt@...> wrote:

Hey community,

I'm trying to use this library [can-isotp][1] on a Jetson TX2 Board. The version of the running OS is: 0.0.8 (dunfell).

From the docs of the library I get the following instructions:

```

DOWNLOAD and BUILD

1. Download repository and enter the repositories root directory

git clone https://github.com/hartkopp/can-isotp.git

cd can-isotp

2. Build ISO-TP kernel module

Ensure build dependencies are installed. E.g. for Debian (or Ubuntu):

sudo apt-get install build-essential linux-headers-$(uname -r)

To build:

(you need to be in the repositories root path)

make

To install (optional):

sudo make modules_install


3. When the PF_CAN core module is loaded ('modprobe can') the ISO-TP module
can be loaded into the kernel with

insmod ./net/can/can-isotp.ko

When the can-isotp.ko module has been installed into the Linux Kernels
modules directory (e.g. with 'make modules_install') the module should
load automatically when opening a CAN_ISOTP socket.

```

I have some questions about that procedure. Can anybody give me an hint on how to install this module? Do I have to create a completly new yocto image or is there any way to install kernel modules afterwards? I tried to copy the folder onto the TX2 and install it by hand, but (as to be expected) the make command is not found.
PLease take a look at :
https://www.yoctoproject.org/docs/2.6/kernel-dev/kernel-dev.html#working-with-out-of-tree-modules
where it is described how to compile out of tree modules.
in this case you might be lucky we already have recipe
http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-extended/socketcan/can-isotp_git.bb?h=master
its blacklisted because it needs work to fix build on 5.2+ kernel

I would really appreciate any help ! Best regards,


[1]: https://github.com/hartkopp/can-isotp
marek


kilian.brandt@...
 

Hi Khem, thanks for your reply! Now I am a bit confused. Marek has send me another recipe:

 LICENSE = "GPLv2"

LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"

SRCREV = "6003f9997587e6a563cebf1f246bcd0eb6deff3d"

PV = "1.0+git${SRCPV}"

 

SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"

 

S = "${WORKDIR}/git"

 

inherit module

 

EXTRA_OEMAKE += "KERNELDIR=${STAGING_KERNEL_DIR}"


Do you know if that is allready fixed for kernel 5,2+ ?

Best regards!


Marek Belisko
 

On Thu, Sep 3, 2020 at 8:56 AM <kilian.brandt@...> wrote:

Hi Khem, thanks for your reply! Now I am a bit confused. Marek has sent me another recipe:
Shared recipe should be the same as one from meta-oe :). So you can
include it in your image and it should be build then.

LICENSE = "GPLv2"

LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"

SRCREV = "6003f9997587e6a563cebf1f246bcd0eb6deff3d"

PV = "1.0+git${SRCPV}"



SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"



S = "${WORKDIR}/git"



inherit module



EXTRA_OEMAKE += "KERNELDIR=${STAGING_KERNEL_DIR}"


Do you know if that is allready fixed for kernel 5,2+ ?

Best regards!

BR,

marek

--
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com