понедельник, 3 октября 2016 г.

Return To Castle Wolfenstein 1.4 из исходников на Ubuntu 16.04 64bit

Вариант сборки из исходников на гитхабе https://github.com/hexameron/RTCW-SP-linux (ветвь https://github.com/id-Software/RTCW-SP) описан здесь.
Команду
CFLAGS="-march=i686 -O2 -pipe -fomit-frame-pointer"
для ubuntu 64bit стоит заменить на
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" 
Соответственно, все обращения к каталогу src/unix/release-x86-Linux/ следует заменить на src/unix/release-x86_64-Linux/. Этот каталог (release-XXXX) будет единственным созданным внутри src/unix/, поэтому его имя будет очевидным.

При ошибках вида "не найдено SDL/SDL.h" нужно установить libsdl1.2-dev.

Сборка может дать исполняемый файл игры, в котором возникает stack smashing error при запуске.
В этом случае надо отредактировать в исходниках файл src/renderer/tr_image.c: в строке 316 следует заменить
unsigned p1[1024], p2[1024];
на
unsigned p1[2048], p2[2048];
Затем проделать повторную сборку (удалить каталог unix/release-x86_64-Linux/, вызвать make и переписать получившиеся исполняемый .exe и библиотечные файлы .so в целевой каталог с игрой, как в мануале).


четверг, 21 июля 2016 г.

Запуск установленной (гостевой) Windows 7 в VirtualBox из хостовой Ubuntu 16.04.

Предварительно, пользователь должен быть в группе disk и vboxusers ( sudo usermod -a -G disk $USER && sudo usermod -a -G vboxusers $USER). Для корректной работы grub-mkrescue нужно установить xorriso (sudo apt-get install xorriso).
По третьему способу отсюда:

Создаем директорию:

$ mkdir -p ~/.iso/boot/grub

В этой директории любым способом создал файл grub.cfg следующего содержания:
(Раздел menuentry «Windows 7» скопировать со своего grub.cfg, расположенного по адресу /boot/grub/)

insmod part_msdos
set default=0
set timeout=0
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set=root C070671099FC2625
chainloader +1
}


Здесь убрано все лишнее, GRUB проскакивает быстро и незаметно.

Создаем iso-образ с GRUB2:

$ grub-mkrescue --output=/home/$USER/.iso/grub.iso /home/$USER/.iso/

Создаем VMDK-образ:

$ VBoxManage internalcommands createrawvmdk -filename /home/$USER/VirtualBox/Windows7.vmdk -rawdisk /dev/sda -partitions 3,5 -relative

Далее создаем и настраиваем виртуальную машину так же как и во втором способе.
Так же выбираем grub.iso.
Едиственный нюанс: при автоматической установке дополнений гостевой оси, образ этого iso заменится на VBoxGuestAdditions.iso. Поменяйте его обратно.

Еще раз повторюсь, в примерах используются мои настройки. Вносите изменения.