Error configuring Parallels on linux with kernel 2.6.19

egmar

Bit poster
Hi
I've some problems in configuring Parallels (Parallels-2.2.2112) on my linux box. Error log is below:

make[3]: Entering directory `/usr/src/linux-headers-2.6.19-7-386'
CC [M] /usr/lib/parallels/drivers/drv_net/linux/prlnet.o
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c: In function ‘prlnet_recv’:
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c:884: error: ‘CHECKSUM_HW’ undeclared (first use in this function)
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c:884: error: (Each undeclared identifier is reported only once
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c:884: error: for each function it appears in.)
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c: In function ‘hw_bind’:
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c:1011: error: ‘struct net_device’ has no member named ‘get_wireless_stats’
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c:1023: warning: assignment from incompatible pointer type
make[4]: *** [/usr/lib/parallels/drivers/drv_net/linux/prlnet.o] Error 1
make[3]: *** [_module_/usr/lib/parallels/drivers/drv_net/linux] Error 2
make[3]: Leaving directory `/usr/src/linux-headers-2.6.19-7-386'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/usr/lib/parallels/drivers/drv_net/linux'
make[1]: *** [vmbridge] Error 2
make[1]: Leaving directory `/usr/lib/parallels/drivers'
make: *** [build] Error 2

I'm using Ubuntu Feisty
with 2.6.19-7-386 kernel, gcc (GCC) 4.1.2 20061115 (prerelease) (Ubuntu 4.1.1-20ubuntu1),
 
Resolved !!!

OK, seems like this Parallels build don't like 2.6.19 kernel. I've made some changes in
/usr/lib/parallels/drivers/drv_net/linux/prlnet.c

On line 884 you should found:
Code:
int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_HW
replace it with
Code:
#ifndef CHECKSUM_NW
int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_COMPLETE;
#else
int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_HW;
#endif

The CHECKSUM_HW value has long been used in the networking subsystem to support hardware checksumming. That value has been replaced with CHECKSUM_PARTIAL (intended for outgoing packets where the job must be completed by the hardware) and CHECKSUM_COMPLETE (for incoming packets which have been completely checksummed by the hardware). from http://lwn.net/Articles/200304/

On line 1014 you should found:
Code:
if (hw->proto.dev->get_wireless_stats)
I don't have any wi-fi chipsets on my laptop and I've commented this if.
Probably if you have wi-fi chipsets you should search other solutions.
 
Last edited:
in /usr/lib/parallels/drivers/drv_net/linux/prlnet.c, line 1014:
replace:
Code:
if (hw->proto.dev->get_wireless_stats)
                hw->wireless = 1;
with
Code:
#if WIRELESS_EXT >=12 && WIRELESS_EXT < 17
        if (hw->proto.dev->get_wireless_stats)
                hw->wireless = 1;
#endif

funny part here is that if we remove first piece of code from this file, it should compile as well. if we take a look in linux/wireless.h header file of linux kernel 2.6.19 we can found a constant WIRELESS_EXT with value 21. This value makes this piece of code useless because next piece of code in prlnet.c set same variable hw->wireless:
Code:
#if WIRELESS_EXT > 12
        if (hw->proto.dev->wireless_handlers)
                hw->wireless = 1;
#endif

I hope this workaround wil help you :)
 
Last edited:
To compile on 2.6.19 or 2.6.20 should only require changes to the prlnet.c driver. These are similar changes the Cisco VPN client needs and have already been posted in this thread and others. I've put the fixes together in one file and uploaded it here

Extract the .c file and copy it to /usr/lib/parallels/drivers/drv_net/linux/ overwriting the original. Then re-run parallels-config.

I take no credit for finding the fixes, I merely put them together to help others out
 

Attachments

That did the trick!

romracer said:
I take no credit for finding the fixes, I merely put them together to help others out

And that you've most definitely done -- I really appreciate you taking the time to make MY life easier! I'd had exactly the same problem as the OP, tried replacing sh with bash in the Parallels config and start/stop scripts as suggested elsewhere, and then found your most-excellent info, which allowed the Parallels configuration to succeed.

Thanks tons!

=tracy
 
Thanks a lot.
I want to be here writing for half an hour explaining how good has been this for us... but my english is not good enough. So take my first line and repeat it millions times.
:-)
 
romracer said:
To compile on 2.6.19 or 2.6.20 should only require changes to the prlnet.c driver. These are similar changes the Cisco VPN client needs and have already been posted in this thread and others. I've put the fixes together in one file and uploaded it here

Extract the .c file and copy it to /usr/lib/parallels/drivers/drv_net/linux/ overwriting the original. Then re-run parallels-config.

I take no credit for finding the fixes, I merely put them together to help others out
oh thanks.
 
Last edited:
great info so far.. figure i would ask the ppl who seem to know wtf is up. i get alot further after the prlnet.c as it fails to compile w/o that change. so i try to run the config & now this error. does it make sense to anyone else. it tells me to run the parallels command after but when i do that i get an error similar to this one. =\

running ubuntu 7.04 fiesty fawn new install.

sudo parallels-config


Compiling Parallels Workstation 2.2 drivers...
Drivers have been compiled successfully.
Installing drivers...
Starting drivers...
Loading Parallels Workstation 2.2 hypervisor ...
Loading Parallels Workstation 2.2 vm-main ...
Loading Parallels Workstation 2.2 vm-bridge ...
Loading Parallels Workstation 2.2 vmvirtualnic ...
/usr/lib/parallels/autostart/prl_dhcpd: error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory
Parallels Workstation has been successfully configured

Now you can run Parallels Workstation 2.2
Issue parallels command.
 
You need the libqt-mt-dev package to eliminate that error. I believe its for compiling the parallels gui as parallels doesn't use gtk.
 
wow thanks a bunch.. had to add a 3 so qt3

but it works great now.. someone should make a little tutorial for fiesty..

thanks again for your help

doc
 
I'm afraid I can't, as I haven't used Fiesty. I'm still using dapper on one of my machines and I use Debian testing on my laptop. So far, I haven't much problems with getting parallels to work with the various workarounds supplied by the wonderful user community here. :-)

P.S. I don't consider myself a linux guru, I'm still learning something new everyday.
 
well your knowledge along with everyone else contributing rocks. keep it up everyone. this forum here should include everything one needs to setup parallels on ubuntu fiesty 7.04

keep it keebler

doc
 
thanks for all

I did it all, but it doesn't work

sudo parallels-config
Password:


[: 141: ==: unexpected operator
Compiling Parallels Workstation 2.2 drivers...
Drivers have been compiled successfully.
/usr/bin/parallels-config: 175: pushd: not found
/usr/bin/parallels-config: 186: popd: not found
Installing drivers...
Starting drivers...
/usr/lib/parallels/autostart/drivers_start: 19: Syntax error: "(" unexpected
Parallels Workstation drivers were successfully configured
and compiled but cannot be started (insmod command failed).
Run 'dmesg' command for more information.
exit: 3: Illegal number: -1

???

Primary OS: ubuntu fiesty 7.04
Parallels-2.2.2112-lin.deb
 
the steps are:

install debian package. > create symbolic link for bash > replace prlnet.c file provided > install libqt3-mt-dev(if u dont have already) > sudo parallels-config

& everything should compile properly & install to your gnome panel under system tools.

good luck
 
Back
Top