Pcan adapter with docker container, set KERNEL_LOCATION variable to the root directory of your own built kernel

This forum covers PCAN-Linux and Linux development issues concerning our products
Post Reply
jwillnetwork
Posts: 5
Joined: Mon 14. Jun 2021, 14:30

Pcan adapter with docker container, set KERNEL_LOCATION variable to the root directory of your own built kernel

Post by jwillnetwork » Thu 22. Jul 2021, 16:37

Code: Select all

FROM amd64/python:3.7-slim-buster

WORKDIR /app

ADD cisco_umbrella_root_ca.crt /usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt

RUN chmod 644 /usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt && update-ca-certificates

RUN apt-get update

RUN apt-get install make -y

#RUN apt-get install linux-headers -y

RUN apt-get install -y --no-install-recommends software-properties-common

RUN apt-get -y install sudo

RUN sudo apt-get install -y --no-install-recommends gcc make python3-dev

#RUN pip install psutil --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

#RUN pip3 install ptvsd==4.1.3 --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

#COPY requirements.txt ./

#RUN pip3 install -r requirements.txt --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

#RUN pip3 install j1939 --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

#RUN pip3 install cantools --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

#RUN pip3 install aio-timers --cert="/usr/local/share/ca-certificates/cisco_umbrella_root_ca.crt"

RUN pip install psutil 

RUN pip3 install ptvsd==4.1.3 

COPY requirements.txt ./

RUN pip3 install -r requirements.txt 

RUN pip3 install j1939 

RUN pip3 install cantools 

RUN pip3 install aio-timers

#RUN apt-get install udev

#RUN apt-get install kmod

RUN mkdir -p /temp/peak-linux-driver-8.12.0

ADD peak-linux-driver-8.12.0 /temp/peak-linux-driver-8.12.0

WORKDIR /temp/peak-linux-driver-8.12.0/driver

RUN sudo make clean

#RUN make

RUN make install

RUN modprobe pcan

WORKDIR /app

COPY . .

CMD [ "python3", "-u", "./main.py" ]
There's my dockerfile to run the peak adapter in a docker container running ubuntu 18.04. The error is "Makefile:129 *** Unable to automatically find the kernel headers. These are mandatory to build the pcan driver. Please set the KERNEL_LOCATION variable to the root directory of your own built kernel."

What should I do next?
Last edited by M.Gerber on Mon 26. Jul 2021, 11:35, edited 1 time in total.
Reason: Inserted [code] tag for improved readability.

M.Heidemann
Sales & Support
Sales & Support
Posts: 667
Joined: Fri 20. Sep 2019, 13:31

Re: Pcan adapter with docker container, set KERNEL_LOCATION variable to the root directory of your own built kernel

Post by M.Heidemann » Fri 23. Jul 2021, 08:27

Hello,

We do not use Docker and cannot support Docker environments,
however it seems like the installation of kernel-headers is commented out:

Code: Select all

#RUN apt-get install linux-headers -y
As the error-message clearly states, these are required to build the PCAN-Linux driver.

Try to have your docker container setup with kernel-headers installed and try again.

Please also note the requirements mentioned in the PCAN-Linux documentation, chapter "2.2 - System Requirements":

http://www.peak-system.com/fileadmin/me ... an_eng.pdf

Please report back to us if this has resolved your issue.

Best Regards

Marvin

jwillnetwork
Posts: 5
Joined: Mon 14. Jun 2021, 14:30

Re: Pcan adapter with docker container, set KERNEL_LOCATION variable to the root directory of your own built kernel

Post by jwillnetwork » Mon 2. Aug 2021, 19:19

Getting the can messages over socketcan worked instead of pcan_usb using the docker container.

During device setup in the container this code was used:
self.ecu.connect(bustype='socketcan', channel='can0')
#self.ecu.connect(bustype='pcan', channel='PCAN_USBBUS1', bitrate=250000)

Running this script on the device before container deployment allowed the messages to be uploaded:
sudo modprobe peak-usb
sudo ip link set can0 up type can bitrate 250000
sudo ip link set up can0

M.Heidemann
Sales & Support
Sales & Support
Posts: 667
Joined: Fri 20. Sep 2019, 13:31

Re: Pcan adapter with docker container, set KERNEL_LOCATION variable to the root directory of your own built kernel

Post by M.Heidemann » Tue 3. Aug 2021, 08:05

Hello,

Thank you for your feedback!

Best Regards

Marvin

Post Reply