Coral TPU driver install for Proxmox 9.0 / Debian 13

Another version, another error. Here is a working script to install the Coral TPU driver on a fresh Proxmox VE 9.0 system:

wget -qO - https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/google.gpg --import -
rm /etc/apt/trusted.gpg.d/google.gpg~
chmod 644 /etc/apt/trusted.gpg.d/google.gpg
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | tee /etc/apt/sources.list.d/coral-edgetpu.list
apt-get update
apt-get install pve-headers libedgetpu1-std dkms devscripts dh-make dh-dkms git -y
git clone https://github.com/google/gasket-driver.git
cd gasket-driver
sed -i -e 's/no_llseek/noop_llseek/g' gasket_core.c
sed -i -e 's/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS("DMA_BUF")/g' gasket_page_table.c
debuild -us -uc -tc -b
cd ..
dpkg -i gasket-dkms_1.0-18_all.deb

Comments

10 responses to “Coral TPU driver install for Proxmox 9.0 / Debian 13”

  1. misterlaneous avatar
    misterlaneous

    OMG! thank you!
    your commands were slightly off (I had to dip into gasket-driver/src to run the sed commands) but it got me up and running <3

  2. Silas Amorim avatar
    Silas Amorim

    Thanks, works here, but need a little fix, missing “cd src”.

    rm gasket-d*
    rm -rf gasket-driver/
    wget -qO – https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg –no-default-keyring –keyring gnupg-ring:/etc/apt/trusted.gpg.d/google.gpg –import –
    rm /etc/apt/trusted.gpg.d/google.gpg~
    chmod 644 /etc/apt/trusted.gpg.d/google.gpg
    echo “deb https://packages.cloud.google.com/apt coral-edgetpu-stable main” | tee /etc/apt/sources.list.d/coral-edgetpu.list
    apt-get update
    apt-get install pve-headers libedgetpu1-std dkms devscripts dh-make dh-dkms git -y
    git clone https://github.com/google/gasket-driver.git
    cd gasket-driver
    cd src
    sed -i -e ‘s/no_llseek/noop_llseek/g’ gasket_core.c
    sed -i -e ‘s/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS(“DMA_BUF”)/g’ gasket_page_table.c
    cd ..
    debuild -us -uc -tc -b
    cd ..
    dpkg -i gasket-dkms_1.0-18_all.deb
    apt update && apt upgrade

  3. Silas Amorim avatar
    Silas Amorim

    Thanks, works here

    rm gasket-d*
    rm -rf gasket-driver/
    wget -qO - https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/google.gpg --import -
    rm /etc/apt/trusted.gpg.d/google.gpg~
    chmod 644 /etc/apt/trusted.gpg.d/google.gpg
    echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | tee /etc/apt/sources.list.d/coral-edgetpu.list
    apt-get update
    apt-get install pve-headers libedgetpu1-std dkms devscripts dh-make dh-dkms git -y
    git clone https://github.com/google/gasket-driver.git
    cd gasket-driver
    cd src
    sed -i -e 's/no_llseek/noop_llseek/g' gasket_core.c
    sed -i -e 's/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS("DMA_BUF")/g' gasket_page_table.c
    cd ..
    debuild -us -uc -tc -b
    cd ..
    dpkg -i gasket-dkms_1.0-18_all.deb
    apt update && apt upgrade

  4. tritor avatar
    tritor

    Hi,
    followed your instructions and got during the install of the gasket.dkms_1.0-18_all.deb following error:

    Selecting previously unselected package gasket-dkms.
    (Reading database … 118812 files and directories currently installed.)
    Preparing to unpack gasket-dkms_1.0-18_all.deb …
    Unpacking gasket-dkms (1.0-18) …
    Setting up gasket-dkms (1.0-18) …
    Loading new gasket/1.0 DKMS files…
    Deprecated feature: REMAKE_INITRD (/usr/src/gasket-1.0/dkms.conf)
    Building for 6.12.41+deb13-amd64 and 6.14.8-2-pve

    Building initial module gasket/1.0 for 6.12.41+deb13-amd64
    Deprecated feature: REMAKE_INITRD (/var/lib/dkms/gasket/1.0/source/dkms.conf)
    Sign command: /lib/modules/6.12.41+deb13-amd64/build/scripts/sign-file
    Signing key: /var/lib/dkms/mok.key
    Public certificate (MOK): /var/lib/dkms/mok.pub

    Building module(s)…(bad exit status: 2)
    Failed command:
    make -j20 KERNELRELEASE=6.12.41+deb13-amd64 -C /lib/modules/6.12.41+deb13-amd64/build M=/var/lib/dkms/gasket/1.0/build

    Error! Bad return status for module build on kernel: 6.12.41+deb13-amd64 (x86_64)
    Consult /var/lib/dkms/gasket/1.0/build/make.log for more information.
    dpkg: error processing package gasket-dkms (–install):
    installed gasket-dkms package post-installation script subprocess returned error exit status 10
    Errors were encountered while processing:
    gasket-dkms

    Any idea how to

  5. tue avatar
    tue

    edit..go in to src for seed commands.

    cd gasket-driver

    cd src

    sed -i -e ‘s/no_llseek/noop_llseek/g’ gasket_core.c
    sed -i -e ‘s/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS(“DMA_BUF”)/g’ gasket_page_table.c

    cd ..

    debuild -us -uc -tc -b

  6. tue avatar
    tue

    You made a mistake.

    you need to go in and out of the src folder

    cd gasket-driver

    cd src

    sed -i -e ‘s/no_llseek/noop_llseek/g’ gasket_core.c
    sed -i -e ‘s/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS(“DMA_BUF”)/g’ gasket_page_table.c

    cd ..

    debuild -us -uc -tc -b
    cd ..
    dpkg -i gasket-dkms_1.0-18_all.deb

  7. Raz avatar
    Raz

    Hi,
    Thanks for the scipt, unfortunatley doesn’t work!

    Building initial module gasket/1.0 for 6.14.11-2-pve
    Deprecated feature: REMAKE_INITRD (/var/lib/dkms/gasket/1.0/source/dkms.conf)
    Sign command: /lib/modules/6.14.11-2-pve/build/scripts/sign-file
    Signing key: /var/lib/dkms/mok.key
    Public certificate (MOK): /var/lib/dkms/mok.pub

    Building module(s)…(bad exit status: 2)
    Failed command:
    make -j8 KERNELRELEASE=6.14.11-2-pve -C /lib/modules/6.14.11-2-pve/build M=/var/lib/dkms/gasket/1.0/build

    Error! Bad return status for module build on kernel: 6.14.11-2-pve (x86_64)
    Consult /var/lib/dkms/gasket/1.0/build/make.log for more information.
    dpkg: error processing package gasket-dkms (–install):
    installed gasket-dkms package post-installation script subprocess returned error exit status 10
    Errors were encountered while processing:
    gasket-dkms

  8. Gary Phillips avatar
    Gary Phillips

    Minor error when following this.

    cd gasket-driver

    Should be

    cd gasket-driver/src

    Other wise the sed commands cannot find the files as they reside in the src folder.

    After running the sed commands

    cd ..

    To continue with the rest of the script 🙂

  9. tue kyndal avatar

    I have tried to compile for proxmox 9.1.1.
    ‘It works but have issued with apt-get destroying it afterwards.
    I can not hold the drivers and kernel.
    Have you got a fix. Please contact me on facebook,
    im in the proxmox group
    tue kyndal

  10. Wojciech Bielawski avatar
    Wojciech Bielawski

    Hi i have some problems
    root@pve:~# git clone https://github.com/feranick/gasket-driver
    Cloning into ‘gasket-driver’…
    remote: Enumerating objects: 879, done.
    remote: Counting objects: 100% (256/256), done.
    remote: Compressing objects: 100% (32/32), done.
    remote: Total 879 (delta 234), reused 231 (delta 224), pack-reused 623 (from 1)
    Receiving objects: 100% (879/879), 258.90 KiB | 1.04 MiB/s, done.
    Resolving deltas: 100% (610/610), done.
    root@pve:~# cd gasket-driver
    root@pve:~/gasket-driver# sed -i -e ‘s/no_llseek/noop_llseek/g’ gasket_core.c
    sed: can’t read gasket_core.c: No such file or directory
    root@pve:~/gasket-driver# sed -i -e ‘s/MODULE_IMPORT_NS(DMA_BUF)/MODULE_IMPORT_NS(“DMA_BUF”)/g’ gasket_page_table.c
    sed: can’t read gasket_page_table.c: No such file or directory
    root@pve:~/gasket-driver# debuild -us -uc -tc -b
    dpkg-buildpackage -us -uc -ui -tc -b
    dpkg-buildpackage: info: source package gasket-dkms
    dpkg-buildpackage: info: source version 1.0-18.4
    dpkg-buildpackage: info: source distribution noble
    dpkg-buildpackage: info: source changed by Nicola Ferralis
    dpkg-source –before-build .
    dpkg-buildpackage: info: host architecture amd64
    debian/rules clean
    dh clean –with dkms
    dh_clean
    debian/rules binary
    dh binary –with dkms
    dh_update_autotools_config
    dh_autoreconf
    create-stamp debian/debhelper-build-stamp
    dh_prep
    debian/rules override_dh_install
    make[1]: Entering directory ‘/root/gasket-driver’
    dh_install src/* usr/src/gasket-1.0/
    make[1]: Leaving directory ‘/root/gasket-driver’
    dh_installdocs
    dh_installchangelogs
    debian/rules override_dh_dkms
    make[1]: Entering directory ‘/root/gasket-driver’
    dh_dkms -V 1.0
    make[1]: Leaving directory ‘/root/gasket-driver’
    dh_installudev
    dh_perl
    dh_link
    dh_strip_nondeterminism
    dh_compress
    dh_fixperms
    dh_missing
    dh_installdeb
    dh_gencontrol
    dh_md5sums
    dh_builddeb
    dpkg-deb: building package ‘gasket-dkms’ in ‘../gasket-dkms_1.0-18.4_all.deb’.
    dpkg-genbuildinfo –build=binary -O../gasket-dkms_1.0-18.4_amd64.buildinfo
    dpkg-genchanges –build=binary -O../gasket-dkms_1.0-18.4_amd64.changes
    dpkg-genchanges: info: binary-only upload (no source code included)
    debian/rules clean
    dh clean –with dkms
    dh_clean
    dpkg-source –after-build .
    dpkg-buildpackage: info: binary-only upload (no source included)
    Now running lintian gasket-dkms_1.0-18.4_amd64.changes …
    running with root privileges is not recommended!
    E: gasket-dkms changes: bad-distribution-in-changes-file noble
    W: gasket-dkms: old-fsf-address-in-copyright-file
    Finished running lintian.
    root@pve:~/gasket-driver# cd ..
    root@pve:~# dpkg -i gasket-dkms_1.0-18_all.deb
    dpkg: error: cannot access archive ‘gasket-dkms_1.0-18_all.deb’: No such file or directory
    root@pve:~#

    can you help me ?

Leave a Reply

Your email address will not be published. Required fields are marked *