parallels on ubuntu, parallels-config failure

Discussion in 'Parallels Workstation for Windows and Linux' started by yulian, Mar 2, 2007.

  1. yulian

    yulian Bit poster

    Messages:
    1
    Hi All,

    i will test Parallels Workstation on my Ubuntu 7.10
    I download the Trial as .deb and installed it.
    Then i run parallels-config but the following error comes:

    dmesg shows the following:



    I'm not a linux professional so i have no idea.
    I run Ubuntu 7.10 and the Ethernet connection is a Wireless WEP with a D-Link G520+ (Atheros).

    Can anyone help me?

    Thanks, yulian
     
  2. arapidsfan

    arapidsfan Bit poster

    Messages:
    1
    Hi, I had the same problem but after looking around the forums. I found this solution
    You can see the full thread here http://forum.parallels.com/thread4707.html. Thank David Corrales.
     
  3. misteraph

    misteraph Bit poster

    Messages:
    1
    I have another problem.
    This is the compilation log :

    Code:
    cd drivers && make clean && cd ../
    make[1]: entrant dans le répertoire « /usr/lib/parallels/drivers »
    cd drv_main/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_main »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    cd common; rm -rf *.o .*.cmd .tmp_versions; cd ..
    cd mm; rm -rf *.o .*.cmd .tmp_versions; cd ..
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_main »
    cd hypervisor/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/hypervisor »
    /bin/sh: [[: not found
    /bin/sh: [[: not found
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/hypervisor »
    cd drv_net/linux/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_net/linux »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_net/linux »
    cd drv_virtualnic/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_virtualnic »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_virtualnic »
    make[1]: quittant le répertoire « /usr/lib/parallels/drivers »
    cd drivers && make all && cd ../
    make[1]: entrant dans le répertoire « /usr/lib/parallels/drivers »
    cd drv_main/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_main »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    cd common; rm -rf *.o .*.cmd .tmp_versions; cd ..
    cd mm; rm -rf *.o .*.cmd .tmp_versions; cd ..
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_main »
    cd hypervisor/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/hypervisor »
    /bin/sh: [[: not found
    /bin/sh: [[: not found
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/hypervisor »
    cd drv_net/linux/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_net/linux »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_net/linux »
    cd drv_virtualnic/ && make clean && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_virtualnic »
    rm -rf *.o *.ko .*.cmd *.mod.c .tmp_versions
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_virtualnic »
    cd drv_main/ && make && cd ..
    make[2]: entrant dans le répertoire « /usr/lib/parallels/drivers/drv_main »
    make -C /lib/modules/2.6.20-9-generic/build SUBDIRS=/usr/lib/parallels/drivers/drv_main SRCROOT=/usr/lib/parallels/drivers/drv_main modules
    make[3]: entrant dans le répertoire « /usr/src/linux-headers-2.6.20-9-generic »
      CC [M]  /usr/lib/parallels/drivers/drv_main/vmmain.o
    In file included from /usr/lib/parallels/drivers/drv_main/vmmain.c:29:
    /usr/lib/parallels/drivers/drv_main/vmmain.h:196: error: expected specifier-qualifier-list before ‘kmem_cache’
    /usr/lib/parallels/drivers/drv_main/vmmain.c: In function ‘init_module’:
    /usr/lib/parallels/drivers/drv_main/vmmain.c:82: error: ‘struct <anonymous>’ has no member named ‘totalMem’
    make[4]: *** [/usr/lib/parallels/drivers/drv_main/vmmain.o] Erreur 1
    make[3]: *** [_module_/usr/lib/parallels/drivers/drv_main] Erreur 2
    make[3]: quittant le répertoire « /usr/src/linux-headers-2.6.20-9-generic »
    make[2]: *** [all] Erreur 2
    make[2]: quittant le répertoire « /usr/lib/parallels/drivers/drv_main »
    make[1]: *** [vmmain] Erreur 2
    make[1]: quittant le répertoire « /usr/lib/parallels/drivers »
    make: *** [build] Erreur 2
    This is the file /usr/lib/parallels/drivers/drv_main/vmmain.h :
    Code:
    /
    #ifndef __VMMAIN_H__
    #define __VMMAIN_H__
    
    #include <linux/slab.h>
    #include "timer.h"
    
    #include "vm_compiler.h"
    #include "ioctls.h"
    
    #include "Types.h"
    #include "PMM.h"
    
    /* proc fs */
    int vmProcInit(void);
    void vmProcDeinit(void);
    
    /* device */
    int vmDeviceInit(void);
    void vmDeviceDeinit(void);
    
    /* pages cache */
    int vmPcacheInit(void);
    void vmPcacheDeinit(void);
    
    /* internal data */
    struct module_param_t *iDataOpen(void);
    void iDataClose(struct module_param_t *);
    void iDataFree(struct module_param_t *);
    
    
    /* monitor exported functions */
    void STD_INTERCOM      *mm_mon_allocMem(long);
    void STD_INTERCOM       mm_mon_freeMem(void *);
    void STD_INTERCOM      *mm_mon_allocContigMem(long);
    void STD_INTERCOM       mm_mon_freeContigMem(void *, long);
    long STD_INTERCOM       mm_mon_representToMonMem(void *, long, void **, void **, void *);
    void STD_INTERCOM       mm_mon_releaseFromMonMem(void *, void *, void *);
    unsigned STD_INTERCOM   mm_mon_getPagesIndex(unsigned long *, int, void *, unsigned, void *);
    #ifndef CALL_MONITOR_FROM_GATE
    long STD_INTERCOM       vm_mon_redirectIRQ(unsigned int);
    #endif
    
    /* exports manager */
    int vmSetExports(struct module_param_t *);
    
    /* Status definition */
    typedef long NTSTATUS;
    #define STATUS_SUCCESS      ((NTSTATUS)0x00000000L)
    #define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)
    #define NT_SUCCESS(Status)  ((NTSTATUS)((Status & 0x80000000) == 0))
    
    /* monitor function typedef */
    typedef NTSTATUS (STDCALL * monitor_funct_t)(void *, int, void *);
    
    /* functions exported to monitor */
    struct extern_funcs_t {
        /* Output debug information  */
        void  STD_INTERCOM      (*logFunction)(char *, ...);
        /* Allocation memory */
        void* STD_INTERCOM      (*allocMem)(long);
        /* Release memory */
        void  STD_INTERCOM      (*freeMem)(void *);
        /* Allocation contig memory */
        void* STD_INTERCOM      (*allocContigMem)(long);
        /* Release contig memory */
        void  STD_INTERCOM      (*freeContigMem)(void *, long);
        /* Representation neccesary Application address area to Monitor
         * Memory lock and mapping */
        long  STD_INTERCOM      (*representToMonMem)(void *, long, void **, void **, void *);
        /* Function cancels fixed memory representation to Monitor address area
         * Memory unlock and unmapping */
        void  STD_INTERCOM      (*releaseFromMonMem)(void *, void *, void *);
        /* Gather indexes of physical pages for virtual address area */
        unsigned STD_INTERCOM   (*getPagesIndex)(unsigned long *, int, void *, unsigned, void *);
    #ifndef CALL_MONITOR_FROM_GATE
        /* redirect IRQ */
        long STD_INTERCOM (*redirectIRQ)(unsigned int);
    #endif
    };
    
    
    /***************** Exports *****************/
    /* exported directly from monitor */
    typedef struct MON_MEM_DESC {
        unsigned int            uPages;
        struct page             **pPages;
        struct vm_area_struct   **vmas;
        unsigned int            pMonAddr;
        unsigned int            bValid;
    } MON_MEM_DESC;
    
    /* exported from Api.h */
    typedef struct MEM_MAP {
        void        *m_pMemPtr;
        void        *m_pMdlPtr;
        void        *m_pMonPtr;
    } MEM_MAP;
    
    typedef struct MEMORY_INFO {
        int             m_MemType;
        unsigned int    m_dwMemSize;
        int             m_bUserMap;
        MEM_MAP         m_MemMap;
    } MEMORY_INFO;
    
    /* monbody */
    #define SYS_MONBODY_MEMORY 201
    
    /* driver info structure */
    struct driver_info_to_mon_t {
        /* monitor start address */
        void *monAddr;
        /* monitor size */
        unsigned monSize;
        /* functions exported to monitor */
        struct extern_funcs_t exportedFunc;
        /* exchange buffer between monitor and driver */
        void *memBuff;
    };
    
    /***************** Exports *****************/
    
    /* module info struct */
    struct module_param_t {
    
        /* Pointer to the start address of Monitor region */
        void *MonAddr;
    
        /* Size of Monitor region */
        unsigned MonSize;
    
        /* driver info for monitor */
        struct driver_info_to_mon_t drvInfo;
    
        /* hires timer */
        struct vmTimer timer;
    
        /* is salt passed ? */
        int saltPassed;
        
        /* exported old stub class */
        struct {
            /* List of Monitor functions */
            monitor_funct_t MonitorFuncs[MONFUNC_COUNT];
    
            /* Pointer to the Monitor state */
            void *pvm;
    
            /* main PMM struct  */ 
            struct pmm_struct_t *PmmData;
    
            /* pmm share buffer saved pointer */
            void *pmmShareBuff;
    
            /* bma phy pages structure */
            struct bma_t *bma;
    
            /* IntGate monitor id */
            unsigned int MonId;
        } iData;
    };
    
    /* global structure */
    struct vm_global_t {
    
        /* array of pages cache */
        struct farray_head *phyPagesCache;
    
        /* random salt */
        char *salt;
        
        struct {
            /* pmm's access mutex */
            struct semaphore pmmAccSem;
            /* list of PMM's */
            struct list_head pmmList;
            /* regions cache */
            kmem_cache *pmmRegionsSlab;
            /* total guest memory */
            unsigned long totalMem;
        } vmPmms;
    
        struct {
            /* max memory limit */
            long overallMemoryLimit;
            /* semaphore for working set calculations */
            struct semaphore wsSem;
            /* Workstations count */
            int wsCount;
            /* pages used by regoins descriptors */
            long regPages;
            /* pages available for vms */
            long vmsPages;
            /* used by all vms */
            long allVmsUsed;
            /* each WS */
            long eachWS;
            /* total pages allocated by all apps */
            long totalAllocated;
        } vmWset;
    };
    
    #ifdef MAIN_MODULE_FILE
     UNUSED struct vm_global_t vmGlobal;
    #else
     extern struct vm_global_t vmGlobal;
    #endif
    
    #include "mm.h"
    
    #endif /* __VMMAIN_H__ */
    Can you help me please ?
     
  4. iMav

    iMav Junior Member

    Messages:
    13
    Thanks, that resolved my issue. Now Parallels is running great under Ubuntu for me.
     

Share This Page