如何在服务器容器中安装Isaac Sim?
由于服务器容器的系统环境和显卡驱动存在特殊性,安装Isaac Sim相比于普通机器存在一些需要注意的地方,因此这里给出初步解决方案。目前可以在服务器端Ubuntu 22.04的容器中启动Isaac Sim,但不保证后续使用中不出现其他问题。本方案针对Isaac Sim的版本为4.2。
0. 生成新容器
该步骤与之前在服务器建立容器的内容有重叠,仅供记录备份,容器使用者请直接跳至步骤1。
在服务器端,打开终端后,通过如下操作建立新的容器:
$lxc launch local:templateUbuntu2204 [containerName] --profile default --profile weiProfile
$lxc list
$lxc stop [containerName]
$lxc config device override [containerName] eth0 ipv4.address=[containerIP]
$lxc config device add [containerName] [proxyName1] proxy listen=tcp:[hostIP]:[hostPort1] connect=tcp:[containerIP]:22 bind=host
$lxc config device add [containerName] [proxyName2] proxy listen=tcp:[hostIP]:[hostPort2] connect=tcp:[containerIP]:3389 bind=host
$lxc start [containerName]
$lxc exec [containerName] bash
进入容器后,设置root和ubuntu账户的密码:
$passwd root
$passwd ubuntu
完成后退出容器:
$exit
1. 通过ssh配置远程桌面
通过ssh远程连接至服务器容器:
$ssh -X ubuntu@[hostIP] -p [hostPort1]
更新系统软件:
$sudo apt update
$sudo apt upgrade
安装桌面环境ubuntu-desktop:
$sudo apt install --no-install-recommends ubuntu-desktop
安装远程桌面协议xrdp:
$sudo apt install xrdp
完成后退出ssh连接:
$exit
2. 通过远程桌面配置系统环境
可以通过Windows系统自带的Remote Desktop Connection软件进入服务器容器的远程桌面:
打开RDC软件后,在对话框计算机(Computer)一栏中输入[hostIP]:[hostPort2],在对话框用户名(User name)一栏中输入ubuntu,完成后点击连接;
随后出现远程连接的登录界面,输入服务器容器ubuntu用户的登录密码,点击ok后即可进入容器;
随后可能还会出现服务器容器系统的登录界面,再次输入ubuntu用户的登录密码,点击授权后进入系统。
由于桌面环境没有安装额外的推荐软件(即上述--no-install-recommends指令),所以比较简陋(事实上,进行完整安装会出现一些报错,不建议)。可以通过快捷键Ctrl+Alt+T打开终端,安装Chrome浏览器(不要用firefox,与Isaac Sim登录不兼容):
首先,显示用户目录下文件夹的可读、可写、执行权限
$cd ~
$ls -l
如果Downloads文件夹不可写,需要增加其可写权限
$sudo chmod a+w ~/Downloads
进入Downloads文件夹
$cd ~/Downloads/
下载Chrome浏览器安装包到Downloads文件夹(不需要科学上网)
$wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
安装Chrome浏览器依赖包fonts-liberation和xdg-utils
$sudo apt install fonts-liberation
$sudo apt install xdg-utils
安装Chrome浏览器
$sudo dpkg -i google-chrome-stable_current_amd64.deb
安装完毕后,在系统程序列表中(按下键盘上的Windows键调出程序列表)找到Chrome浏览器并启动,设置钥匙串管理密钥,设置Chrome为默认浏览器,取消自动分享使用数据,继续按照提示打开浏览器。此时若登录百度、知乎等中文网站会发现汉字显示为乱码,这是因为系统缺少对应字体,需要进行安装:
$sudo apt install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming
安装完成后再打开中文网站可以看到汉字已经显示正常。
3. 通过远程桌面安装Isaac Sim
若要查询官方安装教程,可参见如下网页:
https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_workstation.html#
此处重复描述一遍安装流程,对细节给予确认。
通过如下链接在Chrome浏览器中下载Omniverse Launcher的安装包:
https://install.launcher.omniverse.nvidia.com/installers/omniverse-launcher-linux.AppImage
下载后的安装包应该默认保存在/home/ubuntu/Downloads/文件夹,进入文件夹后通过如下命令查看文件权限:
$ls -l
可以看到安装包不具备执行(x)权限,因此暂且通过双击程序图标无法运行,需要进行更改:
$sudo chmod +x omniverse-launcher-linux.AppImage
执行完成后即可双击程序图标运行程序,进入登录界面。
输入英伟达账号后(没有请事先申请),会自动通过默认浏览器打开对应登录网页(这就是为什么不能用firefox的原因,因为不会自动跳转),输入账号对应的密码后即可登录。首次登录需要邮件确认,因为是陌生IP。点击邮件中的校验链接后,浏览器端会自动跳出确认窗口,选择打开Omniverse Launcher即可,此时软件端会跳出会话窗口一路确认即可正式进入软件。(貌似这个时候如果在使用科学上网也会有问题,有待进一步确认;建议关闭,全程不需要)
进入Omniverse Launcher后,选中EXCHANGE标签,然后在搜索栏中依次搜索isaac sim、omniverse cache、omniverse nucleus navigator并进行安装。
安装完毕后,在LIBRARY标签中选择ISAAC SIM并点击Launch是无法启动的,因为存在系统环境问题,这点可以通过在终端中启动Isaac Sim进行验证,方法如下:
Isaac Sim的默认安装位置在/home/ubuntu/.local/share/ov/pkg/isaac-sim-X.X.X/文件夹,因此通过运行如下命令可以从命令行启动,即
$cd /home/ubuntu/.local/share/ov/pkg/isaac-sim-X.X.X/
$./isaac-sim.sh
可以看到系统会给出报错信息,类似于
X Error of failed request: GLXBadFBConfig ...
原因是环境变量错误,而将启动命令修改为如下形式即可成功启动Isaac Sim:
$MESA_GL_VERSION_OVERRIDE=4.6 ./isaac-sim.sh
理论上也可以通过修改.bashrc文件来简化指令,不再赘述。至于在后续使用过程中是否还有其他问题有待进一步测试。