Linux Mint 21 Vanessa
いつからか、google-chromeでファイル保存する際のダイアログが英語になってしまった。色々調べたけど「xdg-desktop-portal-gtk」を無効化すると何故か解決する。これが正しい対処法かは知らない。
$ systemctl --user mask xdg-desktop-portal-gtk
人生の最終目標は気ままな老後生活
Linux Mint 21 Vanessa
いつからか、google-chromeでファイル保存する際のダイアログが英語になってしまった。色々調べたけど「xdg-desktop-portal-gtk」を無効化すると何故か解決する。これが正しい対処法かは知らない。
$ systemctl --user mask xdg-desktop-portal-gtk
Linux Mint 21 Vanessa
/etc/profileの最下行にumaskコマンドを追記する。指定する4桁のうち1桁目はゼロ固定、残りの3桁は減算する値を指定する。
例)0027の場合はファイルが640(666-027)になりディレクトリが750(777-027)のパーミッションになる
… umask 0027
Linux Mint 21 Vanessa
※一度スワップ領域がなくなるので物理メモリに余裕がない場合は危険
スワップを一度offにする。
# swapoff --all
新しいスワップファイルを作成する。
# dd if=/dev/zero of=/swapfile bs=1M count=8192 # chmod 600 /swapfile
新しいスワップファイルをスワップ領域としてマークする。
# mkswap /swapfile
スワップを有効化する。
# swapon /swapfile
※既存のスワップ領域を活かしたまま追加できるため物理メモリに余裕がない場合に有効
新しいスワップファイルを作成する。
# dd if=/dev/zero of=/swapfile2 bs=1M count=4096 # chmod 600 /swapfile2
新しいスワップファイルをスワップ領域としてマークする。
# mkswap /swapfile2
スワップを有効化する。
# swapon /swapfile2
fstabに下記の行を追記して再起動時にスワップが自動的に有効化されるように設定する。
/swapfile2 none swap sw 0 0
AdobeCreativeCloudをGPUで快適に使用したく、設定対象の機種がAPUとGPUを両方使える機種だったので、APUはホスト用、GPUを仮想マシンのWindows用に設定することにした。
ASUS ROG Flow x13 GV301QH AMD Ryzen 9 5900HS NVIDIA GeForce GTX 1650 Mobile / Max-Q Linux Mint 21 Vanessa virt-manager 4.0.0 QEMU 6.2.0
GPUのデバイスIDを確認する。
01:00.0 3D controller [0302]: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] [10de:1f9d] (rev a1)
ArchWikiを参考にカーネルパラメーターに「amd_iommu=on」「iommu=pt」「vfio-pci.ids=[デバイスID]」を追加する。
… GRUB_CMDLINE_LINUX="amd_iommu=on iommu=pt vfio-pci.ids=10de:1f9d" …
GRUBの設定を更新してホストを再起動する。
# update-grub
Windowsの仮想マシンはvirt-managerを使用して作成した。
仮想マシンを作成してインストール前に設定変更 ファームウェアをUEFIに ハードウェアの追加でPCIホストデバイスのGPUを選択して追加 WindowsをインストールしてGPUが認識されていることを確認 ドライバなどをインストール Windowsのリモートデスクトップを有効化 LinuxからRDPクライアントで接続できることを確認 Windowsをシャットダウン 仮想マシンの詳細設定で「ディスプレイ Spice」を削除 Windowsを起動してRDPで接続し動作確認
利便性を考えてこんなスクリプトも作ってみた。起動中画面のアイコンを変えたかったらzenityに--class
付けてデスクトップエントリファイル(*.desktop)と関連付けて。
#!/bin/bash virsh start windows 1>/dev/null 2>/dev/null result=1 ( while [ ! "$result" = "0" ] do nc -v -w 1 windows-vm.local -z 3389 1>/dev/null 2>/dev/null result=$? sleep 1 done ) | zenity --progress --title="Windows起動中" --text="仮想マシンを起動中です…\n" --width=300 --height=50 --percentage=99 --auto-close --no-cancel remmina --connect=$HOME/.local/share/remmina/windows-vm-local.remmina 1>/dev/null 2>/dev/null
ThinkBook 14 G3 Linux Mint 21 Vanessa
下記のコマンドを実行したまま、ACアダプタを抜き差ししてイベントを調べる。
$ acpi_listen
下記のような感じに出力された。
ac_adapter ACPI0003:00 00000080 00000000 battery PNP0C0A:00 00000080 00000001 ac_adapter ACPI0003:00 00000080 00000001 battery PNP0C0A:00 00000080 00000001
ACアダプタを抜いた際のイベントについて書く。
event=ac_adapter ACPI0003:00 00000080 00000000 action=/etc/acpi/switch-to-battery.sh
さっき指定したACアダプタを抜いた際のスクリプトを書く。これは画面の明るさを40%にする処理。
※先に/sys/class/backlight/amdgpu_bl0/max_brightnessで最大は確認した方が良い
#!/bin/bash echo 102 | tee /sys/class/backlight/amdgpu_bl0/brightness
実行可能にする。
# chmod +x /etc/acpi/switch-to-battery.sh
ACアダプタを接続した際のイベントについて書く。
event=ac_adapter ACPI0003:00 00000080 00000001 action=/etc/acpi/switch-to-ac.sh
さっき指定したACアダプタを接続した際のスクリプトを書く。これは画面の明るさを60%にする処理。
#!/bin/bash echo 153 | tee /sys/class/backlight/amdgpu_bl0/brightness
実行可能にする。
# chmod +x /etc/acpi/switch-to-ac.sh
サービスを再起動する。
# systemctl restart acpid
自分のノートパソコンにインストールしているLinuxで、開発・検証・テストを目的に仮想マシンを利用するため、通常アカウントで管理できるよう設定する。
Linux Mint 21 Vanessa virt-manager 4.0.0
virt-managerをインストールする。
# apt install virt-manager
対象の通常アカウントでqemu:///systemに接続できるよう設定する。
… #user = "root" user = "username" … #group = "root" group = "libvirt" … #dynamic_ownership = 1 dynamic_ownership = 1 …
対象の通常アカウントをkvmとlibvirtグループに追加する。
# gpasswd -a username kvm # gpasswd -a username libvirt
一度、再起動してログインし直すと、virt-managerでqemu:///systemに接続できるようになる。接続の詳細でストレージのdefaultを通常アカウントで使用できる場所に変更しておいた方が良いかもしれない。
Linux Mint 21 Vanessa zenity 3.42.1 libglib2.0-bin 2.72.1
スクリプトを作成する。
#!/bin/bash directory=$(zenity --list \ --title="共有ディレクトリ" \ --text="アクセスするディレクトリを選択してください。" \ --width=400 --height=600 \ --print-column=1 \ --column="ディレクトリ名" \ "共有1" \ "共有2" \ "共有3" \ 2>/dev/null) if [ $? -eq 1 ]; then exit 0; fi if [ ! -d "/run/user/$UID/gvfs/smb-share:server=samba-server.local,share=$directory/" ]; then echo -e "user\nWORKGROUP\nPassword\n" | gio mount smb://samba-server.local/$directory 1>/dev/null 2>/dev/null fi xdg-open smb://samba-server.local/$directory/
スクリプトを実行可能にする。
$ chmod +x ~/bin/gio-mount.sh
Linux Mint 20.3 (Una) whiptail 0.52.21 libglib2.0-bin 2.64.6
スクリプトを作成する。
#!/bin/bash directories=("共有1" "共有2" "共有3") radioList=() listIndex=0 for index in "${!directories[@]}" do radioList[${listIndex}]=$index radioList[${listIndex}+1]=${directories[${index}]} radioList[${listIndex}+2]=OFF listIndex+=3 done selectedIndex=$(whiptail --title "共有ディレクトリ" --radiolist "アクセスするディレクトリを選択してください。" 20 80 15 "${radioList[@]}" --notags 3>&1 1>&2 2>&3) if [ ${#selectedIndex} == 0 ]; then exit 0 fi directory=${directories[${selectedIndex}]} if [ ! -d /run/user/$UID/gvfs/smb-share:server=samba-server,share=$directory/ ]; then echo -e "user\nWORKGROUP\nPassword\n" | gio mount smb://samba-server/$directory 1>/dev/null 2>/dev/null fi xdg-open smb://samba-server/$directory/
スクリプトを実行可能にする。
$ chmod +x ~/bin/gio-mount.sh
Linux Mint 20.3 (Una) lightdm 1.30.0
アンマウントするスクリプトを作成する。
#!/bin/bash umount -f -l -t cifs -a
スクリプトに実行権限を付与する。
# chmod +x /etc/lightdm/cifs-umount.sh
スクリプトの実行を指示する設定を追加する。
[SeatDefaults] session-cleanup-script=/etc/lightdm/cifs-umount.sh
・ OS: Linux Mint 20.2 ・ LightDM: 1.30.0
下記のコマンドでディスプレイ名と使用できる解像度を確認する。
$ xrandr
解像度をセットするスクリプトをディスプレイ名と解像度を確認した値に置き換えて作成する。
#!/bin/bash xrandr --output DisplayPort-1 --mode 1920x1080
スクリプトに実行権限を付与する。
# chmod +x /etc/lightdm/resolution.sh
スクリプトを実行するlightdmの設定ファイルを作成する。
[SeatDefaults] display-setup-script=/etc/lightdm/resolution.sh