Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#33498 closed update (fixed)

tuntaposx: update to 20111101 and fix livecheck

Reported by: jithin1987@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.0.4
Keywords: Cc: drkp (Dan Ports)
Port: tuntaposx

Description

The tuntaposx version from http://tuntaposx.sourceforge.net/download.xhtml works. It create the tun interfaces but not the one coming with macports

Change History (11)

comment:1 Changed 12 years ago by jithin1987@…

Cc: jithin1987@… added

Cc Me!

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jithin1987@… removed
Summary: tuntaposx is not loading in osx liontuntaposx: update to 20111101 and fix livecheck
Type: defectupdate

comment:3 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

livecheck fixed in r90485

comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

comment:5 Changed 12 years ago by jithin1987@…

Resolution: fixed
Status: closedreopened

I am getting this error when doing port load tuntaposx

Mar 12 21:28:24 degreethem-lm com.apple.kextd[10]: Can't create kext cache under / - owner not root.
Mar 12 21:28:24 degreethem-lm com.apple.kextd[10]: Can't load /opt/local/Library/Extensions/tap.kext - no code for running kernel's architecture.
Mar 12 21:28:24 degreethem-lm org.macports.tuntaposx[14733]: /opt/local/Library/Extensions/tap.kext failed to load - (libkern/kext) requested architecture/executable not found; check the system/kernel logs for errors or try kextutil(8).
Mar 12 21:28:24 degreethem-lm com.apple.kextd[10]: Can't load /opt/local/Library/Extensions/tun.kext - no code for running kernel's architecture.
Mar 12 21:28:24 degreethem-lm org.macports.tuntaposx[14733]: /opt/local/Library/Extensions/tun.kext failed to load - (libkern/kext) requested architecture/executable not found; check the system/kernel logs for errors or try kextutil(8).

uname output

uname -a
Darwin degreethem-lm 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:48:32 PST 2012; root:xnu-1699.24.23~1/RELEASE_I386 i386

comment:6 Changed 12 years ago by jithin1987@…

Forgot to mention. I am using Mac osx Lion and version downloaded from http://tuntaposx.sourceforge.net/download.xhtml works.

comment:7 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: reopenedclosed

I have corrected the WikiFormatting in your comment above.

This ticket requested the port be updated. It has been. The ticket is therefore closed. If you have MacPorts-specific problems with that update, you should file a new ticket.

However, in your case, the error message seems pretty clear: you're trying to load a kernel extension built for the wrong architecture. On Snow Leopard and later (including Lion) the default build architecture is x86_64, but your uname output shows your Mac uses the i386 kernel, so you need i386 kernel modules. So install tuntaposx universal, to get both x86_64 and i386 versions:

sudo port install tuntaposx +universal

comment:8 Changed 12 years ago by jithin1987@…

Thanks a lot Ryan for explaining. Installing universal variant fixes the issue for me.

comment:9 Changed 12 years ago by drkp (Dan Ports)

Should we make tuntaposx default to +universal since we don't have a way to represent the arch of the installed kernel? That's what I did for fuse4x-kext.

comment:10 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: dports@… added

I'm not thrilled about that because many (most?) users are not affected by this: users with Tiger or Leopard or with Snow Leopard on an i386 Mac are not affected, and neither are Snow Leopard or Lion users who run the 64-bit kernel. Only owners of those special Macs made a few years ago that are 64-bit but run the 32-bit kernel are affected, and not even they if they've changed build_arch to i386 (though that's probably not good general advice).

virtualbox doesn't have a universal variant, but we made its build_arch default to the arch of the kernel. I don't know if a universal variant could be added.

If we can come up with rules that work in the general case, I'd be in favor of creating a kernel extension portgroup that would do the right thing, that we could include in all ports that install kernel extensions.

comment:11 Changed 12 years ago by drkp (Dan Ports)

I'd definitely be in favor of creating a portgroup if we can figure out what it should do.

I'm not sure we want to get too clever about this. I thought before about trying to figure out the architecture of the running kernel, and decided not to, because someone might switch between the 32-bit and 64-bit kernels after installation. This seemed somewhat more common on Snow Leopard, where people either wanted to switch to 64-bit on systems where it wasn't default, or wanted to switch back to 32-bit for compatibility with some other kernel module. It doesn't seem to be as much of an issue with Lion, except that there are still some machines that have to use a 32-bit kernel. Presumably it isn't going to be an issue on Mountain Lion at all, because it sounds like the 32-bit kernel is going away.

I have to admit I'm not too bothered by defaulting to +universal (even if it's sometimes unnecessary) for relatively small ports like this one, though clearly that's not a great idea for things like virtualbox.

Note: See TracTickets for help on using tickets.