ubuntu18.04上でVirtualBOX経由でFusion360をインストールするのに試した事項のまとめ

#はじめに

Linux上でWindowsアプリを動かすニーズがどの程度あるかわかりませんが、Fusion360だけでなくWindows専用アプリをubuntu上のVirtualBOXで動かすという使い方も意外と簡単かつ便利そうなので、防備録として作業手順の一部を記録します。

ちなみに、ubuntu16の時代には、WineでのFusion360インストールの成功事例が報告されていますが、現在は、どうにもうまく行かないようです。[^1]

[^1]: [Fusion360をLinuxで使いたかった – ししかわのマウス研修 Part.26 (アールティ 移動型ロボットブログ)](https://rt-net.jp/mobility/archives/12104)

#PC環境

[NEC PC-LS550F26W](http://153.127.246.254/pdf/2013-06-28/107601.pdf)（発売日：2012/3/6 ＞ 2018年頃に中古で購入）
HDD750GBは、SDD256GBに換装。

(2021/3/9修正)
・メモリを 4GB x 2 (8GB) から 8GB x 2 (16GB) に載せ替えたところ、Windows10でもフルスクリーンで Fusion360 を実用レベルで動かせるようになりました。

- OS

```
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic
```

- CPU

```
$ sudo lshw -class processor
  *-cpu                     
       詳細: CPU
       製品: Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
       ベンダー: Intel Corp.
       物理ID: 22
       バス情報: cpu@0
       バージョン: Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz
       スロット: Micro-FCPGA
       サイズ: 1591MHz
       容量: 3GHz
       幅: 64 bits
       クロック: 100MHz
       性能: x86-64 fpu （略）
       設定: cores=2 enabledcores=2 threads=4
```
２コア/４スレッドです。

- メモリ

```
$ sudo dmidecode --type memory
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x001C, DMI type 16, 23 bytes
Physical Memory Array
	Location: System Board Or Motherboard
	Use: System Memory
	Error Correction Type: None
	Maximum Capacity: 8 GB
	Error Information Handle: Not Provided
	Number Of Devices: 2

Handle 0x001D, DMI type 17, 34 bytes
Memory Device
	Array Handle: 0x001C
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: DIMM1
	Bank Locator: Bank 0
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Samsung
	Serial Number: 4445326D
	Asset Tag: 0123456789
	Part Number: M471B5273CH0-CH9  
	Rank: Unknown
	Configured Clock Speed: 1333 MT/s

Handle 0x001F, DMI type 17, 34 bytes
Memory Device
	Array Handle: 0x001C
	Error Information Handle: Not Provided
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 4096 MB
	Form Factor: SODIMM
	Set: None
	Locator: DIMM2
	Bank Locator: Bank 1
	Type: DDR3
	Type Detail: Synchronous
	Speed: 1333 MT/s
	Manufacturer: Samsung
	Serial Number: 4445326D
	Asset Tag: 0123456789
	Part Number: M471B5273CH0-CH9  
	Rank: Unknown
	Configured Clock Speed: 1333 MT/s
```

カタログ上のメモリ規格は、DDR3 PC3-10600（最大は、8GB） で、スロットは 2 です。現在は、4GB x 2 で使用しています。16GBへのアップグレードを検討中です。

#実際に試した事項のまとめ（時系列）

###1. VirtualBOXの準備

apt でVirtualBOXをインストールできますが、そのままでは最新ではなくバージョン5だったので、アプリケーションのレポジトリにVirtualBOXのダウンロードサイトを加えて、再度 aptから最新のバージョン6.1を入れ直しました。

```
$ sudo su -c 'wget -q -O- http://download.virtualbox.org/virtualbox/debian/oracle_vbox_2016.asc | apt-key add -'
$ sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib"
$ sudo apt update
$ sudo apt remove virtualbox*
$ sudo apt install virtualbox-6.1
```

（参考）
- [How to upgrade Virtualbox 5.1 to current version (Win10 Guest)?](https://askubuntu.com/questions/1111074/how-to-upgrade-virtualbox-5-1-to-current-version-win10-guest)
- [Debian/Ubuntu APT error: NO_PUBKEY A2F683C52980AECF](https://forums.virtualbox.org/viewtopic.php?f=7&t=77492)

###2. VirtualBOXでの各種設定とインストール (第１回目)

VirtualBOXインストール後、Windows起動用の設定をこちらの記事を参考に設定しました。
- [VirtualBoxでUbuntuの上でWindows10を超高速に動かす](https://webnetforce.net/virtualboxdeubuntuno-shangdewindows10wo-chao-gao-s/)
- [図解！ Oracle VirtualBoxが重い/遅いときの対処方法 | 仮想マシンソフト](https://aresei-note.com/8255)

（実際の設定）
    - ブラウザ：Microsoft Edge
    - メモリ：5129KB
    - CPU: 2
    - ディスクはVDI、固定：50GB

###3. スクリーン設定

せっかくなので、PC画面をフルスクリーンで使いたかったので、こちらの記事を参考にVBoxWindowsAdditionの設定とWindows10へのVboxの追加ソフトのインストールをしました。
- [VirtualBoxを大画面で使う（Guest Additions）](http://exlight.net/linux/vbox_guest_additions/)

(実際の設定)
　　- ディスプレイの解像度：　1366 x 768

###4. USB設定／プリンタ(Brother HL-2240D)ドライバーのインストール

- [VirtualBoxでのUSBデバイス認識](https://qiita.com/civic/items/684c4b82428feb0c4ae1)

ubuntuでOracleのサイトからダウンロード拡張パックをインストールして、vboxusersグループにユーザを登録しないとホストのUSBをゲストで認識しません。私は、プリンタがブラザー製なのでWindows用のドライバをダウンロードしてイントールを開始し、途中で「プリンタデバイスを繋いで電源を入れて」との指示で、VirtualBOXのメニューから「デバイス」＞「USB」から該当のプリンターデバイスにチェックを入れると、Windows側でUSBが接続されたという扱いになってドライバのインストールが完了しました。

また、USB機器の接続認識をさせるためにはVirtualBOXのCPUの設定を「1」にするとよい、という記事（かなり古い）は、私の場合は全く関係なく、CPUは「２」のままで問題ありませんでした。

###5. VirtualBOX上のWindows10へのFusion360のインストール

第１回目Windows10へのFusion360インストールの結果は、インストールはできましいたが、実際に大きなf3dファイルを読み込もうとする[^2]とシステムが落ちるというどこか懐かしいWindowsらしい結果になり、実用的とは言えませんでした。小さなファイルを読み込むことはできましたが、そもそもWindows１０のインストールにも相当な時間がかかり、スクリーンの拡大やExtensionパックなどを導入したせいか、Fusion360のユーザーログイン画面が上下逆に表示されるなど、不思議な減少が多発しました。おそらく、メモリー容量の影響かとは思います。読み込みできたファイルのSTEPファイルでのエクスポートは可能でした。

[^2]: 今回、Fusion360導入の決定的な理由となったのは、PLENプロジェクトを紹介している「Fusion360 マスターズガイド ベーシック編」（2018/8/20 ソーテック社）のChapter 6 にある「ロボットの組み立てと図面を作ろう」という記事をみつけたことです。大きなファイルとは、「ぴーこあロボ_スタート.f3d」という14.9MBのファイルです。読み込みできたのは「右手_ぴーこあロボ.f3d」という225.7KBのファイルです。

###6. VirtualBOXへのWindows8.1の導入とFusion360のインストール

[Autodesk Fusion 360 の動作環境](https://knowledge.autodesk.com/ja/support/fusion-360/learn-explore/caas/sfdcarticles/sfdcarticles/JPN/System-requirements-for-Autodesk-Fusion-360.html)をあらためて見てみると、Windows系でサポートされているOSは、Windows10だけでなく、Windows8.1も対象です。CPUパワーとメモリ不足という絶対的に不利な状況ですが、Windows8.1なら、このPCの世代に限りなく近いOSと言えます。そこで、スクリーンサイズもUSBについても贅沢を言わず、ただひたすらにFusion360で大きなf3dファイルを読み込むことだけを目標にWindows8.1をVirtualBOXにインストールしてみることにしました。

VirtualBOXは、初期設定は、上記とほぼ同じ。ディスクは、固定ではなっく可変で40GBに設定しました。ディスプレイ設定は、Windowsインストール後も変更せず。

最後に、Fusion360のセットアップファイルを実行するとエラーがでました。

> コンピュータにapi-ms-win-crt-string-l1-1-0.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。

早速、このライブラリをネットで検索したところ、[AutodeskのKB](https://knowledge.autodesk.com/ja/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/JPN/The-program-can-t-start-because-api-ms-win-crt-runtime-l1-1-0-dll-is-missing-from-your-computer.html)がありました。「C ++ライブラリをインストール」とありますが、このライブラリは、Windows10のCランタイムのようです。以下のサイトからZIP圧縮のUpdateファイルをダウンロードして、解凍するとOSとCPUの種類ごとに別れたインストールファイルがありますので、それをインストールするだけでうまく行きました。

https://answers.microsoft.com/ja-jp/windows/forum/all/api-ms-win-crt-runtime-l1-1/a755fb75-2338-4045-9fd5-4c69725198b1

結果として、VirtualBOX上のWindows8.1にFusion360をインストールして、上記の大きなファイルも読み込むことができることを確認しました！

###7. VirtualBOXへのWindows10の再導入とFusion360のインストール

今度は、VirtualBoxでインストールしたWindowsをExtensionなどでいじらずに素のままでFusion360を導入して見たところ、上記の大きなファイルを読み込み、STEPファイルへのエクスポートもできました。動作は、Windows8.1のほうが少しだけ軽い印象です。とすると、メモリを増設すれば少しは動作改善にはなるかもしれません。

###8.結論

月並みですが、当分は、Windows10とWindows8.1の両方の環境をそのまま維持して、いろいろな別なアプリケーション類も試してみるつもりです。


#おわりに

自宅の個人PCでubuntuをメインPCとして使い始めて半年くらいで使い方に慣れたこともあり、Windowsから完全に離脱してしまいました。個人では、主にプログラム開発以外はネットサーフィン（死語？）くらいしかしないのと、古い中古のPCに少し無理やりWindows10を使っていたこともあってスペックも少し不足気味だったことも理由としてあります。utuntuでは、大抵のことはオープンソースで提供されているソフトがaptで簡単にインストールできるし、何より世界中のユーザが同じような場面で同じような疑問をネット上で解決しているので、私のようなLinux初心者でもインターネットに接続できる環境なら大抵の問題は解決できるからです。

もちろん、過去に有償で購入したWindowsアプリが使えなくなるのは少し惜しいのですが・・・

しかし、最近、ヒューマノイドロボットの方に足を踏み入れた途端、大きな問題に直面しました。はい、CADソフトの互換性の問題です。Linuxで動作するCADソフトとしては、FreeCADという素晴らしいソフトがあり、今もこちらをメインに学習中で、まだ学習を始めたばかりということもあって特に機能不足を感じることはありません。FreeCADで自分でモデリングするだけなら個人の趣味の範疇なら当分はこれで十分なんじゃないかと今でも思っています。

しかし、ヒューマノイドロボットの「流行り」の時期は、おそらく2015年以前のようです。今は、なんとなくですが、ロボットへのAIの応用が円熟しつつある感じで、機械力学的な部分は最先端という感じではないですね。

ただし、個人的には、興味のあるロボットのオープンソースのプロジェクトがあります。いずれも古いものですが・・・

- [Poppy Project](https://www.poppy-project.org/en/)
ヒューマノイドのプロジェクトは、特に腰回りのサーボの組み方が面白そうです。３Dプリンタでフレームを自作できますし、３D CADモデルも、SolidWorkファイルだけでなくSTEPファイルも公開されています。更に、子供向けロボットアームのプロジェクトpoppy Ergo Jrというのがあります。こちらは、raspberry pi でも動かせる Arduino や Scrach でプログラムを組める用になっています。要するに、Dinamixelのサーボ用のAPIが同社から提供されているのでそれを使ってプログラムをすることが想定されているようです。私は、そんな高価なサーボモータを実際に何個も入手できるほどの余裕はないので、CADデータを弄くりながら遊びたいと思っています。

- [PLEN Project](https://github.com/plenprojectcompany)
PLEN Projectは、日本のプロジェクトですが、少しだけ ROS に関係している部分もあるようです。いずれも古いものではありますが、趣味で扱うにはちょうどいいレベルなのでCADで遊ぶのが楽しみです。ちなみに、PLENプロジェクトで用意されているサーボの調整設定用アプリもやはりWindows用のみでした（涙）。