2026/02/14

OpenHandsをローカルLLMで動かす(その2)

1年くらい前にOpenHandsをローカルLLMで動かしてみましたが、ローカルLLMの能力が低くて今ひとつでした。

ローカルLLMの能力も少し上がってきたようですので、再度試してみることにしました。

ollmaの準備


前回と基本的には同じです。

今回はモデルにdevstral-small-2:latestを使ってみることにしました。

気をつける点は、コンテキスト長をデフォルトから変更するというところです。

まずollamaのdockerコンテナ内で /root/.ollama/models/DevstralSmall2Ctx16k というファイルを作ります。中身は
FROM devstral-small-2:latest
PARAMETER num_ctx 16384
です。作成後、
$ ollama create devstral-small-2-16k -f /root/.ollama/models/DevstralSmall2Ctx16k.Modelfile
にて、ollamaにモデルを認識させます。すると
$ ollama list
NAME                                           ID              SIZE      MODIFIED      
devstral-small-2-16k:latest                    3360cd1e87b5    15 GB     5 hours ago
のような行が追加されるはずです。

これでollamaの準備は完了です。

OpenHandsの準備


https://docs.openhands.dev/openhands/usage/run-openhands/local-setup に従って進めるだけです。 具体的には
$ uv tool install openhands --python 3.12
$ openhands serve
だけで完了です。事前にuvの準備は必要です。

次に、 http://localhost:3000/settings にアクセスして、AdvancedをONにしたうえで、以下のように設定します。 https://docs.openhands.dev/openhands/usage/llms/local-llmsを参考にしています。

設定名設定値
Custom Modelopenai/devstral-small-2-16k:latest
Base URLhttp://192.168.xxx.yyy:11434/v1
API Keyollamaで動いているので何でも良い
以上が設定できると、会話画面にて
hello
と入力すると、
Hello! How can I assist you today?
のように出力されます。

注意するところは、Custom Modelの設定値の最初をollama/ではなくopenai/とする点と、Base URLの最後を:11434ではなく:11434/v1にする点です。 もし間違うと、中途半端に動きます。指示を出す画面で例えば

hello
と入力すると、
{"name": "finish", "message": "Hello! How can I assist you today?"}
のようにjsonの文字列がそのまま画面上に出力されてしまいます。

以上でとりあえずは動くようになりました。しかし、なかなか言うことを聞いてくれません。コマンドを特定できているのに実行しなかった場合に「実行して!」と頼んでも

I cannot execute commands without a specific task or context. Please provide me with a clear instruction or task so I can assist you effectively. 
とか言われるので、コンテキスト長が16k程度では全然足りていないのかもしれません。

2026/02/11

RTX 5060 TiをUbuntu24.04で動かす

GeForce RTX 5060 Ti を Ubuntu24.04 のPCで動かそうとしたら、とても手間がかかったので、メモとして残しておきます。

ブート


CSM (Compatibility Support Module) ブートでは動かないです。UEFIによるブートにする必要があります。

確かデフォルト設定でUbuntu24.04をインストールしていたのですが、UEFIによるブートになっていませんでした。

そのため、どうにかしてUEFI用として550MiBのパーティションを作る必要があります。今回は運良く空き領域が残っていましたので、gpartedでパーティションを作りました。 フォーマットはfat32で、ESPフラグを付けます。

その後、マウントしてgrubのインストールをします。

$ sudo mkdir -p /boot/efi
$ sudo mount /dev/your-partition-name /boot/efi 
$ sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu
そして
$ ls -la /boot/efi/EFI/ubuntu/
にてgrubx64.efiがあればうまくインストールできていることが確認できます。

$ sudo update-grub
にて更新して、/etc/fstabに以下のような内容を追記します。
UUID=XXXX-XXXX /boot/efi vfat umask=0077 0 1 
UUIDは8桁のもので良いようです。

カーネルとドライバ


これでブートはするものの、5060Tiを5060Tiとして認識してくれません。動くドライバと動かないドライバがあるようです。 ただ、このあたりの情報が2025年6月あたりの情報ばかりで、最近の情報があまりネット上では見つかりませんでした。

そこで、試したパターンのうち記録に残していたものについて、ここに残しておきます。筆者の環境ではこうなるというだけで他の環境でもこうなるとは限りませんのでご注意ください。

nvidia-driver-linux-image-結果
画面マウスカーソルネットワークnvidia-smi
5906.17.0-1004-nvidia真っ黒で左上の
キャレットも表示されない
---
5906.17.0-14-generic真っ黒で左上の
キャレットも表示されない
---
5906.14.0-1015-nvidiaGUI付きで起動する動く記録なし失敗
5906.14.0-37-genericGUI付きで起動する動かない記録なし失敗
5906.11.0-1016-nvidiaGUI付きで起動する動かない動かない失敗
5906.11.0-29-genericGUI付きで起動する動く動く失敗
5906.8.0-1045-nvidiaGUI付きで起動する動く動く失敗
5906.8.0-100-genericGUI付きで起動した動かない動く失敗
590-open6.17.0-1004-nvidiaGUI付きで起動する動く動く失敗
590-open6.17.0-14-genericGUI付きで起動する動く動く失敗
590-open6.14.0-1015-nvidiaGUI付きで起動する動く動く失敗
590-open6.14.0-37-genericGUI付きで起動する動かない動かない失敗
590-open6.11.0-1016-nvidiaGUI付きで起動する動かない動かない失敗
590-open6.11.0-29-genericGUI付きで起動する動く動く失敗
590-open6.8.0-1045-nvidiaGUI付きで起動する動く動く失敗
590-open6.8.0-100-genericGUI付きで起動する動かない動かない失敗
575-open6.17.0-1004-nvidiaGUI付きで起動する動く動く正常に動作
575-open6.17.0-14-genericGUI付きで起動する動く動く正常に動作
575-open6.14.0-37-genericGUI付きで起動する動かない動かない失敗
575-open6.11.0-29-genericGUI付きで起動する動く動く失敗

以上より、筆者の環境では nvidia-driver-575-openと6.17.0 の組み合わせで正常に動作することが分かりました。

なお、nvidia-driver-575-openをインストールすると何故かnvidia-driver-580-openもインストールされます。 そして、nvidia-smiを実行すると

Driver Version: 580.126.09
と表示されるので、結局、nvidia-driver-580-openが使われているようです。