I have a [Raspberry Pi 400](https://www.raspberrypi.org/products/ra ... fications/) with Xubuntu 21.04 arm64 onto which I am attempting to install GZDoom. To get to Xubuntu on this P400 (not a PII 400Mhz), I installed the Ubuntu 20.04 arm64 OS. I then installed Xfce 4, changed the configuration settings, and upgraded to 21.04 (still arm64).
Code: Select all
root@terminal:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="21.04 (Hirsute Hippo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 21.04"
VERSION_ID="21.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=hirsute
UBUNTU_CODENAME=hirsute
root@terminal:~#
I initially began attempting to install GZDoom after watching a YouTube video that had piqued my interest: [Set up GZDoom on Raspberry pi (Rpi) install Doom on rpi without dosbox or retropi](https://www.youtube.com/watch?v=nquBHS-Nf1o). The Raspberry Pi 400 is fairly similar to the layout of the first keyboard on which I played the shareware copy of Doom on a Gateway 2000 with a Pentium-ready 89Mhz processor, 4MB RAM, and a 404 MB drive with Windows 3.1x.
The sequence to a functional GZDoom has been challenging since my background is not in linux despite using it daily for the past two years professionally. The following are the my steps, in order of execution, to attempt to install a functional GZDoom.
I started by using [https://zdoom.org/files/gzdoom/bin/gzdoom_3.4.1_armhf.deb] to download GZDoom using a web browser, not wget, which is one of the two links provided by the description of the video. The second is a link to the poster's [dropbox](https://www.dropbox.com/sh/3ne1927dp55v ... zkNza?dl=0) containing three files:
Code: Select all
Brutal Doom pack.pk3
Code: Select all
gzdoom_3.4.1_armhf.deb
Code: Select all
gzdoom.ini
Code: Select all
/home/user/Downloads
I installed
Code: Select all
gdebi
Code: Select all
sudo apt install gdebi
Code: Select all
.deb
Code: Select all
root@terminal:/home/user# sudo gdebi /home/user/Downloads/gzdoom_3.4.1_armhf.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
This package is uninstallable
Wrong architecture 'armhf' -- Run dpkg --add-architecture to add it and update afterwards
root@terminal:/home/user#
Code: Select all
armhf
Code: Select all
dpkg --add-architecture armhf
Code: Select all
sudo apt update
Code: Select all
root@terminal:/home/user# sudo gdebi /home/user/Downloads/gzdoom_3.4.1_armhf.deb
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Reading state information... Done
Requires the installation of the following packages: gcc-11-base:armhf libc6:armhf libcom-err2:armhf libcrypt1:armhf libgcc-s1:armhf libgomp1:armhf libgssapi-krb5-2:armhf libidn2-0:armhf libjpeg-turbo8:armhf libjpeg8:armhf libk5crypto3:armhf libkeyutils1:armhf libkrb5-3:armhf libkrb5support0:armhf libnsl2:armhf libnss-nis:armhf libnss-nisplus:armhf libssl1.1:armhf libstdc++6:armhf libtirpc3:armhf libunistring2:armhf zlib1g:armhf
OpenGL version of ZDoom.
Do you want to install the software package? [y/N]:
...
Selecting previously unselected package gzdoom:armhf.
(Reading database ... 233687 files and directories currently installed.)
Preparing to unpack .../gzdoom_3.4.1_armhf.deb ...
Unpacking gzdoom:armhf (3.4.1) ...
Setting up gzdoom:armhf (3.4.1) ...
Processing triggers for bamfdaemon (0.5.5+21.04.20210119-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mailcap (3.68ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu1) ...
root@terminal:/home/user#
Code: Select all
/home/user/.config/gzdoom
Code: Select all
sudo chmod a+w /home/user/.config/gzdoom
Code: Select all
cp -a /home/user/Downloads/gzdoom.ini /home/user/.config/gzdoom/
Code: Select all
cp -a /home/user/Downloads/'Brutal Doom pack.pk3' /opt/gzdoom/
Code: Select all
/opt/gzdoom
Code: Select all
gdebi
Code: Select all
.deb
Code: Select all
root@terminal:/home/user# gzdoom /home/user/.config/gzdoom/gzdoom.ini
/opt/gzdoom/gzdoom: error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory
root@terminal:/home/user#
Same error encountered when invoking "gzdoom" from the shell; tried explicit libraries for the "armhf" architecture, which installed.Have you installed the sdl library? You need these packages: libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 libsdl2-2.0-0
Code: Select all
sudo apt install libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 libsdl2-2.0-0
Code: Select all
sudo apt install libsdl2-mixer-2.0-0:armhf libsdl2-image-2.0-0:armhf libsdl2-2.0-0:armhf
Code: Select all
root@terminal:/home/user# gzdoom
/opt/gzdoom/gzdoom: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory
root@terminal:/home/user#
According to https://michaelheap.com/error-while-loa ... -centos-7/:
Slightly modified:Whilst trying to build using electron-builder on CentOS 7, I ran into the following error message:
error while loading shared libraries: libbz2.so.1.0: cannot open shared object file
To fix it, you'll need to install bzip2-devel, and potentially create a symlink too as libbz2.so.1 exists, but libbz2.so.1.0 doesn't
Code: Select all
sudo yum install bzip2-devel sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0
Code: Select all
sudo apt install bzip2-devel:arm64 bzip2-devel:armhf
sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0
Code: Select all
root@terminal:/home/user# sudo apt install bzip2-devel:arm64 bzip2-devel:armhf
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package bzip2-devel:arm64
E: Unable to locate package bzip2-devel:armhf
root@terminal:/home/user# sudo apt install bzip2-devel
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package bzip2-devel
root@terminal:/home/user#
According to https://github.com/samtools/samtools/issues/701:
So, I triedThe conda recipe for bzip2 lacks the shared library, install libbz2-dev (or something like that) with your system's package manager.
Code: Select all
sudo apt install libbz2-dev
Code: Select all
arm64
Code: Select all
sudo apt install libbz2-dev:armhf
Code: Select all
armhf
Code: Select all
root@terminal:~# sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0
find: ‘/usr/lib64/’: No such file or directory
root@terminal:~# sudo ln -s `find /usr/lib/ -type f -name "libbz2.so.1*"` /usr/lib/libbz2.so.1.0
ln: target '/usr/lib/libbz2.so.1.0': No such file or directory
root@terminal:~# sudo ln -s `find /usr/lib/arm-linux-gnueabihf/ -type f -name "libbz2.so.1*"` /usr/lib/arm-linux-gnueabihf/libbz2.so.1.0
ln: failed to create symbolic link '/usr/lib/arm-linux-gnueabihf/libbz2.so.1.0': File exists
root@terminal:~# sudo ln -s `find /usr/lib/arm-linux-gnueabihf/ -type f -name "libbz2.so.1*"` /usr/lib/libbz2.so.1.0
root@terminal:~#
Code: Select all
root@terminal:~# gzdoom
/opt/gzdoom/gzdoom: error while loading shared libraries: libgme.so.0: cannot open shared object file: No such file or directory
root@terminal:~#
Code: Select all
sudo apt install libgme-dev
Code: Select all
sudo apt install libgme-dev:armhf
Woohoo! "gzdoom" attempted to open but failed due to no "level" (missing wad, I assume):
Code: Select all
root@terminal:~# gzdoom
GZDoom g3.4.1 - 2018-06-13 23:44:12 +0200 - SDL version
Compiled on Jun 13 2018
M_LoadDefaults: Load system defaults.
*** Fatal Error ***
Address not mapped to object (signal 11)
Address: 0x14
Generating gzdoom-crash.log and killing process 86260, please wait... Error while reading shared library symbols for /lib/arm-linux-gnueabihf/libpthread.so.0:
Cannot find user-level thread for LWP 86260: generic error
gdb-respfile-ChrGn5:10: Error in sourced command file:
Unable to fetch vFP/SIMD registers.: Invalid argument.
Killed
root@terminal:~#
Code: Select all
apt search
Code: Select all
apt search libpthread
Code: Select all
sudo apt install libpthread-stubs0-dev
Code: Select all
arm64
Code: Select all
sudo apt install libpthread-stubs0-dev:armhf
Code: Select all
armhf
Code: Select all
root@terminal:~# gzdoom
GZDoom g3.4.1 - 2018-06-13 23:44:12 +0200 - SDL version
Compiled on Jun 13 2018
M_LoadDefaults: Load system defaults.
*** Fatal Error ***
Address not mapped to object (signal 11)
Address: 0x14
Generating gzdoom-crash.log and killing process 87388, please wait... Error while reading shared library symbols for /lib/arm-linux-gnueabihf/libpthread.so.0:
Cannot find user-level thread for LWP 87388: generic error
gdb-respfile-uMEFwY:10: Error in sourced command file:
Unable to fetch vFP/SIMD registers.: Invalid argument.
Killed
root@terminal:~#
Code: Select all
root@terminal:~# sudo ln -s `find /usr/lib/arm-linux-gnueabihf/ -type f -name "libpthread.so.*"` /usr/lib/libpthread.so.0
root@terminal:~#
Code: Select all
root@terminal:~# for p in /home/user/.config/gzdoom/Hexen/HEXEN.WAD /home/user/.config/gzdoom/Hexen_Deathkings_of_the_Dark_Citadel/HEXEN.WAD; do for h in md5sum sha1sum; do $h $p; done; done;
abb033caf81e26f12a2103e1fa25453f /home/user/.config/gzdoom/Hexen/HEXEN.WAD
4b53832f0733c1e29e5f1de2428e5475e891af29 /home/user/.config/gzdoom/Hexen/HEXEN.WAD
abb033caf81e26f12a2103e1fa25453f /home/user/.config/gzdoom/Hexen_Deathkings_of_the_Dark_Citadel/HEXEN.WAD
4b53832f0733c1e29e5f1de2428e5475e891af29 /home/user/.config/gzdoom/Hexen_Deathkings_of_the_Dark_Citadel/HEXEN.WAD
root@terminal:~# for p in /home/user/.config/gzdoom/Doom_2/rerelease/doom2.wad /home/user/.config/gzdoom/Doom_2/DOOM2.WAD; do for h in md5sum sha1sum; do $h $p; done; done;
8ab6d0527a29efdc1ef200e5687b5cae /home/user/.config/gzdoom/Doom_2/rerelease/doom2.wad
9574851209c9dfbede56db0dee0660ecd51e6150 /home/user/.config/gzdoom/Doom_2/rerelease/doom2.wad
25e1459ca71d321525f84628f45ca8cd /home/user/.config/gzdoom/Doom_2/DOOM2.WAD
7ec7652fcfce8ddc6e801839291f0e28ef1d5ae7 /home/user/.config/gzdoom/Doom_2/DOOM2.WAD
root@terminal:~#
I then edited
Code: Select all
/home/user/.config/gzdoom/gzdoom.ini
Code: Select all
/home/user/.config/gzdoom/
Code: Select all
/opt/gzdoom/
Code: Select all
[IWADSearch.Directories]
Path=$HOME/.config/gzdoom
Path=/home/user/.config/gzdoom/Final_Doom
Path=/home/user/.config/gzdoom/Doom_2
Path=/home/user/.config/gzdoom/Doom_2/rerelease
Path=/home/user/.config/gzdoom/Heretic_Shadow_of_the_Serpent_Riders
Path=/home/user/.config/gzdoom/Hexen
Path=/home/user/.config/gzdoom/Hexen_Deathkings_of_the_Dark_Citadel
Path=/opt/gzdoom
Path=/opt/gzdoom/Final_Doom
Path=/opt/gzdoom/Doom_2
Path=/opt/gzdoom/Doom_2/rerelease
Path=/opt/gzdoom/Heretic_Shadow_of_the_Serpent_Riders
Path=/opt/gzdoom/Hexen
Path=/opt/gzdoom/Hexen_Deathkings_of_the_Dark_Citadel
[FileSearch.Directories]
Path=$HOME/.config/gzdoom
Path=/opt/gzdoom/
[SoundfontSearch.Directories]
Path=$HOME/.config/gzdoom/soundfonts
Path=/opt/gzdoom/soundfonts
Code: Select all
root@terminal:~# gzdoom
GZDoom g3.4.1 - 2018-06-13 23:44:12 +0200 - SDL version
Compiled on Jun 13 2018
M_LoadDefaults: Load system defaults.
*** Fatal Error ***
Address not mapped to object (signal 11)
Address: 0x14
Generating gzdoom-crash.log and killing process 91513, please wait... Error while reading shared library symbols for /lib/arm-linux-gnueabihf/libpthread.so.0:
Cannot find user-level thread for LWP 91513: generic error
gdb-respfile-GD5au1:10: Error in sourced command file:
Unable to fetch vFP/SIMD registers.: Invalid argument.
Killed
root@terminal:~#
It still appeared that it cannot find the IWAD files despite changes to the
Code: Select all
gzdoom.ini
Code: Select all
/home/user/.config/gzdoom/
Code: Select all
/opt/gzdoom/
Code: Select all
root@terminal:~# for w in $(find /opt/gzdoom/ | grep -i "wad"); do cp $w /opt/gzdoom/; done;
root@terminal:~# ls /opt/gzdoom
brightmaps.pk3 DOOM2.WAD gzdoom.ini HEXDD.WAD lights.pk3 zd_extra.pk3
Brutal_Doom_pack.pk3 extras.wad gzdoom.pk3 Hexen PLUTONIA.WAD
Doom_2 Final_Doom Heretic_Shadow_of_the_Serpent_Riders Hexen_Deathkings_of_the_Dark_Citadel soundfonts
doom2.wad gzdoom HERETIC.WAD HEXEN.WAD TNT.WAD
root@terminal:~# path=/home/user/.config/gzdoom/; for w in $(find ${path} | grep -i "wad"); do cp $w ${path}; done;
root@terminal:~# ls /home/user/.config/gzdoom/
Doom_2 DOOM2.WAD Final_Doom Heretic_Shadow_of_the_Serpent_Riders HEXDD.WAD Hexen_Deathkings_of_the_Dark_Citadel PLUTONIA.WAD
doom2.wad extras.wad gzdoom.ini HERETIC.WAD Hexen HEXEN.WAD TNT.WAD
root@terminal:~#
The same error is encountered even when IWADs are in the same directory as the executable. I tried again just before this post to get a "fresh"
Code: Select all
gzdoom-crash.log
Code: Select all
* Loaded Libraries
From To Syms Read Shared Object Library
0xf773b0e0 0xf77e4028 Yes (*) /lib/arm-linux-gnueabihf/libSDL2-2.0.so.0
0xf77031e0 0xf770f252 No /lib/arm-linux-gnueabihf/libpthread.so.0
0xf76e9c90 0xf76ec850 Yes (*) /lib/arm-linux-gnueabihf/librt.so.1
The errors in the CLI also reference
Code: Select all
/lib/arm-linux-gnueabihf/libpthread.so.0
I have also tried it at the non root user level with nearly the same error message.
Code: Select all
user@terminal:~$ gzdoom
GZDoom g3.4.1 - 2018-06-13 23:44:12 +0200 - SDL version
Compiled on Jun 13 2018
M_LoadDefaults: Load system defaults.
Please select a game wad (or 0 to exit):
1. DOOM 2: Hell on Earth (DOOM2)
2. Final Doom: Plutonia Experiment (PLUTONIA)
3. Final Doom: TNT - Evilution (TNT)
4. Heretic: Shadow of the Serpent Riders (HERETIC)
5. Hexen: Beyond Heretic (HEXEN)
6. Hexen: Deathkings of the Dark Citadel (HEXDD)
Which one? 1
W_Init: Init WADfiles.
adding /opt/gzdoom/gzdoom.pk3, 625 lumps
adding /opt/gzdoom/zd_extra.pk3, 132 lumps
adding /home/user/.config/gzdoom/DOOM2.WAD, 2919 lumps
I_Init: Setting up machine state.
Sound init failed. Using nosound.
V_Init: allocate screen.
S_Init: Setting up sound.
ST_Init: Init startup screen.
Checking cmd-line parameters...
S_InitData: Load sound definitions.
G_ParseMapInfo: Load map definitions.
Texman.Init: Init texture manager.
ParseTeamInfo: Load team definitions.
LoadActors: Load actor definitions.
script parsing took 332.76 ms
R_Init: Init Doom refresh subsystem.
DecalLibrary: Load decals.
M_Init: Init menus.
P_Init: Init Playloop state.
ParseSBarInfo: Loading custom status bar definition.
D_CheckNetGame: Checking network game status.
player 1 of 1 (1 nodes)
Using video driver x11
*** Fatal Error ***
Address not mapped to object (signal 11)
Address: 0x14
Generating gzdoom-crash.log and killing process 137035, please wait... Error while reading shared library symbols for /lib/arm-linux-gnueabihf/libpthread.so.0:
Cannot find user-level thread for LWP 137037: generic error
gdb-respfile-NjSsV8:10: Error in sourced command file:
Unable to fetch vFP/SIMD registers.: Invalid argument.
Killed
user@terminal:~$