PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для PS Vita (https://www.pspx.ru/forum/forumdisplay.php?f=455)
-   -   Установка Vita SDK на Linux Mint 20.3 (XFCE, 64-bit) (https://www.pspx.ru/forum/showthread.php?t=108107)

Yoti 22.09.2018 13:31

Установка Vita SDK на Linux Mint 20.3 (XFCE, 64-bit)
 
Установка Vita SDK на Linux Mint 20.3 (XFCE, 64-bit)
  • Предупреждение
    • Человеку, имеющему опыт использования ОС семейства Линукс может показаться, что какие-либо шаги можно сделать проще или иначе. Да, можно - значит эта статья просто не для вас. Обратитесь к первоисточнику.
    • Mint у меня крутится под VirtualBox 7.0. В систему установлены дополнения гостевой ОС. В процессе установки было выбрано дополнительное ПО, сразу после установки система была полностью обновлена, включая ядро.

  • Подготовка
    1. Запускаем Терминал, вводим команды ниже.
      После каждой команды нажимаем Enter.
      Читаем и выполняем предложения из Терминала.
      Все работы ведутся в домашней папке.
    2. Обновляем список пакетов:
      Код:

      sudo apt update
    3. Обновляем сами пакеты:
      Код:

      sudo apt upgrade -y
    4. Доустанавливаем необходимое:
      Код:

      sudo apt install git make cmake ninja-build -y
    5. Чистим ненужное:
      Код:

      sudo apt clean && sudo apt autoclean

  • Установка
    1. Запускаем Терминал, если он не открыт.
    2. Добавляем переменные среды:
      Код:

      echo export VITASDK=/usr/local/vitasdk >> ~/.bashrc
      echo export PATH=\$VITASDK/bin:\$PATH >> ~/.bashrc

    3. Перезагружаемся (обязательно):
      Код:

      reboot
    4. Запускаем Терминал.
    5. Загружаем набор скриптов для установки SDK:
      Код:

      git clone https://github.com/vitasdk/vdpm
    6. Переходим в папку со скриптами:
      Код:

      cd vdpm
    7. Устанавливаем "голый" SDK:
      Код:

      ./bootstrap-vitasdk.sh
    8. Устанавливаем необходимые пакеты:
      Код:

      ./install-all.sh
      По желанию, команду выше можно сразу же запустить повторно для проверки успешности процесса.
      Ожидайте много строк вида "skip install <название>. Package previously installed less than one day ago".
      Если в конце строка "Failed to install, the package probably does not exist.", запускаем команду заново.
    9. Перезагружаемся (по желанию):
      Код:

      reboot

  • Проверка
    1. Запускаем Терминал.
    2. Загружаем образцы программ:
      Код:

      git clone https://github.com/vitasdk/samples
      cd samples && git checkout 69d96c1 && cd ..

      Вторая строчка - временный фикс сломанной сборки по команде make
    3. Переходим в папку с hello_world:
      Код:

      cd samples
      cd hello_world

    4. Компилируем методом make:
      Код:

      make
      Выхлоп с логами успешной сборки

      Цитата:

      yoti@pspx:~/samples/hello_world$ make
      mkdir -p out/./
      arm-vita-eabi-gcc -c -Wl,-q -I../common -o out/main.o src/main.c
      arm-vita-eabi-g++ -Wl,-q -std=c++11 -I../common out/main.o -lSceDisplay_stub -o vita_sample.elf
      arm-vita-eabi-strip -g vita_sample.elf
      vita-elf-create vita_sample.elf vita_sample.velf
      vita-make-fself vita_sample.velf eboot.bin
      vita-mksfoex -s TITLE_ID="VSDK00007" "Hello World" param.sfo
      vita-pack-vpk -s param.sfo -b eboot.bin \
      --add sce_sys/icon0.png=sce_sys/icon0.png \
      --add sce_sys/livearea/contents/bg.png=sce_sys/livearea/contents/bg.png \
      --add sce_sys/livearea/contents/startup.png=sce_sys/livearea/contents/startup.png \
      --add sce_sys/livearea/contents/template.xml=sce_sys/livearea/contents/template.xml \
      vita_sample.vpk

      Готовый файл будет находиться в этой же папке с именем "vita_sample.vpk".
    5. Очищаем за собой папку проекта:
      Код:

      make clean
      Выхлоп с логами успешной очистки
      Цитата:

      yoti@pspx:~/samples/hello_world$ make clean
      rm -f vita_sample.velf vita_sample.elf vita_sample.vpk param.sfo eboot.bin out/main.o
      rm -r /home/yoti/samples/hello_world/out
    6. Компилируем методом cmake - шаг 1 "подготовка":
      Код:

      mkdir build
      cd build
      cmake ..

      Выхлоп с логами успешной подготовки
      Цитата:

      yoti@pspx:~/samples/hello_world/build$ cmake ..
      -- The C compiler identification is GNU 10.3.0
      -- The CXX compiler identification is GNU 10.3.0
      -- Check for working C compiler: /usr/local/vitasdk/bin/arm-vita-eabi-gcc
      -- Check for working C compiler: /usr/local/vitasdk/bin/arm-vita-eabi-gcc -- works
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Check for working CXX compiler: /usr/local/vitasdk/bin/arm-vita-eabi-g++
      -- Check for working CXX compiler: /usr/local/vitasdk/bin/arm-vita-eabi-g++ -- works
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /home/yoti/samples/hello_world/build
    7. Компилируем методом cmake - шаг 2 "сборка":
      Код:

      make
      Выхлоп с логами успешной сборки
      Цитата:

      yoti@pspx:~/samples/hello_world/build$ make
      Scanning dependencies of target hello_world
      [ 12%] Building C object CMakeFiles/hello_world.dir/src/main.c.obj
      [ 25%] Linking C executable hello_world
      [ 25%] Built target hello_world
      Scanning dependencies of target hello_world.vpk_
      [ 37%] Converting to Sony ELF hello_world.velf
      [ 50%] Creating SELF hello_world.self
      [ 62%] Generating param.sfo for hello_world.vpk
      [ 75%] Building vpk hello_world.vpk
      [ 75%] Built target hello_world.vpk_
      Scanning dependencies of target hello_world.self_
      [100%] Built target hello_world.self_

      Готовый файл будет находиться в этой же папке (build) с именем "hello_world.vpk".
    8. Очищаем за собой папку проекта:
      Код:

      cd ..
      rm -rf build


  • Обновление
    • Запускаем Терминал.
    • Переходим в папку vdpm:
      Код:

      cd vdpm
    • Запускаем скрипт обновления:
      Код:

      ./vitasdk-update

  • Удаление
    • Запускаем Терминал.
    • Удаляем установленный SDK:
      Код:

      sudo rm -rf /usr/local/vitasdk
    • Удаляем установочник SDK:
      Код:

      rm -rf ~/vdpm
    • Удаляем прочие папки (по желанию):
      Код:

      rm -rf ~/samples

  • Ссылки по теме

Yoti 21.11.2022 17:30

Инструкция перепроверена на Mint 20.3 сегодня (21.11.2022). Есть немного предупреждений во время сборки при помощи cmake (скорее всего из-за отката коммита для samples), но в итоге всё работает.

SardaukarNN 08.12.2022 13:42

Приветствую!

Делал все по инструкции, попытался собрать: командой make.
samples -> hello_world (у меня это Hello_PSVita).

Выходит ошибка.
Скрин: Win https://imgur.com/vraJnaa.jpg
Скрин: Linux https://i.imgur.com/ElkCsJY.jpg

Что можно сделать?
Заранее спасибо!

Yoti 19.12.2022 00:44

Цитата:

Сообщение от SardaukarNN (Сообщение 1263378)
Что можно сделать?

Купить книжку по программированию. Весь текст на экране и он вполне чётко описывает проблему, которая не относится к консоли напрямую. Ты налинковал чего-то, чего линковщик найти не может.

P.S. Рассмотрел на втором скриншоте. Папка, зачем-то, вытащена из samples, а вот зависимости -- нет. Собственно, ответ выше от этого не меняется.

ErikPshat 19.12.2022 05:34

Я вижу там файл CMakeLists.txt. Разве сначала не нужно сгенерировать исходную сборку под свою систему командой Cmake?

SardaukarNN 19.12.2022 11:14

Цитата:

Сообщение от Yoti (Сообщение 1263819)
Купить книжку по программированию. Весь текст на экране и он вполне чётко описывает проблему, которая не относится к консоли напрямую. Ты налинковал чего-то, чего линковщик найти не может.

P.S. Рассмотрел на втором скриншоте. Папка, зачем-то, вытащена из samples, а вот зависимости -- нет. Собственно, ответ выше от этого не меняется.

много лет компилю под GCC, он подобных ошибок не было.
Очень странная специфика сборки под плойку.

Хорошо, тогда прошу ещё раз проверить сборку sdl2 из samples.
Под Linux Mint 19.3 (XFCE, 64-bit) - проблем нет, а под
Linux Mint 20.3 (XFCE, 64-bit) - выводит ошибку.
Не понимаю в чем разница.
Так же с ошибкой собирается и под Linux Mint 21 (XFCE, 64-bit).
Основную разницу для себя заменил только в версиях cmake (19 - 3.10, 20 - 3.16, 21 - 3.20).
Причем как 19, так и 20-ы отказываются обновиться до версии cmake 3.20.

P.S.: считаю, если бы все было в этом плане хорошо, то мы бы увидели различные уроки по программированию/сборке или готовые проекты для данной приставки, чего на данный момент кроме иностранных портов лично я не наблюдаю.
Зашел на данный форум в надежде найти ответы на вопросы....
Может стоит создать тему, под названием "Ошибки при компиляции/сборки"?
Заранее спасибо!

Yoti 19.12.2022 15:13

Цитата:

Сообщение от SardaukarNN (Сообщение 1263828)
Очень странная специфика сборки под плойку.

Нет никаких странностей. Инструкция в шапке проверена лично. Вот прямо все строки под копирку.
Собственно, блока с рассмотрением проблем нет потому, что я их и не встречал особо никогда.
Разве что использую gcc9 для некоторых проектов, которые лень обновлять под свежую версию gcc.
Правда, в данный момент есть некоторые проблемы со сборкой пакетов у разработчиков VitaSDK.

Цитата:

Сообщение от SardaukarNN (Сообщение 1263828)
Под Linux Mint 19.3 (XFCE, 64-bit) - проблем нет

Тогда используй 19.3, если там всё работает. Нет потребности гнаться за новым дистрибутивом.

Цитата:

Сообщение от SardaukarNN (Сообщение 1263828)
то мы бы увидели различные уроки по программированию

У кого-то есть такое количество ненужного свободного времени, чтобы сидеть писать уроки?

Цитата:

Сообщение от SardaukarNN (Сообщение 1263828)
или готовые проекты для данной приставки

Только "официальная" VitaDB содержит 638 хоумбрю, а там далеко не всё размещено.

Цитата:

Сообщение от SardaukarNN (Сообщение 1263828)
Может стоит создать тему, под названием "Ошибки при компиляции/сборки"?

Нет смысла в отдельной теме. Все проблемы по конкретному SDK стоит просто писать в его теме.
Также, есть официальная поддержка в Discord: https://discord.gg/m7MwpKA (это сервер HENkaku).
Если Hello_PSVita это копия hello_world, то рядом должна лежать папка common. А я вижу её внутри.

SardaukarNN 19.12.2022 16:21

По поводу обновления GCC под сборку ПО для VITA требуется использовать "GNU Arm Embedded Toolchain" или что-то другое?
Ведь недостаточно файлы, например "gcc-arm-none-eabi- *" переименовать в "gcc-arm-vita-eabi- *"?!
Подскажите пожалуйста!

P.S.: с заменой версии GCC для сборки приложений под Win32/64 у меня проблем нет, а с Витой - просто космос. )))


20-а нужна из-за cmake 3.16, т.к. не удалось установить её на 19.
Некоторые проекты требуют версию не ниже 3.16

Про VitaDB в курсе.

Yoti 19.12.2022 16:32

Цитата:

Сообщение от SardaukarNN (Сообщение 1263833)
По поводу обновления GCC под сборку ПО для VITA требуется использовать "GNU Arm Embedded Toolchain" или что-то другое?

Обновлением занимаются разработчики VitaSDK. В середине 2020 года использовался gcc9, на момент правки шапки gcc10.

Цитата:

Сообщение от SardaukarNN (Сообщение 1263833)
20-а нужна из-за cmake 3.16, т.к. не удалось установить её на 19.

Лично я переехал на WSL2/Ubuntu 20.04. Там ставится 3.16.3. Вообще, это не пакет из VitaSDK, так что вопрос не в тему.

SardaukarNN 22.12.2022 12:11

Приветствую!

Не подскажите, почему при инсталляции *.VPK на Виту, выходит ошибка "Error 0x80101104"?
При компиляции и сборке *.VPK ошибок нет.
Если ручками раскидать содержимое в соответствующие папки на Вите, то программа запускается и работает.

SardaukarNN 22.12.2022 15:29

Создаю файл CMakeLists.txt
Добавляю строчку (в самом низу листинга): "FILE res/screen.png screen.png"
VPK собирается хорошо, при инсталляции на Виту ошибок нет,
но файл screen.png в ux0:/app/{PROJECT_NAME}/ не появляется.
Смотрел аналогичные примеры, но ничего такого не нашел, в тоже время
они отрабатывают правильно.

Что я упустил?
Подскажите пожалуйста!

include("${VITASDK}/share/vita.cmake" REQUIRED)
vita_create_self(${PROJECT_NAME}.self ${PROJECT_NAME})
vita_create_vpk(${PROJECT_NAME}.vpk ${VITA_TITLEID} ${PROJECT_NAME}.self
VERSION ${VITA_VERSION}
NAME ${VITA_APP_NAME}

FILE psv/icon0_dark_128.png sce_sys/icon0.png
FILE psv/pic0.png sce_sys/pic0.png
FILE psv/livearea/contents/bg_with_logo.png sce_sys/livearea/contents/bg.png
FILE psv/livearea/contents/logo_8bit.png sce_sys/livearea/contents/logo.png
FILE psv/livearea/contents/startup.png sce_sys/livearea/contents/startup.png
FILE psv/livearea/contents/template.xml sce_sys/livearea/contents/template.xml

FILE res/screen.png screen.png
)

Yoti 24.12.2022 17:39

Цитата:

Сообщение от SardaukarNN (Сообщение 1263966)
но файл screen.png в ux0:/app/{PROJECT_NAME}/ не появляется.

Так в VPK то он вообще есть?

SardaukarNN 24.12.2022 19:05

Цитата:

Сообщение от Yoti (Сообщение 1264054)
Так в VPK то он вообще есть?

Да, есть!
VPK переименовал в RAR, далее открыл и посмотрел.

SardaukarNN 24.12.2022 22:07

Странное дело....
Решил также установить Vita SDK на ПК, т.к. у него процессор мощнее (Core i5), чем у ноута (Core i3) на котором некоторые проекты собираются достаточно долго.
И вот в чем дело, после установки на ПК отсутствует большая часть библиотек, например такие как SDL и т.д.
Я что-то упустил или это просто проблема с удаленным SDK-серваком?
https://imgur.com/08HzGDl.jpg
На скрине видны папки, которые в данный момент присутствуют.

Yoti 01.01.2023 06:22

Вложений: 3
Цитата:

Сообщение от SardaukarNN (Сообщение 1264058)
VPK переименовал в RAR, далее открыл и посмотрел.

Вместо учебника по программированию я бы предложил книжку "Windows для чайников". Ибо переименовывать в RAR переименованный ZIP это что-то сверх моего понимания.

Цитата:

Сообщение от SardaukarNN (Сообщение 1264070)
Я что-то упустил или это просто проблема с удаленным SDK-серваком?

В шапке есть достаточно информации для анализа проблемы. А нам без логов остаётся только лишь смотреть в хрустальный шар...

Цитата:

Сообщение от SardaukarNN (Сообщение 1264058)
Да, есть!

Собрал на коленке фигню для проверки, всё в порядке:
Вложение 18399

SardaukarNN 02.01.2023 00:26

В RAR или ZIP - не важно, система сама видит как был упакован архив....
VPK реально собирается без ошибок, но при установки выходит ошибка, поэтому
мне проще созданный VPK распаковать и собрать его ручками, создав новый архив и закинуть в него eboot.bin, любой param.sfo (редактирую в нем имя и ID), файлы с иконкой и заставкой.
В моем проекте 500 файлов.

P.S.: Проекты состоящие из небольшого количества файлов собираются и устанавливаются без проблем.
Я не знаю почему так, в любом случае я нашел выход, затраты по времени +5 минут после сборки VPK компилятором.
Да.... и книга про "Windows для чайников" тут совсем неуместна.

С ПРАЗДНИКОМ!!! С НАСТУПИВШИМ 2023!!!

Yoti 03.01.2023 01:06

Цитата:

Сообщение от SardaukarNN (Сообщение 1264433)
В RAR или ZIP - не важно, система сама видит как был упакован архив...

Переименование в принципе не нужно.

Цитата:

Сообщение от SardaukarNN (Сообщение 1264433)
В моем проекте 500 файлов.

Ну так нефиг использовать тонну файлов вне контейнера или архива.

SardaukarNN 03.01.2023 12:21

Цитата:

Сообщение от Yoti (Сообщение 1264468)
Переименование в принципе не нужно.
Ну так нефиг использовать тонну файлов вне контейнера или архива.

- У меня пока не переименуешь - система не поймет, что это архив.
- 500 файлов, я имел ввиду *.CPP и *.H - файлы проекта.;)

Yoti 03.02.2023 02:12

Цитата:

Сообщение от SardaukarNN (Сообщение 1264490)
У меня пока не переименуешь - система не поймет, что это архив.

Руки. Купи книжку, как я советовал выше, там расскажут про ПКМ и "открыть с помощью".

Цитата:

Сообщение от SardaukarNN (Сообщение 1264490)
500 файлов, я имел ввиду *.CPP и *.H - файлы проекта.

И какое это имеет отношения к вопросу о том, что ты что-то там в VPK найти не можешь?


Текущее время: 15:59. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.