Linux ile USB Çoklu Kamera Sistemleri için Baumer GAPI SDK’sı [AN201707]

Baumer GAPI SDK – Linux Baumer USB Endüstriyel Kameralar

Bu belge, Linux tabanlı bilgisayarlarda USB çoklu kamera sistemlerinin kullanımını açıklamaktadır.

Teknik Arka Plan

Linux çekirdeğinin USB modülü, 16 MB’lık bir bellek sınırına sahiptir ve bu, USB çoklu kamera sistemlerinin kullanımında kısıtlamalara yol açacaktır.

Çekirdeğin USB modülü belleğinin değiştirilmesi

Bellek sınırının belirlenmesi

Linux USB modülünün bellek sınırı, aşağıdaki komut çalıştırılarak belirlenebilir:

# cat /sys/module/usbcore/parameters/usbfs_memory_mb

Varsayılan olarak, döndürülen değer 16 olmalıdır. Bu bellek sınırı, başlatma sırasında değiştirilmesi gereken bir çekirdek başlatma argümanıdır. Çekirdek başlatma argümanları, sistemin önyükleyicisi tarafından yönetilir. Ubuntu, Debian veya Fedora gibi en yaygın dağıtımların tümü grub önyükleyicisini kullanır. Grub önyükleyici için başlatma argümanlarının nasıl değiştirileceği aşağıda açıklanmıştır.

GRUB önyükleyicisi ile bellek sınırını değiştirme

/etc/default/grub[1] dosyası, GRUB_CMDLINE_LINUX_DEFAULT girişini içerir. Ubuntu sistemlerinde, bu girişin tamamı şu şekilde görünür: GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”.

Bellek sınırı, usbcore.usbfs_memory_mb=xxx[2] argümanı eklenerek bir sonraki başlatmada artırılabilir.

Bellek sınırını 1000 MB’a çıkarmak için, girişin tamamı şu şekilde olmalıdır:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=1000"

Değişiklikleri grub’a uygulamak için, root kullanıcısı olarak grub-mkconfig -o /boot/grub/grub.cfg komutunu çalıştırmanız gerekir.

[1] Bu dosyayı değiştirebilmek için root kullanıcısının yönetici haklarına sahip olmanız gerekmektedir.

[2] USB modülü için bellek boyutu, Megabayt cinsinden verilir.

U-Boot-Loader ile Bellek Sınırını Değiştirme

Bazı ARM kartları, sistemi başlatmak için U-Boot-Loader kullanır. Bu bölüm, Nvidia Jetson için USB bellek sınırını nasıl değiştireceğinizi açıklar. Diğer kartlarda yollar biraz farklı olabilir.

Bellek sınırını artırmak için Linux çekirdeği başlatma argümanlarını düzenlemeniz gerekir. Başlatma argümanlarını değiştirmek için, tercih ettiğiniz bir düzenleyici ile /boot/extlinux/extlinux.conf dosyasını düzenleyin.

Aşağıdaki gibi başlayan bir girişi arayın:

APPEND console=ttyS0,115200n8 console=tty1 no_console_suspend=1 lp0_vec=2064@0xf46....

Bu satırın sonuna şunu ekleyin:

usbcore.usbfs_memory_mb=XXX (XXX’i ihtiyaçlarınıza uygun bir değerle değiştirin. Bu girişi ekledikten sonra yeni bir satır eklemeyin.)

Şimdi sisteminizi yeniden başlatmalı ve USB bellek sınırını aşağıdaki komutla kontrol etmelisiniz:

# cat /sys/module/usbcore/parameters/usbfs_memory_mb

Bellek başarıyla artırıldıysa, döndürülen değer başlatma argümanıyla eşleşmelidir.