ラベル Windows11 の投稿を表示しています。 すべての投稿を表示
ラベル Windows11 の投稿を表示しています。 すべての投稿を表示

2026年10月10日土曜日

Windows 11 に Strata を構築する

前提

以下条件の PC で確認した。

  • OS: Windows 11 Pro 25H2 ビルド 26200.9550
  • CPU: 12th Gen Intel(R) Core(TM) i9-12900 (2.40 GHz)
  • RAM: 128 GB
  • グラボ: NVIDIA GeForce RTX 4070 Ti SUPER (16 GB)

Strata の入手

  1. プロジェクトをダウンロードする。どちらでも可:
  2. 今回は f:\Strata\ に展開した。

セットアップの開始

START-HERE.bat をダブルクリックし、指示に従って必要項目を入力する。

セットアップが自動で行うこと:

  • Python 3.12 が無ければユーザー権限でインストール(管理者権限不要)
  • .venv/ に専用 Python 環境を作成
  • Strata エンジンを導入(RTX 20/30/40/50 用の既製エンジン + NVIDIA の CUDA ライブラリ 約 0.4 GB)
  • 既製エンジンが PC に合わない場合は、ビルドツール(Visual Studio Build Tools + CUDA Toolkit)のインストールを提案され、承認するとエンジンをコンパイル(20〜40 分、1 回だけ)

モデルのダウンロードと準備

セットアップの続きで、以下が自動でダウンロード・準備される。

項目 内容 備考
モデル本体 約 70 GB 初回は時間がかかる。中断しても続きから再開できる
MTP draft layer 約 6 GB 推測(draft)用の小型レイヤー
トークナイザパック モデルごと data/packs/<モデル>/ に配置される

起動確認

  1. ダウンロード完了後、自動でモデルが起動する。
  2. ブラウザで http://127.0.0.1:8080 が開けば成功。
    • 注意: モデル読み込み中は PC が 1 から 3 分程度重くなったり応答しなくなったりする。フリーズではないので待つ。

確認した環境では大体 35 tps くらいになった。

以上。

2024年3月23日土曜日

Windows コンテナで Node.js アプリケーションをシングルバイナリにする

今回は、 Node.js アプリケーションのシングルバイナリ化をやってみる。

対象のアプリケーションは devcontainers/cli。

nexe/nexe と Node.js v21 の Single executable applications の 2 パターンでやってみる。

前提

  • OS: Windows 11 Pro 23H2 ビルド 22631.3155
  • Docker Desktop: Version 4.28.0 (139021)
  • 使用イメージ: mcr.microsoft.com/windows/servercore:ltsc2022

コンテナ起動

Node.js のビルドにはたくさんメモリが必要なので、 -m で明示的に指定。

docker run -it --rm --cpus 20 -m 16G -v "$(pwd):C:\dist" mcr.microsoft.com/windows/servercore:ltsc2022 powershell.exe

ビルド環境構築

開発ツール一式をインストール

Set-ExecutionPolicy Unrestricted -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://boxstarter.org/bootstrapper.ps1'))
get-boxstarter -Force
Install-BoxstarterPackage https://raw.githubusercontent.com/nodejs/node/HEAD/tools/bootstrap/windows_boxstarter -DisableReboots
refreshenv

Visual Studio に必要なコンポーネントを追加

& 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe' modify `
    --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools' `
    --add Microsoft.VisualStudio.Component.Windows11SDK.22621 `
    --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 `
    --add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre `
    --quiet

Node.js のインストール

choco install nodejs

パス環境変数の更新

$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")

devcontainers/cli をシングルバイナリにしてみる

nexe/nexe で作る

git clone --depth 1 -b v0.58.0 https://github.com/devcontainers/cli devcontainers-cli
cd devcontainers-cli
npm i -g yarn
yarn
yarn compile-prod
npx nexe -i ./devcontainer.js -t windows-x64-21.7.1 -b -o /dist/devcontainer-windows-x64-21.7.1-nexe.exe

~\.nexe\21.7.1\out\Release\node.exe に nexe 向けの node.exe が配置される。 これを ~\.nexe\windows-x64-21.7.1 に移動し、 -b を外すことで、次回以降、このバイナリを利用してシングルバイナリを作るようになる。

mv ~\.nexe\21.7.1\out\Release\node.exe ~\.nexe\windows-x64-21.7.1

Node.js の Single executable applications で作る

# シングルバイナリに使うための node 実行ファイルをコピー
Copy-Item 'C:\Program Files\nodejs\node.exe' .\devcontainer-windows-x64-21.7.1-sea.exe

# sea 用の設定ファイル作成
Write-Output '{"main": "./dist/spec-node/devContainersSpecCLI.js", "output": "sea-prep.blob"}' | Out-File -Encoding ascii .\sea-config.json

# blob の作成
node --experimental-sea-config sea-config.json

# BLOB を注入し、シングルバイナリを作る
npx postject devcontainer-windows-x64-21.7.1-sea.exe NODE_SEA_BLOB sea-prep.blob `
    --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2

# コンテナの外にコピー
Copy-Item .\devcontainer-windows-x64-21.7.1-sea.exe \dist

参考資料

変更履歴

日付 内容
2024/3/23 新規作成
2024/4/2 nexe 用 node バイナリ格納場所の間違いを修正(~/nexe -> ~/.nexe)

2022年8月28日日曜日

Windows Subsystem for Android で Yukari for Android を動かす

shibafu528/Yukari: Twitter/Mastodon Client for Android を Windows Subsystem for Android で動かしたい。

Twitter TL と Mastodon TL をひとつのカラムで混ぜて見れて、さらに TL の自動更新ができるアプリ、Yukari for Android しか知らないので、これを Windows で動かしたかった。

前提

Windows Subsystem for Android の有効化

Windows Insider Program の有効化

※ 2022/8/25 から、 Windows Insider Program への参加は不要になったようだ

  1. スタート -> 設定 -> Windows Update -> Windows Insider Program
  2. 使用を開始する ボタン押下
  3. ウィザードに従って情報入力
    1. アカウントと紐づけ
      • Microsoft アカウントに紐づけ
    2. Insider チャネルを選択
      • ベータ チャネル を選択
      • WSA はDev またはベータで使える
    3. デバイスの契約をレビューする
      • 利用規約とプライバシーステートメントを読む
    4. このデバイスを再起動して作業を完了します
      • 今すぐ再起動 を押下

Amazon アプリストアをインストール

スタート -> Microsoft Store -> Amazon アプリストア で検索し、 Amazon アプリストア を選択し、インストール。

開発者モードをオン

adb コマンドで WSA に接続できるようにするため、開発者モードをオンにする。

  1. スタート -> Android™用 Windows サブシステム設定 を実行
  2. 開発者 -> 開発者モード をオンにする

Yukari for Android のインストール

adb で WSA に接続

adb は、Android Studio をインストールしていれば ~/AppData/Local/Android/Sdk/platform-tools に入っているはず。

WSA が起動していないと、 adb で接続できないので、 Android™用 Windows サブシステム設定 を起動しておくこと。

Android™用 Windows サブシステム設定 を起動したうえで、以下コマンドで接続。

> C:\Users\mikoto\AppData\Local\Android\Sdk\platform-tools\adb.exe connect 127.0.0.1:58526
* daemon not running; starting now at tcp:5037
* daemon started successfully
failed to authenticate to 127.0.0.1:58526

ADB のデバッグを許可しますか? のダイアログが出るので、 許可 を押下。

adb で apk をインストール

以下コマンドで、署名済みの apk ファイルを転送・インストール。

C:\Users\mikoto\AppData\Local\Android\Sdk\platform-tools\adb.exe install .\Yukari\Yukari\stable\release\Yukari-stable-release.apk

以上。

Yukari for Android の設定をインポートしたいなら、設定ファイル一式を abd push で WSA のファイルシステムへ転送できる。

参考資料

Yukari for Android をビルドする(2022/8/29 版)

shibafu528/Yukari: Twitter/Mastodon Client for Android をビルドする。

前提

  • OS: Windows 11 Pro 21H2 ビルド: 22000.856

Android Studio のインストール

Android Studio のインストール  |  Android デベロッパー  |  Android Developers からダウンロードし、インストールする。

GitHub の Personal Access Token を作成

Package info.shibafu528.yukari.yukari-exvoice · shibafu528/yukari-exvoice パッケージをインストールするために、 GitHub パッケージを読み込みできるトークンを作成する。

read:package パーミッションの付いた Personal Access Token を作成し、トークンをメモ。

Yukari のビルド

  1. Android Studio に、 Yukari のプロジェクトをインポート

  2. Yukari/local.properties に、以下 2 行を追加

    gpr.user=mikoto2000
    gpr.key=<read:package のパーミッションを設定した Personal Access Token>
  3. メニューの Build -> Generate Signed Bundle or APK を選択

    1. Generate Signed Bundle or APK のダイアログが開くので、 APK を選択して Next ボタン押下
    2. 必要事項を記入して Next ボタン押下
      1. Module に Yukari.Yukari を選択
      2. セクション Keystore path の Create new... ボタンを押下、必要事項を記入して OK ボタン押下
    3. 必要事項を記入して Finish ボタン押下
      • Destination Folder : apk の出力パス。今回は /PATH/TO/Yukari/Yukari を設定。
      • Build Variants : stableRelease を選択

これで、 /PATH/TO/Yukari/Yukari/stable/release/Yukari-stable-release.apk が生成される。

2022年6月10日金曜日

Tailscale を使ってみる

前提

  • OS1: Windows 11 Pro 21H2 ビルド 22000.675
  • OS2: Arch Linux 2022/6/8

Tailscale へのサインアップから、ひとつめのデバイス登録まで

Windows 11 Pro に Tailscale をインストールし、デバイスの登録を行う。

  1. Web ブラウザ https://login.tailscale.com/start へアクセス
    • 今回は GitHub で Sign up した
  2. Select Network 画面が表示されるので、使用するネットワークを選択
    • Single-user Tailnet の mikoto2000 を選択
  3. Welcome! Let’s add your first device. 画面が表示されるので、 Windows のボタンを押下 -> Download Tailscale for Windows ボタン押下
  4. Download Tailscale 画面が表示されるので、 Download Tailscale for Windows ボタン押下でインストーラーをダウンロード
  5. tailscale-ipn-setup-1.26.0.exe を実行
    • デフォルトのまま Install ボタン押下 -> Close ボタン押下
  6. タスクトレイ内の Tailscale アイコン右クリック -> Log in...

これで、 Tailscale のネットワークに最初のデバイスが追加される。

DNS 設定

Tailscale ネットワークにぶら下がったデバイス間のアクセスがやりやすいように、 MagicDNS を使って名前解決するように設定する。

  1. Tailscale のログイン後画面 -> 左上のトップページへのリンクを選択 -> DNS
  2. DNS 画面になるので、必要な設定を行う
    1. Nameserver セクションの Add nameserver を選択 -> Cloudflare Public DNS を選択
      • MagicDNS で引っかからなかったホスト名を解決するために使う DNS, 必要に応じて IP を設定する
    2. MagicDNS セクションの Enable MagicDNS ボタンを押下

OK.

ふたつめのデバイス登録

Arch Linux を登録する。

  1. Web ブラウザ https://login.tailscale.com/start へアクセス
    • 今回は GitHub で Sign up した
  2. Select Network 画面が表示されるので、使用するネットワークを選択
    • Single-user Tailnet の mikoto2000 を選択
  3. Machines 画面が表示されるので、 Download リンクを選択
  4. Download Tailscale 画面になるので、 Manually install on のプルダウンから Arch Linux を選択
    • 以下、表示された説明の通りコマンドを実行
      1. パッケージインストール
        • sudo pacman -S tailscale
      2. 自動起動設定、 --now で同時に起動も行う
        • sudo systemctl enable --now tailscaled
      3. Tailscale にデバイスを接続(登録)
        • sudo tailscale up
        • 表示される URL に Web ブラウザでアクセスし、ログイン

これで、 Tailscale のネットワークに Arch Linux がぶら下がる。

動作確認

ふたつめのデバイスからひとつめのデバイスに SSH 接続してみる。

ssh mikoto@mydesktoppc

ひとつめのデバイスに設定した接続情報でログインできる。

参考資料

2022年6月8日水曜日

Windows 11 Pro に sshd をインストールして公開鍵認証方式でログインする

前提

  • OS: Windows 11 Pro 21H2 ビルド 22000.675
  • GitHub に SSH 接続用の公開鍵を追加済み

OpenSSH サーバーのインストール

  1. Windows キー -> 設定アイコン -> アプリ -> オプション機能 -> 機能を表示 ボタン押下
  2. OpenSSH サーバー にチェックを入れて 次へ ボタン押下
  3. インストール ボタン押下

OpenSSH サーバーの設定

sshd サービスを自動起動に設定

PowerShell で以下コマンドを実行。

start-process -verb runas powershell -ArgumentList Set-Service,-Name,'sshd',-StartupType,'Automatic'

sshd サービスを起動

PowerShell で以下コマンドを実行。

start-process -verb runas powershell -ArgumentList Start-Service,-Name,'sshd'

GitHub の公開鍵を authorized_keys に追記

Invoke-WebRequest で取得し、 Out-File で追記する。

(Invoke-WebRequest https://github.com/mikoto2000.keys).Content | Out-File -FilePath ~/.ssh/authorized_keys -Encoding utf8 -Append

今回使うユーザーが、 Administrator グループに入っているため、 C:\ProgramData\ssh\authorized_keys が参照される。

そちらにコピーして権限を設定。

# authorized_keys コピー
start-process -verb runas powershell -ArgumentList Copy-Item,c:/Users/mikoto/.ssh/authorized_keys,c:/ProgramData/ssh/administrators_authorized_keys

# 権限設定
start-process -verb runas powershell -ArgumentList icacls,.\administrators_authorized_keys,/inheritance:r,/grant,Administrators:F,/grant,SYSTEM:F

デフォルトシェルを PowerShell へ変更

start-process -verb runas powershell -ArgumentList New-ItemProperty,-Path,"HKLM:\SOFTWARE\OpenSSH",-Name,DefaultShell,-Value,"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",-PropertyType,String,-Force

公開鍵認証のみを許可するように設定変更

  1. 管理者権限で開いたテキストエディタで c:\ProgramData\ssh\sshd_config を開き、以下修正を行う
    • #PasswordAuthentication yes -> PasswordAuthentication no
  2. sshd サービスリスタート
    • start-process -verb runas powershell -ArgumentList Restart-Service,-Name,'sshd'

動作確認

ssh mikoto@localhost

ログインできた、 OK.

以上。

参考資料

2022年3月13日日曜日

Windows11 初期設定備忘録

間違って Windows11 VM を消してしまったので、再インストールした。

インストール -> Windows Update したあとから。

Windows の設定

タスクバー設定

  1. タスクバーの空白を右クリック -> タスクバーの設定
    1. タスク バー項目
      • 検索 : オフ
      • タスク ビュー : オン
      • ウィジェット : オフ
      • チャット : オフ
    2. タスク バーの動作
      • タスク バーの配置 : 左揃え
      • タスク バーをすべてのディスプレイに表示する : チェックを入れる(マルチディスプレイの場合)

スタートメニュー設定

スタートメニューに設定ボタンを追加。

  1. スタートボタン右クリック -> 設定 -> 個人用設定 -> スタート
    1. 最近追加したアプリを表示する : オフ
    2. フォルダー
      • 設定 : オン

エクスプローラー

拡張子と隠しファイルを表示する

  1. エクスプローラー を開く -> 表示 -> 表示
    • 以下 2 項目を選択し、チェック済みにする
      • ファイル名拡張子
      • 隠しファイル

コンテキストメニューを Windows 10 時代の形式へ戻す

  1. PowerShell を開き、以下コマンドを実行
    • reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
  2. Windows 再起動

いつも使うフォルダの作成とクイックアクセスへの登録

  1. $HOME/bin, $HOME/app, $HOME/project を作成
  2. $HOME と 「1.」で作成したフォルダをクイックアクセスに追加

bin フォルダにパスを通す

PowerShell を起動して、以下コマンドを実行。

$path = [Environment]::GetEnvironmentVariable('Path', 'User')
$path = $path + ";" + $HOME + "\bin"
[Environment]::SetEnvironmentVariable("Path", $path, 'User')

Windows の機能の有効化

Hyper-V, WSL, サンドボックスを有効化。

  1. スタートボタンから Windows の機能の有効化または無効化 を検索し、実行
    • 以下機能にチェックを入れる
      • Hyper-V
      • Linux 用 Windows サブシステム
      • Windows サンドボックス
      • コンテナ―
      • 仮想マシンプラットフォーム
  2. Windows 再起動

アプリインストール・設定

以下アプリをインストールする。 Vim 以外は winget コマンドでインストールできる。

  • Vim
  • Git
  • 7-Zip
  • WinMerge
  • Pandoc
  • Google Chrome
  • Mozilla Firefox
  • Microsoft PowerToys
  • Microsoft Visual Studio Code
  • PowerShell(PowerShell7)
  • Adobe Acrobat DC (64-bit)
  • Docker Desktop
  • ScreenToGif
  • Discord
  • Amazon Kindle

事前準備

WSL2 の導入

PowerShell を管理者権限で開き、以下コマンドを実行。

wsl --update

アプリインストーラーの更新

winget コマンドでアプリをインストールするために、 アプリインストーラー を更新する。

  1. Microsoft Store を開く
  2. ライブラリ -> すべて更新
    • アプリインストーラー さえ更新すれば winget 使えるけど、一通り全部更新したほうが安心なので

winget コマンドによるアプリインストール

PowerShell を管理者として起動して、以下コマンドを実行。

winget install --silent Git.Git
winget install --silent 7-zip
winget install --silent WinMerge
winget install --silent Pandoc
winget install --silent "Google Chrome"
winget install --silent Mozilla.Firefox
winget install --silent Microsoft.PowerToys
winget install --silent Microsoft.VisualStudioCode
winget install --silent Microsoft.PowerShell
winget install --silent Docker.DockerDesktop
winget install --silent Adobe.Acrobat.Reader.64-bit
winget install --silent NickeManarin.ScreenToGif
winget install --silent Discord.Discord
winget install --silent Amazon.Kindle

Git の設定

自動改行コード変更設定を無効化

Git Bash を管理者で開き、以下コマンドを実行。

git config --system core.autocrlf false

ユーザー名・パスワードの設定

Git Bash を自分のユーザーで開き、以下コマンドを実行。

git config --global user.name "mikoto2000"
git config --global user.email mikoto2000@gmail.com

Git/Unix コマンドを PATH 環境変数へ追加

PowerShell を管理者で開き、以下コマンドを実行。

$path = [Environment]::GetEnvironmentVariable('Path', 'Machine')
$path = $path + ";C:\Program Files\Git;C:\Program Files\Git\usr\bin"
[Environment]::SetEnvironmentVariable("Path", $path, 'Machine')

Vim のインストール

Vim に関しては、最新版を引っ張ってくるスクリプトを作っているので、それを使ってインストールする。

新しい PowerShell を起動して、以下コマンドを実行。

※ winget した PowerShell は、パスが反映されていないため、 git を見つけられない。新しい PowerShell で実行すること。

# インストーラー含むプロジェクトを clone
cd project
git clone https://github.com/mikoto2000/MiscellaneousTools.git

# Vim のインストーラー実行
powershell -ExecutionPolicy RemoteSigned .\MiscellaneousTools\win\tool_installer\ext\vim.ps1

# vimfiles の配置
git clone https://github.com/mikoto2000/dotvim.git $HOME/vimfiles

これでいつもの Vim が起動するようになるはず。

PowerToys とかもこまごました設定あるけどギブアップ…。

Windows を再起動すると、 Docker やら Discode やら PowerToys やらが起動しだす。

参考資料