SANE Kullanarak Raspberry Pi Tarayıcı Sunucusu Kurulumu

Bu yazı, PiMyLifeUp - Setting up a Raspberry Pi Scanner Server using SANE kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu eğitim, SANE yazılımını kullanarak Raspberry Pi'nizi bir tarayıcı sunucusu olarak nasıl kurabileceğinizi gösterecek.

SANE Kullanarak Raspberry Pi Tarayıcı Sunucusu

Bu yazılımı daha önce hiç duymayanlar için, SANE Scanner Access Now Easy anlamına gelir. Bu yazılım, tarayıcılara erişmek için standartlaştırılmış bir yol görevi görür.

Bu rehberde, Raspberry Pi'nize bağlı desteklenen bir tarayıcıyla konuşmak için SANE'yi nasıl kullanacağınızı öğreneceksiniz.

Hatta Raspberry Pi'nizi bir tarayıcı sunucusuna dönüştürerek bunu bir adım öteye nasıl taşıyabileceğinizi de göstereceğiz, bu da bağlı olmayan bir bilgisayardan belge taramanızı sağlar.

Pi'nizi bir tarayıcı sunucusu olarak kurmak, eski tarayıcınızı modernize etmenin harika bir yoludur. Örneğin, Wi-Fi özellikli bir tarayıcı satın almak yerine, Raspberry Pi Zero gibi bir cihaz kullanarak bu işlevselliği ekleyebilirsiniz.

Bu proje, zaten Raspberry Pi'lerini bir yazıcı sunucusu olarak kullananlar için mükemmel bir eşlik eder.

Windows kendi tescilli API'sini kullandığından, SANE'nin yerleşik araçlarla doğal olarak çalışmadığını lütfen unutmayın. Bunun yerine, SANE protokolünü destekleyen üçüncü taraf bir istemci kullanmanız gerekecek.

Raspberry Pi'ye SANE Yazılımı Kurulumu

Resmi paket deposundan mevcut olduğundan, bir Raspberry Pi'ye SANE yazılımını kurmak basit bir süreçtir.

Bunun tek dezavantajı, Pi'nin deposundaki SANE sürümünün genellikle resmi sürümden çok daha eski olmasıdır.

1. Bu yazının yayınlandığı tarih itibarıyla, depo üzerinden sağlanan tarayıcı yazılımının sürümü 1.0.27'dir. Bu sürümün desteklediği tarayıcıların listesini resmi SANE web sitesinde kontrol edebilirsiniz.

Bu sürüm tarayıcınızı desteklemiyorsa, en son uyumluluk listesini kontrol edin. En son sürüm tarayıcıyı destekliyorsa, lütfen "Kaynak Koddan SANE Derleme" bölümüne geçin.

2. SANE'yi kurmadan önce, paket listesini güncellemeli ve güncel olmayan tüm paketleri yükseltmeliyiz.

Cihazınızda aşağıdaki iki komutu kullanarak her iki işlemi de gerçekleştirebiliriz.

sudo apt update
sudo apt upgrade -y

3. Paket listesi güncel olduğuna göre, artık aşağıdaki komutu kullanarak SANE'yi kurabiliriz.

sudo apt install sane

Bir Raspberry Pi'de SANE'yi çalıştırmak için ihtiyacınız olan tek şey bu. Çoğu tarayıcı umarız kutudan çıktığı gibi çalışacaktır.

Ancak, bazı markalar bazı ek sürücülerin kurulmasını gerektirecektir. Bu gereksinime sahip en önde gelen tarayıcı ve yazıcı üreticilerinden biri HP'dir.

4. Bir HP tarayıcı kullanıyorsanız, Raspberry Pi'nizde SANE yazılımıyla çalışması için ek sürücüler kurmanız gerekecek.

Gerekli sürücüleri içeren paketi aşağıdaki komutu çalıştırarak kurabilirsiniz.

sudo apt install hplip

5. Tarayıcı sunucusu Raspberry Pi'nize kurulduktan sonra, artık "SANE ile tarayıcınızı test etme" başlıklı bölüme geçebilirsiniz.

Kaynak Koddan SANE Derleme

SANE'nin en son sürümünü Raspberry Pi'mize almak için, onu kaynak koddan derlememiz gerekecek. Bu yazılımı derlemek, birkaç yeni paket kurmamızı ve birkaç ek adımı tamamlamamızı gerektirecek.

Ancak, bu bölümün sonunda, mevcut en iyi uyumluluğa sahip bir tarayıcı sunucusu sürümüne sahip olmalısınız.

1. İlk adımımız, paket listemizin tamamen güncel olduğundan emin olmaktır. Paket listesini güncellemek, o anda mevcut olmayan yansılardan (mirror) paket indirmeye çalışmamızı önlemeli.

Aşağıdaki komutu kullanarak Raspberry Pi'nizde paket listesini güncelleyin.

sudo apt update

2. Artık paket listemiz güncellendiğine göre, Raspberry Pi'mize "sane-backend"i derlemek için gereken birkaç kütüphane ve derleyici kurmamız gerekiyor.

Raspberry Pi'nizin terminalinde aşağıdaki komutu çalıştırarak gereken tüm kütüphaneleri kurun.

sudo apt install libusb-dev libjpeg-dev libgphoto2-dev libieee1284-3-dev git build-essential autoconf autoconf-archive automake libtool autopoint

3. Yeni paketlerimizden birini kullanarak SANE backend kodunu Raspberry Pi'mize klonlayarak başlayalım.

Aşağıdaki komutu kullanarak git paketiyle bu kodu klonlayın.

git clone https://gitlab.com/sane-project/backends.git sane-backend

4. Aşağıdaki komutu kullanarak yeni klonladığımız kodu içeren dizine geçmemiz gerekiyor.

cd sane-backend

5. SANE'yi doğrudan kamuya açık depolarından Raspberry Pi'mize klonladığımızdan, devam etmeden önce "autogen.sh" betiklerini çalıştırmamız gerekiyor.

Bu betik, kodun sistemde derlenebilmesi için hazırlanmasına yardımcı olur.

./autogen.sh

6. Bir sonraki adımımız, aşağıdaki komutu kullanarak configure betiğini çalıştırmaktır.

Bu betik, kodu mevcut sistem kurulumumuz için hazırlayacaktır. Gerekli paketin mevcut sistemde olup olmamasına bağlı olarak özellikleri etkinleştirecek veya devre dışı bırakacaktır.

./configure \
    --prefix=/usr/local \
    --libdir=/usr/local/lib \
    --sysconfdir=/etc \
    --localstatedir=/var

7. Artık terminale aşağıdaki komutu girerek SANE kodunu Raspberry Pi'mize derleyebilirsiniz.

Derleme sürecinin, bir Raspberry Pi 400'de bile epey zaman alabileceğini lütfen unutmayın.

make -j$(nproc)

Raspberry Pi'nizin derleme sırasında takılı kaldığı sorunlarla karşılaşırsanız, lütfen bunun yerine aşağıdaki komutu deneyin.

make

8. SANE derlemeyi bitirdikten sonra, aşağıdaki komutla onu Pi'nize kurabilirsiniz.

Bu komut, her şeyi çalıştırabilmeniz için sisteminizdeki doğru yerlere kopyalayacaktır.

sudo make install

9. Yeni bir kütüphane eklediğimizden, sistemin bağlantı önbelleğini yenilememiz gerekiyor. Yenilemeden, çalışma zamanı bağlayıcısı (run-time linker) az önce kurduğumuz SANE kütüphanesinden habersiz olacaktır.

Bağlantı önbelleğini yenilemek için, yapmanız gereken tek şey sisteminizde aşağıdaki komutu kullanmaktır.

sudo ldconfig

10. Ardından, SANE deposundan "udev" kurallarını Raspberry Pi'mizdeki yapılandırma dizinine kopyalamamız gerekiyor.

Yapmamız gereken tek şey, dosyayı doğru konuma kopyalamak için aşağıdaki komutu çalıştırmaktır.

sudo cp tools/udev/libsane.rules /etc/udev/rules.d

udev, Linux çekirdeği için cihaz yöneticisidir. Kopyaladığımız bu kurallar, "udev"e belirli bir cihaz takıldığında hangi izinlerin, grubun ve ortam değişkenlerinin ayarlanması gerektiğini söyler.

11. Bir sonraki görevimiz için, "scanner" adlı bir grup oluşturmamız gerekiyor. Bu gruba eklenen herhangi bir kullanıcı, SANE yazılımı üzerinden tarayıcıya erişim sahibi olacak.

Aşağıdaki "addgroup" komutunu kullanarak Pi'nizde "scanner" grubunu oluşturun.

sudo addgroup scanner

12. Grup oluşturulduktan sonra, Pi kullanıcımızı buna eklememiz gerekecek. Bu, süper kullanıcıyı kullanmak zorunda kalmadan tarayıcıya erişebilmenizi sağlayacaktır.

Aşağıdaki komutu kullanarak "pi" kullanıcısını "scanner" grubuna ekleyin.

sudo adduser pi scanner

13. Son olarak, değişikliklerin etkili olması için ya çıkış yapmanız ya da Pi'nizi yeniden başlatmanız gerekecek.

Raspberry Pi'yi yeniden başlatmak, aşağıdaki komutu yazmak kadar basittir.

sudo reboot

Raspberry Pi'nizde SANE ile Tarayıcınızı Test Etme

SANE yazılımı Raspberry Pi'nize kurulduğuna göre, sonunda tarayıcınızın yazılımla çalışıp çalışmayacağını görebilirsiniz.

Devam etmeden önce, tarayıcınızı artık Raspberry Pi'ye taktığınızdan emin olun.

1. İlk adımımız, tarayıcı yazılımının Raspberry Pi'nize bağlı cihazı algılayıp algılayamadığını kontrol etmektir.

Bunu başarmak için, terminalde aşağıdaki komutu kullanacağız.

sudo sane-find-scanner -q

SANE tarayıcınızı bulabilirse, aşağıdakine benzer bir mesajla karşılaşmalısınız. Bunun SANE'nin çalışacağının bir göstergesi olmadığını, sadece tarayıcınızı görebildiğini gösterdiğini lütfen unutmayın.

found USB scanner (vendor=0x04a9 [Canon], product=0x1827 [TS3100 series]) at libusb:001:006

Herhangi bir mesaj görünmezse, SANE yazıcınızı bulamıyor demektir. Bir USB 2.0 portu kullanmayı veya tarayıcınızı kapatıp açmayı deneyin.

2. Artık SANE'nin tarayıcınızı görebildiğini bildiğinize göre, desteklenen tüm cihazları listelemek için "scanimage" aracını kullanabilirsiniz.

"-L" seçeneğini kullanarak, araca desteklenen tüm cihazları listelemek istediğimizi söylüyoruz.

scanimage -L

Yazıcınız SANE'nin kullanabileceği bir şey olarak başarıyla tanımlanırsa, aşağıdaki gibi bir mesaj görmelisiniz.

device `pixma:04A91827' is a CANON Canon PIXMA TS3100 Series multi-function peripheral

Bu mesaj, tarayıcımızı bir Canon Pixma TS3100 serisi yazıcı/tarayıcı olarak başarıyla tanımlar.

Alternatif olarak, herhangi bir mesaj görüntülenmezse, tarayıcınız SANE tarafından desteklenmiyor olabilir. Cihazı kapatıp açmayı veya resmi uyumluluk dokümantasyonunu kontrol etmeyi deneyebilirsiniz.

3. Artık tarayıcımızın Raspberry Pi'mizle çalıştığını bildiğimize göre, ona tarama yapmasını ve görüntüleyebileceğimiz bir görüntü olarak kaydetmesini söyleyebiliriz.

Raspberry Pi'nizden bir görüntü taramak, aşağıdaki komutu kullanmak kadar basittir.

scanimage > pimylifeup.jpg --format jpeg --resolution=300 -p

Bu komutu kullanırken yaptığımız birkaç şey var. İlk olarak, ona taramanın içeriğini "pimyllifeup.jpg" adlı bir dosyaya çıktı vermesini söylüyoruz.

İkincisi, en yaygın desteklenen formatlardan biri olduğundan format (--format) seçeneğini "jpeg" görüntü formatına ayarlıyoruz.

Üçüncüsü, çözünürlük (--resolution) seçeneğini kullanarak, taramayı 300 DPI çözünürlüğe ayarlıyoruz.

Son olarak, mevcut taramanın ilerlemesini komut satırında görüntülemek için ilerleme (-p) seçeneğini kullanıyoruz.

4. Bu komut çalışırken, tarayıcınızın çalışmaya başladığını duymalısınız ve tamamlandıktan sonra, Raspberry Pi'nizde "pimylifeup.jpg" adlı bir dosyaya sahip olacaksınız.

Görüntünün sonucunu görüntülemek ve doğrulamak istiyorsanız, bu dosyayı Pi'nizden kopyalayabilirsiniz.

Alternatif olarak, görüntü hakkında bilgi yazdırmak için "file" komutunu kullanabilirsiniz.

file pimylifeup.jpg

Bu komutu kullanarak, aşağıdakine benzer bir şey görmelisiniz.

pimylifeup.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, baseline, precision 8, 2552x3508, components 3

Bu bilgi, görüntünün çözünürlüğü, codec'i ve boyutu gibi şeyleri bilmenizi sağlayacaktır.

Raspberry Pi'nizi Bir Tarayıcı Sunucusuna Dönüştürme

Artık Raspberry Pi'mizde SANE çalıştığına göre, onu bir tarayıcı sunucusu olarak çalışacak şekilde yapılandırabiliriz.

SANE'yi bir tarayıcı sunucusu görevi görecek şekilde ayarlamak, birkaç farklı dosyayı değiştirmemizi gerektirir, bu yüzden bunu birkaç bölüme ayıracağız.

SANED Servisini Oluşturma

İlk görevimiz, Raspberry Pi'miz başladığında SANE daemon'unu çalıştıracak bir servis oluşturmaktır. Bu servisi kurmazsak, cihazınız her yeniden başladığında SANE'yi manuel olarak başlatmanız gerekir.

1. Oluşturmamız gereken ilk dosya, SANE için bir Systemd soket dosyasıdır. Bir systemd soketi, belirli bir sokete veri gönderildiğinde bir servisin başlatılmasını sağlar; SANE durumunda bu port 6566'dır.

Aşağıdaki komutu kullanarak bu yeni soket dosyasını oluşturmaya başlayın.

sudo nano /etc/systemd/system/saned.socket

2. Bu dosyanın içine, aşağıdaki satırları girmek isteyeceksiniz.

[Unit]
Description=saned incoming socket

[Socket]
ListenStream=6566
Accept=yes
MaxConnections=1

[Install]
WantedBy=sockets.target

Bu satırlar, bu servisin hangi portu dinleyeceğini, gelen bağlantıları kabul edip etmeyeceğini ve maksimum bağlantı sayısını belirler.

3. Dosyada bu değişiklikleri yaptıktan sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak kaydedip çıkın.

4. Bir soket dosyasının her zaman eşlik eden bir servis dosyası olmalıdır. Bu servis, sisteme Raspberry Pi'mizde SANE'yi nasıl çalıştıracağını ve ele alacağını söyleyecektir.

Aşağıdaki komutu çalıştırarak bu dosyayı düzenlemeye başlayabilirsiniz.

sudo nano /etc/systemd/system/@saned.service

5. Devam etmeden önce, aşağıdaki satırları dosyaya yazmanız gerekecek.

[Unit]
Description=Scanner Service
Requires=saned.socket

[Service]
ExecStart=/usr/local/sbin/saned
User=saned
Group=saned
StandardInput=null
StandardOutput=syslog
StandardError=syslog
Environment=SANE_CONFIG_DIR=/etc/sane.d

6. Bitirdikten sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak değişikliklerinizi kaydedin.

SANE'yi Uzaktan Erişim İçin Yapılandırma

SANE için servis dosyasını oluşturduğumuza göre, Raspberry Pi'nizde sunucuya kimlerin erişebileceğini bilmesi için onu yapılandırmamız gerekecek.

1. SANE daemon'unu yapılandırmak için, "saned.conf" dosyasını düzenlememiz gerekecek.

Cihazınızda aşağıdaki komutu çalıştırarak bu yapılandırma dosyasını nano ile düzenleyebilirsiniz.

sudo nano /etc/sane.d/saned.conf

2. Bu dosyanın içinde, aşağıdaki bölümü aramanız gerekecek.

Nano metin editörünü kullanıyorsanız, dosyayı aramak için CTRL + W kısayolunu kullanabilirsiniz.

## Access list

3. Bu başlığın altına, Raspberry Pi SANE tarayıcı sunucunuza erişmesini istediğiniz IP veya IP aralığını eklemeniz gerekecek.

Bu örnek için, yerel ağınızın "129.168.0.0" alt ağını kullandığını varsayacağız.

192.168.0.0/24

4. Dosyada bu düzenlemeleri yaptıktan sonra, CTRL + X, Y tuşu ve son olarak ENTER tuşuna basarak kaydedip çıkabilirsiniz.

Raspberry Pi'nizde Tarayıcı Sunucusunu Başlatma

Artık her şey sonunda yapılandırıldığına göre, daha önce oluşturduğumuz SANE servisini başlatabiliriz. Bu servis başlatıldıktan sonra, ağınız genelinde görüntü taramak için SANE uyumlu bir ön yüz kullanabilmeniz gerekir.

1. SANE servisini etkinleştirerek başlayalım. Servisi etkinleştirmek, açılışta otomatik olarak başlamasını sağlayacak olan şeydir.

Aşağıdaki komutu çalıştırarak sane servisini etkinleştirmek için systemctl kullanabiliriz.

sudo systemctl enable saned.socket

2. Servis artık etkinleştirildiğine göre, systemctl kullanarak onu da başlatabiliriz.

Terminalde aşağıdaki komutu kullanarak Raspberry Pi'nizde tarayıcı servisini başlatabilirsiniz.

sudo systemctl start saned.socket

3. SANE daemon'unun artık Pi'nizde çalıştığını systemctl ile "status" seçeneğini kullanarak doğrulayabilirsiniz.

systemctl status saned.socket

Her şey gerektiği gibi çalışıyorsa, durumun "Active: active (listening)" olarak listelendiğini göreceksiniz.

Ayrıca, bu komutu SANE tarafından kaç bağlantının kabul edildiğini izlemek için de kullanabilirsiniz.

4. Artık Raspberry Pi tarayıcı sunucunuz sayesinde uzaktan tarama yapmaya başlayabilmeniz gerekir.

Yapmanız gereken tek şey SANE uyumluluğuna sahip bir istemci kullanmaktır. Bir IP adresi girmeniz istenirse, Pi'nizin yerel adresini kullanın.

Raspberry Pi'nizin IP adresini aşağıdaki komutu kullanarak alabilirsiniz.

hostname -I

Sonuç

Bu eğitimin bu noktasında, artık Raspberry Pi'nizde SANE derlenmiş ve çalışır durumda olmalıdır.

SANE, Raspberry Pi'nizin bağlı bir USB tarayıcıdan görüntü taramasını sağlamanın en iyi yollarından biridir.

Hatta SANE'yi, diğer cihazların tarayıcınıza uzaktan bağlanmasına izin verecek şekilde yapılandırabilirsiniz.

SANE'yi Raspberry Pi'de çalışır hale getirirken sorun yaşadıysanız, lütfen aşağıya yorum bırakın.