Solved Wine not working

jbo@

Developer
I wanted to try Wine on FreeBSD (13.0-RELEASE).

I added emulators/wine to my poudriere's package list and built it without changing any options. Afterwards I simply installed it on a FreeBSD 13.0-RELEASE desktop machine using pkg install wine.
That being said, I never used wine before.

Upon launching it I get an error about missing ntdll.so:
Code:
jbo@x1carbon ~> wine64
wine: could not load ntdll.so: (null)

What am I missing? I looked through the docs and the handbook and from what I can tell this should pretty much work out of the box.
 
I wanted to try Wine on FreeBSD (13.0-RELEASE).

I added emulators/wine to my poudriere's package list and built it without changing any options. Afterwards I simply installed it on a FreeBSD 13.0-RELEASE desktop machine using pkg install wine.
That being said, I never used wine before.

Upon launching it I get an error about missing ntdll.so:
Code:
jbo@x1carbon ~> wine64
wine: could not load ntdll.so: (null)

What am I missing? I looked through the docs and the handbook and from what I can tell this should pretty much work out of the box.

This package requires procfs(5)() mounted on /proc. If you have not done it yet, please do the following: mount -t procfs proc /proc
To make it permanent, you need the following line in /etc/fstab : proc /proc procfs rw 0 0
 
Yeah, the tidbit pointed out by Alexander88207 is in fact missing from the Handbook, and I'm also curious about how did he figure it out, what logic was used to arrive at procfs(5) solution. I do remember that this is needed for KDE (and other DE's) to run, but this is the first time I see it plainly spelled out as a necessity for WINE. One would think that since WINE basically requires a working DE as a run-time prerequisite, the procfs(5) solution would be pretty much taken care of. Apparently not.... This is interesting.
 
Is there a "package message" after the install that says that? Nevermind I see OP in #4 says "nope".
That may be a nice little patch to the port.
 
My case was different, but it also had to do with mounts.

I put files in a partition mounted as noexec. After realizing this, I gave executables (including Windows installs) their own partition, and moved those files there. Wine works now. It was obvious, but was something easily overlooked.
 
Seems like I am still missing something.
After mounting procfs I tried to run an application:

Code:
wine: created the configuration directory '/home/jbo/.wine'
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
002c:fixme:ntdll:get_firmware_info info_class SYSTEM_FIRMWARE_TABLE_INFORMATION
0050:err:vulkan:get_vulkan_driver Wine was built without Vulkan support.
0050:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
0050:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0050:err:ole:apartment_get_local_server_stream Failed: 0x80004002
0048:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
0048:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
0048:err:ole:apartment_get_local_server_stream Failed: 0x80004002
0048:err:ole:start_rpcss Failed to open RpcSs service
0040:err:setupapi:SetupDefaultQueueCallbackW copy error 1812 L"@wineusb.sys,-1" -> L"C:\\windows\\inf\\wineusb.inf"
0064:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
0064:fixme:file:NtLockFile I/O completion on lock not implemented yet
0064:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0064:err:mscoree:LoadLibraryShim error reading registry key for installroot
0074:fixme:file:NtLockFile I/O completion on lock not implemented yet
0074:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
0074:err:mscoree:LoadLibraryShim error reading registry key for installroot
0074:err:mscoree:LoadLibraryShim error reading registry key for installroot
0074:err:mscoree:LoadLibraryShim error reading registry key for installroot
0074:err:mscoree:LoadLibraryShim error reading registry key for installroot
0074:err:msi:execute_command unable to execute command 1359
0074:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0074:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 5)
0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
0064:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
008c:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
008c:fixme:file:NtLockFile I/O completion on lock not implemented yet
008c:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
008c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
008c:fixme:msi:internal_ui_handler internal UI not implemented for message 0x0b000000 (UI level = 1)
00a0:fixme:iphlpapi:NotifyIpInterfaceChange (family 0, callback 0x1803191e0, context 0x65a8f0, init_notify 0, handle 0x172fa40): stub
0040:fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PERFORMANCE_INFORMATION
013c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
013c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
013c:err:plugplay:get_device_instance_id Failed to get device ID, status 0xc0000017.
013c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
013c:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
wine: configuration in L"/home/jbo/.wine" has been updated.
/home/jbo/.i386-wine-pkg//usr/local/bin/wine doesn't exist!

Try installing 32-bit Wine with
    /usr/local/share/wine/pkg32.sh install wine mesa-dri
jbo@fbsd_beefy01 /u/h/jbo [1]> 0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!
0140:err:heap:HEAP_GetPtr Invalid heap 00000000007F0000!

jbo@fbsd_beefy01 /u/h/jbo [1]>

Trying to run that /usr/local/share/wine/pkg32.sh script as suggested by wine:
Code:
jbo@fbsd_beefy01 /u/h/jbo [1]> /usr/local/share/wine/pkg32.sh
pkg -o ABI=FreeBSD:13:i386 -o INSTALL_AS_USER=true -o RUN_SCRIPTS=false --rootdir /home/jbo/.i386-wine-pkg
pkg: no commands specified
Usage: pkg [-v] [-d] [-l] [-N] [-j <jail name or id>|-c <chroot path>|-r <rootdir>] [-C <configuration file>] [-R <repo config dir>] [-o var=value] [-4|-6] <command> [<args>]

For more information on available commands and options see 'pkg help'.

I've only installed emulators/wine (compiled it myself using poudriere). According to the pkg message I should be able to run 64-bit Windows binaries in an amd64 environment.
 
You'd only need this pkg32.sh script if you need WoW64 functionality (run 32bit binaries from a 64bit environment) in wine. Not sure whether that's the cause of your problem, but if it is, type the command as suggested:
/usr/local/share/wine/pkg32.sh install wine mesa-dri

If you *only* need 32bit windows, you can just use emulators/i386-wine instead.
 
You'd only need this pkg32.sh script if you need WoW64 functionality (run 32bit binaries from a 64bit environment) in wine. Not sure whether that's the cause of your problem, but if it is, type the command as suggested:
/usr/local/share/wine/pkg32.sh install wine mesa-dri
duuuuh.... I'm an idiot - forgot to specify the packages...

will check and report back.
 
Back
Top