概要
自宅に余っているPCパーツを活用してHermesAgentを立ち上げていきます
その記録メモです
今回はLM Studioをインストールする編です
今回できること
・Bubblewrap (bwrap)を利用してのLM Studioの起動
サンドボックス環境でLM Studioを実行するので、他に影響をあたえない
流れ
・NVIDIAのドライバがインストールされているか、確認
・LM Studioアプリケーションのダウンロード
・Bwrapの設定とLM Studioの起動
・LM Studioの設定と確認
・HermesAgentと接続させるための設定
・LM Studioの自動起動の設定
NVIDIAドライバの確認
最初にNVIDIAのドライバが正常動作しているかの確認です
GPUが動作していないとLLMが早く処理できないからです
確認方法は2つ
・設定から確認する方法
・ターミナルから確認する方法

設定から確認するには以下の通り
・設定をクリック
・システムを選択
・システム詳細をクリック
・上記画面のように表示
→HW情報のグラフィックに「RTX3060」があるので、インストールを確認

ターミナルで確認する場合は以下の通り
・ターミナルでnvidia-smiを実行
・上記のようにインストールされているドライバとボード(RTX3060)が表示される
LM Studioのダウンロード
次はLM Studioのアプリのダウンロードです
・UbuntuのFirefoxを起動
・URLは「https://lmstudio.ai/download」

・Firefoxを起動

・https://lmstudio.ai/download に移動
・Download LM Studio for Linux(AppImage)をクリック

・ターミナルでダウンロードを確認

・無事成功♪
Bwrapの設定とLM Studioの起動
そしてサウンドボックスのBwrapを設定と起動を行います
このサウンドボックス上でLM Studioは動作します
・必要なパッケージのアップデートとインストールを行う
sudo apt update
sudo apt install -y bubblewrap libfuse2t64 desktop-file-utils

・インストールできたので、設定していく
・LM Studioは「Applications」のフォルダに保存・実行させていく

・LM Studioのワークエリアを確保
mkdir -p ~/.local/share/lm-studio-sandbox/home
mkdir -p ~/.local/share/lm-studio-sandbox/runtime

・フォルダが作成できたのでスクリプトをつくります
・nano ~/Applications/launch-lmstudio.sh を実行

以下のスクリプトを貼り付ける
#!/bin/bash
# 隔離されたホームディレクトリのパス
SANDBOX_HOME="$HOME/.local/share/lm-studio-sandbox/home"
XDG_RUNTIME_DIR_SANDBOX="$HOME/.local/share/lm-studio-sandbox/runtime"
# AppImageを一旦展開せずに実行するための環境変数
export APPIMAGE_EXTRACT_AND_RUN=1
bwrap \
--ro-bind / / \
--dev /dev \
--proc /proc \
--tmpfs /tmp \
--tmpfs /run \
--bind "$SANDBOX_HOME" "$HOME" \
--bind "$XDG_RUNTIME_DIR_SANDBOX" "$XDG_RUNTIME_DIR" \
--ro-bind-try /run/systemd/resolve/stub-resolv.conf /run/systemd/resolve/stub-resolv.conf \
--ro-bind-try /run/systemd/resolve/resolv.conf /run/systemd/resolve/resolv.conf \
--share-net \
--die-with-parent \
--dev-bind-try /dev/dri /dev/dri \
--dev-bind-try /dev/nvidia0 /dev/nvidia0 \
--dev-bind-try /dev/nvidiactl /dev/nvidiactl \
--dev-bind-try /dev/nvidia-modeset /dev/nvidia-modeset \
--dev-bind-try /dev/nvidia-uvm /dev/nvidia-uvm \
--dev-bind-try /dev/nvidia-uvm-tools /dev/nvidia-uvm-tools \
--ro-bind-try "$XDG_RUNTIME_DIR/wayland-0" "$XDG_RUNTIME_DIR/wayland-0" \
--ro-bind-try "$XDG_RUNTIME_DIR/wayland-0.lock" "$XDG_RUNTIME_DIR/wayland-0.lock" \
--bind-try "$XDG_RUNTIME_DIR/bus" "$XDG_RUNTIME_DIR/bus" \
--ro-bind-try /run/dbus/system_bus_socket /run/dbus/system_bus_socket \
--ro-bind-try /tmp/.X11-unix /tmp/.X11-unix \
--ro-bind-try "$HOME/Applications/LM-Studio.AppImage" "$HOME/Applications/LM-Studio.AppImage" \
"$HOME/Applications/LM-Studio.AppImage" --no-sandbox

・CTL+xで保存し、実行権限を付与
・launch-lmstudio.shを実行してLM Studioを起動させる

・起動画面は以下となります
※実際は何度かトライアンドエラーを行い動作させてます

LM Studioの設定と確認
・Get Startedで設定していく

・gemmaを推奨されるけど、ここはスキップ

・この設定は初期設定のまま、次へ

・何もないのでModel SearchでLLMモデルを選択する

・とりあえず、Gemma4 12B QATを試しみる
・Gemma4 12B QATをダウンロード

・ダウンロードできたら設定します

・LoadしてLM Studioに設定します

・右側のLoadタブにてContextLengthを16384にする(今後調整していきます)
・下のボタンReload apply changesをクリック

・チャット画面に移り、「こんにちは」で動作確認する

・反応があったので無事成功♪


HermesAgentと接続させるための設定
・HermesAgentと接続できるようにLM Studioをサーバ化しておきます
・左側のDevelopで中央上部のSeverSettingを選択
・Serve on Local Network、Enable CORSをオンにする

・次に隣のStatus:Stoopedを押し、サーバを起動させる

・ここでアドレスが「http://192.168.2.3:1234」になっていること確認
LM Studioの自動起動化
・LM Studioが自動起動するように設定します
今回はターミナルで設定を登録しますが、GUI(Startup Applications)でも可能です
・以下のスクリプトを実行します
※Exec=/home/YOUR_USERNAME/Applications/launch-lmstudio.shの行は環境に合わせて修正ください
mkdir -p ~/.config/autostart
cat << 'EOF' > ~/.config/autostart/lmstudio-sandbox.desktop
[Desktop Entry]
Type=Application
Exec=/home/YOUR_USERNAME/Applications/launch-lmstudio.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=LM Studio Sandbox
Comment=Run LM Studio securely inside Bubblewrap on startup
EOF
sed -i "s/YOUR_USERNAME/$(whoami)/g" ~/.config/autostart/lmstudio-sandbox.desktop

・再起動して起動するか確認です

・再起動後、LM Studioが自動起動してきます
ただし、モデルは自動ロードされないので、都度、モデルをロードすることになります(なんじゃこの仕様は!?
まとめ
・LM StudioのインストールでHermesAgentを起動させるための環境が整いました
・次回はHermesAgentをインストールしていきます

コメント