ROS2ではじめよう 次世代ロボットプログラミングの先行販売分を運良く入手できたので、手元のMacBookのParallels DesktopにXubuntu BionicをインストールしてROS2を試しています。
Parallels Desktop 14(バージョン 14.1.3 (45485))でインストールできるParallels Tools(バージョン 14.1.3.45485)をLinux Kernel 5.0以上のLinux環境にインストールしようとすると、以下のエラーが出て、インストールに失敗します。
この問題を解決する方法がParallelsのフォーラムに書き込まれており、その方法でインストールすることができました。Parallelsのバージョンがあがったり、Linux Kernelのバージョン次第ではこの方法が適用できなくなることも想定されますが、ちょっと探した限りでは、この修正方法が日本語ではまとまっていなかったようなので取り急ぎまとめておきます。
動作確認した環境
- Parallels Desktop 14(バージョン 14.1.3 (45485))
- Xubuntu Bionic 18.04.2Linux Kernel 5.0.0-23
修正方法
参考にしたのは以下のページです。
https://forum.parallels.com/threads/kernel-5-0-3.346841/#post-852513
#4の投稿に以下の変更が示されており、その方法を適用することで無事にParallels Tools 14をLinux Kernel 5.0.0のXubuntu Bionic 18.04.2にインストールすることができました。
$ diff -puNr parallels_fixed/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.c parallels_tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.c--- parallels_fixed/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.c 2019-08-11 01:42:47.994961911 +0900+++ parallels_tools/kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.c 2019-08-11 01:41:39.895143829 +0900@@ -116,11 +116,11 @@ static int prlfs_remount(struct super_bl { int ret = 0; DPRINTK("ENTER\n");- if ( (!((*flags) & SB_RDONLY) && PRLFS_SB(sb)->readonly) ||- ((*flags) & SB_MANDLOCK) )+ if ( (!((*flags) & MS_RDONLY) && PRLFS_SB(sb)->readonly) ||+ ((*flags) & MS_MANDLOCK) ) ret = -EINVAL;
- *flags |= SB_SYNCHRONOUS; /* silently don't drop sync flag */+ *flags |= MS_SYNCHRONOUS; /* silently don't drop sync flag */ DPRINTK("EXIT returning %d\n", ret); return ret; }@@ -274,7 +274,7 @@ static int prlfs_fill_super(struct super sb->s_maxbytes = MAX_LFS_FILESIZE; sb->s_blocksize = PAGE_SIZE; sb->s_blocksize_bits = PAGE_SHIFT;- sb->s_flags |= SB_NOATIME | SB_SYNCHRONOUS;+ sb->s_flags |= MS_NOATIME | MS_SYNCHRONOUS; sb->s_magic = PRLFS_MAGIC; sb->s_op = &prlfs_super_ops; PRLFS_ALLOC_SB_INFO(sb);具体的にはDesktopにparallels_fixedというディレクトリを作成し、その中にParallels Toolsのインストーラをコピーして修正し、parallels_fixed内のインストーラを実行してParallels Toolsをインストールするという流れです。
まず、Parallels Toolsのインストーラをマウントし、デスクトップの所定のフォルダに展開します。prl_mod.tar.gzの中のファイルのパーミッションの都合でsudoを付けて圧縮ファイルを展開しました。
mkdir -p ~/Desktop/parallels_fixed/cp -r /media/ubuntu/Parallels\ Tools/* ~/Desktop/parallels_fixed/cd ~/Desktop/parallels_fixed/kmods/sudo tar xvf prl_mod.tar.gz次に、kmods/prl_fs/SharedFolders/Guest/Linux/prl_fs/super.cを編集します。
MS_をSB_に置き換えるだけなので、以下のコマンドで編集できます。
sed -e 's/MS_/SB_/g' -i prl_fs/SharedFolders/Guest/Linux/prl_fs/super.c編集したら、展開元のprl_mod.tar.gzを削除して、編集したファイルで再度圧縮ファイルを作成します。最後にインストーラを起動して、無事にインストールできることが確認できれば終了です。
sudo rm prl_mod.tar.gzsudo tar cvf prl_mod.tar.gz . dkms.conf Makefile.kmodscd .././install-gui
あとがき
XubuntuはUbuntuの軽量版ディストリビューションで、デスクトップ環境にXfceを使用しており、Ubuntuよりも描画の負担が少ないのが特徴です。MacBookで仮想マシンを動かすような状況でも比較的不満なく使えると思いますので、Ubuntuしか使ったことがない方も是非使ってみてください。
関連記事
- (Updated )Raspberry Pi 3にUbuntu 14.04をインストールする方法RaspberryPi2までは公式のファームウェアをmicroSDカードに書き込むだけで使えていました(RaspberryPi2にUbuntu14.04をインストールする方法 | Memoteki)が、RaspberryPi3からはそう簡単ではなくなってしまったので対応方法を2種類メモしておきます。
- docker-composeからNVIDIAのGPUを使う [2021年5月版]docker-composeからNVIDIA GPUを使うための方法を2021年5月時点でまとめた調査メモ。nvidia-docker2の現状とdocker-composeバージョン別の設定方法(runtimeとdevices/capabilitiesの使い分け)を解説。
- docker-composeからRVizを起動するNVIDIAのGPUが有効なLinux環境でdocker-composeからRVizを起動するための設定方法。NVIDIA_VISIBLE_DEVICESとNVIDIA_DRIVER_CAPABILITIESの環境変数設定とdocker-compose.yamlの書き方をdocker-composeバージョン別にまとめた。
- TP-Link AC600 Archer T2U NanoをUbuntu 18.04で使うTP-Link AC600 Archer T2U NanoをUbuntu 18.04で動かすためのドライバインストール手順。aircrack-ng/rtl8812auリポジトリを使うことで解決した方法と、うまくいかなかった方法を記録。
- Raspberry Pi OSのミラーサーバRaspberry Pi OS(旧Raspbian)のミラーサーバ一覧のメモ。日本国内のdebianパッケージミラーとOSイメージのJAISTミラーURLをまとめた。