Rehber Arch Linux dağıtımına Vestel 14MB24A (Faz 1) Akıllı Tahta dokunmatik sürücüsünü kurmak

Merhaba.

Eski rehberi yapmamın ardından gelişen pek çok şey oldu. Birkaç hatanın düzeltilmesi ile artık manuel kernel derlemesi gerektirmeden, pacman paketi kurar gibi bu sürücüyü kurabiliyoruz.

Giderilen hata ile artık güncel olan kernel sürümlerinde bu sürücü rahatlıkla çalışıyor.
Hatanın kaynağı ise kaynak kodda bulunan Makefile dosyası.
Bu mesajımda detaylarını gösterdim. Aslında bu sorun daha önce çözülmüş fakat ortalıkta bulunmuyormuş.
Bu adres üzerindeki geçmiş commitlere bakarsanız "fix for 5.10" commitini görürsünüz. Hatanın kaynağı bu.

Şimdi bu sürücüyü nasıl pacman'e göre paketleyip kuracağız buna bakalım.

Bu linki git clone komutu ile ister klonlayın ya da "Download ZIP" deyip indirebilirsiniz.
Daha sonra ZIP olarak indirdiyseniz klasöre çıkarıp klasörün içine girin. Klonladıysanız direkt girersiniz.

Burada 3 tane Runtime, 1 tane Build, ve kullanılan kernel'in headers paketi bağımlılığı var. Bu bağımlılıklar sağlanmalı.

Runtime bağımlılıkları:
Kod:
dkms
usbutils
systemd

Build bağımlığı:
Kod:
git

"Eee hocam, git GitHub'dan vs. repo çekmek için kullanılmıyor mu? Neden Build bağımlılığı o zaman?" diyebilirsiniz.
PKGBUILD dosyasının prepare fonksiyonuna bakarsanız git clone ${url} satırı yer alıyor. Bundan dolayı. Kurulum esnasında GitHub'dan veri çekiyoruz.

Kurulumu başlatmak için:
Bash:
makepkg -si
Yazıp beklemek kalıyor.
GitHub'dan veri çekerken SSL Sertifika hatası verebilir. Bundan dolayı mobil internet ile yapılsa iyi olur.

Başarılı bir kurulum gerçekleştiyse muhtemelen çıktı şu şekildedir:
Bash:
==> Making package: eta-touchdrv-git 0.2.0-1 (Sun 04 Dec 2022 09:49:53 PM +03)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
==> Extracting sources...
==> Starting prepare()...
Cloning into 'eta-touchdrv'...
remote: Enumerating objects: 249, done.
remote: Counting objects: 100% (167/167), done.
remote: Compressing objects: 100% (119/119), done.
remote: Total 249 (delta 56), reused 114 (delta 34), pack-reused 82
Receiving objects: 100% (249/249), 481.57 KiB | 1.39 MiB/s, done.
Resolving deltas: 100% (82/82), done.
==> Starting build()...
make -C /lib/modules/6.0.10-arch2-1/build M=/home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2 modules
make[1]: Entering directory '/usr/lib/modules/6.0.10-arch2-1/build'
  CC [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2/OpticalDrv.o
  MODPOST /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2/Module.symvers
  CC [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2/OpticalDrv.mod.o
  LD [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2/OpticalDrv.ko
  BTF [M] /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch2/OpticalDrv.ko
make[1]: Leaving directory '/usr/lib/modules/6.0.10-arch2-1/build'
make -C /lib/modules/6.0.10-arch2-1/build M=/home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4 modules
make[1]: Entering directory '/usr/lib/modules/6.0.10-arch2-1/build'
  CC [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4/OtdDrv.o
  MODPOST /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4/Module.symvers
  CC [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4/OtdDrv.mod.o
  LD [M]  /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4/OtdDrv.ko
  BTF [M] /home/kernelginar/Desktop/eta-touchdrv-git/src/eta-touchdrv/usr/src/eta-touchdrv/touch4/OtdDrv.ko
make[1]: Leaving directory '/usr/lib/modules/6.0.10-arch2-1/build'
Sign command: /usr/lib/modules/6.0.10-arch2-1/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub
Creating symlink /var/lib/dkms/eta-touchdrv/__VERSION__/source -> /usr/src/eta-touchdrv-__VERSION__

Building module:
Cleaning build area...
cd touch2;make KVER=6.0.10-arch2-1;cd ..;cd touch4;make KVER=6.0.10-arch2-1;cd ......
Signing module /var/lib/dkms/eta-touchdrv/__VERSION__/build/touch2/OpticalDrv.ko
Signing module /var/lib/dkms/eta-touchdrv/__VERSION__/build/touch4/OtdDrv.ko
Cleaning build area...

OpticalDrv.ko.zst:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /usr/lib/modules/6.0.10-arch2-1/updates/dkms/

OtdDrv.ko.zst:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /usr/lib/modules/6.0.10-arch2-1/updates/dkms/
depmod....
==> Entering fakeroot environment...
==> Starting package()...
==> Tidying install...
  -> Removing libtool files...
  -> Purging unwanted files...
  -> Removing static library files...
  -> Stripping unneeded symbols from binaries and libraries...
  -> Compressing man and info pages...
==> Checking for packaging issues...
==> WARNING: Package contains reference to $srcdir
usr/src/eta-touchdrv/touch2/modules.order
usr/src/eta-touchdrv/touch2/OpticalDrv.ko
usr/src/eta-touchdrv/touch2/OpticalDrv.o
usr/src/eta-touchdrv/touch2/OpticalDrv.mod
usr/src/eta-touchdrv/touch4/modules.order
usr/src/eta-touchdrv/touch4/OtdDrv.mod
usr/src/eta-touchdrv/touch4/OtdDrv.ko
usr/src/eta-touchdrv/touch4/OtdDrv.o
==> Creating package "eta-touchdrv-git"...
  -> Generating .PKGINFO file...
  -> Generating .BUILDINFO file...
  -> Generating .MTREE file...
  -> Compressing package...
==> Leaving fakeroot environment.
==> Finished making: eta-touchdrv-git 0.2.0-1 (Sun 04 Dec 2022 09:50:11 PM +03)
==> Installing package eta-touchdrv-git with pacman -U...
loading packages...
resolving dependencies...
looking for conflicting packages...

Package (1)       New Version  Net Change

eta-touchdrv-git  0.2.0-1        0.37 MiB

Total Installed Size:  0.37 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                                                                         [------------------------------------------------------------] 100%
(1/1) checking package integrity                                                                       [------------------------------------------------------------] 100%
(1/1) loading package files                                                                            [------------------------------------------------------------] 100%
(1/1) checking for file conflicts                                                                      [------------------------------------------------------------] 100%
(1/1) checking available disk space                                                                    [------------------------------------------------------------] 100%
:: Processing package changes...
(1/1) installing eta-touchdrv-git                                                                      [------------------------------------------------------------] 100%
Optional dependencies for eta-touchdrv-git
    touchegg: Touchscreen configuraton
    touche: Touchscreen configuraton tool
:: Running post-transaction hooks...
(1/4) Reloading system manager configuration...
(2/4) Reloading device manager configuration...
(3/4) Arming ConditionNeedsUpdate...
(4/4) Install DKMS modules
==> dkms install --no-depmod eta/touchdrv -k 6.0.10-arch2-1
==> depmod 6.0.10-arch2-1

PKGBUILD'in yaptığı işlemler şu şekilde:
  1. GitHub reposunu klonlar.
  2. Klonladığı reponun usr/src/eta-touchdrv/touch2 dizinine giriş yapar.
  3. make komutu çalıştırılır.
  4. Bir geri dizine gelir ve oradan touch4 dizinine girer.
  5. make komutunu çalıştırır.
  6. Ardından bir geri dizine gelip sudo yetkileri ile dkms install . komutu çalıştırılır. Bu komutun çalıştırıldığı dizine bakarsanız dkms.conf dosyası olduğunu görürsünüz.
  7. Ve artık paketleme işlemine geçilir. install komutu ile GitHub reposu dizini içerisinden dosyalar, Linux dosya sisteminde gereken yerlere kopyalanır. Son olarak paket oluşur ve pacman bu paketi kurar. Tüm dosyaların nerede olduğunu bilerek.
Paket kurulduktan sonra:
Bash:
sudo systemctl start eta-touchdrv && sudo systemctl enable eta-touchdrv
sudo systemctl start touchdrv-start && sudo systemctl enable touchdrv-start
Bu komutlar ile systemd servislerini başlatın. Ve dokunmatik artık hazır olacak.

Kernel güncellemesi yapıldıktan sonra
Kod:
/usr/src/eta-touchdrv/touch2
/usr/src/eta-touchdrv/touch4
Bu dizinlerde sürücüyü tekrar derlemeniz (Yani o dizinlerde make komutunu çalıştırmanız) ve ardından
Kod:
/usr/src/eta-touchdrv
Dizininde dkms install . komutunu çalıştırmanız gerek. Kernel modülleri kernel sürümlerine bağımlıdır ve her yükseltme sonrası bunların yeniden derlenip kurulması gerekir.
 

Geri
Yukarı