Перейти к содержанию
    

Привет всем!

У меня глупый вопрос из разряда "как пользоваться документацией", заранее прошу прощения:)

Возникла задача поднять Linux на плате zc702 с поддержкой hdmi. Я поднял для начала ОС без поддержки hdmi со всеми дефолтными настройками (https://medium.com/developments-and-implementations-on-zynq-7000-ap/install-ubuntu-16-04-lts-on-zynq-zc702-using-petalinux-2016-4-e1da902eaff7 - вот по этой инструкции), но дальше так и не смог построить методику разработки.

Для моих задач уже есть готовый пример от AD:

https://github.com/analogdevicesinc/hdl - вот с этого репозитория можно выдрать пример adv7511 который как раз мне нужен, далее генерируется hdf файл в вивадо - пока все понятно и с этим проблем не было(использовал версию вивадо 18.2 и соответствующую ветку репозитория)

Но далее:

https://wiki.analog.com/resources/tools-software/linux-build/generic/petalinux - вот инструкция как построить загрузочный модуль

https://wiki.analog.com/resources/tools-software/linux-build/generic/zynq - а вот инструкция по сборке ядра

Так вот - если следовать инструкциям для petalinux я получаю следующее(попробовал разные версии петалинукса):

Для petalinux 18.2

xakstreet@xakstreet-PC:~/Documents/Projects/Xilinx_Tools/Petalinux18_2$ source settings.sh
PetaLinux environment set to '/home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_2'
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "PetaLinux SDK Installation Guide" for its impact and solution
xakstreet@xakstreet-PC:~/Documents/Projects/Xilinx_Tools/Petalinux18_2$ cd /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data$ petalinux-create -t project --template zynq --name PetaProj
INFO: Create project: PetaProj
INFO: New project successfully created in /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data$ cd PetaProj/
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj$ petalinux-config --get-hw-description=/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/adv7511_zc702.sdk
INFO: Getting hardware description...
INFO: Rename system_top.hdf to system.hdf
[INFO] generating Kconfig for project
                                                                                                                                                                                                                    
[INFO] menuconfig project
/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/misc/config/Kconfig.syshw:30:warning: defaults for choice values not supported
/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/misc/config/Kconfig:597:warning: config symbol defined without type
configuration written to /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/project-spec/configs/config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

[INFO] sourcing bitbake
[INFO] generating plnxtool conf
[INFO] generating meta-plnx-generated layer
[INFO] generating machine configuration
[INFO] generating bbappends for project . This may take time ! 
[INFO] generating u-boot configuration files
                                                                                                                                                                                                            
[INFO] generating kernel configuration files
[INFO] generating kconfig for Rootfs
[INFO] oldconfig rootfs
[INFO] generating petalinux-user-image.bb
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj$ petalinux-build
[INFO] building project
[INFO] sourcing bitbake
INFO: bitbake petalinux-user-image
Parsing recipes: 100% |######################################################################################################################################################################| Time: 0:00:46
Parsing of 2559 .bb files complete (0 cached, 2559 parsed). 3432 targets, 148 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###################################################################################################################################################################| Time: 0:00:05
Checking sstate mirror object availability: 100% |###########################################################################################################################################| Time: 0:00:11
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: device-tree-xilinx+gitAUTOINC+f38738e568-r0 do_patch: Command Error: 'quilt --quiltrc /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+f38738e568-r0/recipe-sysroot-native/etc/quiltrc push' exited with 0  Output:
Applying patch 0001-fix-the-clock-frequency-generation.patch
patching file device_tree/data/common_proc.tcl
Hunk #1 FAILED at 1264.
Hunk #2 FAILED at 1394.
Hunk #3 FAILED at 1523.
Hunk #4 succeeded at 2933 (offset 20 lines).
3 out of 4 hunks FAILED -- rejects in file device_tree/data/common_proc.tcl
Patch 0001-fix-the-clock-frequency-generation.patch does not apply (enforce with -f)
ERROR: device-tree-xilinx+gitAUTOINC+f38738e568-r0 do_patch: Function failed: patch_do_patch
ERROR: Logfile of failure stored in: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+f38738e568-r0/temp/log.do_patch.18432
ERROR: Task (/home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_2/components/yocto/source/arm/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_patch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2203 tasks of which 1776 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_2/components/yocto/source/arm/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_patch
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
ERROR: Failed to build project

Для 18.3:

xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data$ source /home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_3/settings.sh
PetaLinux environment set to '/home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_3'
INFO: Checking free disk space
INFO: Checking installed tools
INFO: Checking installed development libraries
INFO: Checking network and other services
WARNING: No tftp server found - please refer to "PetaLinux SDK Installation Guide" for its impact and solution
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data$ petalinux-create -t project --template zynq --name PetaProj
INFO: Create project: PetaProj
INFO: New project successfully created in /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data$ cd PetaProj/
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj$ petalinux-config --get-hw-description=/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/adv7511_zc702.sdk
INFO: Getting hardware description...
INFO: Rename system_top.hdf to system.hdf
[INFO] generating Kconfig for project
[INFO] menuconfig project
configuration written to /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/project-spec/configs/config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

[INFO] sourcing bitbake
[INFO] generating plnxtool conf
[INFO] generating meta-plnx-generated layer
[INFO] generating machine configuration
[INFO] generating bbappends for project . This may take time ! 
[INFO] generating u-boot configuration files
[INFO] generating kernel configuration files
[INFO] generating kconfig for Rootfs
[INFO] oldconfig rootfs
[INFO] generating petalinux-user-image.bb
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj$ petalinux-build
[INFO] building project
[INFO] sourcing bitbake
INFO: bitbake petalinux-user-image
Parsing recipes: 100% |######################################################################################################################################################################| Time: 0:00:49
Parsing of 2576 .bb files complete (0 cached, 2576 parsed). 3452 targets, 149 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |###################################################################################################################################################################| Time: 0:00:05
Checking sstate mirror object availability: 100% |###########################################################################################################################################| Time: 0:00:11
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: device-tree-xilinx+gitAUTOINC+b7466bbeee-r0 do_compile: Function failed: do_compile (log file is located at /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/log.do_compile.22688)
ERROR: Logfile of failure stored in: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/log.do_compile.22688
Log data follows:
| DEBUG: Executing shell function do_compile
| Error: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/pl-delete-nodes-zynq-zc702-adv7511.dtsi:13.15-27 Label or path axi_sysid_0 not found
| FATAL ERROR: Syntax error parsing input tree
| WARNING: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/run.do_compile.22688:1 exit 1 from 'dtc -I dts -O dtb -R 8 -p 0x1000 -b 0 -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/../components/plnx_workspace/device-tree/device-tree -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/include -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/include -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0 -i/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/arch/arm/boot/dts -o ${DTS_NAME}.dtb `basename ${DTS_FILE}`.pp'
| ERROR: Function failed: do_compile (log file is located at /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/log.do_compile.22688)
ERROR: Task (/home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_3/components/yocto/source/arm/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3250 tasks of which 2377 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /home/xakstreet/Documents/Projects/Xilinx_Tools/Petalinux18_3/components/yocto/source/arm/layers/meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb:do_compile
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
ERROR: Failed to build project
xakstreet@xakstreet-PC:~/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj$ 

C 19.2 так же были проблемы - не буду приводить тут что бы не загромождать еще больше(в инструкции было написано, что нужен petalinux 18.3)

Таким образом у меня возникает вопрос как с этим тулом вообще работать?Где я мог ошибиться? есть ли у кого методика как с этим работать? так как мне представлялось что это должна быть уже давно отработанная алгоритмика действий. Сам я не работал ни с цинком ни с петалинуксом до настоящего момента...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Выкинуть пиволинукс подальше.

2. Из hdf при помощи hsi генерите Device Tree и внимательно его читаете.

3. Собираете ядро из репозитория на гитхабе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, gosha-z said:

1. Выкинуть пиволинукс подальше.

2. Из hdf при помощи hsi генерите Device Tree и внимательно его читаете.

3. Собираете ядро из репозитория на гитхабе.

Первый-то пункт я понял, а можно пошаговую инструкцию к второму и третьему где-то найти? Я пока еще не понимаю что из этого как делается.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, gosha-z said:

Исходная задача-то какая? Сделать framebuffer и вывести его на 7511?

все так + прием с HID по USB(то бишь с клавиатуры)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Lutovid сказал:

Первый-то пункт я понял, а можно пошаговую инструкцию к второму и третьему где-то найти? Я пока еще не понимаю что из этого как делается.

а если подумать чисто по логике:

поискать в дереве проекта файл (видимо) конфигурации hdf и сконвертировать утилитой hsi в формат dts, в котором можно поизучать настройки аппаратуры

у вас xilinx и отсылка на гитхаб, чего проще https://github.com/xilinx

Цитата

Сам я не работал ни с цинком ни с петалинуксом до настоящего момента...

да примерно как в обычных мелких линуксах, если конечно с ними работали.. если нет, то будет _очень_ непросто..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 minutes ago, Jury093 said:

да примерно как в обычных мелких линуксах, если конечно с ними работали.. если нет, то будет _очень_ непросто..

не работал, но я не понимаю почему должно быть сложно просто собрать готовый пример - есть общее представление как что работает, но как говорится, куда и в какой последовательности нажимать не совсем понятно, так как я уже привел пример в теме как делая по инструкции можно не добиться ничего

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, Lutovid сказал:

не работал, но я не понимаю почему должно быть сложно просто собрать готовый пример - есть общее представление как что работает, но как говорится, куда и в какой последовательности нажимать не совсем понятно, так как я уже привел пример в теме как делая по инструкции можно не добиться ничего

ответ вполне очевиден - это же линукс, в нем редко что бывает "из коробки", но обычно присутствуют советы на напильник и отсутствуют ссылки на документацию, и если что-то относительно гладко для х86, то для мелких, если есть своя экосистема (производитель, форумы, гитхаб), то считай повезло, а если нет, то нет..

в вашем случае видны ошибки при наложение патча (18.2) - если владеете навыками, то разбираетесь и патчите вручную, если нет - ищете решение проблемы в гугле. я в подобных случаях гуглю строку ошибки - если ошибка "ходовая", то решение всплывает в первых строчках поиска.. для 18.3 смотрите содержимое лога Logfile of failure stored in: /home/xakstreet и далее полный путь

инструкция.. их обычно пишет не ленивый человек-программист по принципу "пошаговая инструкция на момент сборки в хх году", а то, что через год-другой версии пакетов поменяются, и патчи стухнут к инструкции не подошьешь.. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, Jury093 said:

в вашем случае видны ошибки при наложение патча (18.2) - если владеете навыками, то разбираетесь и патчите вручную, если нет - ищете решение проблемы в гугле. я в подобных случаях гуглю строку ошибки - если ошибка "ходовая", то решение всплывает в первых строчках поиска.. для 18.3 смотрите содержимое лога Logfile of failure stored in: /home/xakstreet и далее полный путь

Ниже приведено содержание этих логов(он печетался в консоль) - например для 18.3, гуглить - естественно гуглил, но пока информации не нашел. А из лога видно, что не был найден axi_sysid_0 - но где он не был найден и почему - это мне не понятно.

Но я Вас в общем понял - с такой постановкой вопроса я тут ответа не найду, спасибо

 

Log data follows:
| DEBUG: Executing shell function do_compile
| Error: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/pl-delete-nodes-zynq-zc702-adv7511.dtsi:13.15-27 Label or path axi_sysid_0 not found
| FATAL ERROR: Syntax error parsing input tree
| WARNING: /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/run.do_compile.22688:1 exit 1 from 'dtc -I dts -O dtb -R 8 -p 0x1000 -b 0 -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/../components/plnx_workspace/device-tree/device-tree -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/include -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/include -i /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0 -i/home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work-shared/plnx-zynq7/kernel-source/arch/arm/boot/dts -o ${DTS_NAME}.dtb `basename ${DTS_FILE}`.pp'
| ERROR: Function failed: do_compile (log file is located at /home/xakstreet/Documents/Projects/VivadoProj_18_2/zc702_hdmi/hdl/projects/adv7511/zc702/Linux_data/PetaProj/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/device-tree/xilinx+gitAUTOINC+b7466bbeee-r0/temp/log.do_compile.22688)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Lutovid said:

Syntax error parsing input tree

Ну вот вам и ответ на вопрос. А заодно и пояснение, почему пиволинукс надо отправить подальше.

Читать сюда

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, gosha-z said:

Ну вот вам и ответ на вопрос. А заодно и пояснение, почему пиволинукс надо отправить подальше.

Читать сюда

Спасибо, пытался пройтись по той инструкции, но где-то налажал, и показалось что с петалинуксом проще, но не тут то было, попробую еще раз по нему пройтись

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Lutovid said:

пытался пройтись по той инструкции, но где-то налажал

В чем конкретно была лажа, по-вашему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, gosha-z said:

В чем конкретно была лажа, по-вашему?

В процессе генерации uImage я полагаю, просто на мой взгляд проблема не в самом итоговом dtb, а именно в том как создавать u-boot. Я лучше пройдусь еще раз по всему и тогда сформулирую ответ корректнее

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Lutovid said:

проблема не в самом итоговом dtb, а именно в том как создавать u-boot

А U-Boot-то зачем трогать? Сделали его один раз - и пусть стоит. Сделали для него специальный отдельный минимальный .dts - и пусть себе сидит во флеше и не отсвечивает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...