Skocz do zawartości

Sterownik Czytnika/programatora Phoenix Usb


PstryPtak

Rekomendowane odpowiedzi

Witam

 

Na wstępie chciałbym zaznaczyć że to moja pierwsza przygoda z instalacją sterowników pod Linuxem, dlatego proszę o wyrozumiałość i w miarę łopatologiczną pomoc:))

Trochę poczytałem i.... dalej nie mogę się przebić.

 

Kupiłem w firmie www.epsilon.com.pl czytnik kart chipowych Phoenix USB.

Pod Windows sterownik tego Phoenixa tworzy port wirtualny COM.

Pod Linuxem nie działał po podpięciu do USB, więc wysłałem zapytanie do firmy Epsilon o sterowniki dla (_linuxa_ → Linuksa) ORT. Otrzymałem sterownik (zamieszczam go tutaj) w formie spakowanego archiwum.

Sterowniki Phoenix USB Linux

 

Aby go zainstalować rozpakowałem archiwum i wydawałem komendę "make" jako root ale daje to taki rezultat:

[root@Fedora ftdi_sio]# make makefile

/var/tmp/ftdi_sio/Rules.make:24: /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/.config: Nie ma takiego pliku ani katalogu

make: *** Brak reguł do wykonania obiektu `/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/.config'. Stop.

 

Co robię źle? Mam budować repozytorium, czy to oznaka źle skonstruowanych sterowników.

 

Już drugi dzień ślęczę czytając tutki i FAQ i nic nie wskórałem.

Pomóżcie zanim oślepnę:)

Odnośnik do komentarza
Udostępnij na innych stronach

Na pewno doinstaluj sobie pakiety kernel-devel i ew. jeszcze kernel-headers.

Ale wg mnie i tak się nie uda, bo jeśli się nie mylę, to brakuje pliku wskazywanego w tej linii

#include "usb-serial.h"

Do paczki dodano tylko nagłówki ftdi_sio.h (następny include po tym co wyżej)

Ale mogę się mylić, bo programistą to ja nie jestem.

Odnośnik do komentarza
Udostępnij na innych stronach

Zainstalowałem te dwa pakiety związane z kernelem i komunikaty się zmieniły (zależnie od tego czy wpisuję nazwę pliku z małej czy z dużej litery):

 

[root@Fedora ftdi_sio]# make Makefile

make: Nie ma nic do zrobienia w `Makefile'.

[root@Fedora ftdi_sio]# make makefile

make: *** Brak reguł do wykonania obiektu `makefile'. Stop.

 

Jednak dalej nie instaluje mi się ten sterownik:(

Odnośnik do komentarza
Udostępnij na innych stronach

Fakt samo polecenie 'make' działa tak samo jak w tym przypadku "make -f Makefile".

Po wpisaniu "make" lub "make -f Makefile" jest tak:

[root@Fedora ftdi_sio]# make -f Makefile

gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include -D__SMP__ -DSMP -I/usr/src/linux-2.6.27.21-170.2.56.fc10.i686/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c

make: gcc: Polecenie nie znalezione

make: *** [ftdi_sio.o] Błąd 127

 

Ale raczej nic się nie zainstalowało, bo po podłączeniu czytnika pod USB nadal mam tak:

[root@Fedora ~]# lsusb

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 003 Device 003: ID 0403:c8d8 Future Technology Devices International, Ltd

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

 

A powinno zostać wykryte urządznie "EPSILON - Phoenix USB Reader/Writer v2.29"

Odnośnik do komentarza
Udostępnij na innych stronach

Witaj,

 

Musisz sobie zainstalować jeszcze narzędzia programistyczne, bo nie masz gcc (kompilator).

 

su - 
yum groupinstall "Narzędzia programistyczne"

 

Pozdrawiam,

Esail

Odnośnik do komentarza
Udostępnij na innych stronach

@WalDo, @esail bardzo wam dziękuję za pomoc.

Zainstalowałem narzędzia

Niestety doszedłem do tego co @WalDo, że chyba jednak brakuje pliku "config.h"

[root@Fedora ftdi_sio]# make

gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include -D__SMP__ -DSMP -I/usr/src/linux-2.6.27.21-170.2.56.fc10.i686/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c

ftdi_sio.c:237:26: error: linux/config.h: Nie ma takiego pliku ani katalogu

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/kernel.h:18,

from ftdi_sio.c:238:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h: In function ‘ratelimit’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: ‘CONFIG_HZ’ undeclared (first use in this function)

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: (Each undeclared identifier is reported only once

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: for each function it appears in.)

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/thread_info.h:22,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/thread_info.h:47,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/preempt.h:9,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/spinlock.h:50,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/mmzone.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/gfp.h:4,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/slab.h:12,

from ftdi_sio.c:241:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h: At top level:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:112: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)

To mały wycinek. Potem leci ponad dwa tysiące linii z komunikatami "error".

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

 

Nie do konca, pliku config.h rzeczywscie nie ma od jądra 2.6.19. Zgodnie z tym [http://www.linuxquestions.org/questions/li...-kernel-506363/. Masz dwa wyjścia albo zakomentujesz wszystkie wystąpienia #include <linux/config.h> albo zrobisz jako root

touch /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/config.h

 

Pozdrawiam,

Esail

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki @esail, komenda "touch" pomogła :lol: !!; ale tylko na początku <_<

Sami zobaczcie, teraz tak jak poprawił mnie @WalDo, faktycznie mam problem z plikiem "usb-serial.h"

 

(sorki że nadal umieszczam jako cytat, ale umieszcając jako "code" nie miałem możliwośći pogrubić czcionki w miejscach "errorów" i wsatwić koloru do linii z informacją o braku pliku "usb-serial-h".

 

[root@Fedora ~]# touch /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/config.h

[root@Fedora var]# cd /var/tmp/ftdi_sio

[root@Fedora ftdi_sio]# make

gcc -Wall -D__KERNEL__ -DMODULE -I/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include -D__SMP__ -DSMP -I/usr/src/linux-2.6.27.21-170.2.56.fc10.i686/drivers/usb/serial/ -O -c -o ftdi_sio.o ftdi_sio.c

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/kernel.h:18,

from ftdi_sio.c:238:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h: In function ‘ratelimit’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: ‘CONFIG_HZ’ undeclared (first use in this function)

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: (Each undeclared identifier is reported only once

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ratelimit.h:23: error: for each function it appears in.)

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/thread_info.h:22,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/thread_info.h:47,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/preempt.h:9,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/spinlock.h:50,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/mmzone.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/gfp.h:4,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/slab.h:12,

from ftdi_sio.c:241:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h: At top level:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:112: error: ‘CONFIG_X86_L1_CACHE_SHIFT’ undeclared here (not in a function)

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:112: error: requested alignment is not a constant

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/thread_info.h:22,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/thread_info.h:47,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/preempt.h:9,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/spinlock.h:50,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/mmzone.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/gfp.h:4,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/slab.h:12,

from ftdi_sio.c:241:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:152:1: warning: "cache_line_size" redefined

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/pda.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/current.h:19,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:15,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/thread_info.h:22,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/thread_info.h:47,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/preempt.h:9,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/spinlock.h:50,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/mmzone.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/gfp.h:4,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/slab.h:12,

from ftdi_sio.c:241:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/cache.h:64:1: warning: this is the location of the previous definition

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h: In function ‘load_cr3’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:187: error: ‘CONFIG_PAGE_OFFSETUL’ undeclared (first use in this function)

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h: At top level:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:236: error: requested alignment is not a constant

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:273: error: requested alignment is not a constant

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h: In function ‘wbinvd_halt’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/processor.h:754: warning: implicit declaration of function ‘halt’

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/mmzone.h:16,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/gfp.h:4,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/slab.h:12,

from ftdi_sio.c:241:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h: In function ‘__first_node’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h:233: warning: implicit declaration of function ‘find_first_bit’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h: In function ‘__next_node’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h:239: warning: implicit declaration of function ‘find_next_bit’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h: In function ‘__first_unset_node’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/nodemask.h:257: warning: implicit declaration of function ‘find_first_zero_bit’

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/termios.h:5,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/tty.h:11,

from ftdi_sio.c:242:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/termios.h: In function ‘kernel_termios_to_user_termio’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/termios.h:79: warning: implicit declaration of function ‘__copy_to_user_ll’

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/ktime.h:25,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/timer.h:5,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/workqueue.h:8,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/tty.h:12,

from ftdi_sio.c:242:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:39:3: error: #error Invalid value of HZ.

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/jiffies.h:247:31: error: division by zero in #if

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/elf.h:7,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/module.h:14,

from ftdi_sio.c:245:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h: In function ‘start_ia32_thread’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:153: warning: implicit declaration of function ‘load_gs_index’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h: In function ‘elf_common_init’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r8’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r9’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r10’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:166: error: ‘struct pt_regs’ has no member named ‘r11’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r12’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r13’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r14’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/elf.h:167: error: ‘struct pt_regs’ has no member named ‘r15’

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/module.h:21,

from ftdi_sio.c:245:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/asm/module.h:70:2: error: #error unknown processor family

In file included from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/sched.h:77,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/interrupt.h:12,

from /lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/usb.h:15,

from ftdi_sio.c:248:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/proportions.h: In function ‘prop_inc_percpu’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/proportions.h:75: warning: implicit declaration of function ‘local_irq_save’

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/proportions.h:77: warning: implicit declaration of function ‘local_irq_restore’

In file included from ftdi_sio.c:248:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/usb.h: In function ‘usb_register’:

/lib/modules/2.6.27.21-170.2.56.fc10.i686/build/include/linux/usb.h:1086: error: ‘KBUILD_MODNAME’ undeclared (first use in this function)

ftdi_sio.c:256:24: error: usb-serial.h: Nie ma takiego pliku ani katalogu

ftdi_sio.c: At top level:

ftdi_sio.c:691: warning: ‘struct usb_serial’ declared inside parameter list

ftdi_sio.c:691: warning: its scope is only this definition or declaration, which is probably not what you want

ftdi_sio.c:692: warning: ‘struct usb_serial’ declared inside parameter list

ftdi_sio.c:693: warning: ‘struct usb_serial’ declared inside parameter list

 

Można z tym jeszcze coś zrobić?

Odnośnik do komentarza
Udostępnij na innych stronach

Można z tym jeszcze coś zrobić?
Poprosić w firmie, żeby dali Ci poprawną paczkę dla nowego jądra ;)

Możesz poszukać starszego jądra (=< 2.6.17) i wyłuskać z paczki plik usb-serial.h, ale nie wiem czy to coś da i czy to jest właściwy sposób postępowania. Może ktoś kto zna się na programowaniu powie jeszcze coś mądrego w temacie.

 

Ogolnie to Google działają, więc warto poszukać.

http://www.google.com/search?client=opera&...-8&oe=utf-8

 

Być może wystarczy ten kod skopiować i zapisać w odpowiednim pliku → http://www.gelato.unsw.edu.au/lxr/source/d...serial.h?a=i386

Odnośnik do komentarza
Udostępnij na innych stronach

Znalazłem prostszy sposób na uruchomienie Phoenixa USB.

http://lenthir.blogspot.com/2008/05/kabel-hl-340.html

 

Jednak gdy próbowałem się dostać do sterownika, który jakoby ma być już w systemie, to okazało się że nie mam anie takiego katalogu, ani takiego pliku.

Chodzi o ten o który mowa w opsie do którego link zamieściłem powyżej.

/usr/src/linux/drivers/usb/serial/ch341.c

 

Czyżby Fedora nie miała tych sterowników??

 

Odnośnik do komentarza
Udostępnij na innych stronach

No niestety nie ma.
Hmm... Faktycznie nie ma. Tzn. w domu nie mam pod F10 64-bit, ale w pracy na F10 32-bit pod VirtualBox mam. Widocznie coś musiałem sprawdzać i sobie doinstalowałem jakiś pakiet. Z wyszukiwarki na rpm.pbone.net wynika, że to prawdopodobnie kernel-debuginfo-common. Sprawdzę jeszcze jutro w wolnej chwili.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...