Treiber kompilieren, auch was für Anfänger?Multifunktionsdrucker Canon TS 8250

Guten Tag in die Runde!
Hatte meinen alten Multifunktionsdrucker Canon MG 6150 zum Laufen gebracht( Yaourt + AUR). Leider scheint der jetzt das zeitliche gesegnet zu haben. ( Ich weiß, es gibt andere Druckerhersteller die sofort Linux Treiber bereitstellen)

Ich möchte auch wieder u.a. häufiger qualitativ gute Fotos drucken, daher wollte ich bei Canon bleiben. Auch gefällt mir die Einzel-Tinten_Tank Lösung gut, das dazu…

Da ich aber nicht erst den MfD kaufen möchte, um dann festzustellen, das er unter Linux nicht läuft, habe ich mich auf der Canon Seite umgesehen. Da finde ich aber mal wieder nur Teiber für Debian, rpm Pakete, oder aber eine dritte Rubrik mit Linux Quelldateien(Drucker/Scanner).

Diesmal habe ich bis jetzt auch keineTreiber im “AUR” gefunden.

Ich bin jetzt mal davon ausgegangen, das diese, dafür sind, um selber Treiber für andere Linux Distros zu kompilieren?..
Lange Rede kurzer Sinn, gibt es die Chance, das ich als Anfänger mir so was kompilieren kann?

MfG
helfko62

Hallo helfko62,

du brauchst den Treiber nicht selber zu kompillieren.
Viele Druckertreiber aus dem AUR basieren auf einen Debian Paket das nur runtergeladen wird.
Mit den Anweisungen die in der PKBUILD Datei stehen wird das .deb entpackt, angepasst und in ein Pacman Paket umgebaut.

Als Basis nimmst du am besten einen PKBUILD für ein ähnliches Druckermodell, der bereits im AUR vorhanden ist.
Tipp: wenn du für dich nicht extra eine Prüfsumme (md5sums) hinterlegen willst kannst du einfach ‘SKIP’ eintragen.

Bei Fragen zum PKBUILD können dir bestimmt auch die Profis hier im Forum weiterhelfen.

Wenn das PKBUILD fertig ist, muss man noch eine .SRCINFO generieren:

makepkg --printsrcinfo > .SRCINFO

Danach kann das Paket auch schon gebaut werden:

makepkg

Installiert wird es am ganz normal mit Pacman:

$ sudo pacman -U xxx.pkg.tar.xz

Viele Grüße

1 Like

Hallo Nrde,
Vielen Dank für Deine Antwort!
Leider finde ich keinen einzigen Treiber dieser Canon Serie TS…
Was ich wohl finde ist eine von meinem alten Ducker der MG Serie. Wenn das auch geht?
Für mich ist das hier absolutes Neuland…
Wenn ich Dich richtig verstehe, mal laienhaft ausgedrückt, ist es eine PKBUILD “Datei” umzufunktionieren, daß diese meine Daten für den Drucker eingefügt werden und dann für Manjaro verfügbar gemacht werden?
Brauche ich dann die Debian Daten von der Canon Seite, oder die “Quelldateien” die dort zu Verfügung gestellt werden.

In welcher Rubrik wäre es denn richtig, über die PKBUILD Sache, Fragen zu stellen.

Trotz Deiner Erklärung, fürchte ich, komme ich noch nicht klar, mir fehlen da einfach noch zu viele Zusammenhänge.

Mfg
helfko62

Die Rubrik wäre in deinen Fall Technical Issues and Assistance - AUR

Das PKBUILD für Canon MG6100 sieht zum Beispiel so aus:

# Maintainer:  David Verelst <david punktum verelst at gmail dot com>

# Based on PKGBUILD from https://aur.archlinux.org/packages/canon-pixma-mg5200-complete
# Scanner icon source: http://openiconlibrary.sourceforge.net/gallery2/open_icon_library-full/icons/png/64x64/devices/scanner-3.png

pkgname=canon-pixma-mg6100-complete
pkgver=3.40
pkgrel=1
pkgdesc="Complete stand alone driver set (printing and scanning) for Canon Pixma MG6100 series"
url='http://www.canon-europe.com/Support/Consumer_Products/products/Fax__Multifunctionals/InkJet/PIXMA_MG_series/PIXMA_MG6350.aspx'
arch=('i686' 'x86_64')
license=('custom')
install="${pkgname}.install"
depends_x86_64=('lib32-popt' 'lib32-libpng12' 'lib32-libusb-compat' 'lib32-libtiff4' 'lib32-libxml2' 'lib32-gtk2')
depends_i686=('popt' 'libpng12' 'libusb-compat' 'libtiff4' 'libxml2' 'gtk2')

makedepends=('deb2targz' 'sed')

# download link found at: 
# https://www.canon-europe.com/support/consumer_products/products/fax__multifunctionals/inkjet/pixma_mg_series/pixma_mg6150.aspx?type=drivers&language=EN&os=Linux%20(64-bit)
source=('http://files.canon-europe.com/files/soft40261/Software/MG6100series-printer_driver.tar'
        'http://files.canon-europe.com/files/soft40264/Software/MG6100series-scanner_driver.tar'
        "${pkgname}.license"
        "${pkgname}-scangear.desktop"
        "${pkgname}-scangear-icon.png")
md5sums=('c2f392ccc1dd18ad9117c89a4775b4d6'
         '955482838b658333bb224c47dd7bd268'
         'd8faf0e75ee3d1989eed39d55cb3e8fb'
         'fe2f73b5004130608faa993bd9ca2294'
         '3feefd413092d7152f47b7451ba79efe')

_series='6100'
_printDrvSrc='cnijfilter-mg6100series-3.40-1-deb'
_scanDrvSrc='scangearmp-mg6100series-1.60-1-deb'

_printDrvDebCommon='cnijfilter-common_3.40-1_i386'
_printDrvDebMain='cnijfilter-mg6100series_3.40-1_i386'

_scanDrvDebCommon='scangearmp-common_1.60-1_i386'
_scanDrvDebMain='scangearmp-mg6100series_1.60-1_i386'

_ppdFile="canonmg${_series}.ppd"

build(){
   cd ${srcdir}

   # Unpack driver source files

   tar xf MG${_series}series-printer_driver.tar
   tar xf MG${_series}series-scanner_driver.tar

   tar xvzf ${_printDrvSrc}.tar.gz
   tar xvzf ${_scanDrvSrc}.tar.gz

   rm -v *.tar.*
   rm -v *.tar
}

package(){
   cd ${pkgdir}

   # Unpack debian installer files

   cp "${srcdir}/${_printDrvSrc}/packages/${_printDrvDebCommon}.deb" .
   cp "${srcdir}/${_printDrvSrc}/packages/${_printDrvDebMain}.deb" .
   cp "${srcdir}/${_scanDrvSrc}/packages/${_scanDrvDebCommon}.deb" .
   cp "${srcdir}/${_scanDrvSrc}/packages/${_scanDrvDebMain}.deb" .

   deb2targz "${_printDrvDebCommon}.deb"
   deb2targz "${_printDrvDebMain}.deb"
   deb2targz "${_scanDrvDebCommon}.deb"
   deb2targz "${_scanDrvDebMain}.deb"

   rm -v *.deb

   tar xzvf "${_printDrvDebCommon}.tar.gz"
   tar xzvf "${_printDrvDebMain}.tar.gz"
   tar xzvf "${_scanDrvDebCommon}.tar.gz"
   tar xzvf "${_scanDrvDebMain}.tar.gz"

   rm -v *.tar.gz

   # Move ppd file to where cups expects

   install -vDm 644 "${pkgdir}/usr/share/ppd/${_ppdFile}" "${pkgdir}/usr/share/cups/model/${_ppdFile}"

   rm -vrf ${pkgdir}/usr/share/ppd

   # Fix udev rules

   sed -i -e "s/SYSFS/ATTR/g" "${pkgdir}/etc/udev/rules.d/80-canon_mfp.rules"

   # Install custom license file

   install -vDm 644 "${srcdir}/${pkgname}.license" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
   
   # Install entry in application menu, including icon

   install -vDm 644 "${srcdir}/${pkgname}-scangear.desktop" "${pkgdir}/usr/share/applications/${pkgname}-scangear.desktop"
   install -vDm 644 "${srcdir}/${pkgname}-scangear-icon.png" "${pkgdir}/usr/share/pixmaps/${pkgname}-scangear-icon.png"
}

Im oberen Teil der Datei werden Treiberversion, Downloadlink und Abhängigkeiten konfiguriert.
Im unteren Teil bei build() und package() sind die Befehle zu sehen die das Debian Paket entpacken und in die richtige Form für Arch basierende Systeme überführen.

Wenn sich das Treiber Paket für dein neues Gerät von der Struktur der alten Treiber Pakete unterscheidet, brauchst du bestimmt Hilfe von den Manjaro Profis.

Ich würde dir empfehlen das neue Gerät erst zu kaufen, wenn der Treiber bei dir erfolgreich istalliert ist.

Hallo nrde
Boah, da haste Dir aber viel Mühe gemacht!!! Vielen Dank dafür.
Ich werde wohl erst mal versuchen, anhand der Beispieldatei etwas abzuleiten,
um etwas mehr zu verstehen, aber ohne Programmierkenntnisse …
Hilfe von den Profis, werde ich auf jeden Fall brauchen!! Hoffentlich haben die auch genug Geduld mit mir…:wink:
Beim letzten Punkt bin ich auch ganz bei Dir. Den Drucker werde ich erst kaufen, wenn’s mit dem Treiber klappt!
Besser wäre allerdings mehr Support seitens der Hersteller:roll_eyes:

Vielen Dank noch mal!
helfko62

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by Bytemark