Generalnie coś się dzieje niedobrego. Nie wiem czy skaner nawala czy hub.

Przez jakiś czas działało, ale widzę, że co jakoś czas się pitoli:

root@Skaner:~# scanimage -L
device `plustek:libusb:001:004' is a Canon CanoScan N1240U/LiDE30 flatbed scanner

Czyli widzi skaner. Każę mu skanować:

root@Skaner:~# /scripts/skan_inne.sh
Montuje zdalny zasob...
Tworze katalogi...
scanimage: sane_read: Error during device I/O

Czyli sane zauważył, że skaner się wysypał podczas procesu skanowania.

I teraz już skaner nie odpowiada:

root@Skaner:~# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
root@Skaner:~#

Do momentu ponownego reebootu.

Operacje restartu zasilania na USB z wykorzystaniem uhubctl wydają się nie pomagać.

Pozostaje sprawdzić na jakimś innym hubie (najjepiej z aktywnym zasilaniem - a szkoda).
Albo z jakimś innym skanerem USB (być może z niższym poborem prądu z USB).

A najlepszy pewnie byłby router z dwoma portami USB.

Swoją drogą, widzę, że jak pada skaner, do czasem uhubctl w ogóle przestaje widzieć cokolwiek:

root@Skaner:~# uhubctl
No compatible devices detected!

Dopiero reboot pomaga.

Router to Netgear R6220

usbreset jakby niedostępny:

Unknown package 'usbreset'.
Collected errors:
 * opkg_install_cmd: Cannot install package usbreset.

Za to uhubctl jest:

Installing uhubctl (2.4.0-1) to root...
Downloading https://downloads.openwrt.org/releases/22.03.5/packages/mipsel_24kc/packages/uhubctl_2.4.0-1_mipsel_24kc.ipk
Configuring uhubctl.

Niby kompatybilnego huba znajduje:

# uhubctl
Current status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
Current status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 1: 0100 power
  Port 2: 0101 power connect []

Niemniej po próbie restartu zasilań, skaner uparty, nie chce się odezwać:

root@Skaner:~# uhubctl -a off -p 1
Current status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
Sent power off request
New status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
  Port 1: 0080 off
Current status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 1: 0100 power
Sent power off request
New status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 1: 0000 off
root@Skaner:~# uhubctl -a off -p 2
Current status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
Sent power off request
New status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
Current status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 2: 0101 power connect []
Sent power off request
New status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 2: 0000 off
root@Skaner:~# uhubctl -a on -p 1
Current status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
  Port 1: 0080 off
Sent power on request
New status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
  Port 1: 02a0 power 5gbps Rx.Detect
Current status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 1: 0000 off
Sent power on request
New status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 1: 0100 power
root@Skaner:~# uhubctl -a on -p 2
Current status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
Sent power on request
New status for hub 2 [1d6b:0003 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 3.00, 1 ports, ppps]
Current status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 2: 0000 off
Sent power on request
New status for hub 1 [1d6b:0002 Linux 5.10.176 xhci-hcd xHCI Host Controller 1e1c0000.xhci, USB 2.00, 2 ports, ppps]
  Port 2: 0100 power
root@Skaner:~# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
root@Skaner:~#

Nie mam pojęcia, czemu raz śmiga a raz nie chce. Czy faktycznie USB prądowo nie wyrabia, czy może sam skaner jest wadliwy. Sbróbuję niedługo z innym hubem USB.

Cześć Wszystkim.

Wie może ktoś, w jaki sposób zrestartować HUB-a USB bez fizycznego odłączania go od portu USB routera, albo bez restartowania całego OpenWRT?

Pytam, bo zdarzyło się kilka razy, że paczka Saned przestawała widzieć skaner (zasilanie i dane po USB) i najprościej udawało się przywrócić całość do działania poprzez reconnect huba USB, zastanawiam się czy da się to równie skutecznie zrobić programowo (zainicjować ponownie hub-a USB). Zakładam, że sterować zasilaniem dostępnym się nie da (nie można jakimś magicznym poleceniem na chwilę wyłączyć zasilania na portach USB) ?

54

(2 odpowiedzi, napisanych Sprzęt / Hardware)

Na dobrą sprawę znalazłem tylko jeden sensowny produkt:

https://i.imgur.com/YRHXsdB.png

https://pl.aliexpress.com/item/1005004693916556.html

Ciekawe czy będzie kompatybilny z kmod-usb-audio.

Cezary napisał/a:

Znajdź coś co pozwala na drukowanie z poziomu openwrt...

No właśnie tak na czuja to można przypuszczać że będzie potrzebny sterownik dla HP4000 dla OpenWrt jakieś PLC5 czy coś.
I zastanawiam się czy znajdę. Ale poszukam.

Witam.

Ktoś się orientuje, czy będzie kłopot z implementacją na OpenWRT zadania wysłania obrazu .jpg na drukarkę HP4000 po LAN?
Pytam, ponieważ chciałbym do rozwiązania:

https://eko.one.pl/forum/viewtopic.php?id=23268

pod jeden z klawiszy podpiąć funkcję wydrukowania ostatnio zeskanowanego dokumentu.

57

(2 odpowiedzi, napisanych Sprzęt / Hardware)

Witam.

Kto poleci jakieś tanie kompatybilne głośniki USB i paczkę dla OpenWRT, która obsłuży audio?
Powiedzmy, że chcę skryptem bashowym co godzinę odczytywać bieżącą godzinę / do routera dorobić funkcję zegarynki.

Cześć

Podpowiedzcie proszę jakieś eleganckie automatyczne restartowanie usługi Triggerhappy w momencie wykrycia przez OpenWRT przełączenia klawiatury do innego portu USB.

Pytanie powiązane z tematem:
https://eko.one.pl/forum/viewtopic.php?id=23268

Gdzie obecne rozwiązanie przestaje działać po podpięciu / przełączeniu klawiatury do momentu kolejnego restartu usługi:

service triggerhappy restart
Królik napisał/a:

Cienki klient? Banana pi?

Wszystko fajnie, tylko w nich będą padały systemy przy losowych zanikach zasilania, a routery mają jakoś tak zorganizowane zasoby dyskowe, że im takie zaniki nie straszne / system nigdy nie padnie.

Więc może rzeczywiście najlepszą opcją na dzień dzisiejszy jest R6220 z hubem USB.

Fajnym sprzętem jest Linksys EA7500. Dwa porty USB, i tyle pamięci, że można zainstalować sporo paczek, bez wywalania rootfs na pendrive (więc dwa porty USB zazwyczaj wystarczają).

Tyle, że to droga zabawka (w porównaniu z R6220), mimo, że radio też tylko AC.

Próbował ktoś stworzyć obraz OpenWRT dla Tp Link Archer D9 ?
Udało się?

Info jakie znalazłem:
https://openwrt.org/toh/tp-link/archer-d9

Hub brzmi jak klamot, ale i pomysł, wcale nie głupi :-) W zasadzie przy dobrym sprzęcie wystarczą mi dwa porty. Trzeci to u mnie zapas na wywalenie rootfs na pendrive-a.

Przejrzałem właśnie allegro i olx-a, ale widzę, że słabo z tanimi i sensownymi urządzeniami pod OpenWRT, nawet jeśli chodzi o sztuki częściowo uszkodzone.

Najtańszy a zarazem najpotężniejszy sprzęt to na chwilę prawdopodobnie WYSE3040, ciekawe jak będzie z prądożernością w porównaniu z typowym routerem działającym nowe OpenWRT.

Witam.

Szukam po taniości jakiegoś routera na którym bangla najnowsze OpenWRT i ma 3 porty USB (2.0 wystarczy)
Radia być nie musi, może być uszkodzone i chyba w takie będę celował (może coś się uda znaleźć za grosze).

Jeśli znacie jakieś przyzwoite modele bogate w USB i obsługujące najnowszy OpenWrt 23.05 (a więc ciągle wspierane) podzielcie się informacją proszę.

Dzięki :-)

Wklejam artykuł, który napisałem na potrzeby dokumentacji dla domowego intranetu.

Szkoda, by się marnował, zatem zostawiam tu dla potomnych.


Kilka poniżej opisanych kroków pozwoli wykorzystać dowolny wspierany przez xsane skaner (np. stary skaner USB) w roli skanera sieciowego, skanującego dokumenty bezpośrednio na wskazany odpowiednim klawiszem klawiatury numerycznej zasób sieciowy.

Do uruchomienia takiego zestawu będzie potrzebny:

- skaner wspierany przez xsane (w naszym przypadku skaner CanoScan LIDE 30)

- urządzenie z uruchomionym oprogramowaniem xsane (w naszym przypadku będzie to router działający pod kontrolą OpenWRT z zainstalowaną paczką xsane)

- klawiatura USB (w naszym przypadku będzie to klawiaturka numeryczna Natec Goby)


Opis instalacji i konfiguracji paczki xsane dostępny jest we wpisie:

https://eko.one.pl/forum/viewtopic.php? … 99#p289299


Pora na instalację paczki kmod-usb-hid, która pozwoli systemowi OpenWRT poprawnie obsłużyć klawiaturę USB.

Po zainstalowaniu paczki:

opkg update
opkg install kmod-usb-hid

wypadałoby zweryfikować, czy podpięta do routera klawiatura widziana jest przez system OpenWRT. W tym celu użyłem polecenia:

cat /sys/kernel/debug/usb/devices

A następnie, pośród odnalezionych urządzeń USB odszukałem blok wyświetlający informacje o mojej klawiaturze:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 15 Spd=1.5  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=c0f4 ProdID=05e0 Rev= 1.10
S:  Manufacturer=SZH
S:  Product=usb keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 98mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

następnie sprawdziłem w logach systemowych:

logread

informację o klawiaturze:

Sat Sep  2 08:53:27 2023 user.info kernel: [3037752.421989] kmodloader: loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.450373] hid: raw HID events driver (C) Jiri Kosina
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.473314] input: SZH usb keyboard as /devices/platform/1e1c0000.xhci/usb1/1-1/1-1:1.0/0003:C0F4:05E0.0001/input/input0
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.484785] hid-generic 0003:C0F4:05E0.0001: input,hidraw0: USB HID v1.10 Keyboard [SZH usb keyboard] on usb-1e1c0000.xhci-1/input0
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.507562] input: SZH usb keyboard Consumer Control as /devices/platform/1e1c0000.xhci/usb1/1-1/1-1:1.1/0003:C0F4:05E0.0002/input/input1
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.520937] input: SZH usb keyboard System Control as /devices/platform/1e1c0000.xhci/usb1/1-1/1-1:1.1/0003:C0F4:05E0.0002/input/input2
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.536362] hid-generic 0003:C0F4:05E0.0002: input,hidraw1: USB HID v1.10 Device [SZH usb keyboard] on usb-1e1c0000.xhci-1/input1
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.548834] usbcore: registered new interface driver usbhid
Sat Sep  2 08:53:27 2023 kern.info kernel: [3037752.554621] usbhid: USB HID core driver
Sat Sep  2 08:53:27 2023 user.info kernel: [3037752.566216] kmodloader: done loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:27 2023 user.info kernel: [3037752.657063] kmodloader: loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:28 2023 user.info kernel: [3037752.675499] kmodloader: done loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:28 2023 user.info kernel: [3037752.758775] kmodloader: loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:28 2023 user.info kernel: [3037752.774870] kmodloader: done loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:28 2023 user.info kernel: [3037752.857395] kmodloader: loading kernel modules from /etc/modules.d/*
Sat Sep  2 08:53:28 2023 user.info kernel: [3037752.875746] kmodloader: done loading kernel modules from /etc/modules.d/*

Jak widać, wszystko zadziałało poprawnie.

Teraz pozostaje zadbać o to, by powiązać zdarzenie naciśnięcia wybranego przycisku na tej klawiaturze z akcją zeskanowania włożonego do skanera dokumentu i wysłania wykonanego skanu do odpowiedniego zasobu zdalnego SMB.

W powiązaniu zdarzenia przyciśniętego klawisza z wspomnianą wyżej akcją pomoże nam paczka triggerhappy, którą zainstalowałem w następujący sposób:

opkg install triggerhappy

Zaraz po zainstalowaniu tej paczki postanowiłem sprawdzić co wydarzy się po naciśnięciu klawisza „1”, w tym celu użyłem polecenia:

thd --dump /dev/input/event*

co spowodowało wyświetlenie w konsoli następujących linii:

EV_KEY  KEY_KP1 1       /dev/input/event0
# KEY_KP1       1       command
EV_KEY  KEY_KP1 0       /dev/input/event0
# KEY_KP1       0       command

Tym samym, upewniłem się, że wygenerowane zostało zdarzenie naciśnięcia przycisku „1”.

Na koniec pozostaje więc wyedytować plik konfiguracyjny dla paczki triggerhappy

nano /etc/triggerhappy/triggers.d/example.conf

Mój przykładowy config wygląda następująco:

# This is an example configuration for the triggerhappy daemon (thd)
# please note that every file to be processed must end in ".conf"
#
# To view a list of supported event codes, use "thd --listevents" or
# "thd --dump /dev/input/event*"
#
# Format:
# <eventcode> <value> <command>
#
# values for key events are 1 (pressed), 0 (released) or 2 (held)
#
## control an mpd instance
# KEY_NEXTSONG          1       /usr/bin/mpc next
# KEY_PREVSONG          1       /usr/bin/mpc prev

KEY_KP1         1       /scripts/skan_medyczne.sh
KEY_KP2         1       /scripts/skan_polisy_na_samochod.sh
KEY_KP3         1       /scripts/skan_polisy_na_dom.sh
KEY_KP4         1       /scripts/skan_oplaty_gaz.sh
KEY_KP5         1       /scripts/skan_oplaty_odpady.sh
KEY_KP6         1       /scripts/skan_oplaty_prad.sh
KEY_KP7         1       /scripts/skan_oplaty_woda.sh
KEY_KPENTER     1       /scripts/skan_inne.sh

Po zedytowaniu pliku konfiguracyjnego pozostaje nam zerstartować usługę:

service triggerhappy restart

We wskazane lokalizacje podpiąłem odpowiednie skrypty, poniżej zawartość jednego z nich:

/scripts/skan_inne.sh

ps | grep scanimage | grep -v grep > /dev/null
if [ $? -eq 0 ]; then
  {
  echo "Process is running."
  }
else
  {
  timestamp=`date +%Y-%m-%d_%T`
  filename=${timestamp}_Inne

  echo "Montuje zdalny zasob..."
  mount -t cifs //192.168.10.11/Skaner -o 'username=uzytkownik,password=haslo' /mnt/remote_share

  echo "Tworze katalogi..."
  mkdir /mnt/remote_share/Dokumenty
  mkdir /mnt/remote_share/Dokumenty/Inne

  scanimage -x 215 -y 297 --resolution 300dpi --format jpeg >/mnt/remote_share/Dokumenty/Inne/$filename.jpg

  umount /mnt/remote_share/
  }
fi

Od tej pory przyciśnięcie odpowiedniego klawisza na płycie skanera (klawiatura przytwierdzona do klapy skanera) spowoduje zeskanowanie dokumentu, nadanie mu przyzwoitej nazwy pliku (z datą i opisem wykonanego skanu) oraz przesłanie go na domowy serwer plików pod właściwą lokalizację.

Odnośniki:

https://openrouter.info/forum/viewtopic … &t=813

64

(1 odpowiedzi, napisanych Sprzęt / Hardware)

Wklejam artykuł, który napisałem na potrzeby dokumentacji dla domowego intranetu.

Szkoda, by się marnował, zatem zostawiam tu dla potomnych.

Istnieje możliwość zmiany niemal dowolnego, nawet bardzo leciwego skanera, wyposażonego w port USB w skaner sieciowy. Tym samym nie dość, że możemy dać drugie życie posiadanemu skanerowi ze złączem USB (również takiemu niewspieranemu przez dzisiejsze systemy operacyjne) to jeszcze stanie się on ogólnodostępny dla wszystkich użytkowników w sieci lokalnej i rodzinnej. Oznacza to, że do skanera podłączonego w ogólnodostępnym pomieszczeniu, będzie mógł podejść każdy z domowników, wyciągnąć własny smartfon lub laptop i, rzecz jasna, bez wykonywania jakichkolwiek podłączeń kablami, zeskanować interesujący go, papierowy dokument.

A wszystko to możliwe jest dzięki oprogramowaniu SANE ( http://www.sane-project.org/ ). SANE to paczka dla linuksa, która daje możliwość obsługi skanerów z poziomu linii komend, co otwiera drogę do automatyzacji procesu skanowania, ograniczoną jedynie pomysłowością użytkownika, ale, co więcej (i co dla zwykłego użytkownika najciekawsze) udostępnia podłączony skaner w sieci LAN, dla wszystkich (bądź wybranych) użytkowników tej sieci.

Żeby uniezależnić się od komputera (który przecież musiałby być cały czas włączony, by którykolwiek z użytkowników mógł skorzystać ze skanera) proponuję podłączyć skaner do routera z portem USB (który przecież i tak jest zawsze włączony). Oczywiście musi to być router, który będzie potrafił obsłużyć nasz skaner, i tutaj z pomocą przychodzi, po raz kolejny, router działający pod kontrolą OpenWRT, dla którego również wydano paczkę z oprogramowaniem SANE.

Próbę uruchomienia takiego rozwiązania wykonałem z użyciem skanera Canon CanoScan Lide 30 i jednego z posiadanych routerów, działającego pod kontrolą systemu OpenWRT w wersji 22.03.2.

Jak widać, ostatni dostępny sterownik do tego skanera wydano dla systemu Windows Vista 32-bit:

https://www.canon.pl/support/consumer_p … 20(32-bit)

Nam takie ograniczenia nie groźne, ponieważ już za chwilę, skaner ten będzie (i to po sieci!) dostępny dla bardzo wielu platform i wydań, w tym dla nanowszego Windows 11 64-bit.

Jak to możliwe? Otóż zamiast klasycznego sterownika ze strony firmy Canon, zainstalujemy w systemie sterownik, rozwijany pod nazwą Wiasane, który jest niczym innym, jak klientem serwera SANE, uruchomionego na dowolnej maszynie w sieci LAN (na przykład na wspomnianym routerze).

O tym, już za chwilę, tymczasem przejdźmy do instalacji niezbędnego oprogramowania na naszym routerze. Po zalogowaniu się do routera po SSH, w konsoli wydamy szereg poleceń:

opkg update
opkg install xinetd sane-daemon sane-frontends sane-plustek

Instalacja jest banalnie prosta. Jak widać powyżej, aktualizujemy informacje o paczkach dostępnych w repozytoriach OpenWRT (opkg update) a następnie instalujemy paczki:

- xinetd – paczka, która zadba o uruchomienie usługi SANE po załadowaniu systemu operacyjnego routera,

- sane-daemon – paczka, która pozwoli działać oprogramowaniu SANE w trybie usługi

- sane-frontends – frontent, czyli składnik SANE instalowany niezależnie od modelu posiadanego skanera

- sane-plustek – backend, czyli składnik SANE instalowany w zależności od konkretnego producenta i modelu skanera.

W przypadku skanera Canon CanoScan Lide 30 będzie to paczka sane-plustek, natomiast w przypadku innego (niż przykładowy) skanera, nazwę właściwej paczki należy odnaleźć na stronie projektu: http://www.sane-project.org/sane-mfgs.html. Tu warto wspomnieć, że nie każdy skaner jest wspierany przez oprogramowanie SANE, i na tej stronie również taką informację (czy dany skaner jest wspierany) odnajdziemy. Lista wspieranych skanerów jest przeogromna, i raczej małe szanse, że trafimy akurat na niewspierany. Jeśli natomiast dopiero planujemy zakup skanera, warto tę informację sprawdzić.

Po zainstalowaniu powyższych paczek warto sprawdzić, czy skaner jest poprawnie widziany przez system operacyjny routera. W tym celu, znajdjąc się w konsoli naszego routera z OpenWRT wydajemy polecenie:

scanimage -L

w odpowiedzi powinniśmy dostać komunikat jak poniżej:

device `plustek:libusb:001:002' is a Canon CanoScan N1240U/LiDE30 flatbed scanner

Jeśli wszystko OK, pozostaje zadbać o to, by SANE wystartowało wraz ze startem OpenWRT na naszym routerze. W tym celu edytujemy plik /etc/xinetd.d/sane-port:

nano /etc/xinetd.d/sane-port

a następnie zartość zmiennej disable ustawiamy na no:

https://i.imgur.com/prEY6UU.png


zapisujemy zmienioną konfigurację (w przypadku edytora nano: ctrl-x, Y, enter).

Następnie przechodzimy do edycji pliku /etc/sane.d/saned.conf, w którym zdefiniujemy, w jakiej podsieci (dla hostów z której podsieci) nasz serwer SANE ma być dostępny.

nano /etc/sane.d/saned.conf

Po dodaniu właściwego adresu podsieci i zapisaniu zmian, i zrestartowaniu routera (polecenie reboot) nasz serwer SANE jest już aktywny, i czeka na połączenia z sieci.

Nie pozostaje już nic innego, jak tylko zainstalować sterownik dla Windows lub innego preferowanego przez nas systemu operacyjnego (sterownik ten będzie klientem naszego sieciowego skanera SANE).

Sterownik znajdziemy na stronie: https://github.com/mback2k/wiasane/releases

Podczas procesu instalacji trzeba będzie podać adres IP urządzenia, na którym pracuje nasz serwer SANE (w naszym przypadku adres routera), port należy pozostawić bez zmian.

Tyle, zainstalowaliśmy sterownik skanera, który będziemy mogli wskazać w preferowanym przez nas oprogramowaniu do skanowania.



Dla przykładu, w aplikacji PhotoDemon:

https://i.imgur.com/8JVKLZt.png

https://i.imgur.com/D6tEODQ.png



w aplikacji Faksowanie i skanowanie w systemie Windows:

https://i.imgur.com/7nhfSoE.png

https://i.imgur.com/RMaFMJp.png



Można teraz skanować do woli, czy to z aplikacji na Windows:

https://i.imgur.com/MHk4MbJ.png



Czy to, z aplikacji na smartfonie:

https://i.imgur.com/6xwxovp.png



Lub też w dowolny inny sposób.

Literatura:

https://openwrt.org/docs/guide-user/ser … rver/saned
http://www.sane-project.org/sane-mfgs.html
http://www.sane-project.org/sane-frontends.html

65

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Działa. Ale jak zapakuję do skryptu:

ps | grep scanimage | grep -v grep
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  echo "Process is not running."
fi

to i tak, skrypt zobaczy sam siebie, i warunek stwierdzi, że scanimage działa (i musze jakoś wybrnąć ;-)

# /scripts/check_scanimage_process.sh
21797 root      1312 S    ash /scripts/check_scanimage_process.sh
Process is running.

---- edit ---

Dobra, zmieniłem nazwę skryptu ;-p

66

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Witam ponownie.

W zależności od tego czy na OpenWRT uruchomiony jest proces scanimage potrzebuję wykonać funkcję warunkową.

I teraz tak, mamy dwie sytuacje:

Scanimage jest uruchomiony:

# ps | grep scanimage
21569 root     37544 S    scanimage -x 215 -y 297 --resolution 300dpi --format jpeg
21571 root     37420 R    scanimage -x 215 -y 297 --resolution 300dpi --format jpeg

Scanimage nie jest uruchomiony:

# ps | grep scanimage
21555 root      1312 R    grep scanimage

Potrzebuję to ubrać w warunek jak tutaj:

#!/bin/bash
ps cax | grep httpd > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  echo "Process is not running."
fi

Tyle, że na OpenWRT to działać nie chce,

po pierwsze z powodu braku możliwości użycia deklaracji: #!/bin/bash

po drugie (bez tej dyrektywy):

# /scripts/check_scanimage_process.sh
ps: unrecognized option: c
BusyBox v1.35.0 (2022-10-14 22:44:41 UTC) multi-call binary.

Usage: ps

Show list of processes

        w       Wide output
Process is not running.

Jak w środowisku OpenWRT mogę jednoznacznie stwierdzić, czy proces scanimage jest uruchomiony, by w łatwy sposób wykonać od tego warunek ?

67

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

To na końcu "> /mnt/test" to przekierowanie do pliku mnt/test. Ten znaczek > jest zbędny, a jeżeli masz go w haśle to zmień hasło, używaj cudzysłowów itdp.


Znaczek to akurat moja literówka przy kopiowaniu na forum,

Ale, faktycznie, pomogły apostrofy:

Przed:

-o username=user,password=haslo

Po:

-o 'username=user,password=haslo'

I teraz bangla.

68

(9 odpowiedzi, napisanych Oprogramowanie / Software)

No dobra, ale teraz o co mu chodzi z tym niby katalogiem ?

# mount -t cifs //192.168.10.11/target -o username=user,password=haslo /mnt/test
-ash: can't create /mnt/test: Is a directory
# ls /mnt
test
# ls /mnt/test
#

Jest katalog, wszystko gra, więc czemu się nie chce do niego zamontować ?

--- edit ---

Dobra, pomogły apostrofy:

Przed:

-o username=user,password=haslo

Po:

-o 'username=user,password=haslo'

69

(9 odpowiedzi, napisanych Oprogramowanie / Software)

A widzisz, faktycznie, na tym routerku jeszcze nie instalowałem.

https://i.imgur.com/sSompAG.png

70

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Problem w tym, że skoro curl nie obsługuje Samby, to z podmontowaniem będzie problem...

mount -t cifs //192.168.10.11/target /mnt/test/
mount: mounting //192.168.10.11/target on /mnt/test/ failed: No such device

71

(9 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Czy curl którym się posługujesz ma wkompilowaną obsługę smb?

curl -V

szukaj smb.

O kurcze, chyba będzie problem. Co teraz?

# curl -V
curl 8.2.1 (mipsel-openwrt-linux-gnu) libcurl/7.86.0 mbedTLS/2.28.1 nghttp2/1.44.0
Release-Date: 2023-07-26
Protocols: file ftp ftps http https mqtt
Features: alt-svc HSTS HTTP2 IPv6 Largefile SSL threadsafe
WARNING: curl and libcurl versions do not match. Functionality may be affected.

Jakiś sposób na najprostsze obejście tematu?

Panowie, coś nie mogę sobie poradzić z akcją kopiowania pliku na zdalny zasób SMB z poziomu linii komend OpenWRT.

Normalnie to bym podmontował zdalny zasób Samby do jakiegoś katalogu, i potem działał jak na zwykłych plikach lokalnych, ale tym razem tak nie chcę.

Chcę po prostu skopiować plik z lokalnego systemu plików OpenWRT na zdalną Sambę i tyle.

Próbuję w ten sposób:

# curl --upload-file /root/outputfile.jpg -u user:haslo smb://192.168.10.11/Skaner/
-ash: can't create smb://192.168.10.11/Skaner/: nonexistent directory

Zasób zdalny na pewno istnieje, jest typu RW, user ma dostęp i prawa RW.

Dlaczego nie bangla ?

Jakieś pomysły na zdebugowanie tematu?

73

(7 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary, podpowiesz w jaki sposób zrestartować triggerhappy by zaczytał /etc/triggerhappy/triggers.d/example.conf ponownie?

Dodałem w tym konfigu akcję:

# This is an example configuration for the triggerhappy daemon (thd)
# please note that every file to be processed must end in ".conf"
#
# To view a list of supported event codes, use "thd --listevents" or
# "thd --dump /dev/input/event*"
#
# Format:
# <eventcode> <value> <command>
#
# values for key events are 1 (pressed), 0 (released) or 2 (held)
#
## control an mpd instance
# KEY_NEXTSONG          1       /usr/bin/mpc next
# KEY_PREVSONG          1       /usr/bin/mpc prev

KEY_KP1         1       /scripts/test.sh

Innymi słowy, chcę, by wykonała się akcja uruchomienia skryptu drukującego "test" do konsoli. Sam skrypt istnieje i działa:

# /scripts/test.sh
test

Natomiast naciskanie przycisku "1" na klawiaturze nie uruchamia tego skryptu.

Dodam, że sam mechanizm działa:

# thd --dump /dev/input/event*
EV_KEY  KEY_KP1 1       /dev/input/event0
# KEY_KP1       1       command
EV_KEY  KEY_KP1 0       /dev/input/event0
# KEY_KP1       0       command

Ale zdaje się, coś config nie może się zaczytać...

Chyba, że akcja drukowanie tekstu test po naciśnięciu przycisku na klawiaturze idzie w jakąś inną konsolę niż ta, do której jestm podpięty po SSH ?

74

(7 odpowiedzi, napisanych Sprzęt / Hardware)

Dzięki.

No dobra, moją niby też widzi.

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 11 Spd=1.5  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=c0f4 ProdID=05e0 Rev= 1.10
S:  Manufacturer=SZH
S:  Product=usb keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr= 98mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=(none)
E:  Ad=82(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

Teraz musze jakkolwiek połączyć akcję naciśnięcia wybranego klawisza z wykonaniem odpowiedniego skryptu sh.

75

(7 odpowiedzi, napisanych Sprzęt / Hardware)

Cezary napisał/a:

Klawiatura jest natywnie wspierania np. w x86. Ale np. triggerhappy: https://openrouter.info/forum/viewtopic … &t=813 może się nadać.

Klawiatura numeryczna (wpięta do routera po USB) powinna być w jakikolwiek sposób widoczna w odpowiedzi na lsusb?

Dopytuję, bo OpenWrt wydaje się zupełnie tego urządzenia nie widzieć.

Przed wpięciem i po wpięciu jest to samo:

# lsusb
Bus 001 Device 004: ID 04a9:220e Canon CanoScan
Bus 002 Device 001: ID 1d6b:0003 Linux 5.10.146 xhci-hcd xHCI Host Controller
Bus 001 Device 001: ID 1d6b:0002 Linux 5.10.146 xhci-hcd xHCI Host Controller