Portál AbcLinuxu, 10. května 2025 00:09
Dobrý den, pořídil jsem si vypalovačku (LG GSA-H12L) s podporou LightScribe (potisk speciálních cd laserem) a i když se dá o užitečnosti pochybovat, řekl sem si že stejně tento úžasný zázrak vyzkouším. Koupil sem si speciální medium a začal googlit jak v linuxu na to.
Dostal sem se k ovladačům od Lacie a HP (prakticky to samé, jen má HP novější verzi) v rpm (bohužel v ničem jiném, proprietární bastl). Přes rpm2tar jsem to nějak prasácky nainstaloval, včetně kreslících softů (jak od lacie, tak od hp) a jal se to vyzkoušet.
A zde nastal problém. Při detekci mé mechaniky dojde vždycky k SIGSEGV chybě a konec. Přes strace jsem dostal toto:
strace 4L-cli enumerate execve("/usr/bin/4L-cli", ["4L-cli", "enumerate"], [/* 42 vars */]) = 0 brk(0) = 0x8058000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f7a000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=94694, ...}) = 0 mmap2(NULL, 94694, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f62000 close(3) = 0 open("/usr/local/lib/liblightscribe.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\267"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1360448, ...}) = 0 mmap2(NULL, 1428220, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e05000 mmap2(0xb7f10000, 262144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10b) = 0xb7f10000 mmap2(0xb7f50000, 72444, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f50000 close(3) = 0 open("/lib/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300J\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=68940, ...}) = 0 mmap2(NULL, 74204, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7df2000 mmap2(0xb7e01000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe) = 0xb7e01000 mmap2(0xb7e03000, 4572, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e03000 close(3) = 0 open("/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libstdc++.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\310\3"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=867168, ...}) = 0 mmap2(NULL, 886404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d19000 mmap2(0xb7de7000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xce) = 0xb7de7000 mmap2(0xb7dec000, 22148, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7dec000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2603\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=150380, ...}) = 0 mmap2(NULL, 143488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cf5000 mmap2(0xb7d17000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21) = 0xb7d17000 close(3) = 0 open("/usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgcc_s.so.1", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\26"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0644, st_size=40120, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7cf4000 mmap2(NULL, 40548, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7cea000 mmap2(0xb7cf3000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7cf3000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\212Y\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1167888, ...}) = 0 mmap2(NULL, 1140092, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7bd3000 mmap2(0xb7ce3000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10f) = 0xb7ce3000 mmap2(0xb7ce7000, 9596, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ce7000 close(3) = 0 open("/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/libstdc++.so.5", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\277\3"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=719340, ...}) = 0 mmap2(NULL, 738816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7b1e000 mmap2(0xb7bc9000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xaa) = 0xb7bc9000 mmap2(0xb7bce000, 17920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7bce000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7b1d000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7b1c000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7b1c6b0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7ce3000, 12288, PROT_READ) = 0 mprotect(0xb7d17000, 4096, PROT_READ) = 0 mprotect(0xb7de7000, 12288, PROT_READ) = 0 mprotect(0xb7e01000, 4096, PROT_READ) = 0 mprotect(0xb7f95000, 4096, PROT_READ) = 0 munmap(0xb7f62000, 94694) = 0 set_tid_address(0xb7b1c6f8) = 15906 rt_sigaction(SIGRTMIN, {0xb7df66d6, [], SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb7df6610, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 _sysctl({{CTL_KERN, KERN_VERSION}, 2, 0xbfb1f850, 38, (nil), 0}) = 0 futex(0xb7ded4dc, FUTEX_WAKE, 2147483647) = 0 brk(0) = 0x8058000 brk(0x8079000) = 0x8079000 getcwd("/opt/lightscribeApplications/SimpleLabeler", 4096) = 43 open("/etc/lightscribe.rc", O_RDONLY) = 3 write(2, "Using /etc/lightscribe.rc\n", 26Using /etc/lightscribe.rc ) = 26 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfb1f1a8) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f79000 read(3, "", 8192) = 0 ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfb1f188) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 munmap(0xb7f79000, 4096) = 0 rt_sigaction(SIGHUP, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGINT, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGPIPE, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGTERM, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGIO, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGPROF, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGIO, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGPWR, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGQUIT, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGILL, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGABRT, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGFPE, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGSEGV, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGBUS, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGSYS, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGTRAP, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGXCPU, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGXFSZ, {0x804a7d0, ~[RTMIN RT_1], 0}, NULL, 8) = 0 rt_sigaction(SIGALRM, {SIG_IGN}, NULL, 8) = 0 rt_sigaction(SIGUSR1, {SIG_IGN}, NULL, 8) = 0 rt_sigaction(SIGUSR2, {SIG_IGN}, NULL, 8) = 0 rt_sigaction(SIGVTALRM, {SIG_IGN}, NULL, 8) = 0 open("/proc/sys/dev/cdrom/info", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f79000 read(3, "CD-ROM information, Id: cdrom.c "..., 8192) = 433 read(3, "", 7168) = 0 read(3, "", 8192) = 0 close(3) = 0 munmap(0xb7f79000, 4096) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 15906 detached
Pomocí google jsem nedospěl k ničemu. Pochopil jsem, že někomu to funguje, a snad není ani problém v /proc/sys/dev/cdrom/info (který mi mimochodem opravdu odkazuje na DVD vypalovačku, po přepojování IDE kabelu).
LightScribe jsem zkoušel se dvěmi jádry, obojí 2.6.19-gentoo-x. Někde na stránkách lacie (hp uvádí supported 2.6) jsem četl něco o 2.6.17 (ještě jsem netestoval), ale zase kvůli takové blbosti se na jedno jádro fixovat nehodlám. Do systému mi to rpmko žádný jaderný modul nedostalo, jenom knihovna a pár dalších souborů.
Pro upřesnění udám ještě konec výpisu aplikace od HP (velmi podobné).
open("/proc/sys/dev/cdrom/info", O_RDONLY) = 9 fstat64(9, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb71f1000 read(9, "CD-ROM information, Id: cdrom.c "..., 8192) = 433 read(9, "", 7168) = 0 read(9, "", 8192) = 0 close(9) = 0 munmap(0xb71f1000, 4096) = 0 open("/usr/lib/gconv/ISO8859-2.so", O_RDONLY) = 9 read(9, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\4\0"..., 512) = 512 fstat64(9, {st_mode=S_IFREG|0755, st_size=9572, ...}) = 0 mmap2(NULL, 12316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 9, 0) = 0xb71ee000 mmap2(0xb71f0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 9, 0x1) = 0xb71f0000 close(9) = 0 mprotect(0xb71f0000, 4096, PROT_READ) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ Process 16003 detached
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.