PDA

Просмотр полной версии : Установка Vita SDK на Linux Mint 20.3 (XFCE, 64-bit)


Yoti
22.09.2018, 13:31
Установка Vita SDK на Linux Mint 20.3 (XFCE, 64-bit)

Предупреждение

Человеку, имеющему опыт использования ОС семейства Линукс может показаться, что какие-либо шаги можно сделать проще или иначе. Да, можно - значит эта статья просто не для вас. Обратитесь к первоисточнику (https://vitasdk.org/).
Mint у меня крутится под VirtualBox 7.0. В систему установлены дополнения гостевой ОС. В процессе установки было выбрано дополнительное ПО, сразу после установки система была полностью обновлена, включая ядро.



Подготовка

Запускаем Терминал, вводим команды ниже.
После каждой команды нажимаем Enter.
Читаем и выполняем предложения из Терминала.
Все работы ведутся в домашней папке.
Обновляем список пакетов:
sudo apt update
Обновляем сами пакеты:
sudo apt upgrade -y
Доустанавливаем необходимое:
sudo apt install git make cmake ninja-build -y
Чистим ненужное:
sudo apt clean && sudo apt autoclean



Установка

Запускаем Терминал, если он не открыт.
Добавляем переменные среды:
echo export VITASDK=/usr/local/vitasdk >> ~/.bashrc
echo export PATH=\$VITASDK/bin:\$PATH >> ~/.bashrc
Перезагружаемся (обязательно):
reboot
Запускаем Терминал.
Загружаем набор скриптов для установки SDK:
git clone https://github.com/vitasdk/vdpm
Переходим в папку со скриптами:
cd vdpm
Устанавливаем "голый" SDK:
./bootstrap-vitasdk.sh
Устанавливаем необходимые пакеты:
./install-all.sh
По желанию, команду выше можно сразу же запустить повторно для проверки успешности процесса.
Ожидайте много строк вида "skip install <название>. Package previously installed less than one day ago".
Если в конце строка "Failed to install, the package probably does not exist.", запускаем команду заново.
Перезагружаемся (по желанию):
reboot



Проверка

Запускаем Терминал.
Загружаем образцы программ:
git clone https://github.com/vitasdk/samples
cd samples && git checkout 69d96c1 && cd ..
Вторая строчка - временный фикс сломанной сборки по команде make
Переходим в папку с hello_world:
cd samples
cd hello_world
Компилируем методом 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".
Очищаем за собой папку проекта:
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
Компилируем методом 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
Компилируем методом 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".
Очищаем за собой папку проекта:
cd ..
rm -rf build



Обновление

Запускаем Терминал.
Переходим в папку vdpm:
cd vdpm
Запускаем скрипт обновления:
./vitasdk-update



Удаление

Запускаем Терминал.
Удаляем установленный SDK:
sudo rm -rf /usr/local/vitasdk
Удаляем установочник SDK:
rm -rf ~/vdpm
Удаляем прочие папки (по желанию):
rm -rf ~/samples



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

Официальный сайт VitaSDK (https://vitasdk.org/)
Discord сервер HENkaku (https://discord.gg/m7MwpKA)
...

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
Что можно сделать?
Купить книжку по программированию. Весь текст на экране и он вполне чётко описывает проблему, которая не относится к консоли напрямую. Ты налинковал чего-то, чего линковщик найти не может.

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

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

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

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
Очень странная специфика сборки под плойку.
Нет никаких странностей. Инструкция в шапке проверена лично. Вот прямо все строки под копирку.
Собственно, блока с рассмотрением проблем нет потому, что я их и не встречал особо никогда.
Разве что использую gcc9 для некоторых проектов, которые лень обновлять под свежую версию gcc.
Правда, в данный момент есть некоторые проблемы со сборкой пакетов у разработчиков VitaSDK.

Под Linux Mint 19.3 (XFCE, 64-bit) - проблем нет
Тогда используй 19.3, если там всё работает. Нет потребности гнаться за новым дистрибутивом.

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

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

Может стоит создать тему, под названием "Ошибки при компиляции/сборки"?
Нет смысла в отдельной теме. Все проблемы по конкретному 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
По поводу обновления GCC под сборку ПО для VITA требуется использовать "GNU Arm Embedded Toolchain" или что-то другое?
Обновлением занимаются разработчики VitaSDK. В середине 2020 года использовался gcc9, на момент правки шапки gcc10.

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
но файл screen.png в ux0:/app/{PROJECT_NAME}/ не появляется.
Так в VPK то он вообще есть?

SardaukarNN
24.12.2022, 19:05
Так в 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
VPK переименовал в RAR, далее открыл и посмотрел.
Вместо учебника по программированию я бы предложил книжку "Windows для чайников". Ибо переименовывать в RAR переименованный ZIP это что-то сверх моего понимания.

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

Да, есть!
Собрал на коленке фигню для проверки, всё в порядке:
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
В RAR или ZIP - не важно, система сама видит как был упакован архив...
Переименование в принципе не нужно.

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

SardaukarNN
03.01.2023, 12:21
Переименование в принципе не нужно.
Ну так нефиг использовать тонну файлов вне контейнера или архива.
- У меня пока не переименуешь - система не поймет, что это архив.
- 500 файлов, я имел ввиду *.CPP и *.H - файлы проекта.;)

Yoti
03.02.2023, 02:12
У меня пока не переименуешь - система не поймет, что это архив.
Руки. Купи книжку, как я советовал выше, там расскажут про ПКМ и "открыть с помощью".

500 файлов, я имел ввиду *.CPP и *.H - файлы проекта.
И какое это имеет отношения к вопросу о том, что ты что-то там в VPK найти не можешь?