Comments 15
Стоит предупредить, что не на все модели встает удачно. Об этом было написано в оригинальном треде(ссылку на который я не вижу).
0
Как у всего этого дела со стабильностью? Как-то пробовал прикрутить DNScrypt к микротику посредством разворачивания минимального OpenWRT, так мало того что висло, еще и хост зависал намертво.
0
Расскажу вам свою историю:
Одно время была идея поднять http-сервер на микротике, что бы отдавать ядро для загрузки бездиковых машин в небольшом офисе. т.к. tftp не устраивает, работает очень медленно, а ftp на микротике так устроен, что выдать права можно только на чтение/запись, просто на чтение нельзя. Проблему еще усложняло то, что размер образа у нас довольно большой, и во внутренней памяти микротика он никак не помещался. Сама OpenWRT встала и работала довольно стабильно. Но тут еще один сюрприз: В виртулку нельзя пробросить external storage, тогда я решил монтировать ftp микротика через curlftpfs и отдавать образ с этой файловой системы по http, так и сделал. Но и тут меня ждала засада: вся эта система оказалась однопоточной и если одновременно будут грузится сразу две машины, то вся загрузка начинает обрыватся и бесконечно начинается с начала. Так что я пока забил на такую реализацию стопки костылей. И для себя сделал вывод, что на данный момент openwrt на микротике можно безболезненно использовать только для независимых сервисов которые не требуют многого от машинки в целом, но и это уже очень и очень приятно :)
Одно время была идея поднять http-сервер на микротике, что бы отдавать ядро для загрузки бездиковых машин в небольшом офисе. т.к. tftp не устраивает, работает очень медленно, а ftp на микротике так устроен, что выдать права можно только на чтение/запись, просто на чтение нельзя. Проблему еще усложняло то, что размер образа у нас довольно большой, и во внутренней памяти микротика он никак не помещался. Сама OpenWRT встала и работала довольно стабильно. Но тут еще один сюрприз: В виртулку нельзя пробросить external storage, тогда я решил монтировать ftp микротика через curlftpfs и отдавать образ с этой файловой системы по http, так и сделал. Но и тут меня ждала засада: вся эта система оказалась однопоточной и если одновременно будут грузится сразу две машины, то вся загрузка начинает обрыватся и бесконечно начинается с начала. Так что я пока забил на такую реализацию стопки костылей. И для себя сделал вывод, что на данный момент openwrt на микротике можно безболезненно использовать только для независимых сервисов которые не требуют многого от машинки в целом, но и это уже очень и очень приятно :)
0
Думаю для активных операций ввода\вывода metarouter не очень подходит. Я тут подумал, если включить функцию hotspot, то mikrotik может отдавать файлы которые находятся на флешке (можно ли отдавать которые находятся на USB устройстве не в курсе), можно заменить один из файлов ядро для загрузки бездиковых машин, который будет доступен статичной http ссылкой.
0
На счет hotspot, тоже была такая идея, но при его установке он создает кучу левых правил в файрволле и бог его знает что еще :)
Еще как вариант был включить webproxy и подпихнуть ядро вместо error.html, кстати работает. Но нужно отдавать два файла initrd и vmlinuz
Да, можно смонтировать флешку как /pub тогда микротик будет записывать в нее свои файлы, и храниться они будут на флешке :)
Еще как вариант был включить webproxy и подпихнуть ядро вместо error.html, кстати работает. Но нужно отдавать два файла initrd и vmlinuz
можно ли отдавать которые находятся на USB устройстве не в курсе
Да, можно смонтировать флешку как /pub тогда микротик будет записывать в нее свои файлы, и храниться они будут на флешке :)
0
UFO just landed and posted this here
Не знаю как у вас, но у меня это дело падает через пару минут аптайма. Не успел даже пароль на рута поменять :(
Хост система — RB951G-2HnD (mipsbe) — RouterOS 6.25
Хост система — RB951G-2HnD (mipsbe) — RouterOS 6.25
trace
root@OpenWrt:/# passwd
Changing password for root
New password:
Retype password:
Password for root changed by root
root@OpenWrt:/# [ 0.000000] skbuff: skb_over_panic: text:c02d30e4 len:14272 put:14272 head:c1bd0e80 data:c1bd0ec0 tail:0xc1bd4680 end:0xc
1bd1500 dev:[ 0.000000] Kernel bug detected[#1]:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.49 #2
[ 0.000000] task: c0338558 ti: c032e000 task.ti: c032e000
[ 0.000000] $ 0: 00000000 10008200 0000007f c0330000
[ 0.000000] $ 4: 10008200 00000001 00001248 c0372020
[ 0.000000] $ 8: 35303020 c0373268 0000004b 00000000
[ 0.000000] $12: 0000004b 00000000 00000000 00000000
[ 0.000000] $16: c1929c80 00000180 00000060 00000000
[ 0.000000] $20: c0380000 c037d340 c037db44 c0378198
[ 0.000000] $24: 00000000 c02cff58
[ 0.000000] $28: c032e000 c032faf8 c0330000 c02ce660
[ 0.000000] Hi: 00000000
[ 0.000000] Lo: 83126e98
[ 0.000000] epc: c02ce660 skb_panic+0x58/0x5c
[ 0.000000] Not tainted
[ 0.000000] ra: c02ce660 skb_panic+0x58/0x5c
[ 0.000000] Status: 10008202 KERNEL EXL
[ 0.000000] Cause: 00000024
[ 0.000000] PrId: 0001800a (MIPS 4Kc)
[ 0.000000] Modules linked in: pppoe ppp_async iptable_nat pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 ipt_MASQUERADE xt_time xt_tcpu
dp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_nat_irc nf_
nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables crc_ccitt ip6
t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack nf_defrag_ipv6 ipv6
[ 0.000000] Process swapper (pid: 0, threadinfo=c032e000, task=c0338558, tls=00000000)
[ 0.000000] Stack: 00000740 c0306098 c02d30e4 000037c0 000037c0 c1bd0e80 c1bd0ec0 c1bd4680
c1bd1500 c0321eb4 00000000 c02833dc 00000000 c1ad87b0 c1868c70 00000170
0000005c c02d30e4 00000011 00000001 58b9db23 00000043 c1883a90 00010000
00000000 00000000 00000043 c033c04c c03331e0 c0330000 c0330000 c01cfa78
c1ade000 c0330e50 c1ade000 c0290740 00010000 c01fa9e8 c033c04c 00010000
…
[ 0.000000] Call Trace:
[ 0.000000] [] skb_panic+0x58/0x5c
[ 0.000000] [] skb_put+0x48/0x50
[ 0.000000] [] veth_interrupt+0x198/0x31c
[ 0.000000] [] handle_irq_event_percpu+0x58/0x260
[ 0.000000] [] handle_irq_event+0x3c/0x60
[ 0.000000] [] handle_edge_irq+0x164/0x1b4
[ 0.000000] [] generic_handle_irq+0x3c/0x54
[ 0.000000] [] do_IRQ+0x1c/0x2c
[ 0.000000] [] virq_cascade_irq+0x3c/0x70
[ 0.000000] [] handle_irq_event_percpu+0x58/0x260
[ 0.000000] [] handle_percpu_irq+0x54/0x84
[ 0.000000] [] generic_handle_irq+0x3c/0x54
[ 0.000000] [] do_IRQ+0x1c/0x2c
[ 0.000000] [] ret_from_irq+0x0/0x4
[ 0.000000] [] __do_softirq+0x9c/0x1d4
[ 0.000000] [] do_softirq+0x48/0x68
[ 0.000000] [] irq_exit+0x54/0x70
[ 0.000000] [] ret_from_irq+0x0/0x4
[ 0.000000] [] __r4k_wait+0x20/0x40
[ 0.000000] [] cpu_startup_entry+0xd0/0x140
[ 0.000000] [] start_kernel+0x3a0/0x3b8
[ 0.000000]
[ 0.000000]
Code: 24841ebc 0c0b3835 00603821 <000c000d> 27bdffc0 afb00034 afbf003c afb10038 00808021
[ 0.000000] ---[ end trace 461164077349d5ee ]---
[ 0.000000] Kernel panic — not syncing: Fatal exception in interrupt
[ 0.000000] Rebooting in 3 seconds..[ 0.000000] Linux version 3.10.49 (zentavr@zentavr-ig) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-
2014.04 r44162) ) #2 Sun Feb 8 19:32:34 EET 2015
[ 0.000000] CPU revision is: 0001800a (MIPS 4Kc)
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 00243000 @ 00101000 (usable)
[ 0.000000] memory: 0002c000 @ 00344000 (usable after init)
[ 0.000000] User-defined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty — disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00000000-0x01ffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=hvc0 board=vm mem=32M init=/etc/preinit
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 28820k/32768k available (1936k kernel code, 3948k reserved, 377k data, 176k init, 0k highmem)
[ 0.000000] NR_IRQS:168
[ 0.000000] console [hvc0] enabled
[ 0.000000] Calibrating delay loop… 242.94 BogoMIPS (lpj=485888)
[ 0.000000] pid_max: default: 32768 minimum: 301
[ 0.000000] Mount-cache hash table entries: 512
[ 0.000000] NET: Registered protocol family 16
[ 0.000000] bio: create slab <bio-0> at 0
[ 0.000000] Switching to clocksource MIPS
[ 0.000000] NET: Registered protocol family 2
[ 0.000000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.000000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] TCP: Hash tables configured (established 512 bind 512)
[ 0.000000] TCP: reno registered
[ 0.000000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.000000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.000000] NET: Registered protocol family 1
[ 0.000000] MFS init
[ 0.000000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.000000] msgmni has been set to 56
[ 0.000000] io scheduler noop registered
[ 0.000000] io scheduler deadline registered (default)
[ 0.000000] TCP: cubic registered
[ 0.000000] NET: Registered protocol family 17
[ 0.000000] Bridge firewalling registered
[ 0.000000] 8021q: 802.1Q VLAN Support v1.8
[ 0.000000] VFS: Mounted root (metafs filesystem) readonly on device 0:9.
[ 0.000000] Freeing unused kernel memory: 176K (c0344000 — c0370000)
procd: Console is alive
procd: — preinit — Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
mounting /dev/root
procd: — early — procd: — ubus — procd: — init — Please press Enter to activate this console.
BusyBox v1.22.1 (2015-02-08 19:20:44 EET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| — || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
— BARRIER BREAKER (Barrier Breaker, r44162)
— * 1/2 oz Galliano Pour all ingredients into
* 4 oz cold Coffee an irish coffee mug filled
* 1 1/2 oz Dark Rum with crushed ice. Stir.
* 2 tsp. Creme de Cacao
— root@(none):/# [ 0.000000] NET: Registered protocol family 10
[ 0.000000] nf_conntrack version 0.5.0 (469 buckets, 1876 max)
[ 0.000000] ip6_tables: © 2000-2006 Netfilter Core Team
[ 0.000000] ip_tables: © 2000-2006 Netfilter Core Team
[ 0.000000] xt_time: kernel timezone is -0000
[ 0.000000] PPP generic driver version 2.4.2
[ 0.000000] NET: Registered protocol family 24
root@OpenWrt:/# uptime me
21:16:58 up 0 min, load average: 1.85, 0.48, 0.16
root@OpenWrt:/# uptime
21:17:02 up 0 min, load average: 1.94, 0.52, 0.17
root@OpenWrt:/# [ 0.000000] device eth0 entered promiscuous mode
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
procd: — init complete —
Changing password for root
New password:
Retype password:
Password for root changed by root
root@OpenWrt:/# [ 0.000000] skbuff: skb_over_panic: text:c02d30e4 len:14272 put:14272 head:c1bd0e80 data:c1bd0ec0 tail:0xc1bd4680 end:0xc
1bd1500 dev:[ 0.000000] Kernel bug detected[#1]:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.10.49 #2
[ 0.000000] task: c0338558 ti: c032e000 task.ti: c032e000
[ 0.000000] $ 0: 00000000 10008200 0000007f c0330000
[ 0.000000] $ 4: 10008200 00000001 00001248 c0372020
[ 0.000000] $ 8: 35303020 c0373268 0000004b 00000000
[ 0.000000] $12: 0000004b 00000000 00000000 00000000
[ 0.000000] $16: c1929c80 00000180 00000060 00000000
[ 0.000000] $20: c0380000 c037d340 c037db44 c0378198
[ 0.000000] $24: 00000000 c02cff58
[ 0.000000] $28: c032e000 c032faf8 c0330000 c02ce660
[ 0.000000] Hi: 00000000
[ 0.000000] Lo: 83126e98
[ 0.000000] epc: c02ce660 skb_panic+0x58/0x5c
[ 0.000000] Not tainted
[ 0.000000] ra: c02ce660 skb_panic+0x58/0x5c
[ 0.000000] Status: 10008202 KERNEL EXL
[ 0.000000] Cause: 00000024
[ 0.000000] PrId: 0001800a (MIPS 4Kc)
[ 0.000000] Modules linked in: pppoe ppp_async iptable_nat pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv4 ipt_MASQUERADE xt_time xt_tcpu
dp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT slhc nf_nat_irc nf_
nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables crc_ccitt ip6
t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack nf_defrag_ipv6 ipv6
[ 0.000000] Process swapper (pid: 0, threadinfo=c032e000, task=c0338558, tls=00000000)
[ 0.000000] Stack: 00000740 c0306098 c02d30e4 000037c0 000037c0 c1bd0e80 c1bd0ec0 c1bd4680
c1bd1500 c0321eb4 00000000 c02833dc 00000000 c1ad87b0 c1868c70 00000170
0000005c c02d30e4 00000011 00000001 58b9db23 00000043 c1883a90 00010000
00000000 00000000 00000043 c033c04c c03331e0 c0330000 c0330000 c01cfa78
c1ade000 c0330e50 c1ade000 c0290740 00010000 c01fa9e8 c033c04c 00010000
…
[ 0.000000] Call Trace:
[ 0.000000] [] skb_panic+0x58/0x5c
[ 0.000000] [] skb_put+0x48/0x50
[ 0.000000] [] veth_interrupt+0x198/0x31c
[ 0.000000] [] handle_irq_event_percpu+0x58/0x260
[ 0.000000] [] handle_irq_event+0x3c/0x60
[ 0.000000] [] handle_edge_irq+0x164/0x1b4
[ 0.000000] [] generic_handle_irq+0x3c/0x54
[ 0.000000] [] do_IRQ+0x1c/0x2c
[ 0.000000] [] virq_cascade_irq+0x3c/0x70
[ 0.000000] [] handle_irq_event_percpu+0x58/0x260
[ 0.000000] [] handle_percpu_irq+0x54/0x84
[ 0.000000] [] generic_handle_irq+0x3c/0x54
[ 0.000000] [] do_IRQ+0x1c/0x2c
[ 0.000000] [] ret_from_irq+0x0/0x4
[ 0.000000] [] __do_softirq+0x9c/0x1d4
[ 0.000000] [] do_softirq+0x48/0x68
[ 0.000000] [] irq_exit+0x54/0x70
[ 0.000000] [] ret_from_irq+0x0/0x4
[ 0.000000] [] __r4k_wait+0x20/0x40
[ 0.000000] [] cpu_startup_entry+0xd0/0x140
[ 0.000000] [] start_kernel+0x3a0/0x3b8
[ 0.000000]
[ 0.000000]
Code: 24841ebc 0c0b3835 00603821 <000c000d> 27bdffc0 afb00034 afbf003c afb10038 00808021
[ 0.000000] ---[ end trace 461164077349d5ee ]---
[ 0.000000] Kernel panic — not syncing: Fatal exception in interrupt
[ 0.000000] Rebooting in 3 seconds..[ 0.000000] Linux version 3.10.49 (zentavr@zentavr-ig) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-
2014.04 r44162) ) #2 Sun Feb 8 19:32:34 EET 2015
[ 0.000000] CPU revision is: 0001800a (MIPS 4Kc)
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 00243000 @ 00101000 (usable)
[ 0.000000] memory: 0002c000 @ 00344000 (usable after init)
[ 0.000000] User-defined physical RAM map:
[ 0.000000] memory: 02000000 @ 00000000 (usable)
[ 0.000000] Initrd not found or empty — disabling initrd
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00000000-0x01ffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000-0x01ffffff]
[ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=hvc0 board=vm mem=32M init=/etc/preinit
[ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 28820k/32768k available (1936k kernel code, 3948k reserved, 377k data, 176k init, 0k highmem)
[ 0.000000] NR_IRQS:168
[ 0.000000] console [hvc0] enabled
[ 0.000000] Calibrating delay loop… 242.94 BogoMIPS (lpj=485888)
[ 0.000000] pid_max: default: 32768 minimum: 301
[ 0.000000] Mount-cache hash table entries: 512
[ 0.000000] NET: Registered protocol family 16
[ 0.000000] bio: create slab <bio-0> at 0
[ 0.000000] Switching to clocksource MIPS
[ 0.000000] NET: Registered protocol family 2
[ 0.000000] TCP established hash table entries: 512 (order: 0, 4096 bytes)
[ 0.000000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)
[ 0.000000] TCP: Hash tables configured (established 512 bind 512)
[ 0.000000] TCP: reno registered
[ 0.000000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.000000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.000000] NET: Registered protocol family 1
[ 0.000000] MFS init
[ 0.000000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.000000] msgmni has been set to 56
[ 0.000000] io scheduler noop registered
[ 0.000000] io scheduler deadline registered (default)
[ 0.000000] TCP: cubic registered
[ 0.000000] NET: Registered protocol family 17
[ 0.000000] Bridge firewalling registered
[ 0.000000] 8021q: 802.1Q VLAN Support v1.8
[ 0.000000] VFS: Mounted root (metafs filesystem) readonly on device 0:9.
[ 0.000000] Freeing unused kernel memory: 176K (c0344000 — c0370000)
procd: Console is alive
procd: — preinit — Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
mounting /dev/root
procd: — early — procd: — ubus — procd: — init — Please press Enter to activate this console.
BusyBox v1.22.1 (2015-02-08 19:20:44 EET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| — || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
— BARRIER BREAKER (Barrier Breaker, r44162)
— * 1/2 oz Galliano Pour all ingredients into
* 4 oz cold Coffee an irish coffee mug filled
* 1 1/2 oz Dark Rum with crushed ice. Stir.
* 2 tsp. Creme de Cacao
— root@(none):/# [ 0.000000] NET: Registered protocol family 10
[ 0.000000] nf_conntrack version 0.5.0 (469 buckets, 1876 max)
[ 0.000000] ip6_tables: © 2000-2006 Netfilter Core Team
[ 0.000000] ip_tables: © 2000-2006 Netfilter Core Team
[ 0.000000] xt_time: kernel timezone is -0000
[ 0.000000] PPP generic driver version 2.4.2
[ 0.000000] NET: Registered protocol family 24
root@OpenWrt:/# uptime me
21:16:58 up 0 min, load average: 1.85, 0.48, 0.16
root@OpenWrt:/# uptime
21:17:02 up 0 min, load average: 1.94, 0.52, 0.17
root@OpenWrt:/# [ 0.000000] device eth0 entered promiscuous mode
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
[ 0.000000] br-lan: port 1(eth0) entered forwarding state
procd: — init complete —
0
Да работа не стабильная, бывает работает сутки без проблем, а бывает и часа не работает, причем падает весь роутер! Модель у меня такая же, пробую на других!
0
Я тут плавно переехал на форум Микротика по этому поводу: forum.mikrotik.com/viewtopic.php?f=15&t=32187
0
Sign up to leave a comment.
Запуск OpenWRT 14.07 на Mikrotik и пример сборки Аsterisk c дополнительным модулем