スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VMWareでhostとのファイル共有ができなくなって…対処

更新: (2015/03/06) preを挟んでなかったので変更箇所が見づらいかったのを修正
更新: (2015/04/28) 確認のmake をしたあと make cleanをしておいた方が良いので追記しました。
更新: (2015/05/08) make clean は、必ず実行してください。次回 make でコンパイルされなくなってしまいます。

linuxのkernelが新しくなり
(自分は、ubuntuの更新でアップされた)

kernel が更新されると vmwaretoolも再インストールする必要がある。
しかし再インストールしても、ファイル共有が出来なくなった…(2015/3/3)

$ sudo ./vmware-install.pl -d


で途中に以下のエラーが出ていて作成されないファイルがあった!

include/linux/list.h:710:35: error: ‘struct dentry’ has no member named ‘d_alias’


エラーへの対処を検索して、ビンゴな回答が無い・・・
仕方ないので、少し該当の inode.c をエラーが出ている関数回りをみて
自分なりの回答を得た結果をまとめてみた^^


自分が試したのは
VMWarePlayerは 6.0.5 と VMWarePlayer 7.1 で
VMwareTools-9.6.4-2441333.tar.gz (VMWarePlayer 6.0.5)
VMwareTools-9.9.2-2496486.tar.gz (VMWarePlayer 7.1)
を使用(両方とも変更する場所が少し違うが、対処する内容は同じ)


vmware-install.pl があるディレクトリーから
$ cd lib/modules/source/
$ tar xf vmhgfs.tar
$ cd vmhgfs-only
$ make
....
include/linux/list.h:710:35: error: ‘struct dentry’ has no member named ‘d_alias’

vmware-install.pl で出ていたエラーが出ている事が確認できた。
では、該当のエラーを修正する。

$ chmod 666 inode.c
$ vi inode.c

//// (VMwareTools-9.9.2-2496486.tar.gz の inode.c の場合 1921行)
//// (VMwareTools-9.6.4-2441333.tar.gz の inode.c の場合 1916行)


#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
p,
#endif
&inode->i_dentry,
d_alias) {
int dcount = hgfs_d_count(dentry);
if (dcount) {
LOG(4, ("Found %s %d \n", dentry->d_name.name, dcount));
return HgfsAccessInt(dentry, mask & (MAY_READ | MAY_WRITE | MAY_EXEC));
}

↓↓↓↓↓↓↓↓ へ変更する → d_alias) { の行が問題の行


#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
p,
#endif
&inode->i_dentry,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 66)
d_alias
#else
d_u.d_alias
#endif
) {
int dcount = hgfs_d_count(dentry);
if (dcount) {
LOG(4, ("Found %s %d \n", dentry->d_name.name, dcount));
return HgfsAccessInt(dentry, mask & (MAY_READ | MAY_WRITE | MAY_EXEC));
}

変更は、以上です^^

では、inode.c を保存をして



$ make
・・・・
cp -f vmhgfs.ko ./../vmhgfs.o

エラーが出ないことを確認 (最後に上の行が出ていればOK!)

(追記: 2015/04/28 (make clean))
makeで不要ファイルが出来ているので make cleanを実行
(必ず実行してから圧縮しないと次回コンパイルがかからなくなってしまいます)
$ make clean


以下で vmhgfs.tar を削除して作り直します。

$ cd ..
$ rm vmhgfs.tar
$ tar cf vmhgfs.tar vmhgfs-only
$ cd ../../..

では、vmwaretoolの再インストールする。
$ sudo ./vmware-install.pl -d

途中出ていたエラーも消えてインストール完了!!





WEBを検索していて気がついたのだが、この辺の変更が引っかかったのは

今回が初めてでは、無いって事と、inode.c を見ていると変更が痛々しいwww


スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

Author:☆あきき☆
FC2ブログへようこそ!

最新記事
最新コメント
月別アーカイブ
カテゴリ
カレンダー
12 | 2017/03 | 01
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。