核心更新,vmware player又編譯出錯了。

2021-06-29 08:27:50 字數 1863 閱讀 3854

就是vmnet這個傢伙,正式的要等vmware-player更新了。

和以前一樣使用patch。

$ curl  -o /tmp/vmnet-3.19.patch
但,這常常是不可以的。

patch內容為:

diff -ur vmnet-only.a/driver.c vmnet-only/driver.c

--- vmnet-only.a/driver.c 2014-11-20 20:13:56.000000000 -0500

+++ vmnet-only/driver.c 2015-02-09 15:40:10.916640592 -0500

@@ -265,10 +265,17 @@

return ret;

+#else

+ if (filp && filp->f_op && filp->f_op->ioctl == vnetfileopioctl)

+ return ret;

+#endif }

@@ -1191,11 +1198,19 @@

struct inode *inode = null;

long err;

+#if linux_version_code < kernel_version(3, 19, 0)

if (filp && filp->f_dentry)

err = vnetfileopioctl(inode, filp, iocmd, ioarg);

return err;

+#else

+ if (filp && filp->f_path.dentry)

+ err = vnetfileopioctl(inode, filp, iocmd, ioarg);

+ return err;

+#endif

} #endif

diff -ur vmnet-only.a/userif.c vmnet-only/userif.c

--- vmnet-only.a/userif.c 2014-11-20 20:13:56.000000000 -0500

+++ vmnet-only/userif.c 2015-02-09 15:41:02.150847338 -0500

@@ -523,7 +523,13 @@

.iov_base = buf,

.iov_len = len,

};+#if linux_version_code < kernel_version(3, 19, 0)

return skb_copy_datagram_iovec(skb, 0, &iov, len);

+#else

+ struct iov_iter to;

+ iov_iter_init(&to, read, &iov, 1, len);

+ return skb_copy_datagram_iter(skb, 0, &to, len);

+#endif

}

解壓vmnet源**:

$ cd /usr/lib/vmware/modules/source

# tar -xf vmnet.tar

應用補丁:

# patch -p0 -i ~/downloads/vmnet-3.19.patch
重新壓縮:

# tar -cf vmnet.tar vmnet-only
刪除源**:

# rm -r *-only
重新編譯模組

# vmware-modconfig --console --install-all

更新Linux核心

查詢linux核心 選擇較新的核心 sudo apt get install linux source 4.15.0 tar jxv f linux source 4.15.0.tar.bz2 c usr src kernels 解壓後的檔案 如果是第一次編譯核心,我們使用以下命令來清除編譯過程的目...

禁止核心更新

檢視已安裝核心 dpkg get selections grep linux image 1檢視正在使用的核心 uname a 1刪除舊核心 sudo apt get remove linux image x.xx.x xx generic sudo apt get remove linux ima...

Linux更新核心步驟

cd linux 2.6.18 進入到 usr src linux 2.6.18目錄下 make mrproper 該命令可確保源 目錄下沒有不正確的.o檔案 make menuconfig 配置核心各選項 在 usr src linux 2.6.18目錄下,執行以下命令即可編譯。編譯需要一段時間,...