Portál AbcLinuxu, 9. listopadu 2025 21:11


Dotaz: Problém se skenerem

17.9. 13:00 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Problém se skenerem
Přečteno: 821×
Odpovědět | Admin
Přeji hezký den všem.

Předem se omlouvám za trochu obšírnější popis problému mého bývalého kolegy. Používá Linux Mint, nedávno se rozhodl přejít na verzi 22. Jelikož chtěl pro jistotu zachovat i předchozí verzi, nainstaloval novou na volné místo na disku, vytvořil si znovu i uživatele a uživatelská data překopíroval nebo udělal symbolické linky. Cílem tohoto postupu mělo být, aby nová verze Mintu v co největší míře používala nastavenou konfiguraci pro všechny používané programy za staré verze.

Celkem se mu to povedlo, až na skener. Jedná se o nějaký Epson, ale myslím, že to není důležité. Po instalaci driveru a nějakého softwaru od výrobce skener fungoval. Pak kolega nastavoval zmíněné sdílení konfigurace, ale po ukončení celého procesu zjistil, že skener nefunguje, proto mně požádal o radu.

Na místě jsem zjistil následující: po spuštění programu epsonscan2 se objeví okno s výběrem skeneru, po výběru program havaruje s chybovým hlášení (první dva řádky asi nejsou důležité)
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Neoprávněný přístup do paměti (SIGSEGV) (core dumped [obraz paměti uložen])
Ten obraz paměti jsem našel, ale nemám žádné zkušenosti, co a jak se z něj dá zjistit. Zajímavé je, že když se vytvoří nový uživatel, program epsonscan2 funguje bez problémů. Řekl bych, že v rámci sdílené konfigurace se program snaží použít nějaké neexistující nebo staré knihovny, ale nepodařilo se mi zjistit, kde se k nim dostane. Uživatelská konfigurace je v adresáři .epsonscan2, ale její odstranění nepomohlo, stejně tak nepomohlo, když jsem tam zkusil nakopírovat konfiguraci od uživatele, kde program fungoval.

Kolega mi ještě poslal záznam své diskuse o problému s AI, ale k tomu jsem poměrně skeptický.

Jako řešení bych viděl zálohu dat, uživatele vytvořit znovu, konfiguraci přenášet postupně a průběžně kontrolovat funkčnost skeneru, ale do toho se kolegovi moc nechce. Takže kdyby měl někdo jiný nápad, budu rád.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.9. 17:28 Lemur
Rozbalit Rozbalit vše Re: Problém se skenerem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co "strace epsonscan2" ?
19.9. 17:17 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Problém se skenerem
Co "strace epsonscan2" ?
Kolega mi poslal kompletní výpis, přikládám jeho část před tím, než se objeví hlášení o pádu, ale moje znalosti nestačí na to, abych z toho něco zjistil. Můžu samozřejmě poskytnout celý výpis, případně jinou část, pokud budu vědět, na co se zaměřit.
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/dtrplugin", {st_mode=S_IFREG|0755, st_size=24916, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/libesdtr.so", {st_mode=S_IFREG|0444, st_size=340188, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/dtrplugin", {st_mode=S_IFREG|0755, st_size=24916, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/libesdtr.so", {st_mode=S_IFREG|0444, st_size=340188, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/dtrplugin", {st_mode=S_IFREG|0755, st_size=24916, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/libesdtr.so", {st_mode=S_IFREG|0444, st_size=340188, ...}) = 0
2479  stat("/usr/lib/x86_64-linux-gnu/epsonscan2/non-free-exec/fitplugin", {st_mode=S_IFREG|0755, st_size=203528, ...}) = 0
2479  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... poll resumed>)               = 1 ([{fd=17, revents=POLLIN}])
2479  <... write resumed>)              = 8
2488  read(17, "\2\0\0\0\0\0\0\0", 8)   = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\344\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\7\0\0\0enabled\0\1\0\0\0\0\0\0\0\4(so)\0\0\0\0\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\345\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\t\0\0\0sensitive\0\0\0\1\0\0\0\0\0\0\0\4(so)\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2479  futex(0x37e12470, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, -1 <unfinished ...>
2479  <... futex resumed>)              = 0
2479  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2488  <... poll resumed>)               = 1 ([{fd=17, revents=POLLIN}])
2488  read(17, "\1\0\0\0\0\0\0\0", 8)   = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\346\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\7\0\0\0enabled\0\1\0\0\0\0\0\0\0\4(so)\0\0\0\0\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... sendmsg resumed>)            = 280
2479  <... write resumed>)              = 8
2488  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, 0) = 1 ([{fd=17, revents=POLLIN}])
2488  read(17,  <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... read resumed>"\2\0\0\0\0\0\0\0", 8) = 8
2479  <... write resumed>)              = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\347\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\t\0\0\0sensitive\0\0\0\1\0\0\0\0\0\0\0\4(so)\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2479  futex(0x37e12470, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
2488  futex(0x37e12470, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
2479  <... futex resumed>)              = 0
2488  <... futex resumed>)              = 0
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\350\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\7\0\0\0enabled\0\1\0\0\0\0\0\0\0\4(so)\0\0\0\0\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... sendmsg resumed>)            = 280
2479  <... write resumed>)              = 8
2488  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, 0) = 1 ([{fd=17, revents=POLLIN}])
2488  read(17, "\3\0\0\0\0\0\0\0", 8)   = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\351\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\t\0\0\0sensitive\0\0\0\1\0\0\0\0\0\0\0\4(so)\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... sendmsg resumed>)            = 280
2479  <... write resumed>)              = 8
2488  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, 0) = 1 ([{fd=17, revents=POLLIN}])
2488  read(17,  <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... read resumed>"\2\0\0\0\0\0\0\0", 8) = 8
2479  <... write resumed>)              = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\352\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\7\0\0\0enabled\0\1\0\0\0\0\0\0\0\4(so)\0\0\0\0\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\353\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\t\0\0\0sensitive\0\0\0\1\0\0\0\0\0\0\0\4(so)\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... sendmsg resumed>)            = 280
2479  <... write resumed>)              = 8
2488  write(17, "\1\0\0\0\0\0\0\0", 8)  = 8
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, 0) = 1 ([{fd=17, revents=POLLIN}])
2488  read(17,  <unfinished ...>
2479  write(17, "\1\0\0\0\0\0\0\0", 8 <unfinished ...>
2488  <... read resumed>"\3\0\0\0\0\0\0\0", 8) = 8
2479  <... write resumed>)              = 8
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\354\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\7\0\0\0enabled\0\1\0\0\0\0\0\0\0\4(so)\0\0\0\0\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2488  sendmsg(19, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\210\0\0\0\355\0\0\0~\0\0\0\1\1o\0%\0\0\0/org/a11"..., iov_len=144}, {iov_base="\t\0\0\0sensitive\0\0\0\1\0\0\0\0\0\0\0\4(so)\0\0\0"..., iov_len=136}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 280
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, -1) = 1 ([{fd=17, revents=POLLIN}])
2488  read(17, "\1\0\0\0\0\0\0\0", 8)   = 8
2488  poll([{fd=17, events=POLLIN}, {fd=18, events=POLLIN}, {fd=19, events=POLLIN}], 3, -1 <unfinished ...>
2479  --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x18} ---
2496  <... futex resumed>)              = ?
2486  <... futex resumed>)              = ?
2485  <... futex resumed>)              = ?
2484  <... futex resumed>)              = ?
2482  <... poll resumed> <unfinished ...>) = ?
2481  <... futex resumed>)              = ?
2496  +++ killed by SIGSEGV (core dumped) +++

Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
17.9. 17:42 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Problém se skenerem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vypadá to, že ten epsonscan2 využívá nějakou knihovnu, kterou „vylepšili”. Řešením je ten strace a dohledání knihovny, se kterou ten epsonscan2 funguje.
18.9. 08:52 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Problém se skenerem
Vypadá to, že ten epsonscan2 využívá nějakou knihovnu, kterou „vylepšili”. Řešením je ten strace a dohledání knihovny, se kterou ten epsonscan2 funguje.
Něco takového jsem si myslel, ale nevěděl jsem, jak tu knihovnu najít. Díky za tip, poslal jsem to kolegovi, uvidím, co mi odpoví.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
17.9. 17:44 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Problém se skenerem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Po instalaci driveru a nějakého softwaru od výrobce skener fungoval. Pak kolega nastavoval zmíněné sdílení konfigurace, ale po ukončení celého procesu zjistil, že skener nefunguje, proto mně požádal o radu.

Možná je problém jen o nastavení správné cesty, nebo práv. Funguje to pod rootem?

18.9. 12:25 jejda | skóre: 26 | blog: jejda
Rozbalit Rozbalit vše Re: Problém se skenerem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zajímavé je, že když se vytvoří nový uživatel, program epsonscan2 funguje bez problémů. Uživatelská konfigurace je v adresáři .epsonscan2, ale její odstranění nepomohlo, stejně tak nepomohlo, když jsem tam zkusil nakopírovat konfiguraci od uživatele, kde program fungoval.
Podle tohoto popisu je možné, že starý uživatel má nějaké trochu divné nastavení GUI se kterým si epsonscan2 na nové verzi GUI z nějakého důvodu neví rady. To by vysvětlovalo proč to nově vytvořenému uživatelovi (s výchozím nastavením) funguje. Co se stane když pokusně spustíš ten epsonscan2 pod jinačím správcem oken? padá to taky? Kdyby byl problém v knihovnách, tak by to nefungovalo ani nově vytvořenému uživatelovi.
18.9. 13:51 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Problém se skenerem
Díky za další tip, přepošlu.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.
Řešení 1× (Vtipnéř (tazatel))
1.10. 12:01 Vtipnéř | skóre: 39 | blog: Vtipnéřův blog | Brno
Rozbalit Rozbalit vše Re: Problém se skenerem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Včera mi kolega volal, že pomohlo, když ze zálohy obnovil celou složku .config. Chtěl ještě radu, jak vystopovat konkrétní soubor, který problém zavinil, ale řekl jsem mu, že mi to v dané situaci připadá jako ztráta času.

Jirka
Opening Windows is better than washing them. Clearing Windows (e.g. erasing or deleting) is even much better.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.