Перекомпиляция VMWare Server при обновлении ядра в Ubuntu

Опубликовано Vladimir - ср, 19.05.2010 - 11:49

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.

Filtered HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br><b><i> <img src alt height width>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

При обновлении ядра linux приходиться каждый раз перекомпилировать модули VMWare Server. При этом могут возникать различные проблемы с vmware-config.pl

Данный скрипт на Python создан для упрощения получения новых заголовочных файлов, удаления старых модулей. Кладется рядом с файлом конфигурации vmware-config.pl в /usr/bin

Для исполнения требуются права root (sudo -s)

Скачать можно здесь

 

#! /usr/bin/python
#
# VMWare Virtual Server Updater (On linux kernel update)
#Copyright: Vladimir Lukianov
# history:
# 2010-03-05 created
# 2010-0519 Added forced removing of mod vmnet

VERSION = "0.1"

'''
Created on 05.03.2010

@author: Vladimir Lukianov (vladimir@lukianov.ru)
'''
import os, commands,subprocess

if __name__ == '__main__':
pass

kernelversion = commands.getoutput("uname -r")

print 'Remove old compiled modules\n'

modulesdir = '/lib/modules/'
vmwaremodulesdir = modulesdir + kernelversion + '/misc/'
modules = ['vmci', 'vmnet','vmmon']
modulesExtensions = ['ko','o']

for modulename in modules:
for ext in modulesExtensions:
path = vmwaremodulesdir + modulename + '.'+ext
print 'check '+path +'\n'
if os.access(path, os.F_OK):
print 'removing '+path
os.remove(path)

print 'remove all vmnet drivers'
subprocess.call(["/sbin/rmmod","vmnet"]);

print 'Install new linux headers\n'

linuxHeadersPackage = 'linux-headers-'+kernelversion
print commands.getoutput("apt-get install "+linuxHeadersPackage)

print 'run config script\n'
subprocess.call(["/usr/bin/vmware-config.pl","skip-stop-start"])

exit(0)